Matrix je nový ekosystém pro decentralizovanou komunikaci v reálném čase pro otevřené federované instant messaging a služby VoIP. Poskytuje RESTful HTTP JSON API pro vytváření distribuovaných a federovaných chatových serverů bez jediného bodu kontroly a selhání a poskytuje všechny reference pro API.
Synapse je implementace maticového homeserveru, který je vytvořen maticovým týmem a je napsán v Pythonu/Twisted. S tímto softwarem můžeme implementovat maticový způsob pro decentralizovanou komunikaci, můžeme si vytvořit vlastní domácí server a ukládat všechny osobní údaje uživatele, historii chatu, vytvořit místnost pro vlastní použití atd.
V tomto tutoriálu vám krok za krokem ukážeme, jak nainstalovat a nakonfigurovat Matrix Synapse na Ubuntu 18.04. Nakonfigurujeme Matrix Synapse na místní IP adrese a nakonfigurujeme webový server Nginx jako reverzní proxy pro něj a implementujeme připojení HTTPS mezi klienty a front-end webovým serverem Nginx.
Předpoklady
- Ubuntu 18.04
- Oprávnění uživatele root
- Matrix Název domény nebo subdoména – matrix.hakase-labs.io
Co uděláme?
- Aktualizujte a upgradujte systém Ubuntu 18.04
- Nainstalujte Matrix Synapse
- Konfigurace Matrix Synapse
- Vygenerujte SSL Letsencrypt
- Nainstalujte a nakonfigurujte Nginx jako reverzní proxy pro Matrix Synapse
- Nastavení brány UFW Firewall
- Nastavit nového uživatele matice
- Testování
Krok 1 – Aktualizace a upgrade systému
Přihlaste se ke svému serveru Ubuntu, aktualizujte úložiště a upgradujte všechny balíčky pomocí příkazu apt níže.
sudo apt update
sudo apt upgrade
A všechny balíčky ubuntu byly upgradovány.
Krok 2 – Instalace Matrix Synapse
V tomto kroku nainstalujeme software matrix synapse pomocí balíčků Debianu z oficiálního úložiště matrix.
Spuštěním všech níže uvedených příkazů přidejte maticový klíč a úložiště.
wget -qO - https://matrix.org/packages/debian/repo-key.asc | sudo apt-key add -
sudo add-apt-repository https://matrix.org/packages/debian/
Příkaz automaticky aktualizuje úložiště.
Nyní nainstalujte matrix synapse pomocí příkazu apt, jak je uvedeno níže.
sudo apt install matrix-synapse -y
Během instalace se vás zeptá na název maticového serveru – zadejte název maticové domény 'matrix.hakase-labs.io'.
A pro anonymní datovou zprávu zvolte 'Ne'.
Po dokončení instalace matrix synapse spusťte službu a povolte její spuštění při každém spuštění systému.
sudo systemctl start matrix-synapse
sudo systemctl enable matrix-synapse
Maticová synapse je nyní spuštěna s výchozí konfigurací na portu '8008' a '8448'. Zkontrolujte pomocí příkazu netstat.
netstat -plntu
Krok 3 – Konfigurace Matrix Synapse
Po instalaci matricové synapse ji nakonfigurujeme tak, aby běžela pod místní IP adresou, zakážeme registraci matricové synapse a povolíme registraci-sdílené-tajné.
Před úpravou konfigurace domovského serveru musíme vygenerovat sdílený tajný klíč.
Spusťte níže uvedený příkaz.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
A získáte vygenerovaný klíč. Zkopírujte klíč výsledku.
Nyní musíme upravit konfigurační soubor domovského serveru 'homeserver.yaml' v adresáři '/etc/matrix-synapse/'. Změňte aktuální adresář na '/etc/matrix-synapse' a upravte konfigurační soubor pomocí vim.
cd /etc/matrix-synapse/
vim homeserver.yaml
Změňte port HTTP a HTTPS Listener „8008“ a „8448“ na místní IP adresu „127.0.0.1“.
port: 8448 bind_addresses: - '127.0.0.1' - port: 8008 bind_addresses: ['127.0.0.1']
Vypněte registraci matrice synapse, zrušte komentář u konfigurace 'registration_shared_secret' a vložte vygenerovaný tajný klíč.
enable_registration: False registration_shared_secret: "MtkF9JOkNHsRRISyR5L91KAQlrrPhyWX"
Uložte a ukončete.
Poznámka:
registration_shared_secret:Pokud je nastaveno, umožňuje registraci komukoli, kdo má také sdílené tajemství, i když je registrace zakázána.
Nyní restartujte služby matrix synapse.
sudo systemctl restart matrix-synapse
Zkontrolujte službu homeserver pomocí příkazu níže.
netstat -plntu
Získáte, že služba matrix synapse je nyní na místní IP adrese.
A dokončili jsme instalaci a konfiguraci matrix synapse.
Krok 4 – Vygenerování certifikátů SSL Letsencrypt
V tomto tutoriálu povolíme HTTPS pro reverzní proxy Nginx a vygenerujeme soubory certifikátu SSL z Letsencrypt.
Nainstalujte nástroj letsencrypt pomocí příkazu apt níže.
sudo apt install letsencrypt -y
V systému je nainstalován nástroj Letsencrypt, nyní vygenerujte soubory certifikátu SSL pro maticový název domény 'matrix.hakase-labs.io' pomocí příkazu certbot, jak je uvedeno níže.
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.hakase-labs.io
Nástroj Letsencrypt vygeneruje soubory certifikátu SSL spuštěním „samostatného“ dočasného webového serveru pro ověření.
A až to bude hotové, dostanete výsledek, jak je ukázáno níže.
Soubory certifikátu SSL pro název domény matrix synapse 'matrix.hakase-labs.io' se generují v adresáři '/etc/letsencrypt/live/'.
Krok 5 – Instalace a konfigurace Nginx jako reverzního proxy
V tomto kroku nainstalujeme webový server Nginx a nakonfigurujeme jej jako reverzní proxy pro domácí server, který běží na portu '8008'.
Nainstalujte webový server Nginx pomocí příkazu apt níže.
sudo apt install nginx -y
Po dokončení instalace spusťte službu a povolte její spuštění při každém spuštění systému
sudo systemctl start nginx
sudo systemctl enable nginx
Dále vytvoříme novou konfiguraci virtuálního hostitele pro název maticové domény 'matrix.hakase-labs.io'.
Přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte nový soubor virtuálního hostitele 'matrix'.
cd /etc/nginx/
vim sites-available/matrix
Zde vložte následující konfiguraci.
server { listen 80; server_name matrix.hakase-labs.io; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name matrix.hakase-labs.io; ssl_certificate /etc/letsencrypt/live/matrix.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/matrix.hakase-labs.io/privkey.pem; # If you don't wanna serve a site, comment this out root /var/www/html; index index.html index.htm; location /_matrix { proxy_pass http://127.0.0.1:8008; proxy_set_header X-Forwarded-For $remote_addr; } }
Uložte a ukončete.
Aktivujte soubor virtuálního hostitele a otestujte konfiguraci.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
nginx -t
Ujistěte se, že nedošlo k žádné chybě, a poté restartujte služby Nginx.
sudo systemctl restart nginx
Instalace a konfigurace Nginx jako reverzní proxy pro domácí server Matrix Synapse byla dokončena.
Krok 6 – Nastavení brány UFW Firewall
V tomto tutoriálu otevřeme pouze tři porty pro naše služby. V konfiguraci brány firewall UFW povolíme pouze připojení SSH, HTTP a HTTPS.
Přidejte služby SSH, HTTP a HTTPS do konfigurace brány firewall UFW spuštěním příkazu níže.
ufw allow ssh
ufw allow http
ufw allow https
Nyní povolte službu firewall UFW a poté zkontrolujte stav.
ufw enable
ufw status
A dostanete výsledek, jak je ukázáno níže.
A dokončili jsme konfiguraci firewallu UFW.
Krok 7 – Vytvoření nového uživatele Matrix
V této fázi je instalace a konfigurace domovského serveru matrix synapse dokončena. A v tomto kroku vám ukážeme, jak přidat nového maticového uživatele ze serveru příkazového řádku.
Chcete-li vytvořit nového uživatele matice, spusťte níže uvedený příkaz.
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml https://127.0.0.1:8448
Nyní musíte zadat uživatelské jméno, heslo a rozhodnout, zda uživatel bude mít práva správce či nikoli.
Níže je výsledek v mém systému.
A vytvořili jsme nového maticového uživatele s názvem 'hakase' s oprávněním správce.
Krok 8 – Testování
Stáhněte si desktopovou aplikaci Riot pro váš operační systém a nainstalujte ji.
Otevřete software Riot a získáte přihlašovací stránku Matrix, jak je uvedeno níže.
Zadejte maticové uživatelské jméno a heslo, poté vyberte možnost 'Vlastní server' a zadejte vlastní název domény 'matrix.hakase-labs.io'.
Klikněte na tlačítko 'Přihlásit se'.
A nyní získáte Riot Dashboard.
Domovský server Matrix Synapse je spuštěn a běží pod připojením Nginx reverzní proxy HTTPS a uživatel „hakase“ je nyní přihlášen k domovskému serveru matrix pomocí desktopu aplikace Riot.
Konfigurace uživatele matice.
Uživatel Matrix chatu jako skupina.