Matrix, açık bir sohbet ağıdır. Kendi Matrix ana sunucunuzu çalıştırdığınızda mesajlarınız ve hesaplarınız sizin sunucunuzda durur, yine de diğer Matrix sunucularındaki kişilerle konuşabilirsiniz. Bu rehber, referans ana sunucu olan Synapse'i Docker ve PostgreSQL ile HTTPS arkasında kurar.
Önce bilmeniz gerekenler
- Federasyon. Sunucunuz diğerleriyle konuşabilir; bu da katıldığınız odaları saklamak için bant genişliği ve disk kullanacağı anlamına gelir. Küçük özel sunucular hafiftir. Çok büyük herkese açık odalara katılmak ise öyle değildir.
- Boyut. 2 vCPU ve 4 GB RAM küçük bir grup için uygundur. Bkz. Matrix sunucu barındırma.
- Alan adı. Bir alan adına ihtiyacınız var. Sunucu adı (örneğin
example.com) her kullanıcı kimliğinin parçasıdır ve sonradan değiştirilemez.
Adım 1: yapılandırmayı oluşturun
mkdir -p ~/synapse && cd ~/synapse
docker run -it --rm -v $(pwd)/data:/data \
-e SYNAPSE_SERVER_NAME=example.com \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
Adım 2: PostgreSQL'e geçin
Varsayılan SQLite'tır, ancak bir testten fazlası için PostgreSQL daha iyidir. data/homeserver.yaml dosyasını düzenleyin ve database bloğunu değiştirin:
database:
name: psycopg2
args:
user: synapse
password: CHANGE_ME
database: synapse
host: db
cp_min: 5
cp_max: 10
Adım 3: Compose dosyası
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: synapse
POSTGRES_PASSWORD: CHANGE_ME
POSTGRES_DB: synapse
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
volumes:
- ./pgdata:/var/lib/postgresql/data
synapse:
image: matrixdotorg/synapse:latest
restart: unless-stopped
depends_on: [db]
ports:
- "127.0.0.1:8008:8008"
volumes:
- ./data:/data
docker compose up -d
docker compose logs -f synapse
Adım 4: HTTPS ve federasyon
Synapse'i matrix.example.com adresinden sunun ve sunucu adınızın example.com olarak kalması için bir yetkilendirme (delegation) dosyası yayımlayın:
matrix.example.com {
reverse_proxy 127.0.0.1:8008
}
example.com {
handle /.well-known/matrix/server {
header Content-Type application/json
respond `{"m.server": "matrix.example.com:443"}`
}
handle /.well-known/matrix/client {
header Content-Type application/json
header Access-Control-Allow-Origin *
respond `{"m.homeserver": {"base_url": "https://matrix.example.com"}}`
}
}
DNS devreye girdikten sonra federasyonu Matrix Federation Tester ile test edin.
Adım 5: kullanıcı oluşturun ve kaydı kilitleyin
docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
Açık kayıt istemiyorsanız enable_registration değeri false kalsın; dosya: homeserver.yaml.
İstemciler ve bakım
Element'i veya herhangi bir Matrix istemcisini kullanın ve sunucu adınızla giriş yapın. data klasörünü ve Postgres verilerini yedekleyin, Synapse'i güncel tutun. Önce sunucu sertleştirme yazısını okuyun.