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

Solução de Problemas

Este guia apresenta soluções para problemas comuns durante a instalação, configuração e operação do Sistema Divino Alimento.

Público-alvo

Esta página é destinada a administradores de sistema e usuários finais.

Se você é desenvolvedor, consulte Problemas Comuns no Desenvolvimento.

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 github.com

# Tentar clonar novamente
git clone https://github.com/tekopora/divino-alimento.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=...
    GOOGLE_CALLBACK_URL=...
  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
    • Para mais detalhes, consulte Autenticação e Autorização
  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

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 necessárias
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:

# Reiniciar sistema completo
rake vivo:para
rake vivo:liga

# Se persistir, verificar logs detalhados
docker-compose logs -f app

# Verificar se todas as variáveis obrigatórias estão no .env
cat .env

Produtos não Aparecem nas Ofertas

Problema: Agricultores não veem produtos para ofertar.

Possíveis causas e como resolver:

1. Produtos marcados como inativos

Verificação:

  • Acessar menu Cadastros > Produtos
  • Verificar coluna "Situação"

Solução:

  • Editar produto
  • Alterar situação para "Ativo"
  • Salvar alterações

2. Período de ofertas não está vigente

Verificação:

  • Acessar menu Ciclos
  • Verificar datas do ciclo atual
  • Confirmar que hoje está entre "Data início ofertas" e "Data fim ofertas"

Solução:

  • Editar ciclo
  • Ajustar datas de início e fim das ofertas
  • Salvar alterações

3. Produtos não cadastrados

Solução:

  • Acessar menu Cadastros > Produtos
  • Clicar em "Novo Produto"
  • Preencher informações:
    • Nome do produto
    • Categoria
    • Unidade de medida
    • Situação: Ativo
  • Salvar

4. Usuário não tem perfil de Fornecedor

Verificação:

  • Verificar se usuário tem perfil "Fornecedor" associado

Solução:

  • Administrador deve acessar Usuários
  • Editar usuário
  • Adicionar perfil "Fornecedor"

Erro ao Compor Cestas

Problema: Erro ao salvar composição de cestas.

1. Quantidades ofertadas insuficientes

Sintoma: Sistema exibe alerta de "Quantidade insuficiente".

Verificação:

  • Acessar "Ofertas" do ciclo
  • Verificar quantidades ofertadas para cada produto
  • Sistema mostra indicadores de disponibilidade (vermelho/amarelo/verde)

Solução:

  • Reduzir quantidade de produtos nas cestas
  • Ou solicitar que fornecedores aumentem ofertas
  • Ou reduzir número de cestas

2. Valor da cesta excede máximo

Sintoma: "Valor da cesta excede o máximo permitido".

Verificação:

  • Verificar valor máximo configurado no tipo de cesta

Solução:

  • Remover ou reduzir quantidade de produtos mais caros
  • Ou ajustar valor máximo do tipo de cesta (se aplicável)

3. Nenhum produto selecionado

Sintoma: "Selecione ao menos um produto".

Solução:

  • Adicionar produtos à composição
  • Definir quantidade para cada produto

Relatórios Vazios ou Incompletos

Problema: Relatórios não mostram dados esperados.

Checklist de verificação:

Para Relatório de Ofertas

  • Ciclo foi criado e está ativo?
  • Período de ofertas está vigente ou já passou?
  • Fornecedores cadastraram ofertas?
  • Produtos estão ativos?

Como verificar:

  • Menu Ciclos > Selecionar ciclo > Ver ofertas

Para Relatório de Cestas

  • Ofertas foram registradas?
  • Cestas foram compostas pelo administrador?
  • Composição foi salva?

Como verificar:

  • Menu Ciclos > Selecionar ciclo > Composição Cestas

Para Relatório de Pedidos Extras

  • Período de pedidos está vigente?
  • Consumidores fizeram pedidos?
  • Pedidos foram confirmados?

Como verificar:

  • Menu Ciclos > Selecionar ciclo > Ver pedidos extras

Para Relatório de Fornecedores

  • Pedidos extras foram associados aos fornecedores?
  • Associação foi salva?

Como verificar:

  • Menu Ciclos > Selecionar ciclo > Associar pedidos extras

Usuários não Recebem Notificações por Email

Problema: Sistema não envia emails.

Funcionalidade em Desenvolvimento

O sistema de notificações por email está em desenvolvimento na versão Mercados. Atualmente, recomenda-se comunicação direta via WhatsApp ou outros canais.

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

Soluções:

# 1. Limpar containers e imagens não utilizadas
docker system prune -a

# 2. Reiniciar containers
rake vivo:para
rake vivo:liga

# 3. Se persistir, verificar recursos do servidor
# Recomendado: mínimo 2GB RAM, 2 CPUs

Banco de Dados Crescendo Muito

Quando fazer manutenção:

  • Banco de dados > 5GB
  • Sistema ficando lento
  • Muitos ciclos antigos (> 1 ano)

Solução:

# 1. SEMPRE fazer backup antes
docker-compose exec db pg_dump -U postgres divino_alimento > backup.sql

# 2. Limpar dados antigos via interface web
# - Inativar ciclos muito antigos
# - Remover ofertas e pedidos de ciclos arquivados (se aplicável)

# 3. Otimizar banco de dados
docker-compose exec db psql -U postgres divino_alimento -c "VACUUM FULL;"

# 4. Verificar tamanho após otimização
docker-compose exec db psql -U postgres divino_alimento -c "
SELECT pg_size_pretty(pg_database_size('divino_alimento'));"

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

# 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 app

# Filtrar por erros
docker-compose logs app | grep -i error

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

# Espaço em disco do servidor
df -h

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

# Parar aplicação
rake vivo:para

# Restaurar backup
docker-compose exec -T db psql -U postgres divino_alimento < backup_20241201_120000.sql

# Reiniciar aplicação
rake vivo:liga

Backup 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
Automação de Backups

Configure um cron job para fazer backups automáticos diariamente:

# Editar crontab
crontab -e

# Adicionar linha (backup diário às 2h da manhã)
0 2 * * * cd /caminho/para/divino-alimento && docker-compose exec -T db pg_dump -U postgres divino_alimento | gzip > /backups/divino_$(date +\%Y\%m\%d).sql.gz

Problemas de Rede e Acesso

Sistema Acessível Apenas Localmente

Problema: Não consegue acessar de outros computadores na rede.

Solução:

  1. Verificar docker-compose.yml:

    # Procurar por:
    ports:
    - "127.0.0.1:13000:3000" # ❌ Apenas localhost

    # Alterar para:
    ports:
    - "0.0.0.0:13000:3000" # ✅ Todas as interfaces
  2. Verificar firewall:

    # Ver regras atuais
    sudo ufw status

    # Liberar porta
    sudo ufw allow 13000
  3. Reiniciar sistema:

    rake vivo:para
    rake vivo:liga

Erro de Conexão Recusada

Problema: "Connection refused" ao acessar sistema.

Checklist:

# 1. Container está rodando?
docker-compose ps

# 2. Porta está exposta?
docker-compose port app 3000

# 3. Tentar acessar localmente primeiro
curl http://localhost:13000

# 4. Verificar firewall
sudo ufw status

# 5. Verificar IP do servidor
ip addr show

Obter Ajuda Adicional

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 você estava tentando fazer?
    • O que você esperava que acontecesse?
    • O que realmente aconteceu?
    • Mensagens de erro exatas (copiar e colar)
    • Quando o problema começou?

Contato e Suporte

Documentação Adicional


Mantenha o Sistema Atualizado

Execute git pull regularmente para obter atualizações e correções de bugs. Depois, reinicie os containers com rake vivo:para && rake vivo:liga.