From 53241a482b5c6c44bb10558a178a2c94cbe9069c Mon Sep 17 00:00:00 2001 From: Erico Mac Date: Tue, 6 Oct 2026 17:14:22 -0300 Subject: [PATCH] =?UTF-8?q?compose:=20Rastro=20Campo=20v4.3=20com=20endere?= =?UTF-8?q?=C3=A7o=20pelo=20Traefik=20(sem=20passo=20na=20tela)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yaml | 17 +++++++++++++++-- docker-compose.yml | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 6ef9107..d7fa116 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -320,8 +320,10 @@ services: command: 'sh -c "pnpm --filter admin preview --host 0.0.0.0 --port 39020"' expose: - '39020' - # Rastro Campo — PWA da fiscalização volante. No Coolify, atribua o domínio - # (CAMPO_DOMAIN) a este serviço, porta 39030. HTTPS obrigatório (câmera). + # Rastro Campo — PWA da fiscalização volante. O endereço sai da variável + # CAMPO_DOMAIN: basta defini-la e apontar o DNS, SEM configurar domínio na tela do + # Coolify (como o /api do backend já faz). HTTPS é obrigatório — sem ele o + # navegador não libera a câmera. campo: image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-node:v4.3' restart: unless-stopped @@ -331,6 +333,17 @@ services: command: 'sh -c "pnpm --filter campo preview --host 0.0.0.0 --port 39030"' expose: - '39030' + labels: + - traefik.enable=true + # Sem PathPrefix e com prioridade baixa: este roteador pega tudo o que sobra no + # domínio do Campo. O /api do mesmo domínio tem prioridade 1000 no backend e + # ganha dele — a ordem importa, não a ordem de escrita. + - 'traefik.http.routers.rastrocampo.rule=Host(`${CAMPO_DOMAIN}`)' + - traefik.http.routers.rastrocampo.entryPoints=https + - traefik.http.routers.rastrocampo.tls=true + - traefik.http.routers.rastrocampo.priority=10 + - traefik.http.routers.rastrocampo.service=rastrocampo + - traefik.http.services.rastrocampo.loadbalancer.server.port=39030 # OCR de placas do Rastro Campo (CPU, modelos embutidos na imagem). Só rede interna. alpr: image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-alpr:v1' diff --git a/docker-compose.yml b/docker-compose.yml index 6ef9107..d7fa116 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -320,8 +320,10 @@ services: command: 'sh -c "pnpm --filter admin preview --host 0.0.0.0 --port 39020"' expose: - '39020' - # Rastro Campo — PWA da fiscalização volante. No Coolify, atribua o domínio - # (CAMPO_DOMAIN) a este serviço, porta 39030. HTTPS obrigatório (câmera). + # Rastro Campo — PWA da fiscalização volante. O endereço sai da variável + # CAMPO_DOMAIN: basta defini-la e apontar o DNS, SEM configurar domínio na tela do + # Coolify (como o /api do backend já faz). HTTPS é obrigatório — sem ele o + # navegador não libera a câmera. campo: image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-node:v4.3' restart: unless-stopped @@ -331,6 +333,17 @@ services: command: 'sh -c "pnpm --filter campo preview --host 0.0.0.0 --port 39030"' expose: - '39030' + labels: + - traefik.enable=true + # Sem PathPrefix e com prioridade baixa: este roteador pega tudo o que sobra no + # domínio do Campo. O /api do mesmo domínio tem prioridade 1000 no backend e + # ganha dele — a ordem importa, não a ordem de escrita. + - 'traefik.http.routers.rastrocampo.rule=Host(`${CAMPO_DOMAIN}`)' + - traefik.http.routers.rastrocampo.entryPoints=https + - traefik.http.routers.rastrocampo.tls=true + - traefik.http.routers.rastrocampo.priority=10 + - traefik.http.routers.rastrocampo.service=rastrocampo + - traefik.http.services.rastrocampo.loadbalancer.server.port=39030 # OCR de placas do Rastro Campo (CPU, modelos embutidos na imagem). Só rede interna. alpr: image: 'gitea.externo.utic.app.br/ericoalmeida/rastro-alpr:v1'