70 lines
3.2 KiB
Markdown
70 lines
3.2 KiB
Markdown
|
|
# Matrix/Conduit Deployment Scaffold
|
||
|
|
|
||
|
|
> Parent: [#166](http://143.198.27.163:3000/Timmy_Foundation/timmy-config/issues/166) | Scaffold task: [#183](http://143.198.27.163:3000/Timmy_Foundation/timmy-config/issues/183)
|
||
|
|
|
||
|
|
This directory contains an executable deployment path for standing up a Matrix homeserver (Conduit) for sovereign human-to-fleet encrypted communication.
|
||
|
|
|
||
|
|
## Status
|
||
|
|
|
||
|
|
| Component | State |
|
||
|
|
|-----------|-------|
|
||
|
|
| Deployment scaffold | ✅ Present |
|
||
|
|
| Target host | ⚠️ Requires selection |
|
||
|
|
| Reverse proxy (Caddy/Nginx) | ⚠️ Pending host provisioning |
|
||
|
|
| TLS certificates | ⚠️ Pending DNS + proxy setup |
|
||
|
|
| Federation | ⚠️ Pending DNS SRV records |
|
||
|
|
| Fleet bot integration | ⚠️ Post-deployment |
|
||
|
|
|
||
|
|
## Quick Start
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /path/to/timmy-config/infra/matrix
|
||
|
|
# 1. Read prerequisites.md — ensure host is ready
|
||
|
|
# 2. Edit conduit.toml with your domain
|
||
|
|
# 3. Copy .env.example → .env and fill secrets
|
||
|
|
# 4. Run: ./deploy-matrix.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
|
||
|
|
```
|
||
|
|
┌─────────────────────────────────────────────────────────────┐
|
||
|
|
│ Host (VPS) │
|
||
|
|
│ ┌─────────────────┐ ┌──────────────────────────────┐ │
|
||
|
|
│ │ Caddy/Nginx │─────▶│ Conduit (Matrix homeserver) │ │
|
||
|
|
│ │ :443/:8448 │ │ :6167 (internal) │ │
|
||
|
|
│ └─────────────────┘ └──────────────────────────────┘ │
|
||
|
|
│ │ │ │
|
||
|
|
│ ▼ ▼ │
|
||
|
|
│ TLS termination SQLite/RocksDB storage │
|
||
|
|
│ Let's Encrypt Config: conduit.toml │
|
||
|
|
└─────────────────────────────────────────────────────────────┘
|
||
|
|
```
|
||
|
|
|
||
|
|
## Files
|
||
|
|
|
||
|
|
| File | Purpose |
|
||
|
|
|------|---------|
|
||
|
|
| `prerequisites.md` | Host requirements, ports, DNS, decisions |
|
||
|
|
| `docker-compose.yml` | Conduit + optionally Element-Web |
|
||
|
|
| `conduit.toml` | Homeserver configuration scaffold |
|
||
|
|
| `deploy-matrix.sh` | One-command deployment script |
|
||
|
|
| `.env.example` | Environment variable template |
|
||
|
|
| `caddy/Caddyfile` | Reverse proxy configuration |
|
||
|
|
|
||
|
|
## Post-Deployment
|
||
|
|
|
||
|
|
1. Create admin account via registration or CLI
|
||
|
|
2. Create fleet rooms (encrypted by default)
|
||
|
|
3. Onboard Alexander as operator
|
||
|
|
4. Deploy fleet bots (Hermes gateway with Matrix platform adapter)
|
||
|
|
5. Evaluate Telegram-to-Matrix bridge (mautrix-telegram)
|
||
|
|
|
||
|
|
## Decisions Log
|
||
|
|
|
||
|
|
- **Homeserver**: Conduit (lightweight, Rust, single binary, SQLite default)
|
||
|
|
- **Database**: SQLite for single-host; migrate to PostgreSQL if scale demands
|
||
|
|
- **Reverse proxy**: Caddy (automatic HTTPS) or Nginx (existing familiarity)
|
||
|
|
- **Client**: Element Web (optional, self-hosted) + native apps
|
||
|
|
- **Federation**: Enabled (required for multi-homeserver fleet topology)
|