GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come distribuire Mattermost su Ubuntu 18.04

Mattermost è una piattaforma di messaggistica istantanea di livello aziendale, un'alternativa Slack self-hosted open source. È scritto in Golang e React e può utilizzare MySQL o PostgreSQL come database back-end. Mattermost riunisce tutte le comunicazioni del tuo team in un unico posto e offre varie funzionalità tra cui condivisione di file, messaggistica individuale e di gruppo, emoji personalizzati, videochiamate e altro ancora.

In questo tutorial, installeremo Mattermost su un server Ubuntu 18.04 e configureremo Nginx come proxy inverso SSL.

Prerequisiti #

Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:

  • Sei loggato come utente con privilegi sudo.
  • Hai un nome di dominio che punta all'indirizzo IP del tuo server. In questo articolo utilizzeremo example.com .
  • Hai installato Nginx, in caso contrario controlla questa guida.
  • Hai un certificato SSL installato per il tuo dominio. Puoi installare un certificato SSL Let's Encrypt gratuito seguendo questa guida.

Crea database MySQL #

Useremo MySQL come database per Mattermost. Se non hai MySQL o MariaDB installato sul tuo server puoi installarlo seguendo queste istruzioni.

Accedi alla shell MySQL:

mysql -u root

Crea un nuovo database e un nuovo utente per la nostra installazione Mattermost con:

CREATE DATABASE mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
Assicurati di utilizzare una password più sicura di P4ssvv0rD .

Crea nuovo utente di sistema #

Crea un nuovo utente e gruppo che eseguirà la nostra istanza Mattermost. Assegneremo all'utente il nome mattermost :

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

Installa il server Mattermost #

Al momento della stesura di questo articolo, l'ultima versione stabile di Mattermost è la versione 5.1.0. Scarica l'archivio con il seguente comando curl:

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

Una volta completato il download, estrai l'archivio e spostalo in /opt directory

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

Crea la directory di archiviazione per i file:

sudo mkdir -p /opt/mattermost/data

Cambia la proprietà della directory in mattermost utente:

sudo chown -R mattermost: /opt/mattermost

Apri il /opt/mattermost/config/config.json file, imposta il driver del database su mysql e inserisci le informazioni del database:

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

Per assicurarci che la nostra istanza Mattermost funzioni come previsto, testeremo il server Mattermost. Cambia nel /opt/mattermost directory e avvia il server con i seguenti comandi:

cd /opt/mattermostsudo -u mattermost bin/mattermost

Se tutto funziona bene, il server si avvierà e l'output sarà simile a questo:

{"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"}

Ora possiamo fermare il server Mattermost con CTRL+C e continua con i passaggi successivi.

Crea un'unità Systemd #

Per eseguire la nostra istanza Mattermost come servizio creeremo un mattermost.service file unit nel /etc/systemd/system/ directory.

Apri il tuo editor di testo e crea il seguente file:

/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

Notifica a systemd che abbiamo creato un nuovo file unit e avvia il servizio Mattermost con i seguenti comandi:

sudo systemctl daemon-reloadsudo systemctl start mattermost

Ora possiamo controllare lo stato del servizio con:

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

Se non ci sono errori, abilita l'avvio automatico del servizio Mattermost all'avvio:

sudo systemctl enable mattermost

Configura un proxy inverso con Nginx #

Se hai seguito le nostre istruzioni su come installare Nginx su Ubuntu 18.04 e come proteggere Nginx con Let's Encrypt su Ubuntu 18.04guide dovresti già avere Nginx installato e configurato con certificato SSL.

Ora dobbiamo impostare un nuovo blocco server per l'istanza Mattermost. Apri il tuo editor di testo e crea il seguente file:

/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;
    }
}

Ricarica il servizio Nginx per rendere effettive le modifiche:

sudo systemctl reload nginx

Configurazione di Mattermost #

Apri il browser, digita il tuo dominio e verrai reindirizzato alla pagina di iscrizione.

Inserisci la tua email, scegli un nome utente e una password e clicca su Create Account pulsante per creare il tuo primo account.

Il primo utente creato nel sistema avrà i privilegi di amministratore.

Nel passaggio successivo la procedura guidata di configurazione ti chiederà di creare un nuovo team.

Clicca su Create a new team link, inserisci la tua prima squadra e clicca su Next pulsante.

Nel passaggio successivo ti verrà chiesto di scegliere l'indirizzo web del tuo nuovo team:

Fare clic su Finish e verrai reindirizzato alla dashboard di Mattermost, effettuato l'accesso come amministratore.

Apri la Console di sistema, facendo clic sul tuo nome utente nella parte superiore del pannello di navigazione, e nel nuovo menu che si apre, fai clic su System Console collegamento.

Imposta l'URL del sito andando su Impostazioni Generali → Configurazione.

Per abilitare le notifiche e-mail, vai su Notifiche → E-mail, cambia il Enable Email Notifications valore da false su true e inserisci i tuoi parametri SMTP.

Puoi utilizzare qualsiasi servizio di posta elettronica transazionale popolare come SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet e Postmark oppure puoi configurare il tuo server di posta seguendo questo tutorial.

Infine, per rendere effettive le modifiche, è necessario riavviare il servizio Mattermost:

sudo systemctl restart mattermost

Ubuntu
  1. Come distribuire Odoo 11 su Ubuntu 18.04

  2. Come installare MySQL su Ubuntu 18.04

  3. Come distribuire Rocket.Chat su Ubuntu 18.04

  4. Come configurare un server OpenVPN su Ubuntu 18.04

  5. Come installare Zimbra 8.6 su Ubuntu 14.04 Server

Come installare il server OpenSIPS su Ubuntu 15.04

Come distribuire Mattermost su Ubuntu 20.04

Come installare Plex Media Server su Ubuntu 16.04 Server/Desktop

Mattermost Omnibus:come installare sul server Linux Ubuntu 20.04 LTS

Come distribuire un server TeamSpeak su Ubuntu 20.04

Come eseguire un'installazione completa di Mattermost su Ubuntu Server 22.04