Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.allthingslinux.org/llms.txt

Use this file to discover all available pages before exploring further.

This page lists every port used by atl.chat services, verified against the current compose.yaml and infra/compose/*.yaml files. All host-side ports are configurable via environment variables in .env.

IRC stack

Defined in infra/compose/irc.yaml.
PortEnv VariableServiceProtocolBind addressDescription
6697IRC_TLS_PORTUnrealIRCdTCPATL_CHAT_IPIRC over TLS — primary client connection
8000IRC_WEBSOCKET_PORTUnrealIRCdTCPATL_CHAT_IPIRC WebSocket for web clients
8600IRC_RPC_PORTUnrealIRCdTCPATL_CHAT_IPJSON-RPC API (used by WebPanel and tooling)
6900IRC_SERVER_PORTUnrealIRCdTCPATL_CHAT_IPServer-to-server links
8081ATHEME_HTTPD_PORTAthemeTCPATL_CHAT_IPAtheme HTTP API (Atheme shares the IRC server’s network namespace)
8080WEBPANEL_PORTWebPanelTCP0.0.0.0UnrealIRCd admin web panel
The five UnrealIRCd and Atheme ports bind to ATL_CHAT_IP (default 127.0.0.1). The WebPanel port binds to all interfaces (0.0.0.0) and does not use ATL_CHAT_IP. Atheme uses network_mode: service:atl-irc-server, so it shares the IRC server’s network stack. The Atheme uplink port (6901) is internal to that shared namespace and not exposed to the host.

XMPP stack

Defined in infra/compose/xmpp.yaml.
PortEnv VariableServiceProtocolDescription
5222PROSODY_C2S_PORTProsodyTCPXMPP client-to-server (STARTTLS)
5223PROSODY_C2S_DIRECT_TLS_PORTProsodyTCPXMPP client-to-server (Direct TLS)
5269PROSODY_S2S_PORTProsodyTCPXMPP server-to-server federation
5270PROSODY_S2S_DIRECT_TLS_PORTProsodyTCPXMPP server-to-server (Direct TLS)
5280PROSODY_HTTP_PORTProsodyTCPHTTP — BOSH and WebSocket endpoints
5000PROSODY_PROXY65_PORTProsodyTCPSOCKS5 bytestream proxy for file transfers
5281PROSODY_HTTPS_PORTNginx (XMPP)TCPHTTPS reverse proxy for Prosody
443(see note)Nginx (XMPP)TCP127.0.0.1:443 only — same vhost/certs as 5281; clients that use https://<XMPP_DOMAIN>/… with no port (e.g. Fluux discovery, wss://<domain>/ws) hit this

Web clients

PortEnv VariableServiceCompose FileDescription
9000THELOUNGE_PORTThe Loungeinfra/compose/thelounge.yamlWeb IRC client (private mode, requires user account)
8090OBSIDIANIRC_PORTObsidianIRCinfra/compose/obsidianirc.yamlModern web IRC client (custom build, single-server mode)

Bridge

Defined in infra/compose/bridge.yaml. The bridge service does not expose any host ports — it connects outbound to IRC, XMPP, and Discord over the atl-chat Docker network and the internet.

Dev-only services

Available when running just dev (activates the dev Docker Compose profile).
PortEnv VariableServiceDescription
8082DOZZLE_PORTDozzleDocker log viewer (container port 8080 mapped to host 8082)

TURN/STUN (standalone)

Deployed separately via infra/turn-standalone/compose.yaml using host networking. Not part of the main compose.yaml stack.
PortProtocolServiceDescription
3478TCP/UDPCoturnSTUN/TURN relay
5349TCPCoturnTURNS (TLS)
49152–49202UDPCoturnMedia relay port range

Services not in Docker Compose

These services run outside the Docker stack during development:
PortServiceDescription
3000Next.js web appRun locally with pnpm dev in apps/web/

Customising ports

Every host-side port is controlled by an environment variable in .env. To change a port, set the variable before starting the stack:
# Example: move IRC TLS to port 6698
IRC_TLS_PORT=6698
The IRC stack ports also respect ATL_CHAT_IP (default 127.0.0.1), which controls the bind address. Set it to 0.0.0.0 to listen on all interfaces in production. See the environment variables reference for the full list.
  • Environment Variables — port variables and bind address configuration
  • Networking — full network architecture, Tailscale overlay, and firewall rules
  • Deployment — production port binding and Tailscale setup
  • Monitoring — health check endpoints per service