GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal Sistem Pesan Tim Mattermost di Debian 10

Mattermost adalah sistem pesan open-source yang ditulis dalam bahasa pemrograman Golang dan React. Ini adalah alternatif slack, kita dapat menggunakannya untuk membangun layanan perpesanan kita sendiri seperti slack atau hipchat dengannya.

Mattermost membawa komunikasi tim Anda ke satu tempat dan membuatnya dapat diakses di mana saja. Anda dapat mengaksesnya dari desktop, perangkat Android, dan iPhone.

Dalam tutorial ini, kami akan menunjukkan cara menginstal Mattermost pada Debian Buster 10. Kami akan menginstal Mattermost dengan server database MySQL, server web Nginx, dan menjalankan Mattermost sebagai layanan Systemd pada Debian versi Buster 10 terbaru.

Prasyarat

Untuk tutorial ini, kami akan menguji instalasi Mattermost pada Debian 10 dengan Ram 2GB, 25 Ruang disk kosong, dan 2CPU.

Apa yang akan kita lakukan?

  • Instal Server MySQL
  • Buat Database MySQL untuk Yang Paling Penting
  • Tambahkan Pengguna Sistem dan Unduh Yang Penting
  • Konfigurasikan Yang Paling Penting
  • Menyiapkan Penting sebagai Layanan Systemd
  • Buat SSL Letsencrypt
  • Instal dan Konfigurasi Nginx sebagai Proxy-Terbalik
  • Pengujian

Langkah 1 - Instal Database MySQL

Pertama, kita akan menginstal MySQL Server 8.0 dari repositori resmi ke server Debian kita. Sp, kami akan menambahkan repositori MySQL resmi dan menginstal paket MySQL.

Instal alat 'gnupg2' ke server Debian menggunakan perintah apt di bawah ini.

sudo apt install curl wget gnupg2

Unduh dan tambahkan repositori MySQL untuk sistem Debian menggunakan perintah berikut.

wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb

Sekarang perbarui semua repositori Debian dan instal paket Server MySQL.

sudo apt update
sudo apt install mysql-server -y

Selama instalasi Server MySQL, Anda akan diminta untuk mengonfigurasi kata sandi root untuk server MySQL Anda.

Ketik kata sandi root Anda untuk MySQL dan ulangi.

Setelah instalasi selesai, jalankan layanan MySQL dan tambahkan ke

systemctl start mysql
systemctl aktifkan mysql

Hasilnya, Server MySQL sekarang terinstal di Debian Buster 10. Dan kata sandi root untuk Server MySQL telah dikonfigurasi.

Langkah 2 - Buat Database MySQL untuk Mattermost

Secara default, Mattermost mendukung dua driver database, database PostgreSQL dan MySQL. Dan untuk tutorial ini, kita akan menggunakan MySQL sebagai database default untuk Mattermost.

Pada langkah ini, kita akan membuat database dan pengguna baru untuk instalasi Mattermost.

Masuk ke shell MySQL menggunakan pengguna root dan kata sandi Anda seperti di bawah ini.

mysql -u root -p

Sekarang buat database dan pengguna baru untuk Mattermost. Kami akan membuat database baru 'mattermost' dengan user 'mmuser' dan password 'mmuser-password'.

buat database yang paling penting;
buat pengguna [dilindungi email] yang diidentifikasi dengan 'mmuser-password';
berikan semua hak istimewa pada hal yang paling penting.* kepada [dilindungi email];
hak flush;

Sekarang ketik 'exit' untuk keluar dari shell MySQL.

Dan sebagai hasilnya, database MySQL dan pengguna untuk instalasi Mattermost telah dibuat.

Langkah 3 - Tambahkan Pengguna dan Unduh Mattermost

Pada langkah ini, kami akan membuat pengguna sistem baru dan mengunduh kode sumber Mattermost. Perangkat lunak Mattermost akan berjalan di bawah nama pengguna 'mattermost', yang akan diinstal pada direktori '/opt/mattermost'.

Buat pengguna sistem baru bernama 'mattermost' menggunakan perintah di bawah ini.

useradd --system --user-group paling penting

