Mattermost CLI / SSH

Hier ist eine Auflistung der wichtigsten CLI commands

Zuerst in das richtige Verzeichnis wechseln:

  • cd /opt/mattermost/bin

Befehle

  • channel
    • modify
      • sudo ./platform channel modify myteam:mychannel –username <admin> –private
      • sudo ./platform channel modify myteam:mychannel –username <admin> –public
  • team
    • delete
      • sudo ./platform team delete myteam –confirm
  • user
    • invite
      • sudo ./platform user invite {email} {teams}
    • password
      • sudo ./platform user password {user} {password}
    • verify
      • sudo ./platform user verify {users}
    • create
      • sudo ./platform user create –email user@example.com –username userexample –password Password1
    • deactivate 
      • sudo ./platform user deactivate user@example.com
    • delete
      • sudo ./platform user delete user@example.com
https://docs.mattermost.com/administration/command-line-tools.html

Mattermost wiederherstellen

Sollte der Server nicht mehr funktionieren, kann Mattermost aus einem Backup wiederhergestellt werden, welches sich aktuell auf einem Server von Domainfactory befindet und jeden Morgen aktualisiert wird.

Wiederherstellung auf dem vorhandenen Server
    alte Daten bereinigen
    Backup herunterladen, entpacken und an den Zielort verschieben
    Einstellungen setzen
    Datenbank wiederherstellen
    Mattermost starten
Wiederherstellung auf neuem Server
    Backup herunterladen, entpacken und an den Zielort verschieben
    Datenbank wiederherstellen
    Zertifikat installieren
    Mattermost User anlegen
    Binding auf 443 erlauben
    Mattermost testen
    Autostart aktivieren
    Testen, ob die Unit geladen wurde
    Service starten

Wiederherstellung auf dem vorhandenen Server
alte Daten bereinigen

systemctl stop mattermost
rm -r /opt/mattermost
mysql -u root -p
    DROP DATABASE mattermost;
    CREATE DATABASE mattermost;
    quit

Backup herunterladen, entpacken und an den Zielort verschieben

cd /tmp
curl -O ftp://ftphost:<FTP User für Backup von Host/Server auf DF>@host/mattermost.tar.bz2
tar vxf mattermost.tar.bz2
mv opt/mattermost /opt/mattermost

Einstellungen setzen

chown -R mattermost:mattermost /opt/mattermost

setcap CAP_NET_BIND_SERVICE=+eip /opt/mattermost/bin/platform (in Zukunft obsolet)

setcap CAP_NET_BIND_SERVICE=+eip /opt/mattermost/bin/mattermost

Datenbank wiederherstellen

curl -O ftp://host:<FTP User für Backup von host auf DF>@host/mattermost.sql
mysql --defaults-extra-file=/etc/mysql/debian.cnf mattermost < mattermost.sql 
    Das dauert ca. eine Stunde ohne Fortschrittsanzeige

Mattermost starten

systemctl start mattermost

Wiederherstellung auf neuem Server

Grundlage ist ein frisch aufgesetzter aktueller Ubuntu Server.

Backup herunterladen, entpacken und an den Zielort verschieben

cd /tmp
curl -O ftp://host:<FTP User für Backup von host1 auf DF>@host2/mattermost.tar.bz2
tar vxf mattermost.tar.bz2
mv opt/mattermost /opt/mattermost

Datenbank wiederherstellen

apt install mysql-server
mysql_secure_installation 
    Passwort setzen mmuser-SQL-Passwort laut KeePass, alle Sicherheitsmaßnahmen bestätigen
mysql -u root -p
    create user 'mmuser'@'localhost' identified by 'mmuser-SQL-Passwort';
    create database mattermost;
    grant all privileges on mattermost.* to 'mmuser'@'localhost';
    exit
curl -O ftp://host:<FTP User für Backup von host1 auf DF>@host2/mattermost.sql
mysql --defaults-extra-file=/etc/mysql/debian.cnf mattermost < mattermost.sql 
    Das dauert ca. eine Stunde ohne Fortschrittsanzeige

Zertifikat installieren

add-apt-repository ppa:certbot/certbot
apt update
apt install apache2 software-properties-common python-certbot-apache
certbot --apache -d team.domain.de
    automatisch Umleiten auf https auswählen
Danach Apache2 wieder deinstallieren
    apt remove apache2

Mattermost User anlegen

$ useradd --system --user-group mattermost

$ chown -R mattermost:mattermost /opt/mattermost

$ chmod -R g+w /opt/mattermost

Binding auf 443 erlauben

setcap CAP_NET_BIND_SERVICE=+eip /opt/mattermost/bin/mattermost

Mattermost testen

$ cd /opt/mattermost

$ sudo -u mattermost ./bin/mattermost
Es sollten keine Fehler ausgegeben werden. Mit STRG-C beenden.

Autostart aktivieren

$ nano /lib/systemd/system/mattermost.service

    Einfügen:
    [Unit]
    Description=Mattermost
    After=network.target
    After=mysql.service
    Requires=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=mysql.service
save&quit

$ systemctl daemon-reload

Testen, ob die Unit geladen wurde

$ systemctl status mattermost.service
Ausgabe sollte so aussehen:

    mattermost.service - Mattermost
    Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
    Active: inactive (dead)

Service starten

$ systemctl start mattermost.service
$ systemctl enable mattermost.service

Mattermost installieren

siehe auch: https://docs.mattermost.com/install/install-ubuntu-1604.html#

Mattermost läuft derzeit auf HV3, IP-Adresse XXX, URL team.domain.de

Mattermost läuft derzeit auf einem V-Server mit der IP-Adresse XXX, URL team.domain.de

mySQL-Benutzer und -Datenbank anlegen
Mattermost installieren
User anlegen
Config-Datei anpassen
Mattermost testen
Autostart aktivieren
Mattermost konfigurieren
Upgrade

mySQL-Benutzer und -Datenbank anlegen

mysql -u root -p
create user 'mmuser'@'localhost' identified by 'mmuser-SQL-Passwort';
create database mattermost;
grant all privileges on mattermost.* to 'mmuser'@'localhost';
exit

Mattermost installieren

wget https://releases.mattermost.com/4.7.2/mattermost-4.7.2-linux-amd64.tar.gz
wget https://releases.mattermost.com/5.1.0/mattermost-5.1.0-linux-amd64.tar.gz
wget https://releases.mattermost.com/5.16.2/mattermost-5.16.2-linux-amd64.tar.gz
tar -xvzf mattermost*.gz
sudo mv mattermost /opt
sudo mkdir /opt/mattermost/data

User anlegen

sudo useradd --system --user-group mattermost

sudo chown -R mattermost:mattermost /opt/mattermost

sudo chmod -R g+w /opt/mattermost

Config-Datei anpassen

nano /opt/mattermost/config/config.json

"DriverName":

     "mysql"

"DataSource":

    "mmuser:mmuser-SQL-Passwort@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

Mattermost testen

cd /opt/mattermost

sudo -u mattermost ./bin/mattermost
Es sollten keine Fehler ausgegeben werden. Mit STRG-C beenden.

Autostart aktivieren

sudo nano /lib/systemd/system/mattermost.service

    [Unit]
    Description=Mattermost
    After=network.target
    After=mysql.service
    Requires=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=mysql.service
save&quit

systemctl daemon-reload

Testen, ob die Unit geladen wurde

sudo systemctl status mattermost.service
Ausgabe sollte so aussehen:

    mattermost.service - Mattermost
    Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
    Active: inactive (dead)

Service starten

sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service

Mattermost konfigurieren

Im Browser Mattermost aufrufen mit zur Zeit IP:Port
ersten Benutzer und damit Admin anlegen.
Im Hamburger-Menu System Console aufrufen.
SETTINGS
    Localization:
        Default Server Language:
            Deutsch
        Default Client Language:
            Deutsch
    Configuration
        Site URL:
            https://team.domain.de
        Listen Address:
            :443
        Connection Security:
            TLS
        Use Let's Encrypt:
            true
        Forward port 80 to 443:
            true
    Users and Teams
        Enable Account Creation:
            true
        Enable Team Creation:
            false
        Restrict account creation to specified email domains:
            domain1.de, domain2.de
        Enable users to open Direct Message channels with:
            Any user on the Mattermost server
        Teammate Name Display:
            Show first and last name
    Privacy
        Show Email Address:
            true
        Show Full Name:
            true
