This page answers the most common questions about atl.chat — what it is, how to connect, how to contribute, and how to handle everyday operational tasks.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.
General
What is atl.chat?
atl.chat is the unified chat infrastructure for the All Things Linux community. It provides IRC (via UnrealIRCd and Atheme), XMPP (via Prosody), a Discord bridge, and web-based clients — all running as a single Docker Compose stack in one monorepo.How do the services relate to each other?
UnrealIRCd handles IRC connections and Atheme provides nickname/channel registration on top of it (they share a Docker network namespace). Prosody runs the XMPP side independently. The Bridge relays messages between Discord, IRC, and XMPP so users on any platform see the same conversations. The Lounge and ObsidianIRC are web IRC clients that connect to UnrealIRCd, and the WebPanel gives operators a browser-based admin interface via UnrealIRCd’s JSON-RPC API.Is atl.chat open source?
Yes. The entire monorepo — server configs, bridge code, web apps, documentation, and infrastructure — is open source. You can fork it, run your own instance, or contribute back via pull requests.Connecting
How do I connect to IRC?
You have several options:- Desktop IRC client (HexChat, irssi, WeeChat) — connect to
irc.atl.toolson port6697with TLS enabled. - The Lounge — open the web client in your browser (port
9000in dev, or the public URL in production). You need an account created by an operator (just lounge add). - ObsidianIRC — a modern web client (port
8090in dev). Pre-configured for ATL IRC with auto-join enabled.
How do I connect to XMPP?
Use any XMPP client (Conversations on Android, Gajim on desktop, Moxxy on iOS) and connect to the Prosody server on port5222 with TLS. Browser-based access is available via BOSH (port 5280) or WebSocket. See the XMPP overview for details.
Can I use Discord instead?
Yes. The Bridge relays messages between Discord, IRC, and XMPP channels automatically. You chat on Discord as usual and your messages appear on IRC/XMPP (and vice versa). No extra setup is needed on the user side.How do I register my IRC nickname?
After connecting, register with NickServ:Contributing
How do I contribute to atl.chat?
- Fork the repository and clone it locally.
- Follow the local development guide to get the stack running.
- Create a feature branch, make your changes, and open a pull request.
just lint), and automated tests (just test). See the full contributing guide for branch naming, code style, and review expectations.
What languages and tools does the project use?
| Area | Language / Tool |
|---|---|
| IRC server config | UnrealIRCd config format, Lua scripts |
| IRC services | Atheme (C, configured via template) |
| XMPP server | Prosody (Lua configuration) |
| Bridge | Python |
| Web app and docs | TypeScript, Next.js, MDX |
| Infrastructure | Docker Compose, bash scripts, just |
| Linting | ruff (Python), Biome (TypeScript), luacheck (Lua), shellcheck (bash) |
How do I run the tests?
Operations
How do I add a new user to The Lounge?
How do I rotate secrets and passwords?
Generate new values for sensitive environment variables (anything containingPASSWORD, TOKEN, SECRET, or KEY in .env), then restart the affected services:
How do I check if services are healthy?
Quick health checks for each service:How do I update or upgrade services?
- Back up persistent data (
data/directory) — see the backups guide. - Pull the latest changes:
git pull. - Rebuild and restart:
just buildthenjust prod. - Verify services are running:
just status.
Where do I find logs?
Related pages
- Glossary — definitions of project-specific terms and acronyms
- Getting Started — prerequisites and local development setup
- Environment Variables — complete variable reference
- Troubleshooting — cross-service diagnostic commands and common issues