Pular para o conteúdo principal

Configuração

Dois ficheiros, duas funções​

Ficheiro (no servidor)Lido porEfeito de uma alteração
~/pch-sig/.env.prodDocker Compose, injetado no ambiente dos contentoresdocker compose -f … up -d --no-deps backend
~/pch-sig/backend/.envcopiado para a imagem (/app/.env), valores por defeito do Symfonyreconstrução da imagem obrigatória

Regra de precedência: uma variável presente no ambiente do contentor prevalece sobre /app/.env, mesmo que esteja vazia. Verificar o valor realmente usado:

docker exec pch_backend php bin/console debug:dotenv

Nenhum destes ficheiros está no repositório Git. Os segredos estão no gestor de segredos; a sua rotação está descrita em docs/ROTATION_SECRETS.md.

Variáveis principais​

VariávelOndeFunção
APP_ENV, APP_DEBUGcomposeprod, 0
APP_SECRET.env.prodsegredo Symfony
POSTGRES_USER, POSTGRES_PASSWORD.env.prodbase pch_sig
JWT_PASSPHRASE.env.prodfrase-passe das chaves JWT (backend/config/jwt/, próprias do servidor)
MAILER_USER, MAILER_PASSWORD.env.prodconta SMTP OVH noreply@ucp-pch.org; o DSN usado é smtp://…@ssl0.ovh.net:587
MAILER_SENDERcomposenoreply@ucp-pch.org
MESSENGER_TRANSPORT_DSNcomposedoctrine://default: fila dos e-mails e tarefas assíncronas
REDIS_URLcomposeredis://redis:6379
FRONTEND_URL, DEFAULT_URIcomposehttps://bemba.ucp-pch.org (ligações dos e-mails, com /#/)
CORS_ALLOW_ORIGINcomposedomínios autorizados
ANTHROPIC_API_KEY, CLAUDE_MODELbackend/.envassistente Bemba (modelo por defeito definido em services.yaml)
COHERE_API_KEYbackend/.envpesquisa semântica do assistente, agrupamento das reclamações
DOCUMENTATION_BUILD_DIR, DOCUMENTATION_URLcomposebase documental do assistente (build Docusaurus montado só de leitura)
KOBO_API_URL, KOBO_API_TOKENcompose / .env.prodKoboToolbox (as contas por projeto também são configuráveis na aplicação)
SENTRY_DSN.env.prodnotificação de erros
Survey Solutions

As variáveis SUSO_* não são usadas: a ligação ao Survey Solutions é lida na tabela survey_solutions_config, modificável a partir da aplicação.

Frontend​

FicheiroUsado porConteúdo
frontend/.env.development.localnpm startREACT_APP_API_URL=http://localhost:8000/api, distintivo « LOCAL »
frontend/.env.productionnpm run buildREACT_APP_API_URL=/api, REACT_APP_DOCS_URL=https://docubemba.ucp-pch.org

As variáveis REACT_APP_* ficam fixadas no momento do build: mudar um valor obriga a reconstruir e reimplantar o frontend.

Nginx do frontend​

~/pch-sig/nginx/frontend.conf está montado em pch_frontend. Serve o build React (HashRouter, todas as rotas devolvem index.html), coloca em cache os recursos versionados e aplica a política de segurança de conteúdo (CSP): connect-src limitado ao domínio, ao KoboToolbox e ao Sentry. Acrescentar um serviço de terceiros chamado a partir do navegador obriga a acrescentá-lo à CSP.

Configuração na aplicação​

Grande parte da parametrização faz-se em Definições, sem reimplantação: perfis e permissões, instituições e vínculos, projetos e programas, métodos PMT, nomenclatura dos identificadores, fluxos e prazos das reclamações (Workflow & SLA), equipas, contas Kobo e Survey Solutions por projeto, conteúdos do site público.

E-mails​

Todos os e-mails partem de forma assíncrona (Messenger): um pedido nunca contacta o servidor SMTP. As mensagens que falham vão para a fila failed:

docker exec pch_backend php bin/console messenger:failed:show
docker exec pch_backend php bin/console messenger:failed:retry # só em produção

Em pré-produção, o envio falha de propósito (SMTP inacessível): não relançar a fila failed.

Registos​

O Monolog escreve na saída de erro do contentor; o Promtail recolhe esses registos e envia-os ao Loki (retenção de um ano). Ver Registos.