Sparen Sie 15% bei allen Hosting-Diensten

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

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung

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 Enterprise-Grade-Sicherheit, 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.

1. Voraussetzungen

Bevor Sie beginnen, stellen Sie 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 für Produktionsumgebungen nicht empfohlen)
  • Sudo- oder Root-Berechtigungen auf dem Server
  • Ein Domänenname, der auf die IP-Adresse Ihres Servers verweist (wird für Produktionsbereitstellungen dringend 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 selbstgehostete Zusammenarbeitswerkzeuge.

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. Erforderliche Abhängigkeiten installieren

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, dass PostgreSQL und Nginx ausgeführt werden:

sudo systemctl status postgresql
sudo systemctl status nginx

Beide Dienste sollten active (running) anzeigen.

4. Mattermost herunterladen und installieren

Schritt 1: Die neueste Mattermost-Version herunterladen

Besuchen Sie die offizielle Mattermost-Releases-Seite, 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: Das Archiv extrahieren

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

Schritt 3: Mattermost in das Systemverzeichnis verschieben

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

sudo mv mattermost /opt/mattermost

Schritt 4: Einen dedizierten Mattermost-Systembenutzer erstellen

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: Das Datenverzeichnis erstellen und Berechtigungen festlegen

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

5. PostgreSQL-Datenbank einrichten

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

Schritt 1: Zum PostgreSQL-Systembenutzer wechseln

sudo -i -u postgres

Schritt 2: Die PostgreSQL-Interaktive Shell öffnen

psql

Schritt 3: Datenbank, Benutzer erstellen und Berechtigungen gewähren

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: PostgreSQL Shell beenden und zu Ihrem Benutzer zurückkehren

q
exit

6. Mattermost konfigurieren

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 Domain fest:

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

Ersetzen Sie your_domain.com durch Ihren tatsächlichen Domainnamen.

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. Nginx als Reverse Proxy konfigurieren

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

Schritt 1: Nginx-Konfigurationsdatei erstellen

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

Schritt 2: Reverse-Proxy-Konfiguration hinzufügen

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: Site-Konfiguration aktivieren

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

Schritt 4: Nginx-Konfiguration auf Syntaxfehler testen

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: Nginx neu starten

sudo systemctl restart nginx

9. Mattermost mit SSL (HTTPS) sichern

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: Kostenloses SSL-Zertifikat mit Certbot abrufen

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: Automatische Verlängerung überprüfen

sudo certbot renew --dry-run

Schritt 3: Nginx neu starten

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 Dienste 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 oder Umleitungsantwort erhalten.

Schließen Sie das webbasierte Setup ab

  1. Öffnen Sie Ihren Browser und navigieren Sie zu https://your_domain.com
  2. Sie werden vom Mattermost-Setup-Assistenten begrüßt
  3. Erstellen Sie Ihr Administratorkonto
  4. Konfigurieren Sie Ihr erstes Team und Ihren Arbeitsbereich
  5. Laden Sie Teammitglieder ein und beginnen Sie mit der Zusammenarbeit

Fehlerbehebung bei häufigen Problemen

ProblemWahrscheinliche UrsacheLösung
Mattermost-Dienst startet nichtFalsche Datenbankzugangsdaten in config.jsonÜberprüfen Sie die DataSource-Zeichenfolge in SqlSettings
502 Bad Gateway in NginxMattermost läuft nicht auf Port 8065Führen Sie sudo systemctl restart mattermost aus
WebSocket-VerbindungsfehlerFehlende WebSocket-Proxy-Header in NginxÜberprüfen Sie den WebSocket-Standortblock in der Nginx-Konfiguration
SSL-ZertifikatsfehlerDomäne zeigt nicht auf Server-IPAktualisieren Sie den DNS-A-Datensatz und warten Sie auf die Propagierung
Datenbankverbindung abgelehntPostgreSQL läuft nichtFühren Sie sudo systemctl start postgresql aus

Warum einen zuverlässigen Host für Mattermost wählen?

Die Leistung und Zuverlässigkeit Ihrer Mattermost-Instanz hängen stark von der zugrunde liegenden Infrastruktur ab. Für kleine bis mittlere Teams ist ein gut konfigurierter VPS die ideale Wahl. Für größere Organisationen mit hohem Nachrichtenaufkommen sollten Sie ein Upgrade auf einen Dedicated Server in Betracht ziehen, um maximale Leistung, Isolation und Kontrolle zu erhalten.

Wenn Sie einen Domainnamen für Ihre Mattermost-Bereitstellung benötigen, bietet AlexHost wettbewerbsfähige Domain-Registrierung mit vollständiger DNS-Verwaltung. Und wenn Sie mehrere Dienste neben Mattermost betreiben, können Shared Web Hosting oder ein VPS mit cPanel die Verwaltung mit einem intuitiven Kontrollpanel vereinfachen.

Zusammenfassung

Sie haben Mattermost auf Ubuntu erfolgreich installiert und konfiguriert mit:

  • ✅ PostgreSQL als Backend-Datenbank
  • ✅ Nginx als produktionsgerechter Reverse Proxy mit WebSocket-Unterstützung
  • ✅ Let's Encrypt SSL für verschlüsselte HTTPS-Verbindungen
  • ✅ Ein systemd-Service für automatischen Start und Crash-Recovery
  • ✅ Ordnungsgemäße Dateiberechtigungen und ein dedizierter Systembenutzer für Sicherheit

Mattermost ist nun bereit, als privater, selbstgehosteter Kommunikationshub Ihres Teams zu fungieren — vollständig unter Ihrer Kontrolle, ohne dass Daten Ihre Infrastruktur verlassen.