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 glossary defines every project-specific term, acronym, and service name used across the atl.chat documentation, so you can look up unfamiliar concepts in one place.

Services and applications

TermDefinition
UnrealIRCdThe IRC server (version 6.x) that powers atl.chat’s IRC network. Runs as a Docker container from apps/unrealircd/ and handles client connections, channel management, and server-to-server linking.
AthemeThe IRC services daemon that provides nickname registration (NickServ), channel management (ChanServ), operator tools (OperServ), and other service bots. Shares a network namespace with UnrealIRCd.
ProsodyThe XMPP server that provides real-time messaging alongside IRC. Configured via Lua (prosody.cfg.lua) and runs from apps/prosody/.
The LoungeA self-hosted web IRC client running in private mode. Connects to UnrealIRCd via WebIRC and provides a persistent, browser-based chat experience. Managed from apps/thelounge/.
ObsidianIRCA modern web IRC client built from upstream source with ATL-specific defaults. Single-server mode with auto-join configured. Runs from apps/obsidianirc/.
WebPanelThe UnrealIRCd administration web panel served by nginx. Connects to UnrealIRCd’s JSON-RPC interface for server management. Runs from apps/webpanel/.
BridgeA Python application (apps/bridge/) that relays messages between Discord, IRC, and XMPP using an event bus pattern.
GamjaA lightweight, planned IRC web client. Directory exists at apps/gamja/ but is not yet active.
PortalThe community web portal application, providing user-facing features beyond chat. Referenced in environment variable sections as the PORTAL_* variable group.

IRC service bots (Atheme)

TermDefinition
NickServAtheme service bot that handles nickname registration, identification, and account management.
ChanServAtheme service bot that manages channel registration, access lists, and channel settings.
OperServAtheme service bot that provides IRC operator tools: akills (network bans), server management, and administrative commands.
MemoServAtheme service bot that provides offline messaging between registered users.
HostServAtheme service bot that manages virtual hostnames (vhosts) for registered users.
BotServAtheme service bot that assigns custom bot identities to channels.

Protocols and standards

TermDefinition
IRCInternet Relay Chat — a text-based real-time messaging protocol defined by RFCs 1459 and 2812 (with modern IRCv3 extensions). The primary chat protocol used by atl.chat.
XMPPExtensible Messaging and Presence Protocol — an open XML-based messaging standard. atl.chat runs an XMPP server (Prosody) alongside IRC.
MUCMulti-User Chat — the XMPP extension (XEP-0045) for group chat rooms, analogous to IRC channels.
BOSHBidirectional-streams Over Synchronous HTTP — an XMPP transport that tunnels XMPP stanzas over HTTP long-polling. Prosody exposes BOSH on port 5280.
WebSocketA full-duplex communication protocol over a single TCP connection. Used by UnrealIRCd (port 8000) and Prosody for browser-based clients.
SASLSimple Authentication and Security Layer — a framework for authentication in network protocols. Used by both IRC (IRCv3 SASL) and XMPP for client authentication.
SCRAMSalted Challenge Response Authentication Mechanism — a SASL mechanism (SCRAM-SHA-256) used by Prosody for secure password-based authentication without transmitting plaintext passwords.
TLSTransport Layer Security — the cryptographic protocol that encrypts connections. All atl.chat services use TLS for client and inter-service communication.
STSStrict Transport Security — an IRCv3 capability that tells clients to always use TLS when connecting to the server.
WebIRCAn IRC protocol extension that allows trusted web clients (like The Lounge) to forward the real IP address of connecting users to the IRC server.
XEPXMPP Extension Protocol — numbered specifications that extend the core XMPP standard. Examples include XEP-0045 (MUC), XEP-0313 (MAM), and XEP-0060 (PubSub).
RFCRequest for Comments — standards documents published by the IETF. IRC is defined by RFCs 1459/2812; TLS by RFC 8446; XMPP by RFCs 6120/6121.
PubSubPublish-Subscribe — an XMPP extension (XEP-0060) for event-driven messaging where publishers send data to topics and subscribers receive updates.
MAMMessage Archive Management — an XMPP extension (XEP-0313) that stores message history server-side so clients can retrieve past messages.
TURN/STUNTraversal Using Relays around NAT / Session Traversal Utilities for NAT — protocols that help establish peer-to-peer connections through firewalls and NAT devices. The infra/turn-standalone/ directory contains configuration for a standalone TURN server.
ACMEAutomatic Certificate Management Environment — the protocol used by Let’s Encrypt (and other CAs) to automate TLS certificate issuance and renewal.
DNS-01An ACME challenge type that proves domain ownership by creating a DNS TXT record. Used by the cert-manager service with Cloudflare DNS for wildcard certificates.

IRC concepts

TermDefinition
cloakA virtual hostname applied to a user’s connection to hide their real IP address. Generated using cloak keys defined in the environment variables.
operAn IRC operator — a privileged user with administrative access to the IRC server. Configured via oper blocks in UnrealIRCd’s configuration.
rehashAn UnrealIRCd command that reloads the server configuration without disconnecting users. Used after config changes or certificate renewal.
netsplitA temporary disconnection between IRC servers in a network, causing users on each side to appear to leave channels.

Infrastructure and tooling

TermDefinition
Docker ComposeThe container orchestration tool used to define and run the entire atl.chat stack. The root compose.yaml includes fragments from infra/compose/*.yaml.
justA command runner (similar to make) used throughout the project. The root justfile defines commands like just dev, just prod, and just test. Per-app recipes are loaded via mod.
envsubstA GNU gettext utility that substitutes environment variable references in template files. Used by scripts/prepare-config.sh to generate service configuration files from templates.
cert-managerA Docker service defined in infra/compose/cert-manager.yaml that uses Lego to obtain and renew TLS certificates via ACME.
LegoA Go-based ACME client used by the cert-manager service to request TLS certificates from Let’s Encrypt. Supports DNS-01 challenges via Cloudflare.
TailscaleA mesh VPN service. In production, atl.chat services bind to Tailscale IP addresses for secure inter-node communication.
OpenMetricsA metrics exposition format (compatible with Prometheus) used for monitoring service health and performance.

Development and CI/CD tools

TermDefinition
GitleaksA secret scanning tool configured as a pre-commit hook to prevent accidental commits of passwords, tokens, and API keys.
ruffA fast Python linter and formatter used for all Python code in the monorepo (primarily the bridge application).
BiomeA JavaScript/TypeScript linter and formatter. Used via the ultracite wrapper for the web and docs applications.
luacheckA static analysis tool for Lua code. Used to lint Prosody configuration and UnrealIRCd Lua scripts.
shellcheckA static analysis tool for shell scripts. Used to lint bash scripts in scripts/ and infrastructure directories.
semantic-releaseAn automated versioning and release tool configured via .releaserc.json. Generates changelogs and version bumps from Conventional Commits.
Conventional CommitsA commit message convention (type(scope): description) used by the project to enable automated changelogs and semantic versioning.

Documentation and web

TermDefinition
FumadocsThe documentation framework used by apps/docs/. Built on Next.js with file-system routing — the directory structure under content/docs/ determines the navigation hierarchy.
MDXMarkdown with JSX — a file format that combines Markdown content with React components. All documentation pages are .mdx files.
Cloudflare PagesThe hosting platform where the documentation site and web application are deployed. The docs site builds via the OpenNext adapter for Cloudflare Workers.
BLUFBottom Line Up Front — a writing principle used throughout this documentation where the key takeaway appears in the first sentence of every page.
MermaidA diagramming language rendered in MDX via the remarkMdxMermaid plugin. Used for all architecture and flow diagrams instead of ASCII art.