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 -yStarten Sie den Server neu, wenn ein Kernel-Update angewendet wurde:
sudo reboot3. 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 nginxBeide 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.gzSchritt 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/mattermostSchritt 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 mattermostSchritt 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/mattermost5. 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 postgresSchritt 2: Die PostgreSQL-Interaktive Shell öffnen
psqlSchritt 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
exit6. Mattermost konfigurieren
Schritt 1: Öffnen Sie die Mattermost-Konfigurationsdatei
sudo nano /opt/mattermost/config/config.jsonSchritt 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.serviceSchritt 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.targetSchritt 3: Aktivieren und starten Sie den Mattermost-Service
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostSchritt 4: Überprüfen Sie, ob der Service ausgeführt wird
sudo systemctl status mattermostSie 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/mattermostSchritt 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 -tErwartete Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulSchritt 5: Nginx neu starten
sudo systemctl restart nginx9. 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.comCertbot 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-runSchritt 3: Nginx neu starten
sudo systemctl restart nginxIhre 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 nginxTesten Sie Mattermost direkt auf Port 8065
curl -I http://localhost:8065Sie sollten eine HTTP 200 OK oder Umleitungsantwort erhalten.
Schließen Sie das webbasierte Setup ab
- Öffnen Sie Ihren Browser und navigieren Sie zu
https://your_domain.com - Sie werden vom Mattermost-Setup-Assistenten begrüßt
- Erstellen Sie Ihr Administratorkonto
- Konfigurieren Sie Ihr erstes Team und Ihren Arbeitsbereich
- Laden Sie Teammitglieder ein und beginnen Sie mit der Zusammenarbeit
Fehlerbehebung bei häufigen Problemen
| Problem | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Mattermost-Dienst startet nicht | Falsche Datenbankzugangsdaten in config.json | Überprüfen Sie die DataSource-Zeichenfolge in SqlSettings |
| 502 Bad Gateway in Nginx | Mattermost läuft nicht auf Port 8065 | Führen Sie sudo systemctl restart mattermost aus |
| WebSocket-Verbindungsfehler | Fehlende WebSocket-Proxy-Header in Nginx | Überprüfen Sie den WebSocket-Standortblock in der Nginx-Konfiguration |
| SSL-Zertifikatsfehler | Domäne zeigt nicht auf Server-IP | Aktualisieren Sie den DNS-A-Datensatz und warten Sie auf die Propagierung |
| Datenbankverbindung abgelehnt | PostgreSQL läuft nicht | Fü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.
bei allen Hosting-Diensten