CentOS 7 पर मैट्रिक्स Synapse और Riot का उपयोग करके एक चैट सर्वर बनाएं

मैट्रिक्स विकेंद्रीकृत वास्तविक समय संचार के लिए एक खुला मानक संचार प्रोटोकॉल है। मैट्रिक्स को घर के सर्वर के रूप में लागू किया जाता है जो इंटरनेट पर वितरित किए जाते हैं; इसलिए नियंत्रण या विफलता का एक भी बिंदु नहीं है। मैट्रिक्स वितरित चैट सर्वर को बनाने और प्रबंधित करने के लिए एक RESTful HTTP API प्रदान करता है जिसमें चैट रूम के सदस्यों को संदेश भेजना और प्राप्त करना, आमंत्रित करना और प्रबंधित करना, उपयोगकर्ता खाते बनाए रखना और उन्नत चैट सुविधाएँ जैसे कि वीओआईपी और वीडियो कॉल आदि प्रदान करना शामिल है, मैट्रिक्स भी एक की स्थापना करता है। दुनिया भर में वितरित किए जाने वाले होम सर्वर के बीच सुरक्षित सिंक्रनाइज़ेशन।

Synapse मैट्रिक्स टीम द्वारा लिखित मैट्रिक्स होम सर्वर का कार्यान्वयन है। मैट्रिक्स इकोसिस्टम में दुनिया भर में वितरित कई फ़ेडरेटेड होम सर्वर के नेटवर्क होते हैं। एक मैट्रिक्स उपयोगकर्ता होम सर्वर से कनेक्ट करने के लिए एक चैट क्लाइंट का उपयोग करता है, जो बदले में मैट्रिक्स नेटवर्क से जुड़ता है। गृहस्वामी चैट इतिहास और उस विशेष उपयोगकर्ता की लॉगिन जानकारी संग्रहीत करता है।

आवश्यक शर्तें

  • एक Vultr CentOS 7 सर्वर उदाहरण।
  • एक sudo यूजर

इस ट्यूटोरियल में, हम matrix.example.comमैट्रिक्स सिंकैप के लिए डोमेन नाम का उपयोग करेंगे। matrix.example.comअपने Synapse होम सर्वर के लिए अपने वास्तविक डोमेन नाम के साथ होने वाली सभी घटनाओं को प्रतिस्थापित करें।

सेंटोस 7 को अपडेट करने के लिए गाइड का उपयोग करके अपनी आधार प���रणाली को अपडेट करें । एक बार आपका सिस्टम अपडेट हो जाने के बाद, पायथन को स्थापित करने के लिए आगे बढ़ें।

विकास उपकरण स्थापित करें

मैट्रिक्स Synapse को काम करने के लिए पायथन 2.7 की आवश्यकता है। पायथन 2.7 सभी CentOS सर्वर इंस्टेंस में प्रीइंस्टॉल्ड आता है। आप पायथन के स्थापित संस्करण की जांच कर सकते हैं।

python -V

आपको एक समान आउटपुट मिलना चाहिए।

[user@vultr ~]$ python -V
Python 2.7.5

पायथन के डिफ़ॉल्ट संस्करण को बदलने से यम भंडार प्रबंधक टूट सकता है। हालांकि, यदि आप पायथन का सबसे हालिया संस्करण चाहते हैं, तो आप डिफ़ॉल्ट पायथन की जगह के बिना, एक वैकल्पिक इंस्टॉल कर सकते हैं।

Development toolsइंस्टॉलर फ़ाइलों को संकलित करने के लिए आवश्यक समूह में संकुल को स्थापित करें।

sudo yum groupinstall -y "Development tools"

कुछ और आवश्यक निर्भरताएँ स्थापित करें।

sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel 

अजगर पाइप स्थापित करें। पिप पायथन पैकेज के लिए निर्भरता प्रबंधक है।

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Synapse स्थापित करें

अपने Synapse अनुप्रयोग के लिए एक आभासी वातावरण बनाएँ। पायथन प्रोजेक्ट के लिए एक अलग आभासी वातावरण बनाने के लिए पायथन वर्चुअल वातावरण का उपयोग किया जाता है। एक आभासी वातावरण की अपनी स्थापना निर्देशिकाएं होती हैं और यह वैश्विक और अन्य आभासी वातावरणों के साथ पुस्तकालयों को साझा नहीं करता है।

