diff --git a/docker-compose.yaml b/docker-compose.yaml index 428f4bd..9864a1c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,8 +13,9 @@ # Variables do Coolify. EVIDENCE_KEYS: "1:" (guarde cópia!). # • Certificado A1 (ingestor, dfe-worker, backend): DFE_CERT_PFX_BASE64 + DFE_CERT_PASSPHRASE # como variáveis secretas no Coolify — sem montar arquivo no servidor. -# • Drenagem: ingestor (ONE) + dfe-worker (cadeia). O OSRM (grafo do Brasil, 15 GB) NÃO roda -# aqui — não cabe no disco; fica na VPS antiga, acessado por OSRM_URL (caminho secreto). +# • Drenagem: ingestor (ONE) + dfe-worker (cadeia) + osrm. O osrm baixa o grafo (15 GB) 1 vez +# de OSRM_DATA_URL para o volume osrm_data; processor/dfe-worker roteiam por OSRM_URL +# (http://osrm:5000 quando o grafo estiver pronto). # ============================================================================ x-app-env: DATABASE_URL: 'postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public' @@ -73,6 +74,21 @@ services: - gotenberg - '--chromium-disable-javascript=false' - '--api-timeout=60s' + osrm: + # Rotas pelas vias (grafo do Brasil, MLD, v5.26.0). Na 1ª subida BAIXA o grafo + # (15 GB) de OSRM_DATA_URL para o volume osrm_data (retoma e confere sha256); nas + # seguintes só roteia. Serviço de longa duração: o deploy não fica esperando. + # --mmap: ~70-700 MB de RAM. Precisa de ~25 GB livres no disco na 1ª subida. + # Enquanto baixa, OSRM_URL pode continuar apontando para o OSRM remoto; quando o log + # mostrar "grafo OSRM pronto", troque OSRM_URL para http://osrm:5000 e faça Redeploy. + image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-osrm:v1' + restart: unless-stopped + environment: + OSRM_DATA_URL: '${OSRM_DATA_URL}' + volumes: + - 'osrm_data:/data' + expose: + - '5000' ingestor: # DRENAGEM do ONE (passagens + fotos). Valores de cadência da produção antiga. image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-node:v3.3' @@ -286,6 +302,7 @@ services: expose: - '39020' volumes: + osrm_data: null dbdata2: null rabbitmq_data: null minio_data: null diff --git a/docker-compose.yml b/docker-compose.yml index 428f4bd..9864a1c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,8 +13,9 @@ # Variables do Coolify. EVIDENCE_KEYS: "1:" (guarde cópia!). # • Certificado A1 (ingestor, dfe-worker, backend): DFE_CERT_PFX_BASE64 + DFE_CERT_PASSPHRASE # como variáveis secretas no Coolify — sem montar arquivo no servidor. -# • Drenagem: ingestor (ONE) + dfe-worker (cadeia). O OSRM (grafo do Brasil, 15 GB) NÃO roda -# aqui — não cabe no disco; fica na VPS antiga, acessado por OSRM_URL (caminho secreto). +# • Drenagem: ingestor (ONE) + dfe-worker (cadeia) + osrm. O osrm baixa o grafo (15 GB) 1 vez +# de OSRM_DATA_URL para o volume osrm_data; processor/dfe-worker roteiam por OSRM_URL +# (http://osrm:5000 quando o grafo estiver pronto). # ============================================================================ x-app-env: DATABASE_URL: 'postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public' @@ -73,6 +74,21 @@ services: - gotenberg - '--chromium-disable-javascript=false' - '--api-timeout=60s' + osrm: + # Rotas pelas vias (grafo do Brasil, MLD, v5.26.0). Na 1ª subida BAIXA o grafo + # (15 GB) de OSRM_DATA_URL para o volume osrm_data (retoma e confere sha256); nas + # seguintes só roteia. Serviço de longa duração: o deploy não fica esperando. + # --mmap: ~70-700 MB de RAM. Precisa de ~25 GB livres no disco na 1ª subida. + # Enquanto baixa, OSRM_URL pode continuar apontando para o OSRM remoto; quando o log + # mostrar "grafo OSRM pronto", troque OSRM_URL para http://osrm:5000 e faça Redeploy. + image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-osrm:v1' + restart: unless-stopped + environment: + OSRM_DATA_URL: '${OSRM_DATA_URL}' + volumes: + - 'osrm_data:/data' + expose: + - '5000' ingestor: # DRENAGEM do ONE (passagens + fotos). Valores de cadência da produção antiga. image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-node:v3.3' @@ -286,6 +302,7 @@ services: expose: - '39020' volumes: + osrm_data: null dbdata2: null rabbitmq_data: null minio_data: null