GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menggunakan Mattermost di CentOS 7

Mattermost adalah platform perpesanan instan open-source, alternatif Slack yang dihosting sendiri. 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 satu lawan satu dan grup, emoji khusus, panggilan video, dan banyak lagi. Dalam tutorial ini, kami akan menunjukkan cara menerapkan Mattermost pada server CentOS 7 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. Kami akan menggunakan linuxize-test.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 MariaDB 10.3 sebagai back-end database. Mattermost tidak akan bekerja dengan MariaDB versi 5.5.

Jika Anda belum menginstal MariaDB 10.3 di server Anda, Anda dapat memeriksa panduan ini.

Masuk ke shell MySQL:

mysql -u root -p

Dan jalankan perintah berikut untuk membuat database dan pengguna baru untuk instalasi Mattermost kami:

create database mattermost;GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';

Buat pengguna sistem baru #

Untuk membuat pengguna dan grup baru bernama mattermost , yang akan menjalankan instalasi Mattermost, jalankan perintah berikut:

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

Instal Server Mattermost #

Pada saat artikel ini ditulis, versi stabil terbaru dari Mattermost adalah versi 5.4.0. Sebelum melanjutkan ke langkah berikutnya, Anda harus memeriksa halaman unduhan Mattermost untuk melihat apakah versi yang lebih baru tersedia.

Unduh arsip dengan perintah curl berikut:

sudo curl -L https://releases.mattermost.com/5.4.0/mattermost-5.4.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 /opt/mattermost/data

Ubah kepemilikan direktori menjadi mattermost pengguna:

sudo chown -R mattermost: /opt/mattermost

Buka config.json file dengan editor teks favorit Anda:

sudo nano /opt/mattermost/config/config.json

Setel driver database ke mysql , masukkan nama database dan kata sandi pengguna database yang telah kita buat sebelumnya dalam tutorial ini:

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

Untuk menguji instalasi kami untuk memastikan semuanya berfungsi sebelum membuat unit systemd dan menyiapkan proxy terbalik dengan Nginx, kami akan memulai server Mattermost.

Ubah menjadi /opt/mattermost direktori dan mulai server :

cd /opt/mattermostsudo -u mattermost bin/mattermost

Outputnya akan menunjukkan bahwa server Mattermost mendengarkan pada port8065 :

{"level":"info","ts":1540921243.6797202,"caller":"app/plugin.go:100","msg":"Starting up plugins"}
{"level":"info","ts":1540921244.3483207,"caller":"app/server.go:88","msg":"Starting Server..."}
{"level":"info","ts":1540921244.3488805,"caller":"app/server.go:148","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1540921244.3620636,"caller":"app/web_hub.go:75","msg":"Starting 2 websocket hubs"}
{"level":"info","ts":1540921244.451155,"caller":"jobs/workers.go:63","msg":"Starting workers"}
{"level":"info","ts":1540921244.456804,"caller":"jobs/schedulers.go:68","msg":"Starting schedulers."}

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

Buat Unit Sistem #

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

/etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target nss-lookup.target mariadb.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
SyslogIdentifier=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Beri tahu systemd bahwa kami membuat file unit baru dan memulai layanan Mattermost dengan menjalankan:

sudo systemctl daemon-reloadsudo systemctl start mattermost

Sekarang kita dapat memeriksa status layanan dengan perintah berikut:

sudo systemctl status mattermost
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-10-30 17:44:46 UTC; 3s ago
 Main PID: 25959 (mattermost)
   CGroup: /system.slice/mattermost.service
           └─25959 /opt/mattermost/bin/mattermost

Terakhir, aktifkan layanan Mattermost untuk dimulai secara otomatis saat boot:

sudo systemctl enable mattermost

Menyiapkan Proksi Terbalik dengan Nginx #

Jika Anda mengikuti cara kami menginstal Nginx di CentOS 7 dan cara mengamankan Nginx dengan Let's Encrypt on CentOS 7guides, Anda seharusnya sudah menginstal dan mengonfigurasi Nginx dengan sertifikat SSL. Sekarang kita hanya perlu membuat blok server baru untuk instalasi Mattermost kita.

/etc/nginx/conf.d/linuxize-test.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 linuxize-test.com www.linuxize-test.com;

    include snippets/letsencrypt.conf;
    return 301 https://linuxize-test.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.linuxize-test.com;

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

    return 301 https://linuxize-test.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name linuxize-test.com;

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

    access_log /var/log/nginx/linuxize-test.com-access.log;
    error_log /var/log/nginx/linuxize-test.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 buat akun pertama Anda:

Pengguna pertama yang dibuat dalam sistem memiliki hak administrator.

Klik Create a new team link, buat tim pertama Anda, dan setel URL tim:

Setelah Anda membuat akun administrator pertama dan tim pertama, 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.

Aktifkan notifikasi email dengan membuka Notifikasi → Email

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.

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

sudo systemctl restart mattermost

Cent OS
  1. Bagaimana cara menginstal wordpress di CentOS 6

  2. Cara menyebarkan CDP di server CentOS

  3. Cara Menginstal SpaceWalk di CentOS 6 / RHEL 6

  1. Cara Menginstal Server Database MySQL 8 di CentOS 8

  2. Cara Menginstal PostgreSQL di CentOS 7 / RHEL 7

  3. Cara Menginstal SpaceWalk di CentOS 7 / RHEL 7

  1. Cara menggunakan Mattermost di Ubuntu 18.04

  2. Cara Menginstal Mediawiki di Server CentOS

  3. Cara Menginstal AIDE di CentOS 7