This guide walks you through cloning the repo, configuring environment variables, and starting all services with a single command.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.
Clone and install
-
Clone the repository and install Node.js dependencies:
-
Install Python dependencies with uv:
Environment setup
Copy the example env files and customise values for local development:| Variable | Description |
|---|---|
IRC_DOMAIN | IRC server hostname (defaults to irc.localhost in .env.dev) |
PROSODY_DOMAIN | XMPP server domain (defaults to xmpp.localhost in .env.dev) |
DISCORD_TOKEN | Discord bot token for the bridge (optional for IRC/XMPP-only testing) |
First-time initialisation
Run the init recipe to create data directories, generate self-signed TLS certificates, and substitute config templates:scripts/init.sh, which:
- Creates all
data/subdirectories for persistent storage - Generates self-signed TLS certificates for local development
- Runs
envsubston config templates to produce final config files
Starting the stack
Starting the web app
The Next.js web app runs outside Docker as a local Node process:http://localhost:3000.
Verification checklist
Afterjust dev completes, verify each service is running:
-
Check container status:
-
Test IRC connectivity (TLS on port 6697):
-
Test XMPP connectivity (C2S on port 5222):
-
Test The Lounge web client (port 9000):
-
Test ObsidianIRC (port 8090):
-
Test WebPanel (port 8080):
Useful just recipes
| Recipe | Description |
|---|---|
just dev | Start all services with dev profile |
just down | Stop the dev stack |
just logs [service] | Follow logs (optionally for a specific service) |
just status | Show container status |
just lint | Run all pre-commit hooks |
just test | Run unit tests |
just test-all | Run all tests including bridge tests |
Common first-run issues
Docker daemon not running
If you see “Cannot connect to the Docker daemon”, start Docker first:Port already in use
If a port is already bound, identify the process and stop it:CLOUDFLARE_DNS_API_TOKEN warning
Docker Compose emits a warning about this unset variable. You can safely ignore it in development — the cert-manager service is not needed locally.pnpm install build scripts warning
You may see warnings about blocked build scripts for esbuild, sharp, or workerd. These packages have fallback binaries and the warning is non-blocking.pre-commit hooks fail to install
Ifcore.hooksPath is set by your environment, unset it first:
The Lounge shows login page but no users exist
The Lounge runs in private mode. You need to create a user before you can log in:ObsidianIRC: “Firefox can’t establish a connection” to wss://127.0.0.1:8000
In dev, ObsidianIRC connects to the IRC WebSocket over TLS with a self-signed certificate. Firefox blocks WebSocket connections to untrusted certs without prompting. Add a certificate exception first:- Open a new tab and go to
https://127.0.0.1:8000/ - When Firefox shows “Connection Not Secure”, click Advanced
- Click Accept the Risk and Continue
- Reload ObsidianIRC at
http://localhost:8090and connect again
Related pages
- Getting Started — prerequisites, monorepo layout, and verification checklist
- Architecture Overview — system diagram and design decisions
- Environment Variables — complete variable reference
- Troubleshooting — cross-service diagnostic commands and common issues