چت · بدون KYC
میزبانی Matrix (Synapse) روی VPS آفشور
هومسرور Matrix اختصاصی خود را روی یک VPS آفشور و بدون KYC اجرا کنید و کلیدهای شبکهٔ چت فدرهشده و رمزنگاریشدهٔ سرتاسر خود را در اختیار داشته باشید.
این چیست
Synapse پیادهسازی مرجع سرور برای Matrix است، پروتکلی باز برای چت، صدا و ویدیوی بلادرنگ، غیرمتمرکز و رمزنگاریشدهٔ سرتاسر. با میزبانی اختصاصی Synapse، هومسرور خودتان را در اختیار خواهید داشت که میتواند با شبکهٔ گستردهتر Matrix فدره شود یا کاملاً خصوصی بماند؛ در هر دو حالت، هر پیام، فایل رسانهای و حساب کاربری روی سختافزاری قرار دارد که تحت کنترل خودتان است.
چرا میزبانی آفشور
متادیتای چت (اینکه چه کسی، چه زمانی و از کجا با چه کسی صحبت میکند) دقیقاً همان نوع دادهای است که پلتفرمهای متمرکز و حوزهٔ قضایی میزبان آنها ثبت و در اختیار دیگران قرار میدهند. روی یک VPS آفشور و بدون KYC که با ارز دیجیتال پرداخت شده، هومسروری که پیامها و کلیدهای رمزنگاری جامعهٔ شما را نگه میدارد به هیچ هویت واقعی ثبت نشده و در حوزهٔ قضایی حریمخصوصیمحوری خارج از دسترس کشور شما قرار دارد.
استقرار
یک پیکربندی مرجع کاربردی
این را روی یک instance تازه از ChainVPS کپی کنید. جایگزینها را با مقادیر واقعی جایگزین کنید، سپس آن را راهاندازی کنید.
# ── One-time setup, run in order on Ubuntu 24.04 (Docker + compose-plugin installed) ──
#
# 1. Generate Synapse's config (replace matrix.example.com with your real domain):
# mkdir -p synapse-data pgdata
# docker run --rm -v "$(pwd)/synapse-data:/data" \
# -e SYNAPSE_SERVER_NAME=matrix.example.com \
# -e SYNAPSE_REPORT_STATS=no \
# ghcr.io/element-hq/synapse:latest generate
#
# 2. In synapse-data/homeserver.yaml, REPLACE the generated sqlite `database:`
# block with the postgres block shown at the bottom of this file, and add
# `x_forwarded: true` under the port-8008 listener (you are behind a proxy).
#
# 3. Bring the stack up: docker compose up -d
#
# 4. Create your admin user:
# docker compose exec synapse register_new_matrix_user \
# -u admin -a -c /data/homeserver.yaml http://localhost:8008
#
# 5. Put a TLS reverse proxy (Caddy/nginx) on 443 -> 127.0.0.1:8008 and serve
# /.well-known/matrix/server + /.well-known/matrix/client for federation.
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: synapse
POSTGRES_PASSWORD: CHANGE_ME_STRONG_DB_PASSWORD
POSTGRES_DB: synapse
# Synapse REQUIRES the DB to use C locale — this is a hard requirement:
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
volumes:
- ./pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U synapse"]
interval: 10s
timeout: 5s
retries: 5
synapse:
image: ghcr.io/element-hq/synapse:latest
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
SYNAPSE_SERVER_NAME: matrix.example.com
SYNAPSE_REPORT_STATS: "no"
volumes:
- ./synapse-data:/data
ports:
# Client + federation HTTP. Bound to localhost — TLS is terminated by
# your reverse proxy. Never expose 8008 to the internet in the clear.
- "127.0.0.1:8008:8008"
# ── Paste this into synapse-data/homeserver.yaml, replacing the sqlite block ──
# database:
# name: psycopg2
# args:
# user: synapse
# password: CHANGE_ME_STRONG_DB_PASSWORD
# dbname: synapse
# host: db
# port: 5432
# cp_min: 5
# cp_max: 10
فایروال
پورتهایی که باید باز شوند
| پورت | پروتکل | هدف |
|---|---|---|
| 443 | TCP | پراکسی معکوس HTTPS: Element/client API + تفویض فدراسیون /.well-known (تنها پورتی که باید رو به اینترنت باز باشد) |
| 8008 | TCP | شنوندهٔ HTTP کلاینت+فدراسیون Synapse — فقط به 127.0.0.1 بایند شود، TLS توسط پراکسی مدیریت میشود |
| 8448 | TCP | پورت اختیاری فدراسیون مستقیم؛ فقط در صورتی لازم است که از تفویض .well-known استفاده نکنید (به TLS مخصوص به خود نیاز دارد) |
| 5432 | TCP | PostgreSQL — فقط در شبکهٔ داخلی Docker، هرگز به هاست یا اینترنت منتشر نشود |
تعیین اندازه مناسب
به کدام پلن نیاز دارید
VPS Nano / Small (2 vCPU, 2-4 GB RAM)
سرور شخصی یا خانوادگی، با کمتر از حدود 10 کاربر، فدراسیون کم یا بدون فدراسیون. Synapse بهشدت به حافظه وابسته است — 2 GB کف واقعی است و اگر به اتاقهای عمومی بزرگ بپیوندید به 4 GB نیاز دارید.
VPS Pro (4 vCPU, 8 GB RAM)
جامعهای کوچک با دهها تا چند صد کاربر و فدراسیون فعال. کشهای Synapse و shared_buffers پستگرس را تنظیم کنید؛ فضای ذخیرهسازی SSD برای رسانه و پایگاهداده اهمیت دارد.
Dedicated (8+ cores, 16-32 GB RAM)
صدها تا هزاران کاربر یا عضویت در اتاقهای فدرهشدهٔ بسیار بزرگ. Synapse را به ورکرها (federation sender، sync، media) تقسیم کنید و برای Postgres تنظیمات اختصاصی خود را انجام دهید؛ پهنایباند نامحدود باعث میشود ترافیک رسانه/فدراسیون سقف نداشته باشد.
بهترین مکانها: برای یک سرور ارتباطی، موقعیتی از ردهٔ حریمخصوصی انتخاب کنید: سوئیس و ایسلند حوزههای قضایی قدرتمندی برای حفاظت از داده ارائه میدهند و خانهٔ طبیعی برای هومسروری هستند که متادیتای پیام و کلیدها را نگه میدارد، در حالی که هلند و لوکزامبورگ مسیرهایی کمتأخیر و با پیرینگ خوب به اروپا ارائه میدهند که چت و تماس بلادرنگ را روانتر میکند. از آنجا که Matrix بلادرنگ است، منطقهای از ردهٔ حریمخصوصی که به کاربران اصلی شما نزدیکتر است را ترجیح دهید؛ پهنایباند نامحدود و محافظت DDoS شاملشده اهمیت دارند، چون هومسروری فدرهشده و رو به اینترنت همواره هدفی ثابت است.
آن را قفل کنید
چکلیست سختسازی امنیتی
- ثبتنام باز را غیرفعال کنید: enable_registration: false را تنظیم کنید یا ثبتنامها را پشت registration_requires_token با توکنهای اختصاصی هر دعوت قرار دهید — یک سرور Matrix باز ظرف چند روز پیدا و با رباتهای اسپم پر میشود.
- کنترل فدراسیون: از تفویض /.well-known/matrix/server استفاده کنید تا server_name شما تمیز بماند (@user:example.com)، و اگر سرور خصوصی است federation_domain_whitelist را تنظیم کنید (یا فدراسیون را کاملاً غیرفعال کنید) تا سرورهای ناشناخته نتوانند به شما دسترسی پیدا کنند.
- پیشنمایش URL و رسانه را قفل کنید: url_preview_enabled در سمت سرور URLهای دلخواه را واکشی میکند (ریسک SSRF) — url_preview_ip_range_blacklist پیشفرض را برای بازههای خصوصی نگه دارید، max_upload_size را محدود کنید و پاکسازی/نگهداری دورهای رسانه را اجرا کنید، چون فضای ذخیرهسازی رسانه بدون محدودیت رشد میکند.
- محدودیتهای نرخ را پشت پراکسی سختتر کنید: x_forwarded: true را روی شنوندهٔ 8008 تنظیم کنید تا Synapse آیپی واقعی کلاینتها را ببیند، سپس rc_login، rc_registration و rc_message را برای کاهش حملات brute-force و سوءاستفاده تنظیم کنید؛ محافظت DDoS ChainVPS لایهٔ L3/4 زیرین را پوشش میدهد.
- از Postgres و کلید امضا پشتیبان بگیرید: بهطور منظم از پایگاهداده dump بگیرید و synapse-data/*.signing.key را در جایی خارج از سرور کپی کنید — از دست دادن کلید امضا به معنای از بین رفتن دائمی هویت سرور و تمام اعتماد فدراسیون شماست.
- بهروزرسانی را ادامه دهید: تگ ghcr.io/element-hq/synapse را پین و بهطور منظم ارتقا دهید، report_stats: no را حفظ کنید، و هرگز پورت 8008 یا 5432 را به اینترنت منتشر نکنید — فقط 443 (و بهصورت اختیاری 8448) باید در دسترس باشد.
پرسشها
هاستینگ Matrix (Synapse) — سوالات متداول
آیا به دامنهٔ اختصاصی خودم نیاز دارم؟
بله. شناسههای کاربری Matrix و فدراسیون به یک دامنه گره خوردهاند (مثلاً @you:example.com). به دامنهای با DNS تحت کنترل خودتان نیاز دارید تا به VPS اشاره کند و رکوردهای فدراسیون /.well-known را سرو کند. دامنه را میتوان از طریق یک ریجیستراری که به حریم خصوصی احترام میگذارد ثبت کرد؛ خود سرور بدون KYC باقی میماند.
آیا میتوانم Synapse را کاملاً خصوصی و بدون فدراسیون اجرا کنم؟
بله. یک federation_domain_whitelist خالی تنظیم کنید یا شنوندهٔ فدراسیون را حذف کنید تا هومسرور شما هرگز با شبکهٔ عمومی Matrix صحبت نکند. کاربران شما همچنان چت، صدا و ویدیوی کاملاً رمزنگاریشدهٔ سرتاسر را میان خودشان دارند، تماماً روی سرور آفشور شما.
چرا PostgreSQL بهجای SQLite پیشفرض؟
Synapse فقط برای تست سریع با SQLite ارائه میشود. این پایگاهداده همزمانی یا بار فدراسیون را مدیریت نمیکند و نمیتوان آن را با ورکرها مقیاس داد. هر استقرار واقعی باید از PostgreSQL ساختهشده با locale نوع C استفاده کند (فایل compose بالا این کار را برای شما انجام میدهد)؛ مهاجرت بعدی دردسرساز است، پس از همان ابتدا با Postgres شروع کنید.
Synapse واقعاً چقدر RAM نیاز دارد؟
بیشتر از چیزی که افراد انتظار دارند. یک سرور آرام و تککاربره در حدود 1.5-2 GB جا میشود، اما به محض پیوستن به اتاقهای فدرهشدهٔ بزرگ، کشهای هر اتاق مصرف حافظه را بهشدت بالا میبرند. برای یک جامعهٔ کوچک 4 GB در نظر بگیرید و کشها (caches: global_factor) را متناسب با RAM خود مقیاس دهید، نه اینکه اجازه دهید بدون کنترل رشد کنند.
کاربران من چه کلاینتی نصب کنند؟
Element (وب، دسکتاپ، iOS، Android) کلاینت استاندارد Matrix است و با وارد کردن URL هومسرور شما به آن متصل میشود. رکورد /.well-known/matrix/client که روی 443 سرو میکنید به Element اجازه میدهد سرور شما را فقط از روی شناسهٔ Matrix کاربر بهطور خودکار کشف کند.
آیا میزبانی آفشور به فدراسیون یا کیفیت تماس آسیب میزند؟
خیر. فدراسیون صرفنظر از موقعیت مکانی روی HTTPS استاندارد کار میکند، و محافظت DDoS شاملشده سرور رو به عموم را پایدار نگه میدارد. برای صدا/ویدیوی بلادرنگ، موقعیتی از ردهٔ حریمخصوصی که به کاربران شما نزدیکتر است انتخاب کنید تا تأخیر کمینه شود؛ هلند و لوکزامبورگ برای ترافیک اروپایی پیرینگ خوبی دارند.
موارد بیشتر برای میزبانی شخصی
سایر استکهای تککلیکی
راهاندازی کنید Matrix (Synapse)
در 60 ثانیه آینده.
پهنای باند نامحدود · محافظت DDoS شامل است · 21 ارز دیجیتال · بدون KYC.