Guten Morgen,
Gestern kam ich auf die Idee, inspiriert von Olaf der Administrator von Bachgau.social, eine Statusseite einzurichten. Auf dieser werden alle Webseiten dargestellt und angezeigt ob diese gerade online sind, oder nicht.
Zu finden ist die Seite unter https://stats.dasnetzundich.de
. Die Webseiten werden alle 60 Sekunden angepingt und somit überprüft ob diese online sind. 
Wie alles, was ich so betreibe ist selbst eingerichtet. Die Statusseite läuft mit Uptime kuma.
Das Setup
Zuerst muss, wenn noch nicht vorhanden, überprüft werden ob Docker und Docker-compose installiert ist. Wenn nicht, muss das zuerst gemacht werden.
sudo apt update && apt install docker python3-certbot-nginx
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeUptime Kuma herunterladen
Wenn dieser Schritt erledigt ist, muss der Quellcode von Github geladen werden. Dies geschieht mit git clone
cd /opt
sudo git clone https://github.com/louislam/uptime-kumaDann in das enstandene Verzeichnis wechseln.
cd uptime-kumaIm original Repository werden die Container gestartet mit einer Befehlzeile. Ich habe aber eine Docker-compose Variante erstellt.
sudo nano docker-compose.ymlversion: '3'
services:
   uptime:
     image: louislam/uptime-kuma:latest
     container_name: uptime
     restart: always
     ports:
      - 127.0.0.1:3001:3001
     volumes:
      - uptime-kuma:/app/data 
     
volumes:
   uptime-kuma:Mit docker-compose up -d wird dann alles gestartet.
Nginx Setup
nun mit Certbot ein neues SSL Zertifikat erstellen.
sudo certbot -certonly -d stats.domain.tldNun fehlt noch ein Setup für Nginx.
sudo nano /etc/nginx/sites-available/uptimeserver {
    listen 80;
    listen [::]:80;
    server_name stats.domain.tld;
    location / {
       return 301 https://stats.domain.tld;
    }
}
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2;
    server_name stats.domain.tld; 
    ssl_certificate_key /etc/letsencrypt/live/stats.domain.tld/privkey.pem;
    ssl_certificate     /etc/letsencrypt/live/stats.domain.tld/fullchain.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/stats.domain.tld/chain.pem;
    location / {
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://localhost:3001/; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade";
  }
}ln -s /etc/nginx/sites-available/uptime /etc/nginx/sites-enabled/uptimeKonfiguration überprüfen und Nginx neu starten.
sudo ngin -t && sudo service nginx restartEinrichten der Webseiten
Zunächst die die erstellte Seite aufrufen. Es folgt ein Fenster zum einrichten eines Administrations-Accounts. Beim Abschluss damit dann einloggen und die erste Seite einrichten.

Abspeichern und die Statusseite einrichten.

Danach sollte alles laufen und die Überwachung beginnt.