Pular para o conteúdo principal
Versão: Versão Cestas

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:

  1. 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=...
  2. URLs de callback incorretas:

    • Verificar no Google Cloud Console se a URL de callback está correta
    • Formato: http://seu-dominio:porta/auth/google/callback
  3. 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:

  1. Produtos marcados como inativos:

    • Verificar no cadastro de produtos
    • Alterar situação para "Ativo"
  2. Período de ofertas não está vigente:

    • Verificar datas configuradas no ciclo
    • Confirmar que está dentro do período de ofertas
  3. 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:

  1. Quantidades ofertadas insuficientes:

    • Verificar se há produtos suficientes para todas as cestas
    • Sistema mostra indicadores de disponibilidade
  2. 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:

  1. Ofertas foram registradas?

    # Verificar no sistema se há ofertas no ciclo
  2. Cestas foram compostas?

    • Acessar "Composição Cestas" e verificar se há cestas salvas
  3. Pedidos foram feitos?

    • Verificar se há pedidos extras registrados
  4. 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/syslog ou journalctl

Informações Úteis para Reportar Problemas

Ao reportar um problema, inclua:

  1. Versão do sistema operacional:

    cat /etc/os-release
  2. Versão do Docker:

    docker --version
    docker-compose --version
  3. Logs relevantes:

    docker-compose logs > logs.txt
  4. Configuração (sem senhas!):

    cat .env | grep -v "SECRET\|PASS\|PASSWORD" > config.txt
  5. Descrição detalhada:

    • O que estava tentando fazer
    • O que esperava que acontecesse
    • O que realmente aconteceu
    • Mensagens de erro exatas

Contato e Suporte


Dica: Mantenha seu sistema atualizado executando git pull regularmente e reiniciando os containers para aplicar atualizações.