So installierst du das Cachet-Statusseiten-System unter Debian 12

Cachet ist ein in PHP geschriebenes Open-Source-Statusseitensystem. Es ermöglicht es dir, Ausfallzeiten und Systemfehler in deiner Infrastruktur zu überwachen. Cachet bietet eine JSO-API, sogar Berichte, Metriken, mehrere Benachrichtigungsmethoden und eine Zwei-Faktor-Authentifizierung.

In der folgenden Anleitung zeigen wir dir, wie du die Cachet-Statusseite auf einem Debian 12-Server installierst. Du wirst Cachet als Docker-Container mit der PostgreSQL-Datenbank und dem Webserver Nginx betreiben.

Voraussetzungen

Bevor du fortfährst, solltest du sicherstellen, dass du Folgendes hast:

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit sudo-Rechten.
  • Eine UFW wurde installiert und konfiguriert.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installation der Docker-Engine

In diesem Beispiel wirst du Cachet als Container über Docker installieren. Daher musst du die Docker-Engine auf deinem Debian-System installieren. In diesem Beispiel wirst du die offiziellen Docker-Engine-Pakete verwenden.

Führe zunächst den folgenden Befehl aus, um die Pakete curl und ca-certificates zu installieren.

sudo apt install ca-certificates curl -y

Füge nun den GPG-Schlüssel für das Docker-Repository hinzu, indem du den folgenden Befehl ausführst.

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Als Nächstes fügst du das Docker-Engine-Repository für das Debian-System mit folgendem Befehl hinzu.

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Sobald das Docker-Repository hinzugefügt ist, aktualisiere deinen Paketindex mit dem folgenden Befehl.

sudo apt update

Repo hinzufügen

Installiere nun die Docker Engine mit dem folgenden Befehl auf deinem System. Gib Y ein, um die Installation zu bestätigen.

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker installieren

Nachdem die Installation abgeschlossen ist, sollte der Docker-Dienst automatisch ausgeführt werden. Überprüfe den Status des Docker-Dienstes mit dem folgenden Befehl.

sudo systemctl status docker

Du wirst eine Ausgabe wie die folgende sehen:

Scheckdocker

Um sicherzustellen, dass dein Benutzer den Container ausführen kann, musst du ihn mit dem unten stehenden Befehl zur Docker-Gruppe hinzufügen.

sudo usermod -aG sudo alice

Melde dich schließlich als dein Benutzer an und führe den unten stehenden Docker-Befehl aus, um den Container hello-world zu starten.

su - alice
docker run hello-world

Wenn deine Konfiguration erfolgreich ist, solltest du die Ausgabe „Hello Docker“ wie die folgende erhalten:

docker hello-world

Cachet mit Docker und PostgreSQL-Datenbank ausführen

Nachdem du Docker installiert hast, musst du das Cachet-Projekt herunterladen und deine Installation konfigurieren. In diesem Fall wirst du Cachet als Nicht-Root-Benutzer mit einem Docker-Container installieren und ausführen.

Lade das Cachet-Projekt in das cachet-docker-Verzeichnis herunter und gehe dorthin.

git clone https://github.com/cachethq/Docker.git cachet-docker
cd cachet-docker

Öffne die Datei docker-compose.yml mit dem folgenden Befehl des nano-Editors.

nano docker-compose.yml

Ändere den Standard-Host-Port wie folgt auf 8000. Du kannst auch die Datenbankdetails mit deinen Informationen anpassen und die Standardversion von Cachet auf 2.4 belassen.

 ports:
 - 8000:8000

Speichere die Datei und beende sie.

Führe nun die folgenden Docker-Befehle aus, um dein Cached-Image zu erstellen und Container für Cachet und PostgreSQL zu starten.

docker compose build
docker compose up

Unten siehst du den Screenshot, wenn du das Docker-Image für Cachet erstellst.

docker byuild

Unten siehst du den Screenshot, wenn du Container/Dienste sowohl für Cachet als auch für PostgreSQL ausführst.

Container läuft

In den Verbose-Logs des Cachet-Containers findest du einen Fehler bezüglich der APP_KEY-Konfiguration. Kopiere den generierten APP_KEY und drücke Strg+c, um die Container zu beenden.

Schlüssel

Öffne die Datei docker-compose.yml erneut mit dem nano-Editor.

nano docker-compose.yml

Ändere den Standardparameter APP_KEY wie folgt. Achte darauf, dass du die base64-Zeichenkette einfügst.

APP_KEY=base64:WfKUhY0wAOyr5hkxoctZUSWPGdXbBUWFvNLCoI7kTU8=

Speichere die Datei und beende sie.

Führe nun den unten stehenden Docker-Befehl aus, um die Container für Cachet und PostgreSQL zu beenden, und starte sie dann erneut.

docker compose down
docker compose up -d

Sobald die Container gestartet sind, überprüfe die Liste der laufenden Container mit dem folgenden Befehl.

docker compose ps

Wie du unten sehen kannst, laufen sowohl der Cachet- als auch der PostgreSQL-Container. Der Cachet-Container läuft auf Port 8000.

umbauen

Nginx als Reverse Proxy einrichten

Jetzt, wo Cachet als Container auf Port 8000 läuft, installierst und konfigurierst du Nginx als Reverse Proxy für Cachet.

Installiere Nginx auf deinem Debian-Server mit dem unten stehenden Befehl.

sudo apt install nginx -y

nginx installieren

Sobald die Installation abgeschlossen ist, erstelle eine neue Nginx-Serverblockkonfiguration /etc/nginx/sites-available/cachet mit dem unten stehenden nano-Editor-Befehl.

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

Füge die unten stehende Konfiguration ein und achte darauf, dass du den Parameter server_name durch deinen Domainnamen ersetzt.

server {
 listen 80;
 server_name status.hwdomain.io;
 location / {
 proxy_pass http://127.0.0.1:8000;
 proxy_set_header Host $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;
 }
}

Speichere die Datei und beende den Editor.

Als Nächstes führst du den unten stehenden Nginx-Befehl aus, um den Cachet-Serverblock zu aktivieren und deine Nginx-Syntax zu überprüfen. Wenn du eine korrekte Syntax hast, solltest du die Ausgabe„Syntax ist ok“ erhalten.

sudo ln -s /etc/nginx/sites-available/cachet /etc/nginx/sites-enabled/
sudo nginx -t

nginx-Einrichtung

Starte den Nginx-Webserver neu, um die Konfiguration des Cachet-Serverblocks zu übernehmen und überprüfe den Nginx-Dienst, um sicherzustellen, dass er läuft.

sudo systemctl restart nginx
sudo systemctl status nginx

Wenn Nginx läuft, solltest du die Ausgabe active(running) erhalten.

nginx prüfen

UFW (Unkomplizierte Firewall) einrichten

Bevor du auf Cachet zugreifen kannst, musst du sicherstellen, dass sowohl HTTP- als auch HTTPS-Ports zugelassen sind. Unter Ubuntu erlaubst du den Datenverkehr sowohl für HTTP als auch für HTTPS über die UFW (Uncomplicated Firewall).

Vergewissere dich, dass die UFW aktiviert ist und führe den folgenden Befehl aus, um das Profil„Nginx Full“ in der UFW zu aktivieren. Dadurch wird der Datenverkehr sowohl für HTTP- als auch für HTTPS-Protokolle zu deinem Nginx-Webserver zugelassen.

sudo ufw allow 'Nginx Full'

Überprüfe nun deine Liste der aktivierten Regeln in UFW mit dem folgenden Befehl.

sudo ufw status

Du wirst sehen, dass das Profil„Nginx Full“ in UFW aktiviert ist.

ufw-Einrichtung

Cachet mit HTTPS absichern

Jetzt sollte dein Cachet über Nginx erreichbar sein. Um deine Installation zu sichern, aktivierst du HTTPS für Cachet über SSL von Letsencrypt.

Führe also den folgenden Befehl aus, um Certbot und das Certbot Nginx Plugin zu installieren. Gib Y ein, um die Installation zu bestätigen.

sudo apt install certbot python3-nginx-certbot

Sobald die Installation abgeschlossen ist, führe den folgenden Certbot-Befehl aus, um SSL/TLS-Zertifikate für deine Cachet-Installation zu erzeugen. Achte darauf, dass du die Angaben zum Domainnamen und zur E-Mail-Adresse mit deinen Daten abänderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email alice@hwdomain.io -d status.hwdomain.io

Nachdem alles abgeschlossen ist, sollten deine SSL/TLS-Zertifikate im Verzeichnis /etc/lestencrypt/live/status.hwdomain.io gespeichert sein. Außerdem sollte dein Cachet über HTTPS gesichert sein.

Installation von Cachet

Starte deinen bevorzugten Webbrowser und besuche deine Cachet-Installation https://status.hwdomain.io/. Wenn deine Installation erfolgreich war, solltest du die folgende Seite erhalten.

Wähle den Standard Cache Driver, Queue Driver und Session Driver für die Datenbank aus. Gib dann die Daten deines Mailservers ein.

Klicke auf Weiter, um fortzufahren.

Gütesiegel einrichten

Lege nun den Namen der Statusseite, die Standardzeitzone und die Standardsprache fest. Klicke dann wieder auf Weiter.

Setup-Sprache

Erstelle nun einen neuen Admin-Benutzer für Cachet, indem du deinen Benutzernamen, deine E-Mail-Adresse und dein Passwort eingibst. Klicke dann auf Einrichtung abschließen, um zu bestätigen.

Admin-Setup

Wenn du fertig bist, siehst du Folgendes: Klicke auf Zum Dashboard gehen.

vollständige Installation

Melde dich mit deinem Benutzernamen und Passwort bei Cache an und klicke dann auf Anmelden.

Anmeldung

Wenn deine Installation erfolgreich war, solltest du das Cachet-Dashboard wie folgt sehen:

Dashboard

Fazit

Herzlichen Glückwunsch! Du hast jetzt die Cachet-Statusseite auf dem Debian 12-Server mit Docker installiert. Deine Cachet-Installation läuft mit einer PostgreSQL-Datenbank und einem Nginx-Webserver. Du kannst jetzt deine Websites mit Cachet überwachen.

Das könnte dich auch interessieren …