# Matrix Home Server Self-hosted Matrix homeserver running on `mtx.alogins.net`. ## Stack | Service | Purpose | |---------|---------| | Synapse | Matrix homeserver | | PostgreSQL | Synapse database | | LiveKit | MatrixRTC media server (calls) | | lk-jwt-service | LiveKit JWT auth for Matrix users | | coturn | TURN/STUN server (ICE fallback) | ## Clients - **Element X** (Android/iOS) — recommended, full call support - **FluffyChat** — messaging only, calls not supported Connect clients to: `https://mtx.alogins.net` ## Users | Username | Admin | |----------|-------| | admin | yes | | elizaveta | no | | aleksandra | no | ## Managing Users ```bash # Add user docker exec synapse register_new_matrix_user \ -c /data/homeserver.yaml \ -u -p --no-admin \ http://localhost:8008 # Add admin docker exec synapse register_new_matrix_user \ -c /data/homeserver.yaml \ -u -p -a \ http://localhost:8008 ``` ## Start / Stop ```bash cd /home/alvis/agap_git/matrix docker compose up -d # start all docker compose down # stop all docker compose restart # restart all docker compose ps # status docker compose logs -f # logs ``` ## Caddy Entries in `/home/alvis/agap_git/Caddyfile`: | Domain | Purpose | |--------|---------| | `mtx.alogins.net` | Synapse + well-known | | `lk.alogins.net` | LiveKit SFU | | `lkjwt.alogins.net` | LiveKit JWT service | Deploy Caddyfile changes: ```bash sudo cp /home/alvis/agap_git/Caddyfile /etc/caddy/Caddyfile && sudo systemctl reload caddy ``` ## Firewall Ports Required | Port | Protocol | Service | |------|----------|---------| | 443 | TCP | Caddy (HTTPS) | | 3478 | UDP+TCP | coturn TURN | | 5349 | UDP+TCP | coturn TURNS | | 7881 | TCP | LiveKit | | 49152-65535 | UDP | coturn relay | | 50100-50200 | UDP | LiveKit media | ## Data Locations | Data | Path | |------|------| | Synapse config & media | `./data/synapse/` | | PostgreSQL data | `./data/postgres/` | | LiveKit config | `./livekit/livekit.yaml` | | coturn config | `./coturn/turnserver.conf` | ## First-Time Setup (reference) ```bash # Generate Synapse config docker run --rm \ -v ./data/synapse:/data \ -e SYNAPSE_SERVER_NAME=mtx.alogins.net \ -e SYNAPSE_REPORT_STATS=no \ matrixdotorg/synapse:latest generate # Edit database section in data/synapse/homeserver.yaml, then: docker compose up -d ```