Δημιουργήστε έναν διακομιστή συνομιλίας χρησιμοποιώντας Matrix Synapse και Riot στο CentOS 7

Το Matrix είναι ένα ανοιχτό πρότυπο πρωτόκολλο επικοινωνίας για αποκεντρωμένη επικοινωνία σε πραγματικό χρόνο. Το Matrix υλοποιείται ως οικιακούς διακομιστές που διανέμονται μέσω του Διαδικτύου. Ως εκ τούτου, δεν υπάρχει ενιαίο σημείο ελέγχου ή αποτυχίας. Το Matrix παρέχει ένα RESTful HTTP API για τη δημιουργία και τη διαχείριση των κατανεμημένων διακομιστών συνομιλίας που περιλαμβάνει αποστολή και λήψη μηνυμάτων, πρόσκληση και διαχείριση μελών δωματίου συνομιλίας, διατήρηση λογαριασμών χρηστών και παροχή προηγμένων λειτουργιών συνομιλίας, όπως VoIP και βιντεοκλήσεις, κ.λπ. ασφαλής συγχρονισμός μεταξύ οικιακών διακομιστών που διανέμονται σε όλο τον κόσμο.

Το Synapse είναι η υλοποίηση του οικιακού διακομιστή Matrix γραμμένο από την ομάδα του Matrix. Το οικοσύστημα Matrix αποτελείται από το δίκτυο πολλών ομοσπονδιακών οικιακών διακομιστών που διανέμονται σε όλο τον κόσμο. Ένας χρήστης Matrix χρησιμοποιεί έναν πελάτη συνομιλίας για να συνδεθεί στον οικιακό διακομιστή, ο οποίος με τη σειρά του συνδέεται στο δίκτυο Matrix. Ο Homeserver αποθηκεύει το ιστορικό συνομιλιών και τις πληροφορίες σύνδεσης του συγκεκριμένου χρήστη.

Προαπαιτούμενα

Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε matrix.example.comως όνομα τομέα που χρησιμοποιείται για το Matrix Synapse. Αντικαταστήστε όλες τις εμφανίσεις matrix.example.comμε το πραγματικό σας όνομα τομέα που θέλετε να χρησιμοποιήσετε για τον οικιακό διακομιστή Synapse.

Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το CentOS 7 . Μόλις το σύστημά σας ενημερωθεί, προχωρήστε στην εγκατάσταση της Python.

Εγκαταστήστε Εργαλεία Ανάπτυξης

Το Matrix Synapse χρειάζεται Python 2.7 για να λειτουργήσει. Η Python 2.7 είναι προεγκατεστημένη σε όλες τις περιπτώσεις διακομιστή CentOS. Μπορείτε να ελέγξετε την εγκατεστημένη έκδοση της Python.

python -V

Θα πρέπει να έχετε παρόμοια έξοδο.

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

Η αλλαγή της προεπιλεγμένης έκδοσης της Python μπορεί να σπάσει τον διαχειριστή αποθετηρίου YUM. Ωστόσο, εάν θέλετε την πιο πρόσφατη έκδοση της Python, μπορείτε να κάνετε μια εναλλακτική εγκατάσταση, χωρίς να αντικαταστήσετε την προεπιλεγμένη Python.

Εγκαταστήστε τα πακέτα στην 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 

Εγκαταστήστε το Python pip. Το Pip είναι ο διαχειριστής εξαρτήσεων για πακέτα Python.

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

Εγκαταστήστε το Synapse

Δημιουργήστε ένα εικονικό περιβάλλον για την εφαρμογή Synapse. Το εικονικό περιβάλλον Python χρησιμοποιείται για τη δημιουργία ενός απομονωμένου εικονικού περιβάλλοντος για ένα έργο Python. Ένα εικονικό περιβάλλον περιέχει τους δικούς του καταλόγους εγκατάστασης και δεν μοιράζεται βιβλιοθήκες με παγκόσμια και άλλα εικονικά περιβάλλοντα.

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.

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

Η παραπάνω εντολή θα χρειαστεί λίγο χρόνο για να εκτελεστεί καθώς τραβά και εγκαθιστά την πιο πρόσφατη έκδοση του Synapse και όλες τις εξαρτήσεις από το αποθετήριο Github.

Εγκατάσταση και ρύθμιση παραμέτρων 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.confγια να ενεργοποιήσετε τον έλεγχο ταυτότητας βάσει MD5.

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

Δημιουργήστε έναν νέο χρήστη PostgreSQL για το Synapse.

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