Sekarang masuk ke direktori '/opt' dan unduh kode sumber Mattermost menggunakan perintah curl di bawah ini.

cd /opt/
curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz

Ekstrak kode sumber Mattermost dan buat direktori 'data' baru.

tar -xf mattermost.tar.gz
mkdir -p /opt/mattermost/data

Setelah itu, ubah kepemilikan direktori '/opt/mattermost' menjadi pengguna 'mattermost' dan buat agar dapat ditulis.

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

Hasilnya, pengguna 'mattermost' telah dibuat, dan kode sumber Mattermost telah diunduh ke direktori '/opt/mattermost'.

Langkah 4 - Konfigurasi Mattermost

Pada langkah ini, kita akan mengatur Mattermost listen to address dan database. Layanan Mattermost akan berjalan pada alamat IP lokal pada port default 8065 dan menggunakan MySQL sebagai sistem database.

Buka direktori '/opt/mattermost' dan edit file konfigurasi 'config.json' pada direktori 'config'.

cd /opt/mattermost/
vim config/config.json

Pada opsi 'ListenAddress', ubah alamat IP menjadi '127.0.0.1'.

    "ListenAddress":"127.0.0.1:8065",

Satu 'SqlSettings', ubah DriverName menjadi 'mysql' dan ubah 'DataSource' dengan database MySQL dan user yang telah kita buat.

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

Simpan dan tutup.

Selanjutnya, inisialisasi instalasi Mattermost menggunakan perintah berikut.

sudo -u mattermost ./bin/mattermost

Di bawah ini adalah hasil yang akan Anda dapatkan.

Hasilnya, Mattermost aktif dan berjalan pada alamat IP lokal '127.0.0.1' dengan port '8065', sekarang tekan tombol 'Ctrl+c' untuk keluar.

Langkah 5 - Siapkan Mattermost sebagai Layanan

Pada langkah ini, kita akan mengatur Mattermost sebagai layanan systemd, dan itu akan berjalan secara otomatis pada boot sistem setelah layanan database MySQL berjalan.

Sekarang buka direktori '/lib/systemd/system' dan buat file layanan baru 'mattermost.service'.

cd /lib/systemd/system/
vim mattermost.service

Sekarang rekatkan konfigurasi berikut ke dalamnya.

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

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

[Install]
WantedBy=multi-user.target

Simpan dan tutup.

Selanjutnya, muat ulang manajer systemd pada sistem Debian.

systemctl daemon-reload

Setelah itu, mulai layanan Mattermost dan tambahkan ke boot sistem.

systemctl start mattermost
systemctl enable mattermost

Layanan Mattermost aktif dan berjalan, periksa menggunakan perintah berikut.

status systemctl paling penting

Di bawah ini adalah hasil yang akan Anda dapatkan.

Akibatnya, layanan Mattermost aktif dan berjalan di Sistem Debian, dan akan berjalan secara otomatis saat boot sistem.

Langkah 6 - Instal Certbot Letsencrypt

Pada langkah ini, kita akan menginstal alat certbot dan menghasilkan SSL Letsencrypt. Kami akan mengamankan instalasi Mattermost menggunakan SSL dari Letsencrypt.

Instal alat certbot menggunakan perintah apt di bawah ini.

sudo apt install certbot

Setelah instalasi selesai, buat SSL letsencrypt menggunakan perintah certbot di bawah ini.

certbot certonly --standalone --agree-tos -m [email protected] -d mattermost.hakase-labs.io

Akibatnya, sertifikat SSL Anda akan dibuat di direktori '/etc/letsencrypt/live/mattermost-hakase-labs.io'.

Langkah 7 - Instal dan Konfigurasi Nginx sebagai Proxy Terbalik

Pada langkah ini, kita akan menginstal server web Nginx dan mengaturnya sebagai proxy terbalik untuk layanan Mattermost.

Instal Nginx menggunakan perintah apt di bawah ini.

sudo apt install nginx -y

Setelah instalasi selesai, mulai layanan Nginx dan tambahkan ke boot sistem.

systemctl start nginx 
systemctl aktifkan nginx

