Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hpjc1TdaRAHoYC6wCFw19E
93 lines
3.1 KiB
Bash
93 lines
3.1 KiB
Bash
# ============================================================================
|
|
# Rastro no Coolify — variáveis de ambiente. Configure no ambiente do recurso
|
|
# no Coolify (ou cole como .env do Compose). Valores REAIS de segredo/cert/ONE:
|
|
# copie de /opt/rastro/.env da VPS antiga (posso transferir via scp com segurança).
|
|
# ============================================================================
|
|
|
|
# ---- Imagens (registro Gitea) ----
|
|
# ATENÇÃO ao hostname: é o MESMO Gitea, com duas rotas.
|
|
# - PUSH (Makefile, de fora): gitea.EXTERNO.utic.app.br
|
|
# - PULL (Coolify, interno): gitea.INTERNO.utic.app.br ← use este aqui
|
|
REGISTRY=gitea.interno.utic.app.br
|
|
NAMESPACE=ericoalmeida # seu usuário no Gitea
|
|
TAG=latest
|
|
|
|
# ---- Domínios (MUDAM na máquina nova) ----
|
|
WEB_DOMAIN=rastro.SEU-NOVO-DOMINIO.app.br
|
|
ADMIN_DOMAIN=admin.rastro.SEU-NOVO-DOMINIO.app.br
|
|
|
|
# ---- Banco ----
|
|
POSTGRES_USER=rastro
|
|
POSTGRES_PASSWORD=troque-por-senha-forte # rotacione ao migrar
|
|
POSTGRES_DB=rastro
|
|
|
|
# ---- Fila ----
|
|
RABBITMQ_DEFAULT_USER=rastro
|
|
RABBITMQ_DEFAULT_PASS=troque-por-senha-forte
|
|
RASTRO_EXCHANGE=rastro.passagens
|
|
RASTRO_QUEUE=rastro.passagens.processar
|
|
|
|
# ---- Object storage ----
|
|
MINIO_ROOT_USER=rastro
|
|
MINIO_ROOT_PASSWORD=troque-por-senha-forte
|
|
MINIO_BUCKET=rastro-photos
|
|
|
|
# ---- Segurança do backend ----
|
|
JWT_SECRET=troque-por-uma-chave-aleatoria-longa
|
|
SESSION_COOKIE_NAME=rastro_session
|
|
RATE_LIMIT_MAX=1000
|
|
|
|
# ---- Tetos de conexão por processo (soma < max_connections do Postgres) ----
|
|
DB_CONNECTION_LIMIT_BACKEND=12
|
|
DB_CONNECTION_LIMIT_PROCESSOR=8
|
|
DB_CONNECTION_LIMIT_DFE_WORKER=12
|
|
DB_CONNECTION_LIMIT_INGESTOR=5
|
|
DB_CONNECTION_LIMIT_MIGRATE=5
|
|
DB_POOL_TIMEOUT=15
|
|
|
|
# ---- Feed ONE / drenagem (copie os reais do .env antigo) ----
|
|
ONE_TP_AMB=1
|
|
ONE_HOST=one.svrs.rs.gov.br
|
|
ONE_TP_DIST=1,4
|
|
ONE_CUF=41
|
|
ONE_CNPJ_OPER=
|
|
ONE_VER_APLIC=rastro-1.0
|
|
ONE_POLL_INTERVAL=120
|
|
ONE_MAX_BATCHES=15
|
|
ONE_BATCH_DELAY_MS=1200
|
|
ONE_IND_RESUMO=0
|
|
|
|
# ---- Certificado A1 (o .pfx precisa ir para a máquina nova — ver runbook) ----
|
|
CERT_HOST_DIR=/data/rastro/certificado
|
|
DFE_CERT_PFX_CONTAINER_PATH=/certs/11de260603452f3c.pfx
|
|
# Sem acesso ao disco do servidor: o .pfx em base64 (base64 -i xxx.pfx | tr -d '\n')
|
|
DFE_CERT_PFX_BASE64=
|
|
DFE_CERT_PASSPHRASE= # copie do .env antigo
|
|
DFE_TLS_REJECT_UNAUTHORIZED=false
|
|
|
|
# ---- SEFAZ-PR / consultas (copie os reais do .env antigo, se usar) ----
|
|
SEFAZ_PR_DFE_URL=
|
|
SEFAZ_PR_DFE_USER=
|
|
SEFAZ_PR_DFE_PASSWORD=
|
|
|
|
# ---- OSRM (só quando levar o grafo do Brasil) ----
|
|
OSRM_URL=http://osrm:5000
|
|
OSRM_DATA_DIR=/data/rastro/osrm
|
|
|
|
# ---- Inteligência (Python) ----
|
|
INTEL_TOP_COMPANIES=200
|
|
INTEL_TOP_COMMODITIES=50
|
|
INTEL_HORIZON_WEEKS=8
|
|
INTEL_CYCLE_HOURS=24
|
|
|
|
# ---- Teradata da SEFAZ-PR (camada histórica; processor, backend, analytics) ----
|
|
# Desligado sem TERADATA_ENABLED=true. Valide antes na VPS:
|
|
# pnpm --filter @rastro/teradata probe (Scheduled Task no serviço backend)
|
|
TERADATA_ENABLED=false
|
|
TERADATA_USER=
|
|
TERADATA_PASSWORD=
|
|
|
|
# ---- Prova do dossiê (backend) ----
|
|
# "1:<openssl rand -base64 32>". PERDER A CHAVE = PERDER AS PROVAS: guarde cópia fora do servidor.
|
|
EVIDENCE_KEYS=
|