Θα χρειαστεί επίσης να εγκαταστήσετε τα πακέτα που απαιτούνται για την επικοινωνία του Synapse με τον διακομιστή βάσης δεδομένων PostgreSQL.

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

Διαμόρφωση Synapse

Το 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με το πραγματικό σας όνομα τομέα και βεβαιωθείτε ότι το όνομα διακομιστή μπορεί να επιλυθεί στη διεύθυνση IP της παρουσίας σας Vultr. Δώστε --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.yamlέχει ρυθμιστεί να χρησιμοποιεί μια βάση δεδομένων SQLite. Πρέπει να το τροποποιήσουμε για να χρησιμοποιήσουμε τη βάση δεδομένων 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

Registration of a new user from a web interface is disabled by default. To enable registration, you can set enable_registration to True. You can also set a secret registration key, which allows anyone to register who has the secret key, even if registration is disabled.

enable_registration: False

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

Save the file and exit from the editor. Now you will need to register your first user. Before you can register a new user, though, you will need to start the application first.

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

You should see the following lines.

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 a new Matrix user.

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

You should see the following.

(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.

Finally, before you can use the Homeserver, you will need to allow port 8448 through the Firewall. Port 8448 is used as the secured federation port. Homeservers use this port to communicate with each other securely. You can also use the built-in Matrix web chat client through this port.

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

You can now log in to the Matrix web chat client by going to https://matrix.example.com:8448 through your favorite browser. You will see a warning about the SSL certificate as the certificates used are self-signed. We will not use this web chat client as it is outdated and not maintained anymore. Just try to check if you can log in using the user account you just created.

Setting up Let's Encrypt Certificates

Instead of using a self-signed certificate for securing federation port, we can use Let's Encrypt free SSL. Let's Encrypt free SSL can be obtained through the official Let's Encrypt client called Certbot.

Install Certbot.

sudo yum -y install certbot

Adjust your firewall setting to allow the standard HTTP and HTTPS ports through the firewall. Certbot needs to make an HTTP connection to verify the domain authority.

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

To obtain certificates from Let's Encrypt CA, you must ensure that the domain for which you wish to generate the certificates is pointed towards the server. If it is not, then make the necessary changes to the DNS records of your domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.

Now use the built-in web server in Certbot to generate the certificates for your domain.

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

The generated certificates are likely to be stored in /etc/letsencrypt/live/matrix.example.com/. The SSL certificate will be stored as fullchain.pem and the private key will be stored as privkey.pem.

Copy the certificates.

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

You will need to change the path to the certificates and keys from the homeserver.yaml file. Edit the configuration.

nano /opt/synapse/homeserver.yaml

Find the following lines and modify the path.

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

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

Save the file and exit from the editor. Restart the Synapse server so that the changes can take effect.

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

Let's Encrypt certificates are due to expire in 90 days, so it is recommended that you setup auto renewal for the certificates using cron jobs. Cron is a system service which is used to run periodic tasks.

Create a new script to renew certificates and copy the renewed certificates to the Synapse directory.

sudo nano /opt/renew-letsencypt.sh  

Populate the file.

#!/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

Provide the execution permission.

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

Open the cron job file.

sudo crontab -e

Add the following line at the end of the file.

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

The above cron job will run every Monday at 5:30 AM. If the certificate is due to expire, it will automatically renew them.

Now you can visit https://matrix.example.com:8448. You will see that there is no SSL warning before connection.

Setup Nginx With Let's Encrypt

Apart from the secured federation port 8448, Synapse also listens to the unsecured client port 8008. We will now configure Nginx as a reverse proxy to the Synapse application.

sudo yum -y install nginx

Create a new configuration file.

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

Populate the file with the following content.

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;

    }
  }

Restart and enable Nginx to automatically start at boot time.

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

Συνιστάται η χρήση της υπηρεσίας Systemd για τη διαχείριση της διαδικασίας διακομιστή Synapse. Η χρήση του 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

Χρήση Riot

Ο διακομιστής Matrix Synapse είναι πλέον εγκατεστημένος και διαμορφωμένος στον διακομιστή σας. Καθώς το ενσωματωμένο πρόγραμμα-πελάτη ιστού για το Matrix είναι ξεπερασμένο, μπορείτε να επιλέξετε από την ποικιλία των εφαρμογών-πελατών που είναι διαθέσιμες για συνομιλία. Το Riot είναι ο πιο δημοφιλής πελάτης συνομιλίας, ο οποίος είναι διαθέσιμος σχεδόν σε όλες τις πλατφόρμες. Μπορείτε να χρησιμοποιήσετε τη φιλοξενούμενη έκδοση του προγράμματος-πελάτη συνομιλίας ιστού της Riot ή μπορείτε επίσης να φιλοξενήσετε ένα αντίγραφό του στον δικό σας διακομιστή. Εκτός από αυτό, μπορείτε επίσης να χρησιμοποιήσετε προγράμματα-πελάτες συνομιλίας για επιτραπέζιους υπολογιστές και φορητές συσκευές της Riot, τα οποία είναι διαθέσιμα για Windows, Mac, Linux, IOS και Android.

Εάν θέλετε να φιλοξενήσετε το δικό σας αντίγραφο του προγράμματος-πελάτη ιστού Riot, μπορείτε να διαβάσετε περαιτέρω για τις οδηγίες εγκατάστασης του Riot στον διακομιστή σας. Για πελάτες που φιλοξενούνται, επιτραπέζιοι υπολογιστές και κινητά, μπορείτε να χρησιμοποιήσετε το όνομα χρήστη και τον κωδικό πρόσβασής σας για να συνδεθείτε απευθείας στον κεντρικό υπολογιστή σας. Απλώς επιλέξτε my Matrix IDαπό το αναπτυσσόμενο μενού της Sign Inεπιλογής και δώστε το όνομα χρήστη και τον κωδικό πρόσβασης που δημιουργήσατε κατά την εγγραφή ενός νέου χρήστη. Κάντε κλικ στο Custom serverκαι χρησιμοποιήστε το όνομα τομέα της παρουσίας σας στο Synapse. Καθώς έχουμε ήδη διαμορφώσει το Nginx, μπορούμε απλώς να το χρησιμοποιήσουμε https://matrix.example.comως κεντρικός διακομιστής και https://matrix.orgως URL διακομιστή ταυτότητας.

Παράδειγμα σύνδεσης Riot

Ρυθμίστε το Riot στον δικό σας διακομιστή.

Το Riot είναι επίσης ανοιχτού κώδικα και δωρεάν για φιλοξενία στον δικό σας διακομιστή. Δεν απαιτεί καμία βάση δεδομένων ή εξαρτήσεις. Καθώς έχουμε ήδη έναν διακομιστή Nginx σε λειτουργία, μπορούμε να τον φιλοξενήσουμε στον ίδιο διακομιστή.

The domain or subdomain you are using for Synapse and Riot must be different to avoid cross-site scripting. However, you can use two subdomains of the same domain. In this tutorial, we will be using riot.example.com as the domain for the Riot application. Replace all occurrence of riot.example.com with your actual domain or subdomain for the Riot application.

Κατεβάστε το Riot στον διακομιστή σας.

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

Μπορείτε πάντα να βρείτε τον σύνδεσμο προς την πιο πρόσφατη έκδοση στο Github της Riot .

Εξαγωγή του αρχείου.

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

Μετονομάστε τον κατάλογο για ευκολία χειρισμού.

sudo mv riot-v*/ riot/

Επειδή έχουμε ήδη εγκαταστήσει το Certbot, μπορούμε να δημιουργήσουμε τα πιστοποιητικά απευθείας. Βεβαιωθείτε ότι ο τομέας ή ο υποτομέας που χρησιμοποιείτε είναι στραμμένος προς τον διακομιστή.

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

Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στον /etc/letsencrypt/live/riot.example.com/κατάλογο.

Δημιουργήστε έναν εικονικό κεντρικό υπολογιστή για την εφαρμογή Riot.

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 του διακομιστή Matrix. Για τη διεύθυνση URL διακομιστή ταυτότητας, μπορείτε να χρησιμοποιήσετε την προεπιλεγμένη επιλογή ή μπορείτε επίσης να δώσετε την τιμή της στον διακομιστή ταυτότητας Matrix, που είναι 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

Μπορείτε να αποκτήσετε πρόσβαση στο Riot στο https://riot.example.com. Τώρα μπορείτε να συνδεθείτε χρησιμοποιώντας το όνομα χρήστη και τον κωδικό πρόσβασης που έχετε δημιουργήσει νωρίτερα. Μπορείτε να συνδεθείτε χρησιμοποιώντας τον προεπιλεγμένο διακομιστή, καθώς έχουμε ήδη αλλάξει τον προεπιλεγμένο διακομιστή Matrix για την εφαρμογή μας.

