Pular para o conteúdo

Portas e exposição

Uma porta. A do proxy reverso.

PortaServiçoExposta a
443Proxy reverso (HTTPS)Rede corporativa e, se houver acesso externo, internet
80Proxy reverso (HTTP)Somente para redirecionar a 443, ou em rede interna sem TLS

Todo o resto conversa por rede interna de contêineres e não deve ter porta publicada no hospedeiro.

PortaServiçoPor quê
5432PostgreSQLContém tudo. Publicar no hospedeiro é oferecer o banco à rede.
9000API do armazenamento de objetosAlcançável pelos agentes através do proxy, não direto.
9001Console do armazenamento de objetosAdministração. Acesse por túnel ou rede restrita.
8080Evolution API, se usadaSó a aplicação precisa alcançá-la.
80 (contêiner)AplicaçãoQuem publica é o proxy.

Em Docker Compose, isso significa não escrever ports: nos serviços de apoio. Serviços na mesma rede se alcançam por nome — postgres:5432, minio:9000 — sem publicar nada.

O agente de endpoint conecta sempre de dentro para fora. Duas saídas:

DestinoProtocoloPara quê
Endereço público da aplicaçãoHTTPS 443Sinal de vida, busca de trabalho, telemetria, resultado
Armazenamento de objetosHTTPS 443Envio de evidência por URL assinada

O endereço que os agentes usam vem de AGENT_PUBLIC_API_BASE_URL. Deixá-la vazia faz o produto derivar o endereço do cabeçalho Host da requisição — que funciona em teste local e falha atrás de proxy que não repassa o host original, com um sintoma difícil de rastrear: o agente registra, e depois tenta se conectar a um endereço que não existe.

Nada precisa alcançar a estação de trabalho. Acesso remoto e terminal também partem da máquina: ela busca o trabalho e abre a sessão. Não há porta a abrir no cliente, nem rota da rede da empresa para o endereço do usuário.

Uma rede só, e o proxy participando de duas:

networks:
openscale: # aplicação, banco, armazenamento
traefik-network: # apenas aplicação + proxy
external: true

A aplicação está nas duas. Banco e armazenamento, apenas na primeira — assim o proxy não tem rota até eles nem por engano.

Terminal window
# O que está publicado no hospedeiro
docker compose ps --format '{{.Service}}\t{{.Ports}}'
# Nada além do proxy deve aparecer com 0.0.0.0 ou [::]
ss -tlnp | grep -E '0\.0\.0\.0|\[::\]'

Se o Postgres ou o armazenamento aparecerem em 0.0.0.0, remova o ports: do serviço e recrie: docker compose up -d --force-recreate.

Para configurar firewall de saída sem quebrar o produto:

DestinoQuando
Servidor de e-mail (SMTP)Notificação, chamado por e-mail, redefinição de senha
Servidor LDAP / Active DirectoryAutenticação por diretório
Evolution APIMensageria de WhatsApp
Destinos de backup (S3, SMB)Execução de rotina de backup

Fora disso, o produto não chama serviço de terceiro. Não há telemetria de uso, nem verificação de licença, nem rastreador — inclusive neste site, que não carrega script externo algum.