Guia de Instalação
Este é o guia de instalação completo e passo a passo para o FeedbackPulse SaaS. Siga cada etapa cuidadosamente.
Lista de Verificação Pré-Instalação
Antes de começar, certifique-se de que você tem:
- Um servidor atendendo todos os requisitos
- Um nome de domínio apontando para o endereço IP do seu servidor
- Acesso SSH ao seu servidor (ou FTP para upload de arquivos)
- Um banco de dados MySQL/MariaDB e credenciais
- Uma conta de e-mail SMTP (Gmail, Mailgun, Amazon SES, etc.)
- Seu código de compra Envato (do pedido no CodeCanyon)
Passo 1: Fazer Upload dos Arquivos para o Servidor
Opção A: Usando SSH (Recomendado)
# Conectar ao seu servidor
ssh user@your-server-ip
# Navegar para o diretório web
cd /var/www
# Fazer upload e extrair o arquivo ZIP
# (Faça upload do zip via SCP, SFTP ou wget de um link temporário)
unzip feedbackpulse-saas.zip -d feedbackpulse-saas
cd feedbackpulse-saas
Opção B: Usando FTP/SFTP
- Conecte-se ao seu servidor usando FileZilla, WinSCP ou similar
- Navegue para o seu diretório web (geralmente
/var/www/ou/home/user/public_html/) - Faça upload de toda a pasta
feedbackpulse-saasextraída - Certifique-se de que o subdiretório
public/está acessível
Opção C: Usando o Gerenciador de Arquivos do cPanel
- Faça login no cPanel
- Abra o Gerenciador de Arquivos → navegue até
public_html(ou um subdiretório) - Faça upload do arquivo ZIP
- Extraia-o no local
- Importante: Você precisará definir o document root para a pasta
public/(consulte Configuração do Apache)
Passo 2: Definir Permissões de Arquivo
cd /var/www/feedbackpulse-saas
# Definir proprietário (substitua www-data pelo usuário do seu servidor web)
# Apache: www-data | Nginx: www-data ou nginx
sudo chown -R www-data:www-data .
# Definir permissões de diretório
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;
# Tornar storage e cache graváveis
sudo chmod -R 775 storage bootstrap/cache
Passo 3: Configurar Seu Servidor Web
Seu servidor web deve apontar para o diretório public/ dentro do projeto — NÃO para a raiz do projeto. Este é um requisito crítico de segurança.
Escolha seu servidor web:
- Configuração do Apache
- Configuração do Nginx
- Hospedagem Compartilhada (cPanel, Plesk, DirectAdmin) — se você estiver em hospedagem compartilhada, siga este guia!
Versão rápida:
Apache:
DocumentRoot /var/www/feedbackpulse-saas/public
Nginx:
root /var/www/feedbackpulse-saas/public;
Após configurar, reinicie seu servidor web:
# Apache
sudo systemctl restart apache2
# Nginx
sudo systemctl restart nginx
Passo 4: Link Simbólico de Armazenamento (Automático)
O instalador web tenta criar automaticamente o link simbólico de armazenamento durante a etapa final. Você não precisa executar nenhum comando.
- VPS/Dedicado: O link simbólico é criado automaticamente. Nenhuma ação necessária.
- Hospedagem compartilhada: Se os links simbólicos estiverem desabilitados no seu host, o FeedbackPulse usa um fallback PHP integrado para servir arquivos enviados (logos, imagens). Tudo funciona — nenhuma ação necessária.
A página de conclusão do instalador informará se o link simbólico foi criado ou se o fallback está ativo.
Passo 5: Executar o Instalador Web
Abra seu navegador e acesse:
https://yourdomain.com/install
O instalador guiará você por 5 etapas. Consulte o Passo a Passo do Instalador Web para capturas de tela e explicações detalhadas.
Resumo rápido:
Etapa 1: Verificação de Licença
- Insira seu código de compra Envato/CodeCanyon
- Isso valida sua licença com a API da Envato
- Se você não estiver usando a Envato, pode haver uma opção de pular
Etapa 2: Verificação de Requisitos
- O instalador verifica automaticamente:
- Dependências do Vendor (
vendor/autoload.phpexiste) - Versão do PHP (8.2+)
- Extensões PHP necessárias
- Permissões de diretório (storage, bootstrap/cache)
- Ambiente de hospedagem (detecta hospedagem compartilhada, mostra informações de compatibilidade)
- Dependências do Vendor (
- Corrija quaisquer itens com falha antes de prosseguir
Etapa 3: Configuração do Banco de Dados
- Insira suas credenciais do banco de dados:
- Host:
127.0.0.1(oulocalhost) - Porta:
3306 - Nome do banco de dados:
feedbackpulse(crie primeiro!) - Usuário: seu nome de usuário do banco de dados
- Senha: sua senha do banco de dados
- Host:
- O instalador executará todas as migrações e populará os dados padrão
Crie o banco de dados primeiro:
CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Etapa 4: Conta de Admin
- Crie sua conta de superadmin:
- Nome: Seu nome
- E-mail: [email protected]
- Senha: Uma senha forte (mínimo de 8 caracteres)
- Esta é a conta que você usará para gerenciar toda a plataforma
Etapa 5: Configuração de E-mail
- Insira seus detalhes SMTP:
- Host: ex.:
smtp.gmail.com - Porta:
587(TLS) ou465(SSL) - Usuário: seu nome de usuário SMTP
- Senha: sua senha SMTP ou senha de app
- Criptografia: TLS (recomendado)
- Endereço De:
[email protected]
- Host: ex.:
- Você pode pular isso e configurar depois em Configurações do Admin
Conclusão
- Alterna os drivers de sessão e cache para
databasepara produção - Gera um
CRON_TOKENpara o endpoint cron baseado na web - Cria um arquivo
storage/installed.lock(impede nova execução) - Exibe uma página de sucesso com instruções de configuração do cron (opções CLI e URL) e próximos passos
Passo 6: Configurar o Cron Job
O FeedbackPulse precisa de um cron job para executar tarefas agendadas. Isso é essencial para:
- Enviar resumos por e-mail (diário/semanal)
- Processar expirações de período de teste
- Impor políticas de retenção de dados
- Enviar alertas de uso
- Executar detecção de anomalias por IA
- Enviar relatórios agendados
Opção 1 — Comando CLI (VPS / Dedicado):
crontab -e
Adicione esta linha:
* * * * * cd /var/www/feedbackpulse-saas && php artisan schedule:run >> /dev/null 2>&1
Opção 2 — URL/wget (Hospedagem Compartilhada):
Se seu painel de hospedagem suporta apenas cron baseado em URL, use o endpoint de cron web (o CRON_TOKEN é gerado automaticamente durante a instalação e exibido na página de conclusão):
wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"
Dica: A página de conclusão do instalador mostra ambas as opções com o caminho real do servidor e o token já preenchidos. Copie-os de lá!
Para mais detalhes, consulte Cron Jobs & Workers de Fila.
Passo 7: Configurar SSL (HTTPS)
O HTTPS é fortemente recomendado por segurança, especialmente porque o FeedbackPulse lida com autenticação e dados de pagamento.
Usando Let's Encrypt (Gratuito)
# Instalar o Certbot
sudo apt install certbot python3-certbot-nginx # para Nginx
# OU
sudo apt install certbot python3-certbot-apache # para Apache
# Obter certificado
sudo certbot --nginx -d yourdomain.com # para Nginx
# OU
sudo certbot --apache -d yourdomain.com # para Apache
O Certbot configurará automaticamente seu servidor web para HTTPS e configurará a renovação automática.
Para mais detalhes, consulte Certificados SSL.
Passo 8: Verificar a Instalação
Execute esta lista de verificação:
| Verificação | Como | Resultado Esperado |
|---|---|---|
| Landing page carrega | Acesse https://yourdomain.com | Ver a landing page |
| Login funciona | Acesse https://yourdomain.com/login | Fazer login com credenciais de superadmin |
| Painel admin | Acesse https://yourdomain.com/admin/dashboard | Ver o painel de admin |
| Link de storage | Acesse https://yourdomain.com/storage/ | Sem erro 404 |
| Verificação de saúde | Acesse https://yourdomain.com/up | Ver texto "OK" |
| Cron rodando | Verifique Admin → Configurações | Sem avisos de cron |
| E-mail funciona | Admin → Configurações → E-mail → Enviar Teste | Receber e-mail de teste |
Passos Pós-Instalação
Após a conclusão da instalação:
- Revisar planos de assinatura —
Admin → Planos(editar preços, limites, recursos) - Configurar gateways de pagamento —
Admin → Configurações → Pagamentos(chaves de API Stripe/PayPal) - Personalizar a landing page —
Admin → Landing Page - Testar entrega de e-mail —
Admin → Configurações → E-mail → Enviar E-mail de Teste - Configurar DNS wildcard (opcional) — para subdomínios de tenant. Consulte Configuração de DNS Wildcard.
- Criar seu primeiro tenant — Registre-se em
/registerem uma janela anônima
Solução de Problemas de Instalação
| Problema | Solução |
|---|---|
| Página branca em branco | Verifique storage/logs/laravel.log para erros. Geralmente um problema de permissões. |
| Erro 500 do Servidor | Ative o modo debug temporariamente: defina APP_DEBUG=true no .env, depois verifique o erro. |
| "Classe não encontrada" | Certifique-se de que o diretório vendor/ está presente e íntegro. Faça o upload novamente do pacote baixado se necessário. |
| Conexão com banco de dados recusada | Verifique as credenciais, certifique-se de que o MySQL está rodando, verifique se localhost vs 127.0.0.1 faz diferença. |
| Instalador não carregando | Certifique-se de que a raiz web aponta para o diretório public/. |
| CSS/JS não carregando | Limpe o cache do navegador. Se imagens estiverem faltando, o fallback de storage as serve automaticamente em hospedagem compartilhada. No VPS, acesse /update como superadmin para recriar o link simbólico. |
| Permissão negada | Execute os comandos chown e chmod do Passo 2 novamente. |
Para mais informações, consulte Solução de Problemas.
Próximos Passos
- Passo a Passo do Instalador Web — capturas de tela detalhadas do instalador
- Configuração do Apache — configuração de virtual host Apache
- Configuração do Nginx — configuração de bloco de servidor Nginx
- Configuração — ajuste fino do seu
.env