Three containers, one Docker network, zero exposed services.
| Port | Protocol | Service | Purpose |
|---|---|---|---|
| 80 | TCP | Caddy | HTTP โ HTTPS redirect |
| 443 | TCP | Caddy | HTTPS (Client-Server API) |
| 443 | UDP | Coturn (redirected) | UDP redirect to port 5349 via firewalld forward-port โ allows clients to reach TURN on standard port |
| 8448 | TCP | Caddy | Matrix federation (S2S) |
| 3478 | UDP | Coturn | STUN (NAT discovery) |
| 5349 | TCP/UDP | Coturn | TURNS (encrypted relay) |
Everything lives in /opt/conduit/ โ one folder, easy to find:
/opt/conduit/ โโโ docker-compose.yml # All 3 containers, networks, volumes, ports โโโ .env # Your config: domain, secrets, IP โโโ Caddyfile # Reverse proxy + TLS (auto-generated) โโโ turnserver.conf # TURN/STUN for voice/video calls โโโ conduit.toml # Media retention settings โโโ CREDENTIALS.txt # Your registration token (delete after saving!) โโโ certs/ # TLS certificates for Coturn โ โโโ turn.crt โ โโโ turn.key โโโ .image-versions # Pinned Docker image digests (created by backup) /opt/conduit-backups/ # Backups (separate folder, survives uninstall) โโโ conduit-backup-2025-03-15-020000.tar.gz
Common Docker Compose commands (run from /opt/conduit/):
sudo docker compose up -d # Start all containers sudo docker compose down # Stop all containers sudo docker compose restart # Restart all containers sudo docker compose logs -f # View live logs sudo docker compose pull # Pull latest images (update) sudo docker compose ps # Show container status sudo docker stats --no-stream # Show CPU/RAM usage
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 1 core (ARM or x86) | 2+ cores |
| RAM | 1 GB (tested) | 2+ GB for heavy use |
| Disk | 2GB | 10GB+ (media) |
| OS | Linux (Docker) | Debian 13 (tested). Other Debian/Ubuntu may work but untested. |
| Network | Public IP + domain | Static IP preferred |
The script will automatically install any missing packages. Here's exactly what gets added to your system:
| Package | What it does | Why it's needed |
|---|---|---|
| Docker | Container runtime | Runs Conduit, Caddy, and Coturn in isolated containers |
| firewalld | Firewall | Blocks unauthorized access, opens only needed ports |
| Fail2ban | Brute-force protection | Automatically bans IPs that try too many failed logins |
| unattended-upgrades | OS security patches | Downloads and installs security fixes automatically. No auto-reboot โ you decide when to restart. |
| firewalld forward-port | Firewall rule | firewalld forward-port rule (UDP 443โ5349) |
System utilities (installed if missing):
| Command | Package | Used for |
|---|---|---|
curl | curl | Downloading files, API calls, connectivity checks |
openssl | openssl | Generating secure tokens and secrets |
dig | dnsutils | DNS verification before install |
ss | iproute2 | Checking if ports are available |
tar | tar | Creating and restoring backups |
free | procps | Checking available RAM |
awk | gawk | Text processing (parsing outputs) |