# Ako si postaviť vlastný [matrix] server
[matrix] je otvorený protokol, nie produkt. Nikto ho nevlastní — ani my. Kubínska Scéna
beží presne na tom istom softvéri, ktorý si môžeš nainštalovať sám, na vlastnom stroji,
zadarmo. Toto je stručný, poctivý návod, ako na to. Nič z tohto nie je tajomstvo.
Ak raz odídeš zo Scény, tvoje účty aj miestnosti na inom serveri fungujú ďalej — [matrix]
nie je uzamknutá záhrada. To je celý bod otvoreného protokolu.
## Čo budeš potrebovať
- Server s verejnou IP adresou (stačí najlacnejší VPS, cca 5 €/mes — Hetzner, DigitalOcean,
OVH, alebo aj starý počítač doma s prístupom z internetu)
- Vlastnú doménu (napr. `tvoj-server.sk`)
- Docker a Docker Compose nainštalované na serveri
- 20 minút a trpezlivosť pri prvom spustení
## 1. DNS
Nasmeruj doménu (alebo subdoménu, napr. `matrix.tvoja-domena.sk`) na IP adresu servera
pomocou A záznamu. Over si to:
```bash
dig +short matrix.tvoja-domena.sk
```
## 2. Docker Compose
Vytvor priečinok a v ňom `docker-compose.yml`:
```yaml
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: synapse
POSTGRES_PASSWORD: zmen_si_toto_heslo
POSTGRES_DB: synapse
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
volumes:
- ./data/postgres:/var/lib/postgresql/data
synapse:
image: matrixdotorg/synapse:latest
restart: unless-stopped
depends_on: [postgres]
environment:
SYNAPSE_SERVER_NAME: tvoja-domena.sk
SYNAPSE_REPORT_STATS: "no"
volumes:
- ./synapse:/data
ports:
- "127.0.0.1:8008:8008"
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy-data:/data
```
## 3. Vygeneruj základnú konfiguráciu
```bash
docker run -it --rm \
-v "$(pwd)/synapse:/data" \
-e SYNAPSE_SERVER_NAME=tvoja-domena.sk \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
```
Tento príkaz vytvorí `homeserver.yaml` a podpisovací kľúč v priečinku `synapse/`.
V `homeserver.yaml` uprav pripojenie k databáze na Postgres (predvolene používa
jednoduchší SQLite, ktorý na produkciu nestačí):
```yaml
database:
name: psycopg2
args:
user: synapse
password: zmen_si_toto_heslo
database: synapse
host: postgres
cp_min: 5
cp_max: 10
```
## 4. Reverzná proxy s automatickým TLS
`Caddyfile`:
```
tvoja-domena.sk {
reverse_proxy /_matrix/* synapse:8008
reverse_proxy /_synapse/client/* synapse:8008
}
```
Caddy si certifikát od Let's Encrypt vybaví sám, žiadna ručná práca s TLS.
## 5. Spusti to
```bash
docker compose up -d
```
## 6. Over federáciu (voliteľné)
Ak chceš, aby tvoj server vedel komunikovať s ostatnými servermi [matrix] (federácia),
over si nastavenie na . Ak chceš mať server
uzavretý — presne ako Kubínska Scéna — federáciu v `homeserver.yaml` vypneš:
```yaml
federation_domain_whitelist: []
```
## 7. Vytvor si prvý účet
```bash
docker exec -it -synapse-1 register_new_matrix_user \
-c /data/homeserver.yaml http://localhost:8008
```
## 8. Pripoj sa
Stiahni si [Element](https://element.io/download) (alebo FluffyChat, Cinny — klient
si vyberáš sám), pri prihlásení zadaj ako server svoju doménu, nie matrix.org.
## Zálohy
Databáza sa zálohuje ako ktorýkoľvek iný Postgres:
```bash
docker exec -postgres-1 pg_dump -U synapse synapse | gzip > backup.sql.gz
```
Nastav si to ako denný cron job. Nezabudni zálohovať aj priečinok `synapse/` (obsahuje
podpisovací kľúč servera — bez neho stratíš identitu servera).
---
Toto je presne ten istý softvér a v podstate ten istý postup, akým beží aj Kubínska
Scéna. Žiadne tajné omáčky. Ak chceš vedieť viac, oficiálna dokumentácia Synapse je na
.
*Kubínska Scéna, [matrix].kubinska-scena.life*