Server web Nginx aktif dan berjalan.

Selanjutnya, buka direktori konfigurasi '/etc/nginx' dan buat konfigurasi virtual host baru untuk hal yang paling penting.

cd /etc/nginx/
vim sites-available/mattermost

Ubah nama domain dan jalur sertifikat SSL dengan milik Anda, lalu tempelkan konfigurasi ke dalamnya.

backend upstream {
   server 127.0.0.1:8065;
   keepalive 32;
}

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

server {
   listen        80;
   server_name    edu.initrc.fun;
   return        301 https://$server_name$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name    edu.initrc.fun

    ssl pada;
    ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem;
ssl_session_timeout 1d;
    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHEECDHE-ECDPOLYAES256-GCM-SHA384:ECDHEECDHE- CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES56128-ECDSA-AES RSA-AES128-SHA256 ';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
    # HSTS (ngx_http_headers_module diperlukan) (15768000 detik =6 bulan)
    add_Transporter Ketat age=15768000;
    # OCSP Stapling ---
    # ambil data OCSP dari URL di ssl_certificate dan simpan dalam cache
    ssl_stapling aktif;
    ssl_stapling_verify on;

   lokasi ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Koneksi "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;
 
  _header proxy_set_header X-Frame-Options SAMA;
       proxy_buffers 256 16k;
      proxy_buffer_size 16k;
      client_body_timeout 60;
      se nd_timeout 300;
       lingering_timeout 5;
      proxy_connect_timeout 90;
      proxy_send_timeout 300;
      proxy_read_timeout 90-an;
       proxy_pass http://   }>
   lokasi / {
       client_max_body_size 50M;
      proxy_set_header Koneksi "";
      proxy_set_header Host $http_host;
      proxy_set_header X-Real_-IP $remote_IP; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Frame-Options SAMA ASAL;
      16 proxy;
       proxy br />       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
      proxy_cache_revalidate on;
      proxy_cache_min_uses 2;
      proxy di proxy <__use; />       proxy_pass http://backend;
   }
}

Simpan dan tutup.

Selanjutnya, buat direktori cache Nginx dan ubah kepemilikan direktori tersebut menjadi pengguna 'www-data' default.

mkdir -p /var/cache/nginx
chown -R www-data:www-data /var/cache/nginx

Setelah itu, aktifkan virtualhost Mattermost, lalu uji konfigurasi nginx dan pastikan tidak ada error.

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
nginx -t

Sekarang restart layanan Nginx menggunakan perintah systemctl di bawah ini.

systemctl restart nginx

Hasilnya, instalasi dan konfigurasi Nginx sebagai proxy terbalik untuk Mattermost telah selesai. Dan kami siap untuk menguji penginstalan Mattermost.

Langkah 8 - Pengujian

Buka browser web Anda dan ketik nama domain URL instalasi Mattermost Anda di bilah alamat. Milik saya adalah:

https://mattermost.hakase-labs.io/

Sekarang Anda perlu membuat akun pertama yang baru di Mattermost, ini akan menjadi administrator Mattermost.

Ketik detail nama pengguna, email, dan kata sandi Anda, lalu klik tombol "Buat Akun".

Buat tim pertama baru di Mattermost.

Ketik nama tim pertama Anda dan klik 'Berikutnya'.

Dan URL tim akan menjadi nama tim, klik 'Selesai' untuk melanjutkan.

Dan Anda akan secara otomatis bergabung ke saluran default "Off-Topic" dan "Town Square".

Hasilnya, instalasi Mattermost pada Debian Buster 10 dengan database MySQL dan server web Nginx telah berhasil diselesaikan.


Debian
  1. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  2. Cara Menginstal MySQL di Debian 11

  3. Cara Menginstal MySQL Workbench di Debian 11

  1. Cara Menginstal Gradle di Debian 10

  2. Cara Menginstal AnyDesk di Debian 10

  3. Cara Menginstal Server MySQL di Debian 9

  1. Cara Menginstal MySQL di Debian 9

  2. Cara Menginstal Nextcloud 15 di Debian 9

  3. Cara Menginstal MySQL Workbench di Debian 10