GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Mattermost Team Messaging System na Ubuntu 20.04

Mattermost je open source aplikace pro zasílání zpráv s vlastním hostitelem, která se používá pro chat, sdílení souborů, vyhledávání a integraci. Je to alternativa k chatu Slack, která přináší veškerou vaši týmovou komunikaci na jedno místo. Je napsán v React a Golang a v backendu používá databázi PostgreSQL nebo MySQL. Nabízí bohatou sadu funkcí včetně oznámení push, neomezené historie vyhledávání, vlastních emotikonů, webhooků a příkazů, aktivního adresáře, podpory nasazení víceuzlových databází, fóra, diskusního fóra a mnoha dalších.

V tomto tutoriálu vám ukážeme, jak nainstalovat Mattermost pomocí Nginx a Let's Encrypt SSL na Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Platný název domény s adresou IP vašeho serveru.
  • Na serveru je nakonfigurováno heslo uživatele root.

Začínáme

Nejprve se doporučuje aktualizovat systémové balíčky nejnovější verzí. Můžete je aktualizovat spuštěním následujícího příkazu:

apt-get update -y

Jakmile jsou všechny balíčky aktualizovány, nainstalujte další požadované závislosti spuštěním následujícího příkazu:

apt-get install curl wget vim git unzip gnupg2 -y

Po instalaci všech požadovaných balíčků můžete přejít k dalšímu kroku.

Instalace a konfigurace MariaDB

Mattermost používá MySQL/MariaDB jako databázový backend. Takže server MariaDB musí být nainstalován na vašem serveru. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install mariadb-server -y

Po instalaci serveru MariaDB se přihlaste do MariaDB pomocí následujícího příkazu:

mysql

Po přihlášení vytvořte databázi a uživatele pro Mattermost pomocí následujícího příkazu:

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'password';

Dále udělte všechna oprávnění Mattermostu pomocí následujícího příkazu:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'%';

Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Jakmile je vaše databáze MariaDB nakonfigurována, můžete přejít k dalšímu kroku.

Instalace a konfigurace Mattermost

Nejprve si budete muset stáhnout nejnovější verzi Mattermost z jejích oficiálních stránek. Můžete si jej stáhnout pomocí následujícího příkazu:

wget https://releases.mattermost.com/5.24.2/mattermost-5.24.2-linux-amd64.tar.gz

Po stažení rozbalte stažený soubor pomocí následujícího příkazu:

tar -xvzf mattermost-5.24.2-linux-amd64.tar.gz

Dále zkopírujte extrahovaný adresář do /opt:

cp -r mattermost /opt

Dále vytvořte datový adresář pro Mattermost:

mkdir /opt/mattermost/data

Dále budete muset vytvořit samostatného uživatele pro spuštění Mattermost. Můžete jej vytvořit pomocí následujícího příkazu:

useradd --system --user-group mattermost

Dále změňte vlastnictví adresáře nejzávažnějšího na nejzávažnější a udělte správná oprávnění pomocí následujícího příkazu:

chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

Dále upravte výchozí konfigurační soubor Mattermost a definujte nastavení databáze a adresu URL webu.

nano /opt/mattermost/config/config.json

Změňte následující řádky podle potřeby:

    "SiteURL": "https://mattermost.linuxbuz.com",

    "DriverName": "mysql",
    "DataSource": "mattermost:[email protected](localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Po dokončení uložte a zavřete soubor.

Vytvoření souboru Systemd Service pro Mattermost

Dále budete muset vytvořit soubor služby systemd pro správu služby Mattermost. Můžete jej vytvořit pomocí následujícího příkazu:

nano /lib/systemd/system/mattermost.service

Přidejte následující řádky:

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152

[Install]
WantedBy=mariadb.service

Uložte a zavřete soubor a poté znovu spusťte démona systemd pomocí následujícího příkazu:

systemctl daemon-reload

Dále spusťte službu Mattermost a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl start mattermost
systemctl enable mattermost

Dále ověřte stav služby Mattermost pomocí následujícího příkazu:

systemctl status mattermost

Měli byste získat následující výstup:

? mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 09:12:52 UTC; 17s ago
   Main PID: 4106 (mattermost)
      Tasks: 20 (limit: 2353)
     Memory: 85.9M
     CGroup: /system.slice/mattermost.service
             ??4106 /opt/mattermost/bin/mattermost
             ??4198 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Sent notification of ne>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Starting workers"}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Starting schedule>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Starting websocket hubs>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"License key from http>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Starting Server..."}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Server is listening o>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Sending systemd >
Aug 01 09:12:52 ubuntu2004 systemd[1]: Started Mattermost.

V tuto chvíli Mattermost běží a naslouchá na portu 8065.

Konfigurovat Nginx jako reverzní proxy

Dále budete muset nakonfigurovat Nginxx jako reverzní proxy pro Mattermost. Nejprve nainstalujte balíček Nginx pomocí následujícího příkazu:

apt-get install nginx -y

Po instalaci vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:

nano /etc/nginx/sites-available/mattermost.conf

Přidejte následující řádky:

upstream mattermost {
   server localhost:8065;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name mattermost.linuxbuz.com;

   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://mattermost;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://mattermost;
   }
}

Uložte a zavřete soubor a poté aktivujte konfiguraci virtuálního hostitele pomocí následujícího příkazu:

ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf

Dále ověřte, zda Nginx neobsahuje nějakou chybu konfigurace:

nginx -t

Měli byste získat následující výstup:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nakonec restartujte službu Nginx, aby se změny projevily:

systemctl restart nginx

Zabezpečte Mattermost pomocí Let's Encrypt SSL

Nejprve budete muset nainstalovat klienta Certbot do vašeho systému, abyste mohli spravovat Let's Encrypt SSL. Můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install python3-certbot-nginx -y

Po instalaci Certbota spusťte následující příkaz a nainstalujte Let's Encrypt SSL pro váš web.

certbot --nginx -d mattermost.linuxbuz.com

Budete požádáni, abyste poskytli platnou e-mailovou adresu a přijali podmínky služby, jak je uvedeno níže:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mattermost.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/mattermost.conf

Dále vyberte, zda chcete přesměrovat provoz HTTP na HTTPS:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Napište 2 a stiskněte Enter pro instalaci Let's Encrypt SSL na vaši doménu. Po instalaci byste měli vidět následující výstup:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/mattermost.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mattermost.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mattermost.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Přístup k webovému rozhraní Mattermost

Nyní otevřete webový prohlížeč a zadejte adresu URL https://mattermost.linuxbuz.com. Budete přesměrováni na přihlašovací obrazovku Mattermost:

Zadejte svou e-mailovou adresu, jméno, heslo a klikněte na Vytvořit účet knoflík. Měli byste vidět následující obrazovku:

Klikněte na Vytvořit a tým knoflík. Měli byste vidět následující obrazovku:

Zadejte název týmu a klikněte na Další knoflík. Měli byste vidět následující obrazovku:

Zadejte adresu URL svého týmu a klikněte na Dokončit knoflík. Měli byste vidět uvítací obrazovku Mattermost:

Klikněte na Přeskočit Výukové programy knoflík. Na následující obrazovce byste měli vidět řídicí panel Mattermost:

Závěr

V této příručce jste se naučili, jak nainstalovat aplikaci Mattermost Team Messaging na server Ubuntu 20.04. Také jste se naučili, jak nakonfigurovat Nginx jako reverzní proxy a zabezpečit jej pomocí Let's Encrypt SSL. Nyní můžete prozkoumat služby Mattermost a spolupracovat se svým týmem.


Ubuntu
  1. Jak nainstalovat Logstash na Ubuntu 18.04

  2. Jak nainstalovat Gradle na Ubuntu 18.04

  3. Jak nainstalovat Elasticsearch na Ubuntu 20.04

  1. Jak nainstalovat OpenProject na Ubuntu 16.04

  2. Jak nainstalovat Mattermost Team Messaging System na Debian 10

  3. Jak nainstalovat Taiga Project Management System na Ubuntu 20.04

  1. Jak nainstalovat Centrifugo Messaging Server na Ubuntu 20.04

  2. Jak nainstalovat Syncthing na Ubuntu 20.04

  3. Jak nainstalovat Sysdig pro sledování zatížení systému na Ubuntu 20.04