OffshoreVps
الشروحات3 أكتوبر 20267 دقيقة للقراءةبقلم فريق OffshoreVps

كيف تستضيف خادم Matrix (Synapse) على VPS

شغّل خادم Matrix المنزلي الخاص بك باستخدام Synapse وPostgreSQL وDocker: الإعداد، وHTTPS، وتفويض الاتحاد، والمستخدمون والتسجيل.

Matrix شبكة دردشة مفتوحة. عندما تشغّل خادم Matrix المنزلي الخاص بك، تبقى رسائلك وحساباتك على خادمك، وما زال بإمكانك التحدث مع أشخاص على خوادم Matrix الأخرى. يثبّت هذا الدليل Synapse، الخادم المنزلي المرجعي، باستخدام Docker وPostgreSQL خلف HTTPS.

نافذة طرفية على VPS تعرض الأوامر المستخدمة لاستضافة خادم Matrix، تبدأ بـ “mkdir -p ~/synapse && cd ~/synapse”
نوع الأوامر التي ستشغّلها على خادمك في هذا الدليل.

ما يجب معرفته أولًا

  • الاتحاد (Federation). يمكن لخادمك التحدث مع الخوادم الأخرى، ما يعني أنه يستهلك النطاق الترددي والقرص لتخزين الغرف التي تنضم إليها. الخوادم الخاصة الصغيرة خفيفة. أما الانضمام إلى غرف عامة ضخمة جدًا فليس كذلك.
  • الحجم. يناسب 2 vCPU و4 GB من RAM مجموعة صغيرة. راجع استضافة خادم Matrix.
  • النطاق. تحتاج إلى نطاق. اسم الخادم (مثل example.com) جزء من كل معرّف مستخدم ولا يمكن تغييره لاحقًا.

الخطوة 1: إنشاء الإعدادات

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

الخطوة 2: التحويل إلى 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
خطوات هذا الدليل بالترتيب: 1. ما يجب معرفته أولاً؛ 2. أنشئ الإعداد؛ 3. انتقل إلى PostgreSQL؛ 4. HTTPS والاتحاد؛ 5. أنشئ المستخدمين وأغلق التسجيل؛ 6. العملاء والحذر
خطوات هذا الدليل بالترتيب.

الخطوة 3: ملف 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

الخطوة 4: 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"}}`
  }
}

اختبر الاتحاد باستخدام Matrix Federation Tester بعد تفعيل DNS.

الخطوة 5: إنشاء المستخدمين وقفل التسجيل

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 محدّثًا. اقرأ تأمين الخادم أولًا.