Matrix adalah jaringan obrolan terbuka. Saat Anda menjalankan homeserver Matrix sendiri, pesan dan akun Anda berada di server Anda, dan Anda tetap dapat berbicara dengan orang di server Matrix lain. Panduan ini menginstal Synapse, homeserver referensi, dengan Docker dan PostgreSQL di balik HTTPS.
Yang perlu diketahui terlebih dahulu
- Federasi. Server Anda dapat berbicara dengan server lain, yang berarti memakai bandwidth dan disk untuk menyimpan room yang Anda ikuti. Server privat kecil ringan. Bergabung ke room publik yang sangat besar tidak.
- Ukuran. 2 vCPU dan RAM 4 GB cocok untuk kelompok kecil. Lihat hosting server Matrix.
- Domain. Anda memerlukan domain. Nama server (misalnya
example.com) menjadi bagian dari setiap ID pengguna dan tidak dapat diubah nanti.
Langkah 1: buat konfigurasi
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
Langkah 2: beralih ke PostgreSQL
SQLite adalah default, tetapi PostgreSQL lebih baik untuk apa pun di luar pengujian. Edit data/homeserver.yaml dan ganti blok database:
database:
name: psycopg2
args:
user: synapse
password: CHANGE_ME
database: synapse
host: db
cp_min: 5
cp_max: 10
Langkah 3: file Compose
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
Langkah 4: HTTPS dan federasi
Sajikan Synapse di matrix.example.com dan terbitkan file delegasi agar nama server Anda tetap example.com:
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"}}`
}
}
Uji federasi dengan Matrix Federation Tester setelah DNS aktif.
Langkah 5: buat pengguna dan kunci pendaftaran
docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
Biarkan enable_registration bernilai false di homeserver.yaml kecuali Anda menginginkan pendaftaran terbuka.
Klien dan kehati-hatian
Gunakan Element atau klien Matrix apa pun dan login dengan nama server Anda. Cadangkan folder data dan data Postgres, dan jaga Synapse tetap diperbarui. Baca penguatan server terlebih dahulu.