sudo virtualenv -p python2.7 /opt/synapse

वर्तमान उपयोगकर्ता को निर्देशिका का स्वामित्व प्रदान करें।

sudo chown -R $USER:$USER /opt/synapse/

अब वर्चुअल वातावरण सक्रिय करें।

source /opt/synapse/bin/activate

सुनिश्चित करें कि आप का नवीनतम संस्करण है कि pipऔर setuptools

pip install --upgrade pip 
pip install --upgrade setuptools

पाइप का उपयोग करके Synapse का नवीनतम संस्करण स्थापित करें।

pip install https://github.com/matrix-org/synapse/tarball/master

उपरोक्त कमांड को निष्पादित होने में कुछ समय लगेगा क्योंकि यह सिनाप्स का नवीनतम संस्करण और गितुब भंडार से सभी निर्भरता को खींचता है और स्थापित करता है।

PostgreSQL को स्थापित और कॉन्फ़िगर करना

Synapse डिफ़ॉल्ट डेटाबेस के रूप में SQLite का उपयोग करता है। SQLite एक डेटाबेस में डेटा संग्रहीत करता है जिसे डिस्क पर एक फ्लैट फ़ाइल के रूप में रखा जाता है। SQLite का उपयोग करना बहुत सरल है, लेकिन उत्पादन के लिए अनुशंसित नहीं है क्योंकि यह PostgreSQL की तुलना में बहुत धीमा है।

PostgreSQL एक ऑब्जेक्ट रिलेशनल डेटाबेस सिस्टम है। आपको अपने सिस्टम में PostgreSQL रिपॉजिटरी को जोड़ना होगा, क्योंकि एप्लिकेशन डिफ़ॉल्ट YUM रिपॉजिटरी में उपलब्ध नहीं है।

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

PostgreSQL डेटाबेस सर्वर स्थापित करें।

sudo yum -y install postgresql96-server postgresql96-contrib

डेटाबेस को प्रारंभ करें।

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

/var/lib/pgsql/9.6/data/pg_hba.confMD5 आधारित प्रमाणीकरण सक्षम करने के लिए संपादित करें ।

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

निम्नलिखित पंक्तियों को खोजें और उनमें peerसे trustऔर idnetको बदलें md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            idnet
# IPv6 local connections:
host    all             all             ::1/128                 idnet

एक बार अद्यतन करने के बाद, कॉन्फ़िगरेशन इस तरह दिखना चाहिए।

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

PostgreSQL सर्वर शुरू करें और इसे बूट पर स्वचालित रूप से शुरू करने के लिए सक्षम करें।

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

डिफ़ॉल्ट PostgreSQL उपयोगकर्ता के लिए पासवर्ड बदलें।

sudo passwd postgres

लॉग इन करें।

sudo su - postgres

Synapse के लिए एक नया PostgreSQL उपयोगकर्ता बनाएं।

createuser synapse

PostgreSQL psqlडेटाबेस पर प्रश्नों को चलाने के लिए शेल प्रदान करता है । चल कर PostgreSQL शेल पर स्विच करें।

psql

Synapse डेटाबेस के लिए नए बनाए गए उपयोगकर्ता के लिए एक पासवर्ड सेट करें।

ALTER USER synapse WITH ENCRYPTED password 'DBPassword';

DBPasswordएक मजबूत पासवर्ड के साथ बदलें और इसका एक नोट बनाएं क्योंकि हम बाद में पासवर्ड का उपयोग करेंगे। PostgreSQL डेटाबेस के लिए एक नया डेटाबेस बनाएँ।

CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;

psqlखोल से बाहर निकलें ।

\q

sudoवर्तमान postgresउपयोगकर्ता से उपयोगकर्ता पर स्विच करें।

exit

PostgreSQL डेटाबेस सर्वर के साथ संवाद करने के लिए आपको Synapse के लिए आवश्यक पैकेजों को भी स्थापित करना होगा।

sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2

सिंकिंग कॉन्फ़िगर करना

Synapse को प्रारंभ करने से पहले कॉन्फ़िगरेशन फ़ाइल की आवश्यकता होती है। कॉन्फ़िगरेशन फ़ाइल सर्वर सेटिंग्स संग्रहीत करता है। वर्चुअल वातावरण में स्विच करें और Synapse के लिए कॉन्फ़िगरेशन जनरेट करें।

source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes

matrix.example.comअपने वास्तविक डोमेन नाम से प्रतिस्थापित करें और सुनिश्चित करें कि सर्वर का नाम आपके वल्चर उदाहरण के आईपी पते के लिए resolvable है। --report-stats=yesयदि आप सर्वर को रिपोर्ट जनरेट करना चाहते हैं तो प्रदान करें , --report-stats=noरिपोर्ट और आंकड़ों की पीढ़ी को अक्षम करने के लिए प्रदान करें।

आपको एक समान आउटपुट देखना चाहिए।

(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates

डिफ़ॉल्ट रूप से, homeserver.yamlSQLite डेटाबेस का उपयोग करने के लिए कॉन्फ़िगर किया गया है। हमें पहले बनाए गए PostgreSQL डेटाबेस का उपयोग करने के लिए इसे संशोधित करने की आवश्यकता है।

नए बनाए गए को संपादित करें homeserver.yaml

nano homeserver.yaml

मौजूदा डेटाबेस कॉन्फ़िगरेशन का पता लगाएं जो SQLite3 का उपयोग करता है। नीचे दी गई लाइनों के अनुसार टिप्पणी करें। इसके अलावा, PostgreSQL के लिए नया डेटाबेस कॉन्फ़िगरेशन जोड़ें। सुनिश्चित करें कि आप सही डेटाबेस क्रेडेंशियल्स का उपयोग करते हैं।

# Database configuration
#database:
  # The database engine name
  #name: "sqlite3"
  # Arguments to pass to the engine
  #args:
    # Path to the database
    #database: "/opt/synapse/homeserver.db"


database:
    name: psycopg2
    args:
        user: synapse
        password: DBPassword
        database: synapse
        host: localhost
        cp_min: 5
        cp_max: 10

वेब इंटरफ़ेस से नए उपयोगकर्ता का पंजीकरण डिफ़ॉल्ट रूप से अक्षम है। पंजीकरण सक्षम करने के लिए, आप सेट कर सकते हैं enable_registrationकरने के लिए True। आप एक गुप्त पंजीकरण कुंजी भी सेट कर सकते हैं, जो किसी को भी पंजीकरण करने की अनुमति देता है, जिसके पास गुप्त कुंजी है, भले ही पंजीकरण अक्षम हो।

enable_registration: False

registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"

फ़ाइल को सहेजें और संपादक से बाहर निकलें। अब आपको अपना पहला उपयोगकर्ता पंजीकृत करना होगा। इससे पहले कि आप एक नया उपयोगकर्ता पंजीकृत कर सकें, हालांकि, आपको पहले आवेदन शुरू करना होगा।

source /opt/synapse/bin/activate && cd /opt/synapse
synctl start

आपको निम्नलिखित पंक्तियाँ देखनी चाहिए।

2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')

एक नया मैट्रिक्स उपयोगकर्ता पंजीकृत करें।

register_new_matrix_user -c homeserver.yaml https://localhost:8448

आपको निम्नलिखित देखना चाहिए।

(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.

अंत में, होमर्सवर का उपयोग करने से पहले, आपको फ़ायरवॉल के माध्यम से पोर्ट 8448 को अनुमति देने की आवश्यकता होगी। पोर्ट 8448का उपयोग सुरक्षित फेडरेशन पोर्ट के रूप में किया जाता है। गृहस्वामी इस बंदरगाह का उपयोग सुरक्षित रूप से एक दूसरे के साथ संवाद करने के लिए करते हैं। आप इस पोर्ट के माध्यम से अंतर्निहित मैट्रिक्स वेब चैट क्लाइंट का भी उपयोग कर सकते हैं।

sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload

अब आप https://matrix.example.com:8448अपने पसंदीदा ब्राउज़र के माध्यम से जाकर मैट्रिक्स वेब चैट क्लाइंट में लॉग इन कर सकते हैं । SSL प्रमाणपत्र के बारे में आपको एक चेतावनी दिखाई देगी क्योंकि उपयोग किए गए प्रमाणपत्र स्व-हस्ताक्षरित हैं। हम इस वेब चैट क्लाइंट का उपयोग नहीं करेंगे क्योंकि यह पुराना है और इसका रखरखाव नहीं किया गया है। बस यह जांचने की कोशिश करें कि क्या आप अपने द्वारा बनाए गए उपयोगकर्ता खाते का उपयोग करके लॉग इन कर सकते हैं।

सेट अप करें आइए एन्क्रिप्ट करें प्रमाण पत्र

फेडरेशन पोर्ट को सुरक्षित करने के लिए स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करने के बजाय, हम लेट्स एनक्रिप्ट फ्री एसएसएल का उपयोग कर सकते हैं। आइए एनक्रिप्ट फ्री एसएसएल को आधिकारिक के माध्यम से प्राप्त किया जा सकता है।

प्रमाण पत्र स्थापित करें।

sudo yum -y install certbot

फ़ायरवॉल के माध्यम से मानक HTTPऔर HTTPSबंदरगाहों की अनुमति देने के लिए अपनी फ़ायरवॉल सेटिंग को समायोजित करें । सर्टिफिकेट HTTPको डोमेन अथॉरिटी को सत्यापित करने के लिए एक कनेक्शन बनाने की जरूरत है ।

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

लेट्स एनक्रिप्ट क्रॉ से सर्टिफिकेट प्राप्त करने के लिए, आपको यह सुनिश्चित करना होगा कि जिस सर्टिफिकेट के लिए आप सर्टिफिकेट जनरेट करना चाहते हैं, वह सर्वर की ओर इंगित किया गया है। यदि ऐसा नहीं है, तो अपने डोमेन के DNS रिकॉर्ड्स में आवश्यक परिवर्तन करें और फिर से प्रमाणपत्र अनुरोध करने से पहले DNS के प्रचार के लिए प्रतीक्षा करें। सर्टिफिकेट सर्टिफिकेट प्रदान करने से पहले डोमेन प्राधिकरण की जांच करता है।

अब अपने डोमेन के लिए प्रमाणपत्र बनाने के लिए सर्टिफिकेट में बिल्ट-इन वेब सर्वर का उपयोग करें।

sudo certbot certonly --standalone -d matrix.example.com

जनरेट किए गए प्रमाणपत्रों को संग्रहीत किए जाने की संभावना है /etc/letsencrypt/live/matrix.example.com/। एसएसएल प्रमाण पत्र के रूप में संग्रहीत किया जाएगा fullchain.pemऔर निजी कुंजी के रूप में संग्रहीत किया जाएगा privkey.pem

प्रमाणपत्रों की प्रतिलिपि बनाएँ।

sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem

sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem

आपको homeserver.yamlफ़ाइल से प्रमाणपत्र और कुंजियों के लिए पथ बदलना होगा । कॉन्फ़िगरेशन संपादित करें।

nano /opt/synapse/homeserver.yaml

निम्नलिखित पंक्तियों को खोजें और पथ को संशोधित करें।

tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"

# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"

फ़ाइल को सहेजें और संपादक से बाहर निकलें। Synapse सर्वर को पुनरारंभ करें ताकि परिवर्तन प्रभावी हो सकें।

source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart

मान लें कि 90 दिनों में समाप्त हो जाने के कारण एन्क्रिप्ट किए गए प्रमाण पत्र हैं, इसलिए यह अनुशंसा की जाती है कि आप क्रोन नौकरियों का उपयोग करके प्रमाण पत्र के लिए ऑटो नवीनीकरण सेटअप करें। क्रोन एक प्रणाली सेवा है जिसका उपयोग आवधिक कार्यों को चलाने के लिए किया जाता है।

प्रमाणपत्रों को नवीनीकृत करने के लिए एक नई स्क्रिप्ट बनाएं और नए प्रमाणपत्रों को Synapse निर्देशिका में कॉपी करें।

sudo nano /opt/renew-letsencypt.sh  

फ़ाइल को पॉप्युलेट करें।

#!/bin/sh

/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem

निष्पादन की अनुमति प्रदान करें।

sudo chmod +x /opt/renew-letsencypt.sh

क्रोन जॉब फ़ाइल खोलें।

sudo crontab -e

फ़ाइल के अंत में निम्न पंक्ति जोड़ें।

30 5 * * 1 /opt/renew-letsencypt.sh

उपरोक्त क्रोन नौकरी प्रत्येक सोमवार को सुबह 5:30 बजे चलेगी। यदि प्रमाणपत्र समाप्त होने के कारण है, तो यह स्वचालित रूप से उन्हें नवीनीकृत करेगा।

अब आप यात्रा कर सकते हैं https://matrix.example.com:8448। आप देखेंगे कि कनेक्शन से पहले कोई एसएसएल चेतावनी नहीं है।

एनगिनक्स को एनक्रिप्ट के साथ सेटअप करें

सुरक्षित फेडरेशन पोर्ट के अलावा 8448, Synapse भी असुरक्षित क्लाइंट पोर्ट को सुनता है 8008। अब हम Nginx को Synapse एप्लिकेशन के लिए एक रिवर्स प्रॉक्सी के रूप में कॉन्फ़िगर करेंगे।

sudo yum -y install nginx

एक नई कॉन्फ़िगरेशन फ़ाइल बनाएँ।

sudo nano /etc/nginx/conf.d/synapse.conf

फ़ाइल को निम्न सामग्री से आबाद करें।

server {
    listen 80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name matrix.example.com;

    ssl_certificate           /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/matrix.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /var/log/nginx/synapse.access.log;

    location /_matrix {

      proxy_pass          http://localhost:8008;
      proxy_set_header X-Forwarded-For $remote_addr;

    }
  }

बूट समय पर स्वचालित रूप से प्रारंभ करने के लिए Nginx को पुनरारंभ करें और सक्षम करें।

sudo systemctl restart nginx
sudo systemctl enable nginx

अंत में, आप सत्यापित कर सकते हैं कि क्या Synapse को रिवर्स प्रॉक्सी के माध्यम से एक्सेस किया जा सकता है।

curl https://matrix.example.com/_matrix/key/v2/server/auto

आपको इसी तरह का आउटपुट मिलना चाहिए।

[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}

Systemd सेवा की स्थापना

Synapse सर्वर प्रक्रिया का प्रबंधन करने के लिए Systemd सेवा का उपयोग करने की अनुशंसा की जाती है। Systemd का उपयोग यह सुनिश्चित करेगा कि सर्वर स्वचालित रूप से सिस्टम स्टार्टअप और विफलताओं पर शुरू किया गया है।

एक नई Systemd सेवा फ़ाइल बनाएँ।

sudo nano /etc/systemd/system/matrix-synapse.service

फ़ाइल को पॉप्युलेट करें।

[Unit]
Description=Matrix Synapse service
After=network.target

[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse

[Install]
WantedBy=multi-user.target

अब आप जल्दी से Synapse सर्वर शुरू कर सकते हैं।

sudo systemctl start matrix-synapse

निम्न आदेशों का उपयोग करके सर्वर को रोकने या पुनः आरंभ करने के लिए।

sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse

आप सेवा की स्थिति देख सकते हैं।

sudo systemctl status matrix-synapse

दंगा का उपयोग करना

मैट्रिक्स सिंकैप सर्वर अब आपके सर्वर पर स्थापित और कॉन्फ़िगर किया गया है। जैसा कि मैट्रिक्स के लिए अंतर्निहित वेब क्लाइंट पुराना है, आप चैट के लिए उपलब्ध क्लाइंट एप्लिकेशन की विविधता से चुन सकते हैं । दंगा सबसे लोकप्रिय चैट क्लाइंट है, जो लगभग सभी प्लेटफार्मों पर उपलब्ध है। आप दंगा के वेब चैट क्लाइंट के होस्ट किए गए संस्करण का उपयोग कर सकते हैं, या आप इसकी प्रतिलिपि अपने स्वयं के सर्वर पर भी होस्ट कर सकते हैं। इसके अलावा आप दंगा के डेस्कटॉप और मोबाइल चैट क्लाइंट का भी उपयोग कर सकते हैं, जो विंडोज, मैक, लिनक्स, आईओएस और एंड्रॉइड के लिए उपलब्ध हैं।

यदि आप दंगा वेब क्लाइंट की अपनी प्रति होस्ट करना चाहते हैं, तो आप अपने सर्वर पर दंगा स्थापित करने के निर्देशों के लिए आगे पढ़ सकते हैं। होस्ट किए गए डेस्कटॉप और मोबाइल क्लाइंट के लिए, आप अपने उपयोगकर्ता नाम और पासवर्ड का उपयोग करके सीधे अपने होमसर्वर में प्रवेश कर सकते हैं। बस विकल्प my Matrix IDके ड्रॉपडाउन मेनू से Sign Inचुनें और एक नए उपयोगकर्ता के पंजीकरण के दौरान आपके द्वारा बनाया गया उपयोगकर्ता नाम और पासवर्ड प्रदान करें। Custom serverअपने Synapse उदाहरण के डोमेन नाम पर क्लिक करें और उसका उपयोग करें। जैसा कि हमने पहले ही Nginx को कॉन्फ़िगर किया है, हम केवल https://matrix.example.comहोम सर्वर और https://matrix.orgआइडेंटिटी सर्वर URL के रूप में उपयोग कर सकते हैं ।

दंगा लॉगिन उदाहरण

अपने स्वयं के सर्वर पर दंगा सेटअप करें।

दंगा भी खुला स्रोत है और अपने स्वयं के सर्वर पर होस्ट करने के लिए स्वतंत्र है। इसके लिए किसी डेटाबेस या निर्भरता की आवश्यकता नहीं है। जैसा कि हमारे पास पहले से ही Nginx सर्वर चल रहा है, हम इसे उसी सर्वर पर होस्ट कर सकते हैं।

आपके द्वारा Synapse और Riot के लिए उपयोग किए जा रहे डोमेन या सबडोमेन क्रॉस-साइट स्क्रिप्टिंग से बचने के लिए अलग-अलग होने चाहिए। हालाँकि, आप एक ही डोमेन के दो उप डोमेन का उपयोग कर सकते हैं। इस ट्यूटोरियल में, हम riot.example.comदंगा अनुप्रयोग के लिए डोमेन के रूप में उपयोग करेंगे। riot.example.comदंगा आवेदन के लिए अपने वास्तविक डोमेन या उपडोमेन की सभी घटनाओं को बदलें ।

अपने सर्वर पर दंगा डाउनलोड करें।

cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz

आप हमेशा दंगा के गितुब पर नवीनतम संस्करण का लिंक पा सकते हैं ।

संग्रह निकालें।

sudo tar -xzf riot-v*.tar.gz

सुविधा को संभालने के लिए निर्देशिका का नाम बदलें।

sudo mv riot-v*/ riot/

क्योंकि हमने पहले ही सर्टिफिकेट स्थापित कर लिया है, हम सीधे सर्टिफिकेट तैयार कर सकते हैं। सुनिश्चित करें कि आपके द्वारा उपयोग किया जा रहा डोमेन या उपडोमेन सर्वर की ओर इंगित किया गया है।

sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com

जेनरेट किए गए प्रमाणपत्रों को /etc/letsencrypt/live/riot.example.com/निर्देशिका में संग्रहीत किए जाने की संभावना है ।

दंगा आवेदन के लिए एक आभासी मेजबान बनाएँ।

sudo nano /etc/nginx/conf.d/riot.conf

फ़ाइल को पॉप्युलेट करें।

server {
    listen 80;
    server_name riot.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name riot.example.com;

    ssl_certificate           /etc/letsencrypt/live/riot.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/riot.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    root /opt/riot;
    index index.html index.htm;

    location / {
            try_files $uri $uri/ =404;
    }

    access_log    /var/log/nginx/riot.access.log;

  }

नमूना कॉन्फ़िगरेशन फ़ाइल की प्रतिलिपि बनाएँ।

sudo cp /opt/riot/config.sample.json /opt/riot/config.json

अब कुछ बदलाव करने के लिए कॉन्फ़िगरेशन फ़ाइल को संपादित करें।

sudo nano /opt/riot/config.json

निम्नलिखित पंक्तियों का पता लगाएं।

"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",

अपने मैट्रिक्स सर्वर के URL के साथ डिफ़ॉल्ट होम सर्वर URL के मूल्य को बदलें। पहचान सर्वर URL के लिए, आप डिफ़ॉल्ट विकल्प का उपयोग कर सकते हैं, या आप इसकी पहचान मैट्रिक्स पहचान सर्वर को भी प्रदान कर सकते हैं, जो है https://matrix.org

"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",

फ़ाइल सहेजें और बाहर निकलें। Nginx उपयोगकर्ता को फ़ाइलों का स्वामित्व प्रदान करें।

sudo chown -R nginx:nginx /opt/riot/

Nginx को पुनरारंभ करें।

sudo systemctl restart nginx

आप दंगा पर पहुंच सकते हैं https://riot.example.com। अब आप उस उपयोगकर्ता नाम और पासवर्ड का उपयोग करके लॉग इन कर सकते हैं, जिसे आपने पहले बनाया है। आप डिफ़ॉल्ट सर्वर का उपयोग करके कनेक्ट कर सकते हैं क्योंकि हमने अपने एप्लिकेशन के लिए पहले से ही डिफ़ॉल्ट मैट्रिक्स सर्वर को बदल दिया है।

अब आपके पास मैट्रिक्स सिनैप्स होम सर्वर अप और रनिंग है। आपके पास Riot की एक होस्टेड प्रति भी है, जिसका उपयोग आप अन्य लोगों को अपनी मैट्रिक्स आईडी, ईमेल य��� मोबाइल नंबर का उपयोग करके संदेश भेजने के लिए कर सकते हैं। अपने सर्वर पर एक चैट रूम बनाकर शुरुआत करें और अपने दोस्तों को अपने द्वारा बनाए गए चैट रूम में शामिल होने के लिए मैट्रिक्स पर आमंत्रित करें।



कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ

CentOS 7 पर RockMongo स्थापित करें

CentOS 7 पर RockMongo स्थापित करें

RockMongo एक वेब-आधारित MongoDB प्रबंधन उपकरण है जो MySQL प्रबंधन उपकरण के समान है: phpMyAdmin। यह ट्यूटोरियल इंस्टॉलिन की प्रक्रिया को कवर करेगा

CentOS 7 पर बुक किए गए समयबद्धक को कैसे स्थापित करें

CentOS 7 पर बुक किए गए समयबद्धक को कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? आवश्यकताएँ एक Vultr CentOS 7 सर्वर उदाहरण। एक sudo यूजर। चरण 1: सिस्टम को पहले अपडेट करें, अपने सिस्टम सर्वर को वें में अपडेट करें

CentOS 7 पर नेटडाटा स्थापित करना

CentOS 7 पर नेटडाटा स्थापित करना

एक अलग प्रणाली का उपयोग? नेटडाटा रियल-टाइम सिस्टम मेट्रिक्स मॉनिटरिंग के क्षेत्र में एक उभरता हुआ सितारा है। एक ही तरह के अन्य उपकरणों की तुलना में, नेटडाटा:

CentOS 7 पर स्टारबाउंड सर्वर कैसे स्थापित करें

CentOS 7 पर स्टारबाउंड सर्वर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? इस ट्यूटोरियल में, बीमार समझा जा रहा है कि CentOS 7 पर एक स्टारबाउंड सर्वर को कैसे सेटअप किया जाए। आवश्यक शर्तें आपको इस गेम को खुद पर बनाना होगा।

CentOS 7 पर Django कैसे स्थापित करें

CentOS 7 पर Django कैसे स्थापित करें

वेब एप्लिकेशन लिखने के लिए Django एक लोकप्रिय पायथन फ्रेमवर्क है। Django के साथ, आप तेजी से अनुप्रयोगों का निर्माण कर सकते हैं, पहिया को फिर से बनाए बिना। अगर आप चाहते हैं

CentOS 6 पर SA-MP सैन एंड्रियास मल्टीप्लेयर सर्वर सेटअप करें

CentOS 6 पर SA-MP सैन एंड्रियास मल्टीप्लेयर सर्वर सेटअप करें

एक अन्य Vultr ट्यूटोरियल में आपका स्वागत है। यहां, आप सीखेंगे कि एसएएमपी सर्वर कैसे स्थापित करें और चलाएं। यह गाइड CentOS 6 के लिए लिखा गया था

CentOS 7 पर Revive Adserver इनस्टॉल करना

CentOS 7 पर Revive Adserver इनस्टॉल करना

Revive Adserver एक स्वतंत्र और खुला स्रोत विज्ञापन सेवारत प्रणाली है जिसका उपयोग वेबसाइटों पर, ऐप्स में और / या वीडियो खिलाड़ियों में विज्ञापनों को प्रबंधित करने के लिए किया जा सकता है। इस लेख में,

CentOS 7 पर पार्स सर्वर कैसे स्थापित करें

CentOS 7 पर पार्स सर्वर कैसे स्थापित करें

पार्स सर्वर पार्स बैकेंड सेवा के लिए खुला स्रोत विकल्प है जिसे बंद किया जा रहा है। यदि आप इस सेवा के प्रशंसक हैं, तो आप अभी भी वें का आनंद ले सकते हैं

CentOS 7 पर एल्ग स्थापित करें

CentOS 7 पर एल्ग स्थापित करें

एक अलग प्रणाली का उपयोग? एल्ग एक खुला स्रोत सोशल नेटवर्किंग इंजन है जो परिसर के सामाजिक नेटवर्क जैसे सामाजिक वातावरण के निर्माण की अनुमति देता है

CentOS 7 पर डायस्पोरा के साथ अपने सामाजिक नेटवर्क का निर्माण करें

CentOS 7 पर डायस्पोरा के साथ अपने सामाजिक नेटवर्क का निर्माण करें

एक अलग प्रणाली का उपयोग? डायस्पोरा एक गोपनीयता-जागरूक, ओपन सोर्स सोशल नेटवर्क है। इस ट्यूटोरियल में, आप सीखेंगे कि डायस्पोरा पो को कैसे सेट और कॉन्फ़िगर करें

CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

CentOS 7 पर कुबेदम के साथ कुबेरनेट्स तैनात करें

अवलोकन यह लेख आपको कुबेरनेट क्लस्टर प्राप्त करने और कुछ ही समय में कुबेदम के साथ चलने में मदद करने के लिए है। यह गाइड दो सर्वरों को तैनात करेगा

CentOS पर Z और Zsh के साथ उत्पादकता बढ़ाएँ

CentOS पर Z और Zsh के साथ उत्पादकता बढ़ाएँ

परिचय लिनक्स सिस्टम पर काम करने का मतलब है कि कोई कमांड लाइन का उपयोग अधिक बार नहीं कर रहा है। स्वागत के रूप में बार-बार लंबी निर्देशिका के नाम टाइप करना

कैसे एक Vultr LEMP सर्वर पर OpenCart स्थापित करें

कैसे एक Vultr LEMP सर्वर पर OpenCart स्थापित करें

ओपनकार्ट एक लोकप्रिय ओपन सोर्स शॉपिंग कार्ट सॉल्यूशन है जिसे उत्कृष्ट कार्यक्षमता, उपयोग में आसानी और उपस्थिति प्रदान करने के लिए डिज़ाइन किया गया है। OpenCart के साथ, आप सीए

CentOS 7 पर विकास के लिए Sails.js सेटअप करें

CentOS 7 पर विकास के लिए Sails.js सेटअप करें

एक अलग प्रणाली का उपयोग? परिचय Sails.js Node.js के लिए MVC फ्रेमवर्क है, जो रूबी ऑन रेल्स के समान है। यह आधुनिक अनुप्रयोगों को विकसित करने के लिए बनाता है

कैसे CentOS 7 पर स्रोत से Nginx संकलन करने के लिए

कैसे CentOS 7 पर स्रोत से Nginx संकलन करने के लिए

एक अलग प्रणाली का उपयोग? NGINX को HTTP / HTTPS सर्वर, रिवर्स प्रॉक्सी सर्वर, मेल प्रॉक्सी सर्वर, लोड बैलेंसर, TLS टर्मिनेटर, या कैचिन के रूप में उपयोग किया जा सकता है

CentOS 7 पर dotCMS कैसे स्थापित करें

CentOS 7 पर dotCMS कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? dotCMS जावा में लिखा एक ओपन सोर्स एंटरप्राइज ग्रेड कंटेंट मैनेजमेंट सिस्टम है। इसमें लगभग हर सुविधा आवश्यक टी होती है

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

एनएफएस एक नेटवर्क-आधारित फाइल सिस्टम है जो कंप्यूटरों को कंप्यूटर नेटवर्क पर फाइलों तक पहुंचने की अनुमति देता है। यह मार्गदर्शिका बताती है कि आप एनएफ पर फ़ोल्डर्स को कैसे उजागर कर सकते हैं

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) लिनक्स के लिए उपलब्ध विभिन्न डिस्क एन्क्रिप्शन प्रारूपों में से एक है जो प्लेटफॉर्म एग्नॉस्टिक है। यह ट्यूटोरियल आपको बुद्धि प्रदान करेगा

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

अक्टूबर एक खुला स्रोत सामग्री प्रबंधन प्रणाली है जो लारवेल PHP फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