Skip to main content

Network egress

This page lists every destination that the self-hosted Compose stack and its host connect to. Use it to build a firewall allowlist. The architecture diagram shows where the main connections start and which ports the stack publishes.

Sandboxes have no internet access. A review sandbox and the conversation host reach only the sandbox gateway of their worker. A turn sandbox has no network. The threat model gives the controls that limit the destinations below.

Host​

The host connects to these destinations during installation, upgrades, and each run of pull-based deployment.

DestinationPurpose
ghcr.io and docker.ioPull the release images by digest. Registry authentication and download redirects use more hosts of these registries, so an allowlist of the two names alone is not sufficient.
github.com, api.github.com, and the GitHub release-asset download hostsDownload the signed release lock and its assets.
fulcio.sigstore.dev, rekor.sigstore.dev, and tuf-repo-cdn.sigstore.devVerify the keyless signatures of the release lock.

One host on k3s​

A one-host install on k3s also needs these destinations:

DestinationPurpose
github.com, raw.githubusercontent.com, and the GitHub release-asset download hostsDownload the k3s installer, k3s, and the release assets.
charts.jetstack.ioDownload the cert-manager chart.
traefik.github.ioDownload the Traefik chart.
quay.ioPull the cert-manager images by digest.
docker.ioPull the Traefik image by digest, and the images that k3s ships.
The Let's Encrypt ACME APIIssue and renew the Gateway certificate through cert-manager.

A worker reaches a model endpoint through networkPolicy.externalEgress, which leaves out private addresses. If this host's own Gateway serves the model endpoint, the connection ends at the Traefik Pod, a private address. Then set networkPolicy.workerGatewayPorts: [8443, 8000] in site.yaml (Network policy).

Containers​

DestinationPurposeContainerWhen
The Let's Encrypt ACME APIIssue and renew the TLS certificate.reverse-proxyAlways.
The API of your DNS providerAnswer the DNS-01 challenge.reverse-proxyOnly when ACME_CHALLENGE selects DNS-01.
github.com and api.github.comSign-in, repository sync, feedback delivery, and Git fetches.application-server, application-workerWhen GitHub sign-in or a GitHub workspace is configured.
The GitLab instance (GITLAB_DEFAULT_SERVER_URL, GITLAB_OAUTH_BASE_URL)Sign-in, sync, group hook registration, feedback delivery, and Git fetches.application-server, application-workerWhen GitLab is configured.
slack.com, the Slack API baseSlack API calls and Slack account linking.application-server, application-workerWhen HEPHAESTUS_INTEGRATION_SLACK_ENABLED is true.
The Outline origins in HEPHAESTUS_INTEGRATION_OUTLINE_ALLOWED_ORIGINSDocument sync and Outline account linking.application-serverWhen HEPHAESTUS_INTEGRATION_OUTLINE_ENABLED is true.
The base URL of each AI provider connectionModel calls of practice reviews and conversations go through the LLM proxy of the worker. The server tests a connection when an admin selects Test and fetch models. A private address needs HEPHAESTUS_LLM_EGRESS_PRIVATE_HOSTS (Model endpoints on your own network).application-worker, application-serverWhen an admin registers a provider connection (Connect an AI Provider).
api.github.comThe update check.application-serverBy default, on a release. A commit channel or a local build is never checked. HEPHAESTUS_RELEASE_CHECK_ENABLED=false turns it off.
www.ecb.europa.euDaily currency rates for the second display currency.application-serverOnly when HEPHAESTUS_LLM_DISPLAY_CURRENCY is set. HEPHAESTUS_LLM_FX_DAILY_URL points it at a mirror.
Your SMTP relay (SPRING_MAIL_HOST)Email.application-serverOnly when SPRING_MAIL_HOST is set.
Your OTLP endpoint (TRACING_OTLP_ENDPOINT)Traces.application-server, application-worker, webhook-serverOnly when TRACING_OTLP_ENABLED is true (Observability).
Your Loki push endpoint (LOKI_PUSH_URL)Logs.The optional log shipperOnly when you run it (Collecting logs).
The pgBackRest repository: your S3 endpoint (BACKUP_S3_ENDPOINT)Off-host backups, WAL archiving, and restore.postgres, pgbackrest, pgbackrest-restoreOnly with the optional backup or restore overlay (Backup & restore).
config.liquibase.com and the usage analytics of LiquibaseLiquibase product usage data during database migrations.application-serverNever in the supported stack, which does not set LIQUIBASE_ANALYTICS_ENABLED. Only when you set it to true in the container environment.