Matrix एक ओपन चैट नेटवर्क है। जब आप अपना Matrix होमसर्वर चलाते हैं, तो आपके संदेश और खाते आपके सर्वर पर रहते हैं, और फिर भी आप दूसरे Matrix सर्वर के लोगों से बात कर सकते हैं। यह गाइड HTTPS के पीछे Docker और PostgreSQL के साथ रेफ़रेंस होमसर्वर Synapse इंस्टॉल करती है।
पहले क्या जानना चाहिए
- फ़ेडरेशन। आपका सर्वर दूसरों से बात कर सकता है, यानी जिन रूम में आप शामिल होते हैं उन्हें स्टोर करने के लिए यह बैंडविड्थ और डिस्क इस्तेमाल करता है। छोटे निजी सर्वर हल्के रहते हैं। बहुत बड़े सार्वजनिक रूम में शामिल होना हल्का नहीं है।
- आकार। छोटे समूह के लिए 2 vCPU और 4 GB RAM ठीक है। देखें Matrix सर्वर होस्टिंग।
- डोमेन। आपको एक डोमेन चाहिए। सर्वर का नाम (उदाहरण के लिए
example.com) हर यूज़र ID का हिस्सा होता है और बाद में बदला नहीं जा सकता।
चरण 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
चरण 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"}}`
}
}
DNS चालू होने के बाद Matrix Federation Tester से फ़ेडरेशन टेस्ट करें।
चरण 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 को अपडेट रखें। पहले सर्वर हार्डनिंग पढ़ें।