Matrix یک شبکه گفتگوی باز است. وقتی هومسرور Matrix خودتان را راه میاندازید، پیامها و حسابهایتان روی سرور شما میمانند و همچنان میتوانید با افراد روی سرورهای دیگر Matrix صحبت کنید. این راهنما Synapse، هومسرور مرجع، را با Docker و PostgreSQL پشت HTTPS نصب میکند.
ابتدا چه چیزهایی را باید بدانید
- فدراسیون. سرور شما میتواند با دیگران صحبت کند، یعنی برای ذخیره اتاقهایی که به آنها میپیوندید پهنای باند و دیسک مصرف میکند. سرورهای خصوصی کوچک سبک هستند. پیوستن به اتاقهای عمومی بسیار بزرگ چنین نیست.
- اندازه. 2 vCPU و 4 GB رم برای یک گروه کوچک مناسب است. میزبانی سرور Matrix را ببینید.
- دامنه. به یک دامنه نیاز دارید. نام سرور (برای مثال
example.com) بخشی از هر شناسه کاربری است و بعداً قابل تغییر نیست.
مرحله ۱: ساخت پیکربندی
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
مرحله ۲: تغییر به PostgreSQL
SQLite پیشفرض است، اما PostgreSQL برای هر کاری فراتر از آزمایش بهتر است. فایل data/homeserver.yaml را ویرایش کنید و بلوک database را جایگزین کنید:
database:
name: psycopg2
args:
user: synapse
password: CHANGE_ME
database: synapse
host: db
cp_min: 5
cp_max: 10
مرحله ۳: فایل 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
مرحله ۴: HTTPS و فدراسیون
Synapse را در matrix.example.com ارائه دهید و یک فایل واگذاری منتشر کنید تا نام سرور شما همچنان 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"}}`
}
}
پس از فعال شدن DNS، فدراسیون را با Matrix Federation Tester آزمایش کنید.
مرحله ۵: ساخت کاربران و قفل کردن ثبتنام
docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
مقدار enable_registration را روی false نگه دارید (در homeserver.yaml)، مگر اینکه ثبتنام آزاد بخواهید.
کلاینتها و مراقبت
از Element یا هر کلاینت Matrix استفاده کنید و با نام سرور خود وارد شوید. از پوشه data و دادههای Postgres پشتیبان بگیرید و Synapse را بهروز نگه دارید. ابتدا مقاومسازی سرور را بخوانید.