GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Sistem Pesan Tim Mattermost di Ubuntu 20.04

Mattermost adalah aplikasi perpesanan open-source dan self-hosted yang digunakan untuk obrolan, berbagi file, pencarian, dan integrasi. Ini adalah alternatif untuk obrolan Slack yang membawa semua komunikasi tim Anda ke satu tempat. Itu ditulis dalam React dan Golang, dan menggunakan database PostgreSQL atau MySQL di backend. Ini menawarkan serangkaian fitur yang kaya termasuk, Pemberitahuan Push, Riwayat pencarian tidak terbatas, Emoji khusus, Webhooks &perintah, Direktori aktif, Dukungan penyebaran basis data multi-simpul, Forum, Papan Diskusi, dan banyak lagi.

Dalam tutorial ini, kami akan menunjukkan cara menginstal Mattermost dengan Nginx dan Let's Encrypt SSL di Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04.
  • Nama domain valid yang ditunjukkan dengan IP server Anda.
  • Kata sandi root dikonfigurasi di server.

Memulai

Pertama, disarankan untuk memperbarui paket sistem Anda dengan versi terbaru. Anda dapat memperbaruinya dengan menjalankan perintah berikut:

apt-get update -y

Setelah semua paket diperbarui, instal dependensi lain yang diperlukan dengan menjalankan perintah berikut:

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

Setelah menginstal semua paket yang diperlukan, Anda dapat melanjutkan ke langkah berikutnya.

Instal dan Konfigurasi MariaDB

Mattermost menggunakan MySQL/MariaDB sebagai backend database. Jadi server MariaDB harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstalnya dengan perintah berikut:

apt-get install mariadb-server -y

Setelah menginstal server MariaDB, masuk ke MariaDB dengan perintah berikut:

mysql

Setelah login, buat database dan user untuk Mattermost dengan perintah berikut:

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

Selanjutnya, berikan semua hak istimewa ke Mattermost dengan perintah berikut:

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

Selanjutnya, flush hak istimewa dan keluar dari shell MariaDB dengan perintah berikut:

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

Setelah database MariaDB Anda dikonfigurasi, Anda dapat melanjutkan ke langkah berikutnya.

Instal dan Konfigurasikan Mattermost

Pertama, Anda perlu mengunduh Mattermost versi terbaru dari situs resminya. Anda dapat mengunduhnya dengan perintah berikut:

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

Setelah diunduh, ekstrak file yang diunduh dengan perintah berikut:

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

Selanjutnya, salin direktori yang diekstrak ke /opt:

cp -r mattermost /opt

Selanjutnya, buat direktori data untuk Mattermost:

mkdir /opt/mattermost/data

Selanjutnya, Anda perlu membuat pengguna terpisah untuk menjalankan Mattermost. Anda dapat membuatnya dengan perintah berikut:

useradd --system --user-group mattermost

Selanjutnya, ubah kepemilikan direktori mattermost menjadi mattermost dan berikan izin yang sesuai dengan perintah berikut:

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

Selanjutnya, edit file konfigurasi default Mattermost dan tentukan pengaturan database dan URL situs Anda.

nano /opt/mattermost/config/config.json

Ubah baris berikut sesuai kebutuhan Anda:

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

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

Simpan dan tutup file setelah Anda selesai.

Buat File Layanan Systemd untuk Mattermost

Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan Mattermost. Anda dapat membuatnya dengan perintah berikut:

nano /lib/systemd/system/mattermost.service

Tambahkan baris berikut:

[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

Simpan dan tutup file kemudian reload daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, mulai layanan Mattermost dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:

systemctl start mattermost
systemctl enable mattermost

Selanjutnya, verifikasi status layanan Mattermost dengan perintah berikut:

systemctl status mattermost

Anda akan mendapatkan output berikut:

? 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.

Pada titik ini, Mattermost sedang berjalan dan mendengarkan pada port 8065.

Konfigurasikan Nginx sebagai Proxy Terbalik

Selanjutnya, Anda perlu mengonfigurasi Nginxx sebagai proxy terbalik untuk Mattermost. Pertama, instal paket Nginx dengan perintah berikut:

apt-get install nginx -y

Setelah terinstal, buat file konfigurasi virtual host Nginx dengan perintah berikut:

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

Tambahkan baris berikut:

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

Simpan dan tutup file tersebut kemudian aktifkan konfigurasi virtual host dengan perintah berikut:

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

Selanjutnya, verifikasi Nginx untuk kesalahan konfigurasi apa pun:

nginx -t

Anda akan mendapatkan output berikut:

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

Terakhir, restart layanan Nginx untuk menerapkan perubahan:

systemctl restart nginx

Amankan Mattermost dengan Let's Encrypt SSL

Pertama, Anda perlu menginstal klien Certbot di sistem Anda untuk mengelola Let's Encrypt SSL. Anda dapat menginstalnya dengan perintah berikut:

apt-get install python3-certbot-nginx -y

Setelah menginstal Certbot, jalankan perintah berikut untuk menginstal Let's Encrypt SSL untuk situs web Anda.

certbot --nginx -d mattermost.linuxbuz.com

Anda akan diminta untuk memberikan alamat email yang valid dan menerima persyaratan layanan seperti yang ditunjukkan di bawah ini:

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

Selanjutnya, pilih apakah akan mengalihkan lalu lintas HTTP ke HTTPS atau tidak:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Ketik 2 dan tekan Enter untuk menginstal Let's Encrypt SSL di domain Anda. Setelah diinstal, Anda akan melihat output berikut:

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.

Akses Antarmuka Web Penting

Sekarang, buka browser web Anda dan ketik URL https://mattermost.linuxbuz.com. Anda akan diarahkan ke layar pendaftaran Mattermost:

Berikan alamat email, nama, sandi, dan klik Buat Akun tombol. Anda akan melihat layar berikut:

Klik pada Buat a tim tombol. Anda akan melihat layar berikut:

Berikan nama Tim Anda dan klik Berikutnya tombol. Anda akan melihat layar berikut:

Berikan URL tim Anda dan klik Selesai tombol. Anda akan melihat layar Selamat Datang Terpenting:

Klik Lewati Tutorial tombol. Anda akan melihat dasbor Mattermost di layar berikut:

Kesimpulan

Dalam panduan ini, Anda mempelajari cara menginstal aplikasi Mattermost Team Messaging di server Ubuntu 20.04. Anda juga mempelajari cara mengonfigurasi Nginx sebagai proxy terbalik dan mengamankannya dengan Let's Encrypt SSL. Sekarang Anda dapat menjelajahi layanan Mattermost dan bekerja sama dengan tim Anda.


Ubuntu
  1. Cara Menginstal Logstash di Ubuntu 18.04

  2. Cara Menginstal Gradle di Ubuntu 18.04

  3. Cara Menginstal Elasticsearch di Ubuntu 20.04

  1. Cara Menginstal OpenProject di Ubuntu 16.04

  2. Cara Menginstal Sistem Pesan Tim Mattermost di Debian 10

  3. Cara Menginstal Sistem Manajemen Proyek Taiga di Ubuntu 20.04

  1. Cara Menginstal Server Perpesanan Centrifugo di Ubuntu 20.04

  2. Cara Menginstal Syncthing di Ubuntu 20.04

  3. Cara menginstal Sysdig untuk Memantau Beban Sistem di Ubuntu 20.04