15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
01.11.2024
1 +1

Wie man Mattermost auf Ubuntu installiert: Vollständiger Schritt-für-Schritt-Leitfaden

Mattermost ist eine leistungsstarke, Open-Source-Messaging- und Team-Collaboration-Plattform, die Organisationen vollständige Kontrolle über ihre Kommunikationsinfrastruktur bietet. Als selbst gehostete Alternative zu Slack und Microsoft Teams bietet Mattermost Sicherheit auf Unternehmensebene, vollständige Dateneigentümerschaft und umfangreiche Anpassungsmöglichkeiten – alles ohne wiederkehrende SaaS-Abonnementkosten.

Dieser umfassende Leitfaden führt Sie durch jeden Schritt der Installation und Konfiguration von Mattermost auf einem Ubuntu-Server, einschließlich PostgreSQL-Datenbankeinrichtung, Nginx-Reverse-Proxy-Konfiguration und SSL-Zertifikatintegration.

Inhaltsverzeichnis

  1. Voraussetzungen
  2. Aktualisieren Sie Ihr System
  3. Installieren Sie erforderliche Abhängigkeiten
  4. Laden Sie Mattermost herunter und installieren Sie es
  5. Richten Sie die PostgreSQL-Datenbank ein
  6. Konfigurieren Sie Mattermost
  7. Erstellen Sie einen Systemd-Service
  8. Konfigurieren Sie Nginx als Reverse Proxy
  9. Sichern Sie Mattermost mit SSL (HTTPS)
  10. Abschließende Überprüfung

1. Voraussetzungen

Stellen Sie vor Beginn sicher, dass die folgenden Anforderungen erfüllt sind:

  • Ein Server mit Ubuntu 20.04 oder Ubuntu 22.04 LTS (Ubuntu 18.04 ist nicht mehr unterstützt und wird nicht für Produktionsumgebungen empfohlen)
  • Sudo- oder Root-Berechtigungen auf dem Server
  • Ein Domänenname, der auf die IP-Adresse Ihres Servers verweist (wird dringend für Produktionsbereitstellungen empfohlen)
  • Minimale Hardware: 1 vCPU, 2 GB RAM, 10 GB Speicherplatz (für kleine Teams); skalieren Sie für größere Bereitstellungen auf

> Hosting-Tipp: Für eine reibungslose Mattermost-Bereitstellung sollten Sie einen zuverlässigen VPS-Hosting-Plan von AlexHost in Betracht ziehen. Mit SSD-Speicher, vollständigem Root-Zugriff und garantierter Verfügbarkeit sind AlexHost VPS-Instanzen ideal für selbst gehostete Collaboration-Tools.

2. Aktualisieren Sie Ihr System

Beginnen Sie immer damit, Ihren Paketindex zu aktualisieren und alle ausstehenden Sicherheits- und Systemupdates anzuwenden:

sudo apt update
sudo apt upgrade -y

Starten Sie den Server neu, wenn ein Kernel-Update angewendet wurde:

sudo reboot

3. Installieren Sie erforderliche Abhängigkeiten

Mattermost hängt von drei Schlüsselkomponenten ab: PostgreSQL (Datenbank), Nginx (Reverse Proxy) und Certbot (SSL-Zertifikatverwaltung).

Installieren Sie alle erforderlichen Pakete in einem Schritt:

sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginx

Überprüfen Sie, ob PostgreSQL und Nginx ausgeführt werden:

sudo systemctl status postgresql
sudo systemctl status nginx

Beide Services sollten active (running) anzeigen.

4. Laden Sie Mattermost herunter und installieren Sie es

Schritt 1: Laden Sie die neueste Mattermost-Version herunter

Besuchen Sie die offizielle Seite der Mattermost-Versionen, um die neueste stabile Version zu finden. Verwenden Sie wget, um sie direkt auf Ihren Server herunterzuladen:

wget https://releases.mattermost.com/9.5.0/mattermost-team-9.5.0-linux-amd64.tar.gz

> Hinweis: Ersetzen Sie 9.5.0 durch die neueste verfügbare Versionsnummer. Verwenden Sie immer die neueste stabile Version für Sicherheitspatches und neue Funktionen.

Schritt 2: Extrahieren Sie das Archiv

tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gz

Schritt 3: Verschieben Sie Mattermost in das Systemverzeichnis

Verschieben Sie den extrahierten Ordner zu /opt, dem Standard-Linux-Speicherort für optionale Drittanbietersoftware:

sudo mv mattermost /opt/mattermost

Schritt 4: Erstellen Sie einen dedizierten Mattermost-Systembenutzer

Das Ausführen von Mattermost als dedizierter, nicht privilegierter Benutzer ist eine kritische Sicherheitspraxis:

sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermost

Schritt 5: Erstellen Sie das Datenverzeichnis und legen Sie Berechtigungen fest

sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost

5. Richten Sie die PostgreSQL-Datenbank ein

Mattermost erfordert eine dedizierte PostgreSQL-Datenbank und einen Benutzer. Folgen Sie diesen Schritten sorgfältig.

Schritt 1: Wechseln Sie zum PostgreSQL-Systembenutzer

sudo -i -u postgres

Schritt 2: Öffnen Sie die interaktive PostgreSQL-Shell

psql

Schritt 3: Erstellen Sie die Datenbank, den Benutzer und gewähren Sie Berechtigungen

Führen Sie die folgenden SQL-Befehle nacheinander aus:

CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;

> Sicherheitshinweis: Ersetzen Sie YourStrongPassword123! durch ein starkes, eindeutiges Passwort. Verwenden Sie einen Passwort-Manager, um es sicher zu generieren und zu speichern.

Für PostgreSQL 15 und später müssen Sie auch Schema-Berechtigungen gewähren:

c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;

Schritt 4: Beenden Sie die PostgreSQL-Shell und kehren Sie zu Ihrem Benutzer zurück

q
exit

6. Konfigurieren Sie Mattermost

Schritt 1: Öffnen Sie die Mattermost-Konfigurationsdatei

sudo nano /opt/mattermost/config/config.json

Schritt 2: Aktualisieren Sie die Datenbankverbindungseinstellungen

Suchen Sie den SqlSettings-Block und aktualisieren Sie ihn mit Ihren PostgreSQL-Anmeldedaten:

"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30
}

Schritt 3: Konfigurieren Sie die Site-URL

Suchen Sie den ServiceSettings-Block und legen Sie Ihre Domäne fest:

"ServiceSettings": {
    "SiteURL": "https://your_domain.com",
    ...
}

Ersetzen Sie your_domain.com durch Ihren tatsächlichen Domänennamen.

Schritt 4: Speichern und Beenden

Drücken Sie Ctrl+X, dann Y, dann Enter, um die Datei zu speichern und zu schließen.

7. Erstellen Sie einen Systemd-Service

Das Ausführen von Mattermost als Systemd-Service stellt sicher, dass es beim Booten automatisch startet und bei Fehlern neu startet – unverzichtbar für jede Produktionsbereitstellung.

Schritt 1: Erstellen Sie die Service-Datei

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

Schritt 2: Fügen Sie die Service-Konfiguration hinzu

Fügen Sie den folgenden Inhalt ein:

[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=postgresql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Schritt 3: Aktivieren und starten Sie den Mattermost-Service

sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermost

Schritt 4: Überprüfen Sie, ob der Service ausgeführt wird

sudo systemctl status mattermost

Sie sollten active (running) sehen. Mattermost lauscht standardmäßig auf Port 8065.

8. Konfigurieren Sie Nginx als Reverse Proxy

Nginx fungiert als Reverse Proxy und leitet eingehenden HTTP/HTTPS-Verkehr von Port 80/443 an Mattermost’s internen Port 8065 weiter. Dies ermöglicht auch WebSocket-Unterstützung, die Mattermost für Echtzeit-Messaging benötigt.

Schritt 1: Erstellen Sie die Nginx-Konfigurationsdatei

sudo nano /etc/nginx/sites-available/mattermost

Schritt 2: Fügen Sie die Reverse-Proxy-Konfiguration hinzu

upstream backend {
    server localhost: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 your_domain.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;
        proxy_read_timeout 600s;
        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_pass http://backend;
    }
}

Ersetzen Sie your_domain.com durch Ihren tatsächlichen Domänennamen.

Schritt 3: Aktivieren Sie die Site-Konfiguration

sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

Schritt 4: Testen Sie die Nginx-Konfiguration auf Syntaxfehler

sudo nginx -t

Erwartete Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Schritt 5: Starten Sie Nginx neu

sudo systemctl restart nginx

9. Sichern Sie Mattermost mit SSL (HTTPS)

Das Ausführen von Mattermost über HTTPS ist obligatorisch für jede Produktionsumgebung. Es verschlüsselt die gesamte Kommunikation zwischen Benutzern und Ihrem Server und schützt Anmeldedaten und Nachrichten vor Abfangen.

> SSL leicht gemacht: AlexHost bietet erschwingliche SSL-Zertifikate für alle Arten von Websites und Anwendungen. Alternativ können Sie die kostenlose Let’s Encrypt-Methode unten verwenden.

Schritt 1: Erhalten Sie ein kostenloses SSL-Zertifikat mit Certbot

sudo certbot --nginx -d your_domain.com

Certbot wird automatisch:

  • Domänenbesitz überprüfen
  • Ein Let’s Encrypt-Zertifikat ausstellen
  • Ihre Nginx-Konfiguration ändern, um HTTPS zu aktivieren
  • Automatische Zertifikatverlängerung einrichten

Schritt 2: Überprüfen Sie die automatische Verlängerung

sudo certbot renew --dry-run

Schritt 3: Starten Sie Nginx neu

sudo systemctl restart nginx

Ihre Mattermost-Instanz ist jetzt unter https://your_domain.com erreichbar.

10. Abschließende Überprüfung

Überprüfen Sie, ob alle Services ausgeführt werden

sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginx

Testen Sie Mattermost direkt auf Port 8065

curl -I http://localhost:8065

Sie sollten eine HTTP 200 OK-Antwort oder Umleitung erhalten.

Sch

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen