Primeira Inicialização
Este guia acompanha você na inicialização do PCH-SIG após a instalação.
Checklist pré-inicialização
Antes de continuar, verifique que:
- Docker está instalado e funcionando
- Os contêineres estão iniciados (
docker compose ps) - As portas 3000 e 8000 estão acessíveis
- Os arquivos
.envestão configurados
Etapa 1: Iniciar os contêineres
cd deploy
# Iniciar todos os serviços
docker compose up -d
# Verificar o status
docker compose ps
Todos os contêineres devem estar no estado Up.
Etapa 2: Criar o banco de dados
# Acessar o contêiner backend
docker exec -it pch_backend bash
# Criar o banco de dados
php bin/console doctrine:database:create
# Executar as migrações
php bin/console doctrine:migrations:migrate --no-interaction
Verificar a estrutura
php bin/console doctrine:schema:validate
Etapa 3: Gerar as chaves JWT
# Ainda no contêiner backend
php bin/console lexik:jwt:generate-keypair
As chaves são criadas em config/jwt/:
private.pem: Chave privada (assinatura)public.pem: Chave pública (verificação)
Segurança
As chaves JWT devem permanecer confidenciais. Não faça commit delas no Git.
Etapa 4: Carregar os dados iniciais
Dados de referência
php bin/console doctrine:fixtures:load --group=reference --no-interaction
Isso carrega:
- Regiões, Setores, Comunas, Localidades
- Tipos de documentos
- Parâmetros do sistema
Usuário administrador
php bin/console app:create-admin admin@pch-sig.sn Admin123!
Ou via fixtures:
php bin/console doctrine:fixtures:load --group=users --no-interaction
Etapa 5: Limpar o cache
php bin/console cache:clear
php bin/console cache:warmup
Etapa 6: Build do frontend
Se ainda não foi feito:
# Sair do contêiner backend
exit
# Na máquina host
cd ../frontend
npm install
npm run build
Os arquivos são gerados em frontend/build/.
Etapa 7: Acessar a aplicação
URLs
| Serviço | URL |
|---|---|
| Aplicação | http://localhost:3000 |
| API | http://localhost:8000/api |
| Mailpit | http://localhost:8025 |
Primeiro acesso
- Acesse http://localhost:3000
- Faça login com:
- Email:
admin@pch-sig.sn - Senha:
Admin123!
- Email:
Etapa 8: Verificações pós-inicialização
Testar a API
curl http://localhost:8000/api
Resposta esperada: Documentação da API ou mensagem de boas-vindas.
Testar a conexão
curl -X POST http://localhost:8000/api/login_check \
-H "Content-Type: application/json" \
-d '{"email":"admin@pch-sig.sn","password":"Admin123!"}'
Resposta esperada: Token JWT.
Verificar Redis
docker exec pch_redis redis-cli -a redis_secure_2025 PING
Resposta esperada: PONG
Verificar PostgreSQL
docker exec pch_postgres psql -U pch_admin -d pch_sig -c "SELECT count(*) FROM users;"
Configuração inicial
Alterar a senha do admin
- Faça login na aplicação
- Clique no seu perfil
- Selecione Configurações
- Altere a senha
Criar os primeiros usuários
- Vá em Administração > Parâmetros
- Seção Usuários
- Clique em Novo usuário
Configurar as regiões
As regiões são carregadas automaticamente. Verifique em: Parâmetros > Geografia
Problemas comuns
Erro "Connection refused" PostgreSQL
# Verificar que o PostgreSQL está iniciado
docker logs pch_postgres
# Aguardar alguns segundos e tentar novamente
sleep 10
docker exec -it pch_backend php bin/console doctrine:migrations:migrate
Erro "Permission denied" nas chaves JWT
# Corrigir as permissões
docker exec pch_backend chmod 644 config/jwt/public.pem
docker exec pch_backend chmod 600 config/jwt/private.pem
Página em branco no frontend
# Verificar o build
ls -la frontend/build/
# Reconstruir se necessário
cd frontend && npm run build