GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nasadit Mattermost na Ubuntu 18.04

Mattermost je platforma pro rychlé zasílání zpráv podnikové třídy, alternativa Slack s vlastním hostitelem s otevřeným zdrojovým kódem. Je napsán v Golang a React a může používat MySQL nebo PostgreSQL jako databázový backend. Mattermost přináší veškerou vaši týmovou komunikaci na jedno místo a poskytuje různé funkce včetně sdílení souborů, zasílání zpráv jeden na jednoho a skupinových zpráv, vlastních emotikonů, videohovorů a dalších.

V tomto tutoriálu nainstalujeme Mattermost na server Ubuntu 18.04 a nakonfigurujeme Nginx jako SSL reverzní proxy.

Předpoklady #

Než budete pokračovat v tomto kurzu, ujistěte se, že jste splnili následující předpoklady:

  • Jste přihlášeni jako uživatel s právy sudo.
  • Název domény odkazuje na IP adresu vašeho serveru. V tomto článku budeme používat example.com .
  • Máte nainstalovaný Nginx, pokud ne, přečtěte si tuto příručku.
  • Máte nainstalovaný certifikát SSL pro vaši doménu. Bezplatný certifikát Let’s Encrypt SSL si můžete nainstalovat podle tohoto návodu.

Vytvořit databázi MySQL #

Jako databázi pro Mattermost použijeme MySQL. Pokud na svém serveru nemáte nainstalované MySQL nebo MariaDB, můžete je nainstalovat podle těchto pokynů.

Přihlaste se do prostředí MySQL:

mysql -u root

Vytvořte novou databázi a uživatele pro naši instalaci Mattermost pomocí:

CREATE DATABASE mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
Ujistěte se, že používáte heslo, které je bezpečnější než P4ssvv0rD .

Vytvořit nového systémového uživatele #

Vytvořte nového uživatele a skupinu, která bude spouštět naši instanci Mattermost. Uživatele pojmenujeme mattermost :

sudo useradd -U -M -d /opt/mattermost mattermost

Instalovat Mattermost Server #

V době psaní tohoto článku je nejnovější stabilní verze Mattermost verze 5.1.0. Stáhněte si archiv pomocí následujícího příkazu curl:

sudo curl -L https://releases.mattermost.com/5.1.0/mattermost-5.1.0-linux-amd64.tar.gz -o /tmp/mattermost.tar.gz

Jakmile je stahování dokončeno, rozbalte archiv a přesuňte jej do /opt adresář

sudo tar zxf /tmp/mattermost.tar.gz -C /opt

Vytvořte adresář pro ukládání souborů:

sudo mkdir -p /opt/mattermost/data

Změňte vlastnictví adresáře na mattermost uživatel:

sudo chown -R mattermost: /opt/mattermost

Otevřete /opt/mattermost/config/config.json soubor, nastavte ovladač databáze na mysql a zadejte informace o databázi:

/opt/mattermost/config/config.json
"SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:P4ssvv0rD@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

Abychom se ujistili, že naše instance Mattermost funguje podle očekávání, otestujeme server Mattermost. Změňte na /opt/mattermost adresář a spusťte server pomocí následujících příkazů:

cd /opt/mattermostsudo -u mattermost bin/mattermost

Pokud vše funguje dobře, server se spustí a výstup bude vypadat nějak takto:

{"level":"info","ts":1532546921.941638,"caller":"app/server.go:115","msg":"Starting Server..."}
{"level":"info","ts":1532546921.9421031,"caller":"app/server.go:154","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1532546921.9541554,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}

Nyní můžeme zastavit server Mattermost pomocí CTRL+C a pokračujte dalšími kroky.

Vytvořit jednotku Systemd #

Abychom mohli spustit naši instanci Mattermost jako službu, vytvoříme mattermost.service soubor jednotky v /etc/systemd/system/ adresář.

Otevřete textový editor a vytvořte následující soubor:

/etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

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

[Install]
WantedBy=mysql.service

Informujte systemd, že jsme vytvořili nový soubor jednotky a spusťte službu Mattermost pomocí následujících příkazů:

sudo systemctl daemon-reloadsudo systemctl start mattermost

Nyní můžeme zkontrolovat stav služby pomocí:

sudo systemctl status mattermost
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; ven
   Active: active (running) since Wed 2018-07-25 18:39:05 UTC; 41s ago
 Main PID: 3091 (mattermost)
    Tasks: 18 (limit: 507)
   CGroup: /system.slice/mattermost.service
           ├─3091 /opt/mattermost/bin/mattermost

Pokud nejsou žádné chyby, povolte automatické spouštění služby Mattermost při spouštění:

sudo systemctl enable mattermost

Nastavit reverzní proxy s Nginx #

Pokud jste postupovali podle našich pokynů, jak nainstalovat Nginx na Ubuntu 18.04 a jak zabezpečit Nginx pomocí příruček Let’s Encrypt na Ubuntu 18.04, měli byste již mít Nginx nainstalovaný a nakonfigurovaný s certifikátem SSL.

Nyní musíme nastavit nový blok serveru pro instanci Mattermost. Otevřete textový editor a vytvořte následující soubor:

/etc/nginx/conf.d/example.com.conf
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

upstream mattermost_backend {
  server 127.0.0.1:8065;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    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;
       proxy_read_timeout 600s;
       proxy_pass http://mattermost_backend;
    }

    location / {
       proxy_http_version 1.1;
       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_pass http://mattermost_backend;
    }
}

Znovu načtěte službu Nginx, aby se změny projevily:

sudo systemctl reload nginx

Konfigurace Mattermost #

Otevřete prohlížeč, zadejte svou doménu a budete přesměrováni na stránku přihlášení.

Zadejte svůj e-mail, zvolte uživatelské jméno a heslo a klikněte na Create Account vytvořte svůj první účet.

První vytvořený uživatel v systému bude mít administrátorská práva.

V dalším kroku vás průvodce konfigurací požádá o vytvoření nového týmu.

Klikněte na Create a new team zadejte svůj první tým a klikněte na Next tlačítko.

V dalším kroku budete požádáni, abyste vybrali webovou adresu svého nového týmu:

Klikněte na Finish a budete přesměrováni na řídicí panel Mattermost, přihlášeni jako správce.

Otevřete systémovou konzolu kliknutím na své uživatelské jméno v horní části navigačního panelu a v nové nabídce, která se otevře, klikněte na System Console odkaz.

Nastavte adresu URL webu v Nastavení Obecné → Konfigurace.

Chcete-li povolit e-mailová upozornění, přejděte do Oznámení → E-mail, změňte Enable Email Notifications hodnota z false true a zadejte své parametry SMTP.

Můžete použít jakékoli oblíbené transakční e-mailové služby, jako je SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet a Postmark, nebo si můžete nastavit svůj vlastní poštovní server podle tohoto návodu.

Nakonec musíme restartovat službu Mattermost, aby se změny projevily:

sudo systemctl restart mattermost

Ubuntu
  1. Jak nasadit Odoo 11 na Ubuntu 18.04

  2. Jak nainstalovat MySQL na Ubuntu 18.04

  3. Jak nainstalovat Zimbru 8.6 na server Ubuntu 14.04

  1. Jak nasadit Rocket.Chat na Ubuntu 18.04

  2. Jak nastavit server OpenVPN na Ubuntu 18.04

  3. Jak nasadit Odoo 12 na Ubuntu 18.04

  1. Jak nainstalovat Minecraft Server na Ubuntu 18.04

  2. Jak nainstalovat Nginx na Ubuntu 20.04

  3. Jak nainstalovat MariaDB na Ubuntu 20.04