Τώρα έχετε έναν οικιακό διακομιστή Matrix Synapse σε λειτουργία και λειτουργία. Έχετε επίσης ένα φιλοξενούμενο αντίγραφο του Riot, το οποίο μπορείτε να χρησιμοποιήσετε για να στείλετε ένα μήνυμα σε άλλα άτομα χρησιμοποιώντας το Matrix ID, το email ή τον αριθμό του κινητού τους. Ξεκινήστε δημιουργώντας ένα chat room στον διακομιστή σας και προσκαλέστε τους φίλους σας στο Matrix να συμμετάσχουν στο chat room που δημιουργήσατε.


Εγκαταστήστε το Plesk στο CentOS 7

Εγκαταστήστε το Plesk στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Plesk είναι ένας ιδιόκτητος πίνακας ελέγχου web host που επιτρέπει στους χρήστες να διαχειρίζονται τους προσωπικούς ή/και τους πελάτες τους ιστότοπους, βάσεις δεδομένων

Πώς να εγκαταστήσετε το Squid Proxy στο CentOS

Πώς να εγκαταστήσετε το Squid Proxy στο CentOS

Το Squid είναι ένα δημοφιλές, δωρεάν πρόγραμμα Linux που σας επιτρέπει να δημιουργήσετε έναν διακομιστή μεσολάβησης web προώθησης. Σε αυτόν τον οδηγό, θα δείτε πώς να εγκαταστήσετε το Squid στο CentOS για να σας μετατρέψει

Πώς να εγκαταστήσετε το Lighttpd (Στοίβα LLMP) στο CentOS 6

Πώς να εγκαταστήσετε το Lighttpd (Στοίβα LLMP) στο CentOS 6

Εισαγωγή Το Lighttpd είναι ένα πιρούνι του Apache που έχει ως στόχο να είναι πολύ λιγότερο εντάσεως πόρων. Είναι ελαφρύ, εξ ου και το όνομά του, και είναι αρκετά απλό στη χρήση. Εγκατάσταση

Τροποποίηση Icinga2 για χρήση Μοντέλου Master/Client σε CentOS 6 ή CentOS 7

Τροποποίηση Icinga2 για χρήση Μοντέλου Master/Client σε CentOS 6 ή CentOS 7

Το Icinga2 είναι ένα ισχυρό σύστημα παρακολούθησης και όταν χρησιμοποιείται σε μοντέλο master-client, μπορεί να αντικαταστήσει την ανάγκη για ελέγχους παρακολούθησης που βασίζονται σε NRPE. Ο κύριος-πελάτης

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο CentOS 7

Πώς να εγκαταστήσετε το Apache Cassandra 3.11.x στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή

Πώς να εγκαταστήσετε το Microweber στο CentOS 7

Πώς να εγκαταστήσετε το Microweber στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Microweber είναι ένα ανοικτού κώδικα μεταφοράς και απόθεσης CMS και ηλεκτρονικό κατάστημα. Ο πηγαίος κώδικας Microweber φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει

Πώς να εγκαταστήσετε το Vanilla Forum στο CentOS 7

Πώς να εγκαταστήσετε το Vanilla Forum στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Vanilla forum είναι μια εφαρμογή φόρουμ ανοιχτού κώδικα γραμμένη σε PHP. Είναι πλήρως προσαρμόσιμο, εύκολο στη χρήση και υποστηρίζει εξωτερικά

Πώς να εγκαταστήσετε το Mattermost 4.1 στο CentOS 7

Πώς να εγκαταστήσετε το Mattermost 4.1 στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Mattermost είναι μια εναλλακτική λύση ανοιχτού κώδικα, που φιλοξενείται από τον εαυτό της στην υπηρεσία ανταλλαγής μηνυμάτων Slack SAAS. Με άλλα λόγια, με το Mattermost, μπορείτε περίπου

Ας κρυπτογραφήσουμε στο Plesk

Ας κρυπτογραφήσουμε στο Plesk

Ο πίνακας ελέγχου Plesk διαθέτει μια πολύ ωραία ενσωμάτωση για το Lets Encrypt. Το Lets Encrypt είναι ένας από τους μόνους παρόχους SSL που εκδίδει πιστοποιητικά πλήρως

Επιτρέπει την κρυπτογράφηση στο cPanel

Επιτρέπει την κρυπτογράφηση στο cPanel

Το Lets Encrypt είναι μια αρχή έκδοσης πιστοποιητικών αφιερωμένη στην παροχή πιστοποιητικών SSL δωρεάν. Το cPanel έχει δημιουργήσει μια τακτοποιημένη ενοποίηση για εσάς και τον πελάτη σας

Πώς να εγκαταστήσετε το Concrete5 στο CentOS 7