AUTHENTICATION
    Email:
        alle auf true
SECURITY
    Sign Up
        Require Email Verification:
            true
        Enable Open Server:
            false
    Enable Public File Links:
        true
NOTIFICATIONS
    Email
        Enable Email Notifications:
            true
        Enable Email Batching:
            true
        Notification Display Name:
            Team Domain
        Notification From Address:
            do_not_reply@domain.de
        SMTP Server:
            smtprelaypool.domain.de
        SMTP Server Port:
            25
        Enable SMTP Authentication:
            true
        SMTP Server Username:
            smtprelay@domain.de
        SMTP Server Password:
            siehe Safe
        Connection Security:
            STARTTLS
    Mobile Push
        Enable Push Notifications:
            Use iOS and Android apps...
        Push Notification Contents:
            Send generic description with sender and channel names
CUSTOMIZATION
    Emoji
        Enable Emoji Picker:
            true

    Link Previews:
        Enable Link Previews:
            false
    Legal and Support
        Report a Problem link:
            löschen
        Support Email:
            support@domain.de

cd /opt/mattermost/bin

sudo setcap cap_net_bind_service=+ep ./platform

sudo systemctl restart mattermost

Mattermost sollte jetzt über https://team.domain.de erreichbar sein. Nun können die Teams angelegt und die Mitarbeiter eingeladen werden.

Upgrade

Neue Version herunterladen
Entpacken: tar -x --transform='s,^[^/]\+,\0-upgrade,' -f mattermost*.gz

sudo systemctl stop mattermost 

cd /opt

sudo cp -ra mattermost/ mattermost-back-$(date +'%F-%H-%M')/

sudo find mattermost/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data \) -prune \) | sudo xargs rm -r

sudo mv mattermost/plugins/ mattermost/plugins~

sudo chown -hR {mattermost}:{mattermost} {path-to}/mattermost-upgrade/

sudo cp -an {path-to}/mattermost-upgrade/. mattermost/

sudo rm -r {path-to}/mattermost-upgrade/

sudo systemctl start mattermost

cd /opt/mattermost

sudo setcap cap_net_bind_service=+ep ./bin/mattermost

sudo mv plugins~/ plugins

Systemkonsole öffnen, irgend etwas ändern und Änderung zurücknehmen, Speichern

Mattermost upgraden

aktuelle Version holen (ermitteln auf der Website)

cd /tmp
wget https://releases.mattermost.com/5.16.2/mattermost-5.16.2-linux-amd64.tar.gz
tar -xf mattermost*.gz –transform=’s,^[^/]\+,\0-upgrade,‘

Mattermost anhalten

systemctl stop mattermost

alte Version sichern

cd /opt
cp -ra mattermost/ mattermost-back-$(date +’%F-%H-%M‘)/

Alle Verzeichnise löschen außer client, config, data, logs, plugins

find mattermost/ mattermost/client/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/client -o -path mattermost/client/plugins -o -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data \) -prune \) | sort | sudo xargs rm -r
mv mattermost/plugins/ mattermost/plugins~
mv mattermost/client/plugins/ mattermost/client/plugins~

Besitzer der neuen Dateien ändern

chown -hR mattermost:mattermost /tmp/mattermost-upgrade/

neue Version kopieren

cp -an /tmp/mattermost-upgrade/. mattermost/
rm -r /tmp/mattermost-upgrade/

Binding setzen

cd /opt/mattermost
setcap cap_net_bind_service=+ep ./bin/mattermost

Mattermost starten

systemctl start mattermost

System Console öffnen, einen Wert ändern und zurücksetzen.
Speichern
Seite neu laden.

Plugins wiederherstellen

cd /opt/mattermost
rsync -au plugins~/ plugins
rm -rf plugins~
rsync -au client/plugins~/ client/plugins
rm -rf client/plugins~