Solução de Problemas 🔧
Este guia apresenta soluções para problemas comuns que podem ocorrer durante a instalação, configuração e operação do Sistema Divino Alimento.
Problemas de Instalação
Erro: "Port already in use"
Problema: A porta configurada já está sendo usada por outro processo.
Solução:
# Verificar qual processo está usando a porta
sudo netstat -tulpn | grep :13000
# Opção 1: Parar o processo conflitante
sudo kill -9 <PID_do_processo>
# Opção 2: Alterar a porta no arquivo .env
nano .env
# Altere PORT=13000 para outra porta (ex: PORT=8080)
# Reinicie o sistema
rake vivo:para
rake vivo:liga
Erro: "Docker not found"
Problema: Docker não está instalado ou não está no PATH.
Solução:
# Instalar Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Adicionar usuário ao grupo docker (evita usar sudo)
sudo usermod -aG docker $USER
# Fazer logout e login novamente para aplicar
# Ou executar:
newgrp docker
# Verificar instalação
docker --version
docker-compose --version
Erro: "Permission denied" ao executar Docker
Problema: Usuário não tem permissão para executar comandos Docker.
Solução:
# Adicionar usuário ao grupo docker
sudo usermod -aG docker $USER
# Reiniciar sessão ou executar
newgrp docker
# Verificar se funcionou
docker ps
Erro ao clonar repositório
Problema: Falha ao executar git clone.
Solução:
# Verificar se git está instalado
git --version
# Se não estiver, instalar
# Ubuntu/Debian:
sudo apt-get install git
# CentOS/RHEL:
sudo yum install git
# Verificar conectividade
ping git.disroot.org
# Tentar clonar novamente
git clone https://git.disroot.org/Akarui/DivinoAlimento_dev.git
Problemas de Configuração
Erro de Autenticação OAuth
Problema: Usuários não conseguem fazer login via Google.
Possíveis causas e soluções:
-
Credenciais OAuth não configuradas:
# Verificar se as variáveis estão no .env
cat .env | grep GOOGLE
# Devem existir:
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=... -
URLs de callback incorretas:
- Verificar no Google Cloud Console se a URL de callback está correta
- Formato:
http://seu-dominio:porta/auth/google/callback
-
Reiniciar após alterações:
rake vivo:para
rake vivo:liga
Banco de Dados não Conecta
Problema: Sistema não consegue conectar ao PostgreSQL.
Diagnóstico:
# Verificar logs do container de banco
docker-compose logs db
# Verificar se container está rodando
docker-compose ps
# Verificar variáveis de conexão no .env
cat .env | grep DB_
Soluções:
# Solução 1: Reiniciar apenas o banco
docker-compose restart db
# Solução 2: Reiniciar todo o sistema
rake vivo:para
rake vivo:liga
# Solução 3: Resetar volumes (CUIDADO: perde todos os dados)
docker-compose down -v
rake vivo:liga
rake vivo:popular
Erro: "Arquivo .env não encontrado"
Problema: Sistema não encontra arquivo de configuração.
Solução:
# Verificar se .env existe
ls -la .env
# Se não existir, copiar do exemplo
cp env.example .env
# Editar configurações
nano .env
Problemas de Operação
Sistema Não Carrega / Página em Branco
Diagnóstico:
# Verificar logs da aplicação
docker-compose logs app
# Verificar se todos os containers estão rodando
docker-compose ps
# Verificar portas expostas
docker-compose port app 3000
Soluções:
# Verificar se todas as variáveis obrigatórias estão no .env
cat .env
# Reiniciar sistema completo
rake vivo:para
rake vivo:liga
# Se persistir, verificar logs detalhados
docker-compose logs -f app
Produtos não Aparecem nas Ofertas
Problema: Agricultores não veem produtos para ofertar.
Possíveis causas:
-
Produtos marcados como inativos:
- Verificar no cadastro de produtos
- Alterar situação para "Ativo"
-
Período de ofertas não está vigente:
- Verificar datas configuradas no ciclo
- Confirmar que está dentro do período de ofertas
-
Produtos não cadastrados:
- Verificar se produtos foram cadastrados no sistema
- Acessar
/cadastros> Produtos
Erro ao Compor Cestas
Problema: Erro ao salvar composição de cestas.
Possíveis causas:
-
Quantidades ofertadas insuficientes:
- Verificar se há produtos suficientes para todas as cestas
- Sistema mostra indicadores de disponibilidade
-
Valor da cesta excede máximo:
- Verificar valor máximo configurado no tipo de cesta
- Ajustar produtos selecionados para respeitar o limite
Relatórios Vazios ou Incompletos
Problema: Relatórios não mostram dados esperados.
Verificações:
-
Ofertas foram registradas?
# Verificar no sistema se há ofertas no ciclo -
Cestas foram compostas?
- Acessar "Composição Cestas" e verificar se há cestas salvas
-
Pedidos foram feitos?
- Verificar se há pedidos extras registrados
-
Associações foram feitas?
- Para relatórios de fornecedores, verificar se pedidos extras foram associados
Problemas de Performance
Sistema Lento
Diagnóstico:
# Verificar uso de recursos pelos containers
docker stats
# Verificar espaço em disco
df -h
docker system df
# Verificar logs por erros
docker-compose logs | grep -i error
Soluções:
# Limpar containers e imagens não utilizadas
docker system prune -a
# Reiniciar containers
rake vivo:para
rake vivo:liga
# Se persistir, considerar aumentar recursos (RAM/CPU)
Banco de Dados Crescendo Muito
Solução:
# Fazer backup antes
docker-compose exec db pg_dump -U postgres divino_alimento > backup.sql
# Limpar dados antigos (ex: ciclos muito antigos)
# Fazer via interface web do sistema
# Vacuum do PostgreSQL (otimiza espaço)
docker-compose exec db psql -U postgres divino_alimento -c "VACUUM FULL;"
Monitoramento e Diagnóstico
Verificar Status dos Containers
# Status de todos os containers
docker-compose ps
# Esperado:
# NAME SERVICE STATUS PORTS
# app app Up 0.0.0.0:13000->3000/tcp
# db db Up 5432/tcp
Visualizar Logs em Tempo Real
# Todos os serviços
docker-compose logs -f
# Apenas aplicação
docker-compose logs -f app
# Apenas banco
docker-compose logs -f db
# Últimas 100 linhas
docker-compose logs --tail=100
Verificar Recursos do Sistema
# Uso de CPU, RAM e I/O pelos containers
docker stats
# Espaço em disco usado pelo Docker
docker system df
# Detalhes por tipo
docker system df -v
Acessar Shell do Container
# Acessar aplicação
docker-compose exec app /bin/bash
# Acessar banco de dados
docker-compose exec db psql -U postgres divino_alimento
# Executar comandos sem entrar
docker-compose exec app ls -la
Backup e Recuperação
Criar Backup Manual
# Backup do banco de dados
docker-compose exec db pg_dump -U postgres divino_alimento > backup_$(date +%Y%m%d_%H%M%S).sql
# Comprimir backup
gzip backup_*.sql
# Verificar backup criado
ls -lh backup_*.sql.gz
Restaurar Backup
# Descompactar se necessário
gunzip backup_20241201_120000.sql.gz
# Restaurar backup
docker-compose exec -T db psql -U postgres divino_alimento < backup_20241201_120000.sql
# Reiniciar aplicação
rake vivo:para
rake vivo:liga
Backup de Arquivos de Configuração
# Backup do .env e outros arquivos importantes
tar -czf config_backup_$(date +%Y%m%d).tar.gz .env docker-compose.yml
# Restaurar
tar -xzf config_backup_20241201.tar.gz
Problemas de Rede
Sistema Acessível Apenas Localmente
Problema: Não consegue acessar de outros computadores na rede.
Solução:
# Verificar se porta está escutando em todas as interfaces
netstat -tulpn | grep :13000
# Ajustar docker-compose.yml se necessário
# Procurar por:
# ports:
# - "127.0.0.1:13000:3000" # Apenas localhost
#
# Alterar para:
# ports:
# - "0.0.0.0:13000:3000" # Todas as interfaces
# Verificar firewall
sudo ufw status
sudo ufw allow 13000
Erro de Conexão Recusada
Problema: "Connection refused" ao acessar sistema.
Verificações:
# Container está rodando?
docker-compose ps
# Porta está exposta?
docker-compose port app 3000
# Firewall bloqueando?
sudo ufw status
# Tentar acessar localmente
curl http://localhost:13000
Obter Ajuda Adicional
Logs de Sistema
Os logs são essenciais para diagnosticar problemas:
- Docker logs:
docker-compose logs - Aplicação: Dentro do container em
/app/logs - Banco: Logs do PostgreSQL via Docker
- Sistema:
/var/log/syslogoujournalctl
Informações Úteis para Reportar Problemas
Ao reportar um problema, inclua:
-
Versão do sistema operacional:
cat /etc/os-release -
Versão do Docker:
docker --version
docker-compose --version -
Logs relevantes:
docker-compose logs > logs.txt -
Configuração (sem senhas!):
cat .env | grep -v "SECRET\|PASS\|PASSWORD" > config.txt -
Descrição detalhada:
- O que estava tentando fazer
- O que esperava que acontecesse
- O que realmente aconteceu
- Mensagens de erro exatas
Contato e Suporte
- Repositório: git.disroot.org/Akarui/DivinoAlimento_dev
- Issues: Reporte problemas no repositório
- Akarui: www.akarui.org.br
- Tekopora: tekopora.top
Dica: Mantenha seu sistema atualizado executando git pull regularmente e reiniciando os containers para aplicar atualizações.