2.8 KiB
2.8 KiB
Matrix/Conduit Deployment Guide
Parent: timmy-config#166
Child: timmy-config#183
Created: 2026-04-05 by Ezra burn-mode triage
Deployment Prerequisites
1. Host Selection Matrix
| Option | Pros | Cons | Recommendation |
|---|---|---|---|
| Timmy-Home bare metal | Full sovereignty, existing Traefik | Single point of failure, home IP | PRIMARY |
| DigitalOcean VPS | Static IP, offsite | Monthly cost, external dependency | BACKUP |
| RunPod GPU instance | Already in fleet | Ephemeral, not for persistence | NOT SUITABLE |
2. Port Requirements
| Port | Purpose | Inbound Required |
|---|---|---|
| 8448 | Federation (server-to-server) | Yes |
| 443 | Client HTTPS | Yes (via Traefik) |
| 80 | ACME HTTP-01 challenge | Yes (redirects to 443) |
| 6167 | Conduit replication (optional) | Internal only |
3. Reverse Proxy Assumptions (Traefik)
Existing timmy-home Traefik instance can route Matrix traffic:
# docker-compose.yml labels for Conduit
labels:
- "traefik.enable=true"
- "traefik.http.routers.matrix.rule=Host(`matrix.tactical.local`)"
- "traefik.http.routers.matrix.tls.certresolver=letsencrypt"
- "traefik.http.services.matrix.loadbalancer.server.port=6167"
# Federation SRV delegation
- "traefik.tcp.routers.matrix-federation.rule=HostSNI(`*`)"
- "traefik.tcp.routers.matrix-federation.entrypoints=federation"
4. DNS Requirements
# A records
matrix.tactical.local A <timmy-home-ip>
# SRV records for federation
_matrix._tcp.tactical.local SRV 10 0 8448 matrix.tactical.local
5. Database Choice
| Option | When to Use |
|---|---|
| SQLite (default) | < 100 users, < 10 rooms, single-node |
| PostgreSQL | Scale, backups, multi-node potential |
Recommendation: Start with SQLite. Migrate to PostgreSQL only if federation grows.
6. Storage Requirements
- Conduit binary: ~50MB
- Database (SQLite): ~100MB initial, grows with media
- Media repo: Plan for 10GB (images, avatars, room assets)
Blocking Prerequisites Checklist
- Host: Confirm Timmy-Home static IP or dynamic DNS
- Ports: Verify 8448, 443, 80 not blocked by ISP
- Traefik: Confirm federation TCP entrypoint configured
- DNS: SRV records creatable at domain registrar
- SSL: Let's Encrypt ACME configured in Traefik
- Backup: Volume mount strategy for SQLite persistence
Next Steps
- Complete prerequisites checklist above
- Generate
conduit-config.toml(seematrix/conduit-config.toml) - Create
docker-compose.ymlwith Traefik labels - Deploy test room with @ezra + Alexander
- Verify client connectivity (Element web/iOS)
- Document Telegram→Matrix migration plan
This document lowers #166 from fuzzy epic to executable deployment steps.