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
- Voraussetzungen
- Aktualisieren Sie Ihr System
- Installieren Sie erforderliche Abhängigkeiten
- Laden Sie Mattermost herunter und installieren Sie es
- Richten Sie die PostgreSQL-Datenbank ein
- Konfigurieren Sie Mattermost
- Erstellen Sie einen Systemd-Service
- Konfigurieren Sie Nginx als Reverse Proxy
- Sichern Sie Mattermost mit SSL (HTTPS)
- 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 -yStarten Sie den Server neu, wenn ein Kernel-Update angewendet wurde:
sudo reboot3. 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 nginxBeide 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.gzSchritt 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/mattermostSchritt 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 mattermostSchritt 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/mattermost5. 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 postgresSchritt 2: Öffnen Sie die interaktive PostgreSQL-Shell
psqlSchritt 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
exit6. Konfigurieren Sie Mattermost
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 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.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. 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/mattermostSchritt 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 -tErwartete Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulSchritt 5: Starten Sie Nginx neu
sudo systemctl restart nginx9. 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.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: Überprüfen Sie die automatische Verlängerung
sudo certbot renew --dry-runSchritt 3: Starten Sie Nginx neu
sudo systemctl restart nginxIhre 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 nginxTesten Sie Mattermost direkt auf Port 8065
curl -I http://localhost:8065Sie sollten eine HTTP 200 OK-Antwort oder Umleitung erhalten.
