Csoportos együttműködésre kiválóan alkalmas a Slack, és annak létezik szabad szoftveres megfelelője is: a Mattermost. A távmunka terjedésével talán az újabb kommunikációs platformok terjedése is felgyorsul. Fejlesztői munkacsoportok a különféle eszközök integrálhatósága és a botok miatt is kedvelik a Slacket, és ez a Mattermostnál is ugyanúgy működik, bár a saját hosztolás esetén nem néztem utána a lehetőségeknek.
Telepítés
Alapvetően a dokumentációt követjük a telepítésnél. Ugyebár van már LAMP-unk egy Debian 10 VPS-en.
Először letöltjük a szerver aktuális verzióját. Az itt létrehozott data
mappába kerülnek majd a felhasználók által feltöltött képek és csatolmányok.
$ wget https://releases.mattermost.com/5.32.0/mattermost-5.32.0-linux-amd64.tar.gz
# tar -C /opt -xzf mattermost-5.32.0-linux-amd64.tar.gz
# mkdir /opt/mattermost/data
Majd létrehozunk neki egy saját usert:
# useradd --system --user-group mattermost
# chown -R mattermost:mattermost /opt/mattermost
# chmod -R g+w /opt/mattermost
Hozzunk létre egy MariaDB-adatbázist, majd szerkesszük a /opt/mattermost/config/config.json
konfigot. Ebben elég a DriverName
és a DataSource
beállításokat átírni.
Hozzuk létre a /lib/systemd/system/mattermost.service
unit fájlt az alábbi tartalommal:
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
BindsTo=mysql.service
[Service]
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
Majd indítsuk el a szolgáltatást:
# systemctl daemon-reload
# systemctl enable --now mattermost
Ekkor már fut a szerver a 8065 porton, de azt nem fogjuk megnyitni a külvilág felé. Konfiguráljunk Apache reverse proxyt:
<VirtualHost *:443>
ServerName mattermost.mydomain.hu
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mattermost.mydomain.hu/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mattermost.mydomain.hu/privkey.pem
RewriteEngine On
RewriteCond %{REQUEST_URI} /api/v[0-9]+/(users/)?websocket [NC,OR]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
<Location />
Require all granted
ProxyPass http://127.0.0.1:8065/
ProxyPassReverse http://127.0.0.1:8065/
ProxyPassReverseCookieDomain 127.0.0.1 mattermost.mydomain.hu
</Location>
ProxyPreserveHost On
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
</VirtualHost>
Igényeljünk TLS-certet, és kapcsoljuk be a szükséges modokat, végül az új vhostot:
# certbot certonly --apache -d mattermost.mydomain.hu
# a2enmod rewrite headers proxy proxy_http proxy_wstunnel
# a2ensite mattermost.conf
# systemctl restart apache2
Konfigurálás
Ha minden jól ment, akkor most már elérhető a szerver böngészőből a megadott domainen. Hozzuk létre ott az első usert, aki system_admin lesz. Kész vagyunk a kötelező minimummal, de érdemes átnézni a System Console-ban a további beállításokat is.