Mattermost je open source systém pro zasílání zpráv napsaný v programovacích jazycích Golang a React. Je to slack alternativa, můžeme si s ní vytvořit vlastní službu zasílání zpráv, jako je slack nebo hipchat. Mattermost přináší vaši týmovou komunikaci na jediné místo a zpřístupňuje ji odkudkoli. Můžete k němu přistupovat ze svého počítače, zařízení Android a iPhone.
V tomto tutoriálu vás provedu vytvořením vlastního serveru Mattermost, který používá PostgreSQL jako databázový systém a Nginx jako reverzní proxy pro Mattermost. Jako operační systém použiji ubuntu 16.04.
Předpoklad
- Ubuntu 16.04 – 64bit
- Kořenová oprávnění
Krok 1 – Instalace a konfigurace databáze PostgreSQL
Mattermost podporuje databáze MySQL a PostgreSQL. Pro tento tutoriál použijeme PostgreSQL jako hlavní databázi. Připojte se ke svému serveru a aktualizujte úložiště.
Připojte se ke svému serveru pomocí SSH nebo se přihlaste na terminálu a aktualizujte úložiště Ubuntu.
ssh [email protected]
sudo apt-get update
Jako uživatel root nainstalujte PostgreSQL pomocí tohoto příkazu apt.
sudo apt-get install postgresql postgresql-contrib
Po dokončení instalace se přihlaste k uživateli postgres a zadejte příkaz 'psql ' pro přihlášení do prostředí postgresql.
su - postgres
psql
Změňte uživatelské heslo postgres pomocí příkazu níže:
\password postgres
Enter new password:
Dále musíme nakonfigurovat novou databázi a uživatele pro instalaci Mattermost. Vytvořím novou databázi s názvem 'mattermostdb “ a uživatel „mattteruser ' s heslem 'matterpassword '. Zvolte prosím pro svou instalaci bezpečné heslo.
Vytvořte novou databázi a uživatele pomocí PostgreSQL dotazu níže:
CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';
Grant 'mattteruser ' oprávnění k databázi 'mattermostdb “ a ukončete.
GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q
Krok 2 – Instalace a konfigurace Mattermost
Nainstalujeme a nakonfigurujeme Mattermost jako normální uživatel Linuxu, nikoli jako uživatel root. Mattermost spustíme jako uživatel 'matter', takže musíme na serveru vytvořit nového uživatele Linuxu s názvem 'matter'.
Vytvořte novou 'záležitost ' uživatel a heslo.
useradd -m -s /bin/bash matter
passwd matter
Vytvořen uživatel 'matter', nyní se přihlaste k uživateli a stáhněte si nejnovější verzi Mattermost pomocí wget.
su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz
Rozbalte soubor Mattermost a uvidíte nový adresář 'mattermost', zadejte tento adresář příkazem cd.
tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/
Dále vytvořte nový adresář 'data' pro ukládání uživatelských souborů a poté upravte nejdůležitější konfigurační soubor 'config/config.json s vim.
mkdir data/
vim config/config.json
Mattermost budeme provozovat za reverzním proxy Nginx, takže je lepší nakonfigurovat Mattermost tak, aby naslouchal na místní IP adrese. V části 'ServiceSettings ', přidejte IP adresu localhost do konfigurace na řádku 4.
"ListenAddress": "127.0.0.1:8065",
Nyní přejděte na 'SqlSettings ' na řádku 48. Změňte 'Jméno ovladače “ a „Zdroj dat ' konfigurace pro použití databáze PostgreSQL s konfigurací níže:
"DriverName": "postgres",
"DataSource": "postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",
Poznámka:
matteruser =uživatel postgresql.
heslo záležitosti =heslo.
mattermostdb =databáze.
Uložte a ukončete.
Až to uděláte, přejděte do adresáře bin a spusťte to nejdůležitější.
cd bin/
./platform
Uvidíte, že nejzásadnější nyní běží na localhost IP s portem 8065.
Stiskněte Ctrl + c pro ukončení.
Krok 3 – Konfigurace Mattermost Systemd Service
Přejděte do adresáře systému systemd a vytvořte nový soubor služby nejzávažnější.
cd /etc/systemd/system/
vim mattermost.service
Vložte konfiguraci níže:
[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
Uložte a ukončete.
Znovu načtěte démona systemd a spusťte službu Mattermost, kterou jsme vytvořili výše.
systemctl daemon-reload
systemctl start mattermost
Ujistěte se, že nedošlo k chybě. Zkontrolujte, zda je spuštěna služba Mattermost.
netstat -plntu
systemctl status mattermost
Krok 4 – Instalace a konfigurace Nginx
V tomto kroku nainstalujeme Nginx a nakonfigurujeme Nginx jako reverzní proxy pro Mattermost. Namapujeme nejdůležitější port 8056 na port HTTP a HTTPS.
Nainstalujte Nginx z úložiště Ubuntu pomocí tohoto příkazu apt.
sudo apt-get install nginx
Nyní přejděte do konfiguračního adresáře Nginx a vytvořte podadresář SSL.
cd /etc/nginx/
mkdir ssl/; cd ssl/
Vygenerujte nový soubor certifikátu SSL s vlastním podpisem pomocí OpenSSL a změňte oprávnění soukromého klíče.
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key
Vytvořte nový soubor virtuálního hostitele pro Mattermost v části 'sites-available ' adresář.
cd /etc/nginx/sites-available/
vim mattermost
Níže vložte konfiguraci virtuálního hostitele:
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;
}
}
Změňte název domény na svou vlastní doménu, uložte a ukončete.
Aktivujte virtuálního hostitele vytvořením symbolického odkazu na nejzávažnější soubor v 'sites-enabled ' adresář.
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
Otestujte konfiguraci Nginx a ujistěte se, že nedošlo k chybě, a restartujte nginx.
nginx -t
systemctl restart nginx
Krok 5 – Testování
Otevřete webový prohlížeč a navštivte nejzávažnější název domény, v mém případě:matemost.mojedomena.com.
Budete automaticky přesměrováni na připojení HTTPS.
Nejprve si vytvořte nový účet, klikněte na 'Vytvořit účet '.
Poté můžete vidět odkaz pro vytváření nových týmů nebo pro přístup do administrátorské/systémové konzole.
Klikněte na 'Přejít do systémové konzoly “ a níže uvidíte řídicí panel systémové konzoly:
Klikněte na 'Vytvořit nový tým ', zadejte název týmu a klikněte na 'Další '. Poté nakonfigurujte adresu URL týmu a klikněte na 'Dokončit '.
Nakonec uvidíte Team Dashboard.
Mattermost Team Chat.
Mattermost s PostgreSQL a webovým serverem Nginx na Ubuntu 16.04 byl úspěšně nainstalován.