Πώς να εγκαταστήσετε το Concrete5 στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Concrete5 είναι ένα CMS ανοιχτού κώδικα που προσφέρει πολλές χαρακτηριστικές και χρήσιμες λειτουργίες για να βοηθήσει τους συντάκτες να παράγουν περιεχόμενο εύκολα και

Πώς να εγκαταστήσετε το Review Board στο CentOS 7

Πώς να εγκαταστήσετε το Review Board στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Review Board είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο για την ανασκόπηση του πηγαίου κώδικα, της τεκμηρίωσης, των εικόνων και πολλών άλλων. Είναι λογισμικό που βασίζεται στο web

Ρύθμιση ελέγχου ταυτότητας HTTP με Nginx στο CentOS 7

Ρύθμιση ελέγχου ταυτότητας HTTP με Nginx στο CentOS 7

Σε αυτόν τον οδηγό, θα μάθετε πώς να ρυθμίζετε τον έλεγχο ταυτότητας HTTP για έναν διακομιστή web Nginx που εκτελείται σε CentOS 7. Απαιτήσεις Για να ξεκινήσετε, θα χρειαστείτε

Πώς να εγκαταστήσετε το YOURLS στο CentOS 7

Πώς να εγκαταστήσετε το YOURLS στο CentOS 7

Το YOURLS (Your Own URL Shortener) είναι μια εφαρμογή συντόμευσης διευθύνσεων URL και ανάλυσης δεδομένων ανοιχτού κώδικα. Σε αυτό το άρθρο, θα καλύψουμε τη διαδικασία εγκατάστασης

Πώς να εγκαταστήσετε και να ρυθμίσετε το ArangoDB στο CentOS 7

Πώς να εγκαταστήσετε και να ρυθμίσετε το ArangoDB στο CentOS 7

Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το ArangoDB είναι μια βάση δεδομένων NoSQL ανοιχτού κώδικα με ένα ευέλικτο μοντέλο δεδομένων για έγγραφα, γραφήματα και κλειδιά-τιμές. είναι

Χρήση του Etckeeper για έλεγχο έκδοσης του /etc

Χρήση του Etckeeper για έλεγχο έκδοσης του /etc

Εισαγωγή Ο κατάλογος /etc/ παίζει κρίσιμο ρόλο στον τρόπο λειτουργίας ενός συστήματος Linux. Ο λόγος για αυτό είναι επειδή σχεδόν κάθε διαμόρφωση συστήματος

Γιατί πρέπει να χρησιμοποιήσετε το SSHFS; Πώς να προσαρτήσετε ένα απομακρυσμένο σύστημα αρχείων με SSHFS στο CentOS 6

Γιατί πρέπει να χρησιμοποιήσετε το SSHFS; Πώς να προσαρτήσετε ένα απομακρυσμένο σύστημα αρχείων με SSHFS στο CentOS 6

Πολλοί διαχειριστές συστημάτων διαχειρίζονται μεγάλες ποσότητες διακομιστών. Όταν χρειάζεται πρόσβαση στα αρχεία σε διαφορετικούς διακομιστές, συνδέεστε σε καθένα ξεχωριστά περίπου

Ρύθμιση διακομιστή Half Life 2 στο CentOS 6

Ρύθμιση διακομιστή Half Life 2 στο CentOS 6

Αυτό το σεμινάριο θα καλύψει τη διαδικασία εγκατάστασης ενός διακομιστή παιχνιδιών Half Life 2 στο σύστημα CentOS 6. Βήμα 1: Εγκατάσταση των προαπαιτούμενων Για να ρυθμίσετε το ou

Πώς να εγκαταστήσετε το Laravel GitScrum στο CentOS 7

Πώς να εγκαταστήσετε το Laravel GitScrum στο CentOS 7

Το Laravel GitScrum ή GitScrum είναι ένα εργαλείο παραγωγικότητας ανοιχτού κώδικα που έχει σχεδιαστεί για να βοηθά τις ομάδες ανάπτυξης να εφαρμόσουν τη μεθοδολογία Scrum με παρόμοιο τρόπο

Πώς να εγκαταστήσετε το PowerDNS στο CentOS

Πώς να εγκαταστήσετε το PowerDNS στο CentOS

Εισαγωγή Σε αυτό το σεμινάριο Vultr, θα μάθετε πώς να εγκαταστήσετε το PowerDNS. Το PowerDNS είναι ένα πρόγραμμα για την εκτέλεση των δικών σας διακομιστών ονομάτων. Είναι πολύ χρήσιμο όταν

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα