- Synapse + PostgreSQL + coturn + LiveKit + lk-jwt-service - Caddy entries for mtx.alogins.net, lk.alogins.net, lkjwt.alogins.net - well-known endpoints for Matrix client/server discovery and RTC transport - Users: admin, elizaveta, aleksandra Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
# Add user
docker exec synapse register_new_matrix_user \
-c /data/homeserver.yaml \
-u <username> -p <password> --no-admin \
http://localhost:8008
# Add admin
docker exec synapse register_new_matrix_user \
-c /data/homeserver.yaml \
-u <username> -p <password> -a \
http://localhost:8008
Start / Stop
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:
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)
# 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