# Network egress

This page lists every destination that the Helm deployment and its host connect to. Use it to build a firewall allowlist. [Network policy](/next/admin/helm-chart.md#network-policy) lists the connections inside the cluster.

Sandboxes have no internet access. Review and conversation sandboxes reach only the sandbox gateway of the server. The [threat model](/next/admin/threat-model.md#boundary-3-outbound-egress) 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](/next/admin/pull-based-deployment.md).

| Destination                                                                  | Purpose                                                                                                                                                                         |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ghcr.io` and `docker.io`                                                    | Pull 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 hosts  | Download the signed release lock and its assets.                                                                                                                                |
| `fulcio.sigstore.dev`, `rekor.sigstore.dev`, and `tuf-repo-cdn.sigstore.dev` | Verify the keyless signatures of the release lock.                                                                                                                              |
| `registry.k8s.io` and the hosts that it redirects to                         | Pull the agent-sandbox controller image by digest, on a cluster that runs practice reviews.                                                                                     |

## One host on k3s

A [one-host install on k3s](/next/admin/k3s.md) also needs these destinations:

| Destination                                                                            | Purpose                                                          |
| -------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `github.com`, `raw.githubusercontent.com`, and the GitHub release-asset download hosts | Download the k3s installer, k3s, and the release assets.         |
| `charts.jetstack.io`                                                                   | Download the cert-manager chart.                                 |
| `storage.googleapis.com`                                                               | Download the pinned gVisor release, which runs the sandboxes.    |
| `traefik.github.io`                                                                    | Download the Traefik chart.                                      |
| `quay.io`                                                                              | Pull the cert-manager images by digest.                          |
| `docker.io`                                                                            | Pull the Traefik image by digest, and the images that k3s ships. |
| The `Let's Encrypt` ACME API                                                           | Issue and renew the Gateway certificate through cert-manager.    |

A model endpoint that this host's own Gateway serves needs `networkPolicy.modelGatewayPorts`, as [Reach a model endpoint on the cluster's own ingress](/next/admin/private-network.md#reach-a-model-endpoint-on-the-clusters-own-ingress) describes.

## Containers

| Destination                                                                   | Purpose                                                                                                                                                                     | Container                                               | When                                                                                                                                                                                                                                                                                   |
| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The `Let's Encrypt` ACME API                                                  | Issue and renew the TLS certificate.                                                                                                                                        | cert-manager                                            | When cert-manager issues or renews an ACME certificate.                                                                                                                                                                                                                                |
| The API of your DNS provider                                                  | Answer the DNS-01 challenge.                                                                                                                                                | cert-manager                                            | When the selected ClusterIssuer uses DNS-01.                                                                                                                                                                                                                                           |
| `github.com` and `api.github.com`                                             | Sign-in, repository sync, feedback delivery, and Git fetches.                                                                                                               | `application-server`                                    | When GitHub sign-in or a GitHub workspace is configured.                                                                                                                                                                                                                               |
| The GitLab instance (`config.gitlab.oauthBaseUrl`)                            | Sign-in, sync, group hook registration, feedback delivery, and Git fetches.                                                                                                 | `application-server`                                    | When GitLab is configured. A private address also needs `config.scmPrivateHosts` ([Connect to services on a private network](/next/admin/private-network.md#admit-a-git-provider-on-a-private-network)).                                                                               |
| `slack.com`, the Slack API base                                               | Slack API calls and Slack account linking.                                                                                                                                  | `application-server`                                    | When `config.slack.enabled` is `true`.                                                                                                                                                                                                                                                 |
| The Outline origins in `config.outline.allowedOrigins`                        | Document sync and Outline account linking.                                                                                                                                  | `application-server`                                    | When `config.outline.enabled` is `true`.                                                                                                                                                                                                                                               |
| The base URL of each AI provider connection                                   | Model calls of practice reviews and conversations, through the LLM proxy of the server. The server also tests a connection when an admin selects **Test and fetch models**. | `application-server`                                    | When an admin registers a provider connection ([Connect an AI provider](/next/admin/ai-providers.md)). A private address also needs `config.llmPrivateHosts` ([Connect to services on a private network](/next/admin/private-network.md#admit-a-model-endpoint-on-a-private-network)). |
| `api.github.com`                                                              | The [update check](/next/admin/upgrade.md#update-checks).                                                                                                                   | `application-server`                                    | By default, on a release. A commit channel or a local build is never checked. `config.releaseCheckEnabled: false` turns it off.                                                                                                                                                        |
| `www.ecb.europa.eu`                                                           | Daily currency rates for the second display currency.                                                                                                                       | `application-server`                                    | Only when `config.llmDisplayCurrency` is set.                                                                                                                                                                                                                                          |
| Your SMTP relay (`config.email.host`)                                         | Email.                                                                                                                                                                      | `application-server`                                    | Only when `config.email.host` is set.                                                                                                                                                                                                                                                  |
| Your OTLP endpoint (`config.tracing.otlpEndpoint`)                            | Traces.                                                                                                                                                                     | `application-server`                                    | Only when `config.tracing.otlpEnabled` is `true` ([Set up monitoring](/next/admin/monitoring.md#export-traces)).                                                                                                                                                                       |
| Your log store's OTLP endpoint                                                | Logs.                                                                                                                                                                       | The optional log collector on each node                 | Only when you run it ([Collecting logs](/next/admin/monitoring.md#collect-logs)).                                                                                                                                                                                                      |
| The pgBackRest repository: your S3 endpoint (`postgresql.backup.s3.endpoint`) | Off-host backups, WAL archiving, and restore.                                                                                                                               | PostgreSQL and the backup and restore Jobs of the chart | When chart backup or restore is enabled ([Backup & restore](/next/admin/backup-restore.md#automated-off-host-backup)).                                                                                                                                                                 |
