Technologieführer

Mattermost mit PostgreSQL & Nginx auf Ubuntu 16.04 installieren

6 min read DevOps Aktualisiert 20 Oct 2025
Mattermost mit PostgreSQL & Nginx auf Ubuntu 16.04
Mattermost mit PostgreSQL & Nginx auf Ubuntu 16.04

Installieren Sie Mattermost auf einem Ubuntu 16.04-Server mit PostgreSQL als Datenbank und Nginx als Reverse Proxy. Die Anleitung führt Schritt für Schritt durch Datenbankerstellung, Mattermost-Setup, systemd-Service, Nginx-SSL-Proxy und Tests. Enthalten: Sicherheits-Tipps, Alternativen (Docker, MySQL) und Rollout-Checklisten.

Wichtig: Diese Anleitung nutzt Ubuntu 16.04 und ein selbstsigniertes Zertifikat als Beispiel. Für Produktion empfehlen wir ein gültiges Zertifikat und aktuelle TLS-Einstellungen.

Überblick

Mattermost ist ein Open-Source-Messaging-System, geschrieben in Golang und React. Es ist eine selbst gehostete Alternative zu Slack oder HipChat. Mattermost bündelt Teamkommunikation an einem Ort und ist von Desktop, Android und iPhone erreichbar.

Diese Anleitung zeigt, wie Sie einen Mattermost-Server mit PostgreSQL als Datenbank und Nginx als Reverse Proxy auf Ubuntu 16.04 betreiben.

Wichtige Begriffe (1 Zeile):

  • Reverse Proxy: Ein Dienst (z. B. Nginx), der Anfragen entgegennimmt und intern an Mattermost weiterleitet.
  • systemd-Service: Ein Prozess, der Mattermost beim Booten startet und überwacht.

Voraussetzungen

  • Ubuntu 16.04 (64 Bit)
  • Root-Rechte oder sudo-Zugriff
  • Eigene Domain (empfohlen) oder Server-IP

Schritt 1 - PostgreSQL installieren und konfigurieren

Mattermost unterstützt MySQL und PostgreSQL. Hier verwenden wir PostgreSQL.

Verbinden Sie sich per SSH und aktualisieren Sie die Paketliste:

ssh [email protected]
sudo apt-get update

Als Root/mit sudo installieren Sie PostgreSQL:

sudo apt-get install postgresql postgresql-contrib

Nach der Installation wechseln Sie zum postgres-Benutzer und starten die psql-Shell:

su - postgres
psql

Ändern Sie das Passwort des postgres-Benutzers:

\password postgres
Enter new password:

Erstellen Sie die Mattermost-Datenbank und den Datenbanknutzer (ersetzen Sie matterpassword durch ein sicheres Passwort):

CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';

Geben Sie dem Benutzer Rechte auf die Datenbank und beenden Sie psql:

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

PostgreSQL für Mattermost konfigurieren

Hinweis: Bewahren Sie Passwörter sicher auf und verwenden Sie in Produktion möglichst ein Credential-Management.

Schritt 2 - Mattermost installieren und konfigurieren

Führen Sie Mattermost als normaler Linux-Benutzer aus. Wir erstellen einen Benutzer namens matter.

useradd -m -s /bin/bash matter
passwd matter

Wechseln Sie zum Nutzer und laden Sie das Release herunter (Beispiel-Version 3.4.0 im Original):

su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz

Entpacken Sie das Archiv und wechseln Sie in das Verzeichnis:

tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/

Erstellen Sie das Verzeichnis für Benutzerdateien und öffnen Sie die Konfiguration:

mkdir data/
vim config/config.json

Passen Sie die ServiceSettings an, damit Mattermost nur lokal lauscht. Im Abschnitt ServiceSettings setzen Sie:

"ListenAddress": "127.0.0.1:8065",

Im Abschnitt SqlSettings ändern Sie DriverName und DataSource auf PostgreSQL:

"DriverName": "postgres",
"DataSource": "postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",

Hinweis: Ersetzen Sie matterpassword durch Ihr echtes Passwort und matteruser/mattermostdb durch die in Ihrer Umgebung verwendeten Namen.

Starten Sie Mattermost manuell zur Kontrolle:

cd bin/
./platform

Mattermost sollte jetzt auf 127.0.0.1:8065 laufen. Mit Ctrl+C beenden.

Mattermost-Installation auf Ubuntu 16.04

Wichtig: In der Originalbeschreibung tauchte einmal die Portnummer 8056 auf. Der Standardport ist 8065 — prüfen Sie Ihre config.json.

Schritt 3 - systemd-Service für Mattermost anlegen

Erstellen Sie eine systemd-Unit, damit Mattermost automatisch startet und neu gestartet wird:

cd /etc/systemd/system/
vim mattermost.service

Fügen Sie diese Unit ein:

[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target

[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Speichern, anschließend systemd neu laden und starten:

systemctl daemon-reload
systemctl start mattermost

Prüfen Sie Status und offene Ports:

netstat -plntu
systemctl status mattermost

Mattermost-Service läuft

Schritt 4 - Nginx installieren und als Reverse Proxy konfigurieren

Installieren Sie Nginx:

sudo apt-get install nginx

Erstellen Sie das SSL-Verzeichnis und erzeugen Sie ein selbstsigniertes Zertifikat (Beispiel 365 Tage):

cd /etc/nginx/
mkdir ssl/; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key

Wichtig: Für Produktivbetrieb verwenden Sie ein von einer CA ausgestelltes Zertifikat (z. B. Let’s Encrypt).

Erstellen Sie eine virtuelle Host-Datei:

cd /etc/nginx/sites-available/
vim mattermost

Beispiel-Config (passen Sie server_name an):

server {
   listen         80;
   server_name    mattermost.mydomain.com;
   return         301 https://$server_name$request_uri;
}

server {
   listen 443 ssl;
   server_name mattermost.mydomain.com;

   ssl on;
   ssl_certificate /etc/nginx/ssl/mattermost.crt;
   ssl_certificate_key /etc/nginx/ssl/mattermost.key;
   ssl_session_timeout 5m;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:10m;

   location / {
      gzip off;
      proxy_set_header X-Forwarded-Ssl on;
      client_max_body_size 50M;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      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_pass http://127.0.0.1:8065;
   }
}

Aktivieren Sie die Site und testen Sie Nginx:

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

Hinweis zur TLS-Sicherheit: Die oben gezeigten ssl_protocols und Cipher-Suites sind veraltet. Verwenden Sie in modernen Installationen mindestens TLSv1.2+ und aktuelle Cipher-Empfehlungen. Beispiele und Automatisierung: Let’s Encrypt + Certbot.

Schritt 5 - Testen

Öffnen Sie im Browser https://mattermost.mydomain.com (ersetzen Sie die Domain). Sie sollten auf HTTPS weitergeleitet werden.

Erstellen Sie ein Konto: klicken Sie auf Konto erstellen.

Konto in Mattermost erstellen

Erstellen Sie ein Team oder öffnen Sie die Systemkonsole über “Zum Systemkonsole”.

Mattermost: Team erstellen oder Systemkonsole öffnen

Systemkonsole von Mattermost

Team erstellen

Team-Dashboard

Mattermost-Team-Chat

Wenn alles funktioniert, ist Mattermost mit PostgreSQL und Nginx auf Ubuntu 16.04 einsatzbereit.

Sicherheits- und Produktionshinweise

Wichtig:

  • Verwenden Sie in Produktion ein Zertifikat von einer vertrauenswürdigen CA (z. B. Let’s Encrypt). Selbstsignierte Zertifikate sind nur für Tests geeignet.
  • Verwenden Sie aktuelle TLS-Protokolle (min. TLSv1.2) und sichere Cipher-Suites.
  • Schränken Sie Datenbank-Zugänge per Firewall oder IP-Whitelist ein.
  • Setzen Sie Dateisystemberechtigungen korrekt und betreiben Sie Mattermost als dedizierten Benutzer.
  • Regelmäßige Backups der PostgreSQL-Datenbank und des Verzeichnisses mattermost/data/ sind essenziell.

Empfehlungen:

  • Automatisieren Sie Zertifikatserneuerung mit Certbot.
  • Monitoring: Überwachen Sie Prozesse, freie Festplattenkapazität und Latenzen.
  • Sichern Sie Logins mit 2FA (Mattermost unterstützt 2FA in neueren Versionen).

Alternative Ansätze

  • Docker / Docker Compose: Verpacken Sie Mattermost + PostgreSQL + Nginx in Containern. Vorteil: Portabilität, einfachere Updates. Nachteil: zusätzliche Komplexität bei persistenten Volumes.
  • Kubernetes: Für große Installationen mit hoher Verfügbarkeit.
  • MySQL als Datenbank: Mattermost unterstützt MySQL; wählen Sie MySQL, wenn Ihr Betriebsteam damit vertrauter ist.

Wann es fehlschlägt (Counterexamples)

  • Firewall blockiert Port 443 oder 8065: Nginx kann keine Verbindung zu Mattermost herstellen oder Clients erreichen den Server nicht.
  • Falsche DataSource-URI: Login in config.json ist fehlerhaft -> DB-Verbindungsfehler.
  • Port-Konflikt: Ein anderer Dienst nutzt Port 8065.
  • Veraltete TLS-Konfiguration: Browser oder Clients lehnen Verbindung ab.

Mental Models und Heuristiken

  • 1 Dienst = 1 Benutzer: Führen Sie Mattermost als eigenen Linux-Benutzer.
  • Prinzip der kleinsten Rechte: Datenbanknutzer nur mit den nötigen Rechten versehen.
  • Isolierte Layer: Anwendung (Mattermost), Daten (PostgreSQL) und Gateway (Nginx) trennen.

Faktenbox: Wichtige Werte

  • Standard-HTTP-Port (Nginx): 80
  • Standard-HTTPS-Port (Nginx): 443
  • Mattermost interner Listen-Port: 8065
  • Beispiel DB-Namen: mattermostdb
  • Beispiel DB-Benutzer: matteruser
  • Beispiel SSL-Gültigkeit im Tutorial: 365 Tage (selbstsigniert)

Mini-Methodologie: Rollout-Checkliste (kurz)

  1. System vorbereiten: Updates, Firewall-Regeln, Hostname/Domain.
  2. PostgreSQL installieren, DB + User anlegen.
  3. Mattermost herunterladen, config.json anpassen.
  4. systemd-Unit anlegen und Service starten.
  5. Nginx konfigurieren, SSL einrichten, Site aktivieren.
  6. Funktionstest über Browser, Team erstellen, Backups planen.

Rollen-Checklisten

Systemadministrator:

  • Ubuntu updaten und absichern
  • systemd-Unit anlegen
  • Firewall-Regeln setzen

Datenbank-Administrator:

  • PostgreSQL installieren
  • DB-Backups einrichten
  • DB-Berechtigungen prüfen

Security Engineer:

  • TLS-Konfiguration prüfen
  • Härtung der Nginx-Config
  • 2FA & Audit-Logging aktivieren

GDPR / Datenschutz-Hinweise

Wenn Sie personenbezogene Daten hosten (z. B. in der EU), sorgen Sie für:

  • klare Verantwortlichkeiten und Datenverarbeitungsverträge
  • sichere Speicherung und Zugriffskontrolle
  • transparente Lösch- und Backup-Richtlinien

Zusätzliche Tests und Akzeptanzkriterien

  • Browser verbindet sich per HTTPS ohne Zertifikatsfehler (bei validem Zertifikat).
  • Mattermost-Service bleibt nach einem Reboot aktiv.
  • Benutzer können Nachrichten senden und Dateien hochladen (max. 50 MB gemäß Nginx-Config).
  • Backups lassen sich wiederherstellen.

Zusammenfassung

Sie haben Mattermost auf Ubuntu 16.04 mit PostgreSQL und Nginx installiert. Folgen Sie den Sicherheits-Tipps, verwenden Sie in Produktion gültige Zertifikate, automatisieren Sie Backups und Monitoring. Für produktive Umgebungen prüfen Sie aktuelle Mattermost-Versionen und moderne TLS-Konfigurationen.

Quellen

Autor
Redaktion

Ähnliche Materialien

iPhone: Charging On Hold schnell beheben
Anleitung

iPhone: Charging On Hold schnell beheben

Apple‑Siri‑Vergleich: Berechtigung & Anspruch stellen
Datenschutz

Apple‑Siri‑Vergleich: Berechtigung & Anspruch stellen

Facebook-Profilbild als GIF einstellen
Social Media

Facebook-Profilbild als GIF einstellen

Destiny 2 Fehlercode Centipede: Vollständige Lösung
Gaming

Destiny 2 Fehlercode Centipede: Vollständige Lösung

Bilder aus Google Docs herunterladen – 6 Methoden
Anleitungen

Bilder aus Google Docs herunterladen – 6 Methoden

Snapchat Memories ohne Gebühren sichern
Apps

Snapchat Memories ohne Gebühren sichern