Mattermost adalah sistem pesan open source yang ditulis dalam bahasa pemrograman Golang dan React. Ini adalah alternatif slack, kami dapat membangun layanan perpesanan kami 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, saya akan memandu Anda untuk membuat server Mattermost Anda sendiri yang menggunakan PostgreSQL sebagai sistem database dan Nginx sebagai proxy terbalik untuk Mattermost. Saya akan menggunakan ubuntu 16.04 sebagai sistem operasinya.
Prasyarat
- Ubuntu 16.04 - 64bit
- Keistimewaan Root
Langkah 1 - Instal dan Konfigurasikan Database PostgreSQL
Mattermost mendukung database MySQL dan PostgreSQL. Kami akan menggunakan PostgreSQL sebagai database utama untuk tutorial ini. Hubungkan ke server Anda dan perbarui repositori.
Hubungkan ke server Anda dengan SSH atau login di terminal dan perbarui repositori Ubuntu.
ssh [email protected]
sudo apt-get update
Sebagai pengguna root, instal PostgreSQL dengan perintah apt ini.
sudo apt-get install postgresql postgresql-contrib
Setelah instalasi selesai, login ke pengguna postgres dan ketik perintah 'psql ' untuk masuk ke shell postgresql.
su - postgres
psql
Ubah kata sandi pengguna postgres dengan perintah di bawah ini:
\password postgres
Enter new password:
Selanjutnya, kita harus mengkonfigurasi database dan pengguna baru untuk instalasi Mattermost. Saya akan membuat database baru bernama 'mattermostdb ' dan pengguna 'materi ' dengan sandi 'matterpassword '. Silakan pilih kata sandi yang aman untuk instalasi Anda.
Buat database dan pengguna baru dengan kueri PostgreSQL di bawah ini:
CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';
Berikan 'pengasuh ' hak istimewa ke database 'mattermostdb ' dan keluar.
GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q
Langkah 2 - Instal dan Konfigurasi Mattermost
Kami akan menginstal dan mengkonfigurasi Mattermost sebagai pengguna Linux biasa, bukan pengguna root. Kami akan menjalankan Mattermost sebagai 'materi' pengguna, jadi kami perlu membuat pengguna Linux baru bernama 'materi' di server.
Buat 'masalah . baru ' pengguna dan kata sandi.
useradd -m -s /bin/bash matter
passwd matter
pengguna 'matter' dibuat, sekarang login ke pengguna dan unduh versi Mattermost terbaru dengan wget.
su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz
Ekstrak file Mattermost dan Anda akan melihat direktori baru 'mattermost', masukkan direktori tersebut dengan perintah cd.
tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/
Selanjutnya, buat direktori 'data' baru untuk menyimpan file pengguna, lalu edit file konfigurasi yang paling penting 'config/config.json ' dengan vim.
mkdir data/
vim config/config.json
Kami akan menjalankan paling penting di belakang proxy terbalik Nginx, jadi lebih baik untuk mengonfigurasi Mattermost untuk mendengarkan pada alamat IP lokal. Di 'Setelan Layanan ' blok, tambahkan alamat IP localhost ke konfigurasi pada baris 4.
"ListenAddress": "127.0.0.1:8065",
Sekarang buka 'SqlSettings ' pada baris 48. Ubah 'DriverName ' dan 'Sumber Data ' untuk menggunakan database PostgreSQL dengan konfigurasi di bawah ini:
"DriverName": "postgres",
"DataSource": "postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",
Catatan:
materi =pengguna postgresql.
matterpassword =kata sandi.
mattermostdb =basis data.
Simpan dan keluar.
Setelah ini selesai, buka direktori bin dan jalankan yang paling penting.
cd bin/
./platform
Anda akan melihat bahwa hal yang paling penting sedang berjalan pada IP localhost dengan port 8065 sekarang.
Tekan Ctrl + c untuk keluar.
Langkah 3 - Konfigurasikan Layanan Mattermost Systemd
Buka direktori sistem systemd dan buat file layanan baru yang paling penting.
cd /etc/systemd/system/
vim mattermost.service
Tempelkan konfigurasi di bawah ini:
[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target
[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
Simpan dan keluar.
Muat ulang daemon systemd dan mulai layanan Mattermost yang kita buat di atas.
systemctl daemon-reload
systemctl start mattermost
Pastikan tidak ada kesalahan. Periksa apakah layanan Mattermost berjalan.
netstat -plntu
systemctl status mattermost
Langkah 4 - Instal dan Konfigurasi Nginx
Pada langkah ini, kita akan menginstal Nginx dan mengkonfigurasi Nginx sebagai proxy terbalik untuk Mattermost. Kami akan memetakan port 8056 yang paling penting ke port HTTP dan HTTPS.
Instal Nginx dari repositori Ubuntu dengan perintah apt ini.
sudo apt-get install nginx
Sekarang buka direktori konfigurasi Nginx dan buat subdirektori SSL.
cd /etc/nginx/
mkdir ssl/; cd ssl/
Buat file sertifikat SSL baru yang ditandatangani sendiri dengan OpenSSL dan ubah izin kunci pribadi.
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key
Buat file host virtual baru untuk Mattermost di 'situs-tersedia ' direktori.
cd /etc/nginx/sites-available/
vim mattermost
Tempel konfigurasi host virtual di bawah ini:
server {
listen 80;
server_name mattermost.mydomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name mattermost.mydomain.com;
ssl on;
ssl_certificate /etc/nginx/ssl/mattermost.crt;
ssl_certificate_key /etc/nginx/ssl/mattermost.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
location / {
gzip off;
proxy_set_header X-Forwarded-Ssl on;
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_pass http://127.0.0.1:8065;
}
}
Ubah nama domain menjadi domain Anda sendiri, simpan dan keluar.
Aktifkan host virtual dengan membuat symlink ke file terpenting di 'sites-enabled ' direktori.
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
Test konfigurasi Nginx dan pastikan tidak ada error, dan restart nginx.
nginx -t
systemctl restart nginx
Langkah 5 - Pengujian
Buka browser web Anda dan kunjungi nama domain yang paling penting, dalam kasus saya:mattermost.mydomain.com.
Anda akan dialihkan ke koneksi HTTPS secara otomatis.
Buat akun baru terlebih dahulu, klik 'Buat Akun '.
Kemudian Anda dapat melihat tautan untuk membuat tim baru atau untuk mengakses konsol admin/sistem.
Klik 'Buka Konsol Sistem ' dan Anda akan melihat dasbor konsol sistem di bawah ini:
Klik 'Buat Tim Baru ', ketik nama tim Anda dan klik 'Berikutnya '. Kemudian konfigurasikan URL tim dan klik 'Selesai '.
Akhirnya Anda melihat Dasbor Tim.
Obrolan Tim Terpenting.
Yang terpenting dengan PostgreSQL dan server web Nginx di Ubuntu 16.04 telah berhasil diinstal.