GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menggunakan Mattermost di Ubuntu 18.04

Mattermost adalah platform perpesanan instan kelas perusahaan, alternatif Slack yang dihosting sendiri dengan sumber terbuka. Ini ditulis dalam Golang dan React dan dapat menggunakan MySQL atau PostgreSQL sebagai backend database. Mattermost membawa semua komunikasi tim Anda ke satu tempat dan menyediakan berbagai fitur termasuk berbagi file, pesan pribadi dan grup, emoji khusus, panggilan video, dan banyak lagi.

Dalam tutorial ini, kita akan menginstal Mattermost pada server Ubuntu 18.04 dan mengonfigurasi Nginx sebagai proxy terbalik SSL.

Prasyarat #

Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:

  • Anda masuk sebagai pengguna dengan hak istimewa sudo.
  • Anda memiliki nama domain yang menunjuk ke alamat IP server Anda. Dalam artikel ini kita akan menggunakan example.com .
  • Anda telah menginstal Nginx, jika belum periksa panduan ini.
  • Anda memiliki sertifikat SSL yang terpasang untuk domain Anda. Anda dapat menginstal sertifikat SSL Let's Encrypt gratis dengan mengikuti panduan ini.

Buat Database MySQL #

Kami akan menggunakan MySQL sebagai database untuk Mattermost. Jika Anda belum menginstal MySQL atau MariaDB di server Anda, Anda dapat menginstalnya dengan mengikuti petunjuk berikut.

Masuk ke shell MySQL:

mysql -u root

Buat database dan pengguna baru untuk instalasi Mattermost kami dengan:

CREATE DATABASE mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';
Pastikan Anda menggunakan sandi yang lebih aman daripada P4ssvv0rD .

Buat pengguna sistem baru #

Buat pengguna dan grup baru yang akan menjalankan instance Mattermost kami. Kami akan memberi nama pengguna mattermost :

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

Instal Server Mattermost #

Pada saat artikel ini ditulis, versi stabil terbaru dari Mattermost adalah versi 5.1.0. Unduh arsip dengan perintah curl berikut:

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

Setelah unduhan selesai, ekstrak arsip dan pindahkan ke /opt direktori

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

Buat direktori penyimpanan untuk file:

sudo mkdir -p /opt/mattermost/data

Ubah kepemilikan direktori menjadi mattermost pengguna:

sudo chown -R mattermost: /opt/mattermost

Buka /opt/mattermost/config/config.json file, atur driver database ke mysql dan masukkan informasi database:

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

Untuk memastikan bahwa instance Mattermost kami berfungsi seperti yang diharapkan, kami akan menguji server Mattermost. Ubah menjadi /opt/mattermost direktori dan mulai server dengan perintah berikut:

cd /opt/mattermostsudo -u mattermost bin/mattermost

Jika semuanya bekerja dengan baik, server akan mulai dan output akan terlihat seperti ini :

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

Kami sekarang dapat menghentikan server Mattermost dengan CTRL+C dan lanjutkan dengan langkah berikutnya.

Buat unit Systemd #

Untuk menjalankan instance Mattermost sebagai layanan, kami akan membuat mattermost.service file unit di /etc/systemd/system/ direktori.

Buka editor teks Anda dan buat file berikut:

/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

Beri tahu systemd bahwa kami telah membuat file unit baru dan memulai layanan Mattermost dengan perintah berikut:

sudo systemctl daemon-reloadsudo systemctl start mattermost

Kami sekarang dapat memeriksa status layanan dengan:

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

Jika tidak ada kesalahan, aktifkan layanan Mattermost untuk memulai secara otomatis saat boot:

sudo systemctl enable mattermost

Siapkan proxy terbalik dengan Nginx #

Jika Anda mengikuti panduan cara menginstal Nginx di Ubuntu 18.04dan cara mengamankan Nginx dengan Let's Encrypt di Ubuntu 18.04, Anda seharusnya sudah menginstal dan mengonfigurasi Nginx dengan sertifikat SSL.

Sekarang kita perlu menyiapkan blok server baru untuk instance Mattermost. Buka editor teks Anda dan buat file berikut:

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

Muat ulang layanan Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Mengonfigurasi Mattermost #

Buka browser Anda, ketik domain Anda dan Anda akan diarahkan ke halaman pendaftaran.

Masukkan email Anda, pilih nama pengguna dan kata sandi dan klik tombol Create Account untuk membuat akun pertama Anda.

Pengguna pertama yang dibuat dalam sistem akan memiliki hak administrator.

Pada langkah berikutnya, wizard konfigurasi akan meminta Anda untuk membuat tim baru.

Klik Create a new team link, masukkan tim pertama Anda dan klik Next tombol.

Pada langkah berikutnya Anda akan diminta untuk memilih alamat web tim baru Anda:

Klik tombol Finish dan Anda akan diarahkan ke dasbor Mattermost , masuk sebagai administrator.

Buka Konsol Sistem, dengan mengklik nama pengguna Anda di bagian atas panel navigasi, dan di menu baru yang terbuka, klik System Console tautan.

Setel URL situs dengan membuka Pengaturan Umum → Konfigurasi.

Untuk mengaktifkan notifikasi email, buka Notifikasi → Email, ubah Enable Email Notifications nilai dari false untuk true dan masukkan parameter SMTP Anda.

Anda dapat menggunakan layanan email transaksional populer seperti SendinBlue, SendGrid, Amazon SES, Mandrill, Mailgun, Mailjet, dan Postmark atau Anda dapat mengatur server email Anda sendiri dengan mengikuti tutorial ini.

Terakhir, kita perlu memulai ulang layanan Mattermost agar perubahan diterapkan:

sudo systemctl restart mattermost

Ubuntu
  1. Cara menyebarkan Odoo 11 di Ubuntu 18.04

  2. Cara Menginstal MySQL di Ubuntu 18.04

  3. Cara Instal Zimbra 8.6 di Server Ubuntu 14.04

  1. Cara Menyebarkan Rocket.Chat di Ubuntu 18.04

  2. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  3. Cara menggunakan Odoo 12 di Ubuntu 18.04

  1. Cara Memasang Server Minecraft di Ubuntu 18.04

  2. Cara Menginstal Nginx di Ubuntu 20.04

  3. Cara Menginstal MariaDB di Ubuntu 20.04