Files
2026-09-23 11:18:56 -03:00

110 lines
3.9 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
# Rastro Campo (PWA volante, celular). Atribua este domínio ao serviço `campo`
# (porta 39030) no Coolify. HTTPS obrigatório — a câmera exige.
CAMPO_DOMAIN=campo.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=
# ---- Rastro Campo: registro de passagem (evento do fisco 610500) ----
# Assinado com o certificado A1 acima (DFE_CERT_PFX_BASE64). Nasce DESLIGADO e em
# HOMOLOGAÇÃO. Hoje o Ambiente Nacional devolve cStat 576: o CNPJ do certificado
# (78.393.592/0001-46) ainda não está habilitado como autor do 610500. Depois da
# habilitação: validar 135/136 em homologação, então SEFAZ_EVENTO_TP_AMB=1 e ligar.
CAMPO_PASSAGEM_ENABLED=false
SEFAZ_EVENTO_TP_AMB=2
# 91 = Ambiente Nacional (único que recebe o 610500; a SEFAZ-PR responde 491).
SEFAZ_EVENTO_CORGAO=91
# CNPJ da SEFAZ autora; vazio = o do certificado.
SEFAZ_EVENTO_CNPJ=
SEFAZ_EVENTO_ENDPOINTS=