Network

The ports 3AM listens on and the connections it makes.

Inbound

PortWho connectsPurpose
8700/tcp (configurable)People's browsers, your automation, your load balancer's health checkConsole and API
8700/tcpOptional: your monitoring or SIEMAlerts pushed by webhook (POST /v1/alerts/<source>) (Alert webhooks)
8700/tcpOptional: your other installs of 3AMKeychain sync, pairing, site keys and handovers (/v1/keychain/peer/*, authenticated by pinned keys, throttled)

Otherwise no tool needs to reach 3AM: alerts and approvals are fetched by 3AM. The installer binds the console to 127.0.0.1 unless you choose otherwise; put it behind your reverse proxy for TLS.

A local model (GPU hosts) and 3am-causal run on an internal network with no published port; only 3AM can reach them.

Outbound

3AM connects only to the tools you configure, on the addresses in their settings:

ToolTypical destination
PagerDutyapi.pagerduty.com:443 (api.eu.pagerduty.com for EU accounts)
Slackslack.com:443
Twilioapi.twilio.com:443, studio.twilio.com:443
KubernetesThe API server, usually :6443 or :443
Prometheus / AlertmanagerUsually :9090 and :9093
DatabasesMySQL :3306, PostgreSQL :5432, SQL Server :1433, Oracle :1521
Git hosts, Jira, ServiceNow, Splunk, DatadogTheir HTTPS address
Model endpoints (every host without a GPU)openrouter.ai:443, or your vLLM, Ollama or gateway for the investigator and System 1 (Models)
Your Keychain's home (members)The home's console address, :443 or :8700
Warden (licence confirmation, adding installs, trial codes)warden.3am.si:443 (Licensing)

While installing

WhoDestinationWhy
The installerget.3am.si:443, and the download link it's givenThe release, checked against its signature
The installer, when tools are missingYour distribution's package mirrors; dl.k8s.io, get.helm.sh, get.k3s.io for KubernetesPodman, kubectl, Helm, k3s, each only with your say-so
Your clusterus-central1-docker.pkg.dev:4433AM's public images, for Kubernetes installs from the Helm repository

3am-core preflight tests a TCP connection to every configured tool, so run it after opening the firewall.

The only calls to 3AM are to Warden, about the licence: confirming it (the licence, this install's fingerprint, 3AM's version and signed usage counts), adding or removing installs (fingerprints and public keys), and redeeming a trial code. Nothing about your estate is sent. In offline mode (THREEAM_LICENCE_CHECK=offline) 3AM never contacts Warden, and the licence is verified offline alone.

Proxies

3AM honours the standard HTTPS_PROXY, HTTP_PROXY and NO_PROXY variables on its container. If you set a proxy, list your internal tools and any local model in NO_PROXY (for example NO_PROXY=model,.bank.internal,10.20.30.40; host names, domain suffixes and single addresses, not CIDR ranges) so only SaaS traffic goes through it.

On this page