Installation · 9 min read · Oct 26, 2025

So installieren Sie Statping auf Ubuntu 22.04

Statping ist ein Open-Source-Uptime-Monitor, der Websites und Anwendungen verfolgt, die auf mehreren Servern gehostet werden. Es kann eine schöne Statusseite generieren, indem es Echtzeitdaten aus verschiedenen Quellen abruft. Es kann mit mehreren Datenbanksystemen wie SQLite, MySQL und Postgres arbeiten. Für unser Tutorial verwenden wir den Fork von Statping, genannt Statping-ng, da die ursprüngliche Anwendung nicht mehr entwickelt wird.

In diesem Tutorial lernen Sie, wie Sie Statping auf einem Ubuntu 22.04-Server mit Docker und Nginx-Server als Proxy installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 ausführt.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Die unkomplizierte Firewall (UFW) ist aktiviert und läuft.
  • Ein vollständig qualifizierter Domainname (FQDN), der auf den Server zeigt, wie status.example.com.
  • Alles ist aktualisiert. $ sudo apt update && sudo apt upgrade

Schritt 1 - Firewall konfigurieren

Bevor Sie Pakete installieren, besteht der erste Schritt darin, die Firewall so zu konfigurieren, dass HTTP- und HTTPS-Verbindungen erlaubt sind.

Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten etwas sehen, das wie folgt aussieht.

Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)

Erlauben Sie HTTP- und HTTPS-Ports.

$ sudo ufw allow http
$ sudo ufw allow https

Überprüfen Sie den Status erneut, um zu bestätigen.

$ sudo ufw status
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
80/tcp                     ERLAUBEN    Überall
443                        ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)
80/tcp (v6)                ERLAUBEN    Überall (v6)
443 (v6)                   ERLAUBEN    Überall (v6)

Schritt 2 - Docker installieren

Fügen Sie den offiziellen GPG-Schlüssel von Docker hinzu.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

Führen Sie den folgenden Befehl aus, um das Docker-Repository hinzuzufügen.

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Aktualisieren Sie das System, um das Docker-Repository einzuschließen.

$ sudo apt update

Installieren Sie Docker und das Docker-Compose-Plugin.

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

Dieses Tutorial verwendet das Docker Compose v2-Plugin anstelle des älteren Legacy-Binaries. Daher hat sich der Befehl zum Ausführen von docker-compose in docker compose geändert, und dies wird hier reflektiert.

Docker läuft mit erhöhten Rechten, daher müssen Sie häufig sudo verwenden, um Befehle auszuführen. Die bessere Option ist, Ihr Linux-Benutzerkonto zur docker-Benutzergruppe hinzuzufügen.

$ sudo usermod -aG docker ${USER}

Die ${USER}-Variable erfasst das aktuell angemeldete Systemkonto. Wenn Sie nicht mit dem Benutzer angemeldet sind, dem Sie Berechtigungen erteilen möchten, ersetzen Sie ${USER} durch den Benutzernamen.

Um die neue Gruppenmitgliedschaft anzuwenden, melden Sie sich vom Server ab und wieder an oder verwenden Sie den folgenden Befehl. Sie werden nach dem Passwort des Benutzers gefragt.

$ su - ${USER}

Schritt 3 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die System-Repositorys.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.0

Schritt 4 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Ubuntu-Repository installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd ausgeliefert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d status.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/status.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Öffnen Sie die Datei /etc/letsencrypt/renewal/status.example.com.conf zur Bearbeitung.

$ sudo nano /etc/letsencrypt/renewal/status.example.com.conf

Fügen Sie den folgenden Code am Ende ein.

pre_hook = systemctl stop nginx
post_hook = systemctl start nginx

Speichern Sie die Datei, indem Sie Ctrl + X drücken und bei Aufforderung Y eingeben.

Wir haben das SSL-Zertifikat mit der Standalone-Option von Certbot generiert. Es betreibt seinen eigenen Webserver, um das Zertifikat zu erstellen, was bedeutet, dass Nginx während der Erneuerung abgeschaltet werden sollte. Die pre_hook- und post_hook-Befehle werden vor und nach der Erneuerung ausgeführt, um den Nginx-Server automatisch zu stoppen und neu zu starten, sodass keine manuelle Intervention erforderlich ist.

Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Testlauf des Prozesses durch.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 5 - Docker-Compose-Datei konfigurieren

Erstellen Sie ein Verzeichnis für die Docker-Compose-Datei.

$ mkdir ~/statping

Wechseln Sie in das Verzeichnis.

$ cd ~/statping

Erstellen und öffnen Sie die Docker-Compose-Datei zur Bearbeitung.

$ nano docker-compose.yml

Fügen Sie den folgenden Code ein.

services:
  statping:
    container_name: statping
    image: adamboutcher/statping-ng
    restart: always
    ports:
      - 8080:8080
    volumes:
      - ./statping_data:/app
    links:
      - postgres
    depends_on:
      - postgres
    environment:
      DB_CONN: postgres
      DB_HOST: postgres
      DB_PORT: 5432
      DB_DATABASE: statping
      DB_USER: root
      DB_PASS: password123
      NAME: 'Howtoforge Statping page'
      DESCRIPTION: 'Statping Demo page'
      USE_ASSETS: 'true'
      SAMPLE_DATA: 'false'
      ALLOW_REPORTS: 'false'
      ADMIN_USER: navjot
      ADMIN_PASSWORD: yourpassword

  postgres:
    container_name: postgres
    image: postgres:14-alpine
    ports:
      - 5432:5432
    volumes:
      - ./pg_data:/var/lib/postgresql/data/pg_data
    environment:
      POSTGRES_PASSWORD: password123
      POSTGRES_DB: statping
      POSTGRES_USER: root
      POSTGRES_PORT: 5432
      PGDATA: /var/lib/postgresql/data/pg_data

Speichern Sie die Datei, indem Sie Ctrl + X drücken und bei Aufforderung Y eingeben.

Wir richten die Statping- und Postgres-Docker-Images ein. Der Großteil der Docker-Datei ist leicht zu befolgen. Wir verwenden lokale Datensicherungen, um die Anwendungsdaten und die Postgres-Datenbank zu speichern. Wir haben auch mehrere Umgebungsvariablen konfiguriert, um die Anwendung und die Datenbank zu konfigurieren. Lassen Sie uns einen Blick darauf werfen. Um eine vollständige Liste der Umgebungsvariablen zu erhalten, die Sie definieren können, überprüfen Sie die offizielle Liste im Statping-GitHub-Repository.

  • Die USE_ASSETS-Variable ermöglicht es der App, die Assets aus dem assets-Ordner zu verwenden.
  • Die SAMPLE_DATA-Variable ist auf false gesetzt, um die Standardmonitore zu deaktivieren, die Statping während der Installation konfiguriert.
  • Die ALLOW_REPORTS-Variable ist auf false gesetzt, um die anonymen Fehlermeldungen, die Statping sendet, zu deaktivieren.
  • Die ADMIN_USER- und ADMIN_PASSWORD-Variablen werden verwendet, um die Anmeldeinformationen für den Standardbenutzer festzulegen.
  • Die DB_-Variablen werden verwendet, um die Datenbankanmeldeinformationen festzulegen, die mit den Variablen übereinstimmen sollten, die für den Postgres-Container definiert sind.

Schritt 6 - Nginx konfigurieren

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Ctrl + X drücken und bei Aufforderung Y eingeben.

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/statusping.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/statusping.conf

Fügen Sie den folgenden Code ein. Ersetzen Sie status.example.com durch Ihren Domainnamen.

upstream backend {
   server 127.0.0.1:8080;
   keepalive 32;
}

server {
  listen 80 default_server;
  server_name status.example.com;
  return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl http2;
   server_name status.example.com;

   http2_push_preload on; # HTTP/2 Server Push aktivieren

   ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;
   ssl_trusted_certificate /etc/letsencrypt/live/status.example.com/chain.pem;
   ssl_session_timeout 1d;

   # TLS-Versionen aktivieren (TLSv1.3 ist für das kommende HTTP/3 QUIC erforderlich).
   ssl_protocols TLSv1.2 TLSv1.3;

   # Aktivieren Sie TLSv1.3's 0-RTT. Verwenden Sie $ssl_early_data, wenn Sie einen Reverse-Proxy verwenden,
   # um Wiederholungsangriffe zu verhindern.
   #
   # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
   ssl_early_data on;

   ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:50m;
   # OCSP Stapling --- OCSP-Datensätze von der URL im ssl_certificate abrufen und cachen
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_dhparam /etc/ssl/certs/dhparam.pem;

   add_header X-Early-Data $tls1_3_early_data;

   access_log /var/log/nginx/statusping.access.log main;
   error_log  /var/log/nginx/statusping.error.log;

   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_set_header X-Client-Verify  SUCCESS;
       proxy_set_header X-Client-DN      $ssl_client_s_dn;
       proxy_set_header X-SSL-Subject    $ssl_client_s_dn;
       proxy_set_header X-SSL-Issuer     $ssl_client_i_dn;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 1800s;
       proxy_connect_timeout 1800s;
       proxy_http_version 1.1;
       proxy_pass http://backend;
   }
}

# Dieser Block ist nützlich zur Fehlersuche bei TLS v1.3. Bitte entfernen Sie dies
# und verwenden Sie die von NGINX direkt bereitgestellte `$ssl_early_data`-Variable, wenn Sie
# dies wünschen.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Speichern Sie die Datei, indem Sie Ctrl + X drücken und bei Aufforderung Y eingeben.

Überprüfen Sie Ihre Nginx-Konfiguration.

$ sudo nginx -t

Starten Sie den Nginx-Server neu.

$ sudo systemctl restart nginx

Schritt 7 - Statping ausführen

Wechseln Sie in das Statping-Verzeichnis.

$ cd ~/statping

Erstellen und starten Sie den Docker-Container.

$ docker compose up -d

Überprüfen Sie den Status des Containers.

$ docker compose ps

Sie werden die folgende Ausgabe sehen.

NAME                COMMAND                  SERVICE             STATUS              PORTS
postgres            "docker-entrypoint.s…"   postgres            running             0.0.0.0:5432->5432/tcp
statping            "/bin/sh -c 'statpin…"   statping            running (healthy)   0.0.0.0:8080->8080/tcp

Sie können auch den Befehl docker ps verwenden, um einen detaillierteren Status zu erhalten. Um die Containerprotokolle zu überprüfen, verwenden Sie den Befehl docker logs .

Schritt 8 - Statping konfigurieren

Jetzt, da Ihr Container läuft, öffnen Sie die URL https://status.example.com in Ihrem Browser und Sie sehen eine leere Statusseite. Wenn Sie die Variable SAMPLE_DATA in der Docker-Compose-Datei weglassen, sehen Sie eine vollständige Seite mit verschiedenen vordefinierten Diensten.

Statping-Statusseite

Klicken Sie auf den Dashboard-Link am Ende, um zum Anmeldebildschirm zu gelangen.

Statping-Anmeldebildschirm

Geben Sie admin sowohl als Standardbenutzernamen als auch als Passwort ein. Stellen Sie sicher, dass Sie den Benutzernamen eingeben, auch wenn er vorab ausgefüllt aussieht. Klicken Sie auf die Schaltfläche Anmelden, um auf das Statping-Dashboard zuzugreifen.

Statping-Dashboard

Um einen neuen Dienst hinzuzufügen, klicken Sie auf die Schaltfläche Erstellen und füllen Sie die erforderlichen Werte aus.

Statping-Dienst erstellen

Klicken Sie auf die Schaltfläche Dienst erstellen am Ende, um abzuschließen. Um E-Mail- und andere Benachrichtigungen zu konfigurieren, besuchen Sie die Einstellungsseite. Sie können Ihrer Statusseite auch einen neuen Namen geben.

Statping-Statusseite mit Live-Dienst

Schritt 9 - Statping aktualisieren

Das Upgrade von Statping ist ein einfacher Schritt. Wechseln Sie in das Docker-Compose-Verzeichnis von Statping.

$ cd ~/statping

Stoppen und entfernen Sie dann den vorhandenen Container. Ihre Daten bleiben jedoch erhalten.

$ docker compose down --remove-orphans

Holen Sie sich die neueste Version des Statping-Docker-Images.

$ docker compose pull

Starten Sie die Container erneut.

$ docker compose up -d

Ihre Statping-Installation ist aktualisiert und wurde erneut gestartet.

Fazit

Damit endet das Tutorial, in dem Sie gelernt haben, wie Sie Statping auf einem Ubuntu 22.04-Server installieren. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.