“Cara Install Mattermost Server pada Amazon Linux”
Daftar Isi
Pengantar
Mattermost adalah alat obrolan dan kolaborasi sumber terbuka dan gratis. Mattermost memiliki banyak keunggulan sebagai alat obrolan dan kolaborasi online seperti integrasi dengan alat online lainnya, bot yang dapat dikonfigurasi untuk alur kerja khusus dan banyak lagi. Alat ini populer dengan alat DevOps seperti Git.
Arsitektur Mattermost
Persyaratan
- 1 – 1,000 users – 1 vCPU/cores, 2 GB RAM
- 1,000 – 2,000 users – 2 vCPUs/cores, 4 GB RAM
Install Mattermost Server pada Amazon Linux
sudo yum -y update sudo reboot
- Install Database Server
sudo yum -y install @mariadb sudo systemctl enable --now mariadb
Konfigurasi Mariadb
sudo mysql_secure_installation
Buat DB baru
mysql -u root -p CREATE DATABASE mattermost; GRANT ALL PRIVILEGES ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'Str0ngPassw0rd'; FLUSH PRIVILEGES; QUIT;
- Buat User baru
sudo useradd -d /opt/mattermost -U -M mattermost
- Download mattermost
wget https://releases.mattermost.com/6.0.1/mattermost-6.0.1-linux-amd64.tar.gz
- extract file
tar xvf mattermost-6.0.1-linux-amd64.tar.gz
- Pindahkan file
sudo mv mattermost /opt
- Buat folder baru
sudo mkdir /opt/mattermost/data
- Tambahkan permission
sudo chown -R mattermost:mattermost /opt/mattermost sudo chmod -R g+w /opt/mattermost
- Konfigurasi Driver DB
sudo vim /opt/mattermost/config/config.json
Set the “DriverName” to mysql Configure the “DataSource” in the format "mmuser:<mmuser-password>@tcp(:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"
"SqlSettings": { "DriverName": "mysql", "DataSource": "mattermost:Str0ngPassw0rd@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s", "DataSourceReplicas": [], "DataSourceSearchReplicas": [], "MaxIdleConns": 20, "ConnMaxLifetimeMilliseconds": 3600000, "MaxOpenConns": 300, "Trace": false, "AtRestEncryptKey": "", "QueryTimeout": 30 },
Jalankan Mattermost server
cd /opt/mattermost
$ sudo -u mattermost ./bin/mattermost {"level":"info","ts":1629019440.0392742,"caller":"app/server.go:269","msg":"Server is initializing...","go_version":"go1.15.5"} {"level":"info","ts":1629019440.0393405,"caller":"app/web_hub.go:93","msg":"Starting websocket hubs","number_of_hubs":2} {"level":"info","ts":1629019440.0397189,"caller":"i18n/i18n.go:93","msg":"Loaded system translations","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"} {"level":"info","ts":1629019440.0487335,"caller":"sqlstore/store.go:306","msg":"Pinging SQL","database":"master"} {"level":"info","ts":1629019440.056872,"caller":"sqlstore/store.go:306","msg":"Pinging SQL","database":"migrations"} {"level":"info","ts":1629019440.1456177,"caller":"app/server.go:579","msg":"Enterprise Build","enterprise_build":true} {"level":"info","ts":1629019440.145637,"caller":"app/server.go:585","msg":"Printing current working","directory":"/opt/mattermost"} {"level":"info","ts":1629019440.1456475,"caller":"app/server.go:586","msg":"Loaded config","source":"file:///opt/mattermost/config/config.json"} {"level":"info","ts":1629019440.152936,"caller":"jobs/workers.go:135","msg":"Starting workers"} {"level":"info","ts":1629019440.1530619,"caller":"jobs/schedulers.go:116","msg":"Starting schedulers."} {"level":"info","ts":1629019440.161364,"caller":"mlog/log.go:237","msg":"Starting up plugins"} {"level":"info","ts":1629019440.1614122,"caller":"app/plugin.go:258","msg":"Syncing plugins from the file store"} {"level":"info","ts":1629019442.7709634,"caller":"app/license.go:88","msg":"License key from https://mattermost.com required to unlock enterprise features."} {"level":"info","ts":1629019443.1491122,"caller":"mlog/sugar.go:21","msg":"Ensuring Surveybot exists","plugin_id":"com.mattermost.nps"} {"level":"info","ts":1629019443.3604462,"caller":"app/server.go:1179","msg":"Starting Server..."} {"level":"info","ts":1629019443.3606062,"caller":"app/server.go:1255","msg":"Server is listening on [::]:8065","address":"[::]:8065"}
Cek port
ss -plunt | grep 8065
Konfigurasi Mattermost service
- Tambahkan service
sudo tee /etc/systemd/system/mattermost.service<<EOF [Unit] Description=Mattermost After=syslog.target network.target mariadb.service [Service] Type=notify WorkingDirectory=/opt/mattermost User=mattermost ExecStart=/opt/mattermost/bin/mattermost PIDFile=/var/run/mattermost.pid TimeoutStartSec=3600 LimitNOFILE=49152 [Install] WantedBy=multi-user.target EOF
- Edit Selinux
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
- Reload system
sudo systemctl daemon-reload sudo systemctl enable --now mattermost
Install Nginx Proxy
- Install nginx
sudo dnf -y install epel-release sudo dnf -y install nginx
- Enable proxy
sudo systemctl enable --now nginx
- Edit Nginx config
sudo vi /etc/nginx/conf.d/mattermost.conf
pstream backend { server 127.0.0.1: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.games.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://backend; } 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://backend; } }
- test nginx
sudo nginx -t
- Restart service
sudo systemctl restart nginx
Tambahkan Firewall Rule
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
Akses GUI
mattermost.games.com
Penutup
Sahabat Blog Learning & Doing demikianlah penjelasan mengenai Cara Install Mattermost Server pada Amazon Linux. Semoga Bermanfaat . Sampai ketemu lagi di postingan berikut nya.