Gotify: Selbstgehostete Push-Benachrichtigungen leicht gemacht

Allgemein

Gotify: Selbstgehostete Push-Benachrichtigungen leicht gemacht

Was ist Gotify?

Gotify ist ein schlanker, selbstgehosteter Push-Server. Damit verschickst du Benachrichtigungen von deinen Skripten, Diensten oder Apps an dein Smartphone (Android), deinen Browser oder andere Clients – ohne Cloud-Dienst dazwischen.

Kurz gesagt:

  • Open Source, einfach zu betreiben
  • Volle Datenhoheit, weil alles auf deinem Server läuft
  • API-basiert, ideal für Automatisierung, CI/CD und Monitoring

Offizielle Website: https://gotify.net/

Warum Gotify nutzen?

  • Datenschutz: Keine Drittanbieter-Cloud, du behältst die Kontrolle.
  • Einfachheit: Ein Container, ein Token, eine URL – fertig.
  • Flexibilität: Sende Nachrichten per API, Webhook oder curl.
  • Plattformen: Web-UI im Browser und eine Android-App.
  • Kosten: Selbst hosten heißt – keine Abo-Gebühren.

Schnellstart: Gotify mit Docker installieren

Voraussetzungen

  • Ein Server (z. B. VPS oder NAS) mit Docker und Docker Compose
  • Eine Domain (empfohlen), für HTTPS per Reverse Proxy

Docker-Compose-Beispiel

Erstelle eine Datei docker-compose.yml:

version: "3.8"
services:
  gotify:
    image: gotify/server:latest
    container_name: gotify
    ports:
      - "8080:80"
    environment:
      - GOTIFY_DEFAULTUSER_NAME=admin
      - GOTIFY_DEFAULTUSER_PASS=einSicheresPasswort
    volumes:
      - ./gotify-data:/app/data
    restart: unless-stopped

Starten:

docker compose up -d

Jetzt erreichst du Gotify unter http://DEIN_SERVER:8080. Melde dich mit dem gesetzten Admin-User an.

Dokumentation: https://gotify.net/docs/

HTTPS mit Reverse Proxy (Kurzüberblick)

Für Produktion solltest du Gotify hinter einem Reverse Proxy (z. B. NGINX, Traefik, Caddy) mit TLS betreiben. Beispiel NGINX-Proxy-Block:

server {
    server_name gotify.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # TLS-Konfiguration (Let's Encrypt) hier ergänzen
}

Mehr Details: https://gotify.net/docs/nginx

Erste Nachricht senden: So geht’s

1) Im Gotify-Web-UI eine “Application” anlegen und den Token kopieren.
2) Test per curl:

curl "https://gotify.example.com/message?token=DEIN_APP_TOKEN" \
  -F "title=Build erfolgreich" \
  -F "message=Die CI-Pipeline ist durchgelaufen." \
  -F "priority=5"
  • title: Überschrift der Nachricht
  • message: Inhalt
  • priority: 1–10 (höher = wichtiger)

Tipp: Installiere die Android-App, um Pushs aufs Handy zu bekommen.

Typische Einsatzszenarien

  • DevOps/CI: GitLab/GitHub Actions schicken Status-Updates.
  • Monitoring: Alarmierungen aus Prometheus/Alertmanager, Zabbix, Uptime-Kuma.
  • Smart Home: Home Assistant meldet geöffnete Fenster oder Alarme.
  • Server-Administration: Cronjobs informieren bei Backups, Updates oder Fehlern.
  • Netzwerktechnik: Router/Firewall-Skripte warnen bei Verbindungsproblemen.

Beispiele aus der Praxis

Bash-Skript

#!/usr/bin/env bash
send() {
  curl -sS "https://gotify.example.com/message?token=$GOTIFY_TOKEN" \
    -F "title=$1" -F "message=$2" -F "priority=${3:-5}" > /dev/null
}
# Beispiel: Backup abgeschlossen
send "Backup" "Backup des Webservers erfolgreich." 6

GitLab CI/CD

In .gitlab-ci.yml nach dem Job:

after_script:
  - 'curl -sS "https://gotify.example.com/message?token=$GOTIFY_TOKEN" -F "title=$CI_JOB_NAME" -F "message=Status: $CI_JOB_STATUS" -F "priority=5"'

Best Practices und Sicherheit

  • HTTPS erzwingen: Immer TLS aktivieren (z. B. via Let’s Encrypt).
  • Starke Passwörter: Für Admin und Benutzer.
  • Tokens trennen: Pro Anwendung einen eigenen Token nutzen.
  • Rechte begrenzen: Nur benötigte Rollen vergeben (Admin nur, wenn nötig).
  • Backups: Verzeichnis /app/data regelmäßig sichern.
  • Updates: Server-Image und Android-App aktuell halten.
  • Zugriff beschränken: Falls möglich, Proxy-Auth, IP-Filter oder VPN nutzen.

Sicherheitsleitfaden: https://gotify.net/docs/security

Häufige Fragen (FAQ)

  • Gibt es eine iOS-App?
  • Derzeit keine offizielle iOS-App. Du kannst die Web-UI nutzen oder Community-Lösungen prüfen.
  • Kommen Nachrichten an, wenn mein Telefon offline ist?
  • Ja. Gotify speichert Nachrichten auf dem Server. Die App holt sie ab, sobald sie wieder verbunden ist.
  • Wie integriere ich Gotify ohne Programmierung?
  • Viele Tools unterstützen Webhooks. Außerdem kannst du mit curl, Node-RED oder Home Assistant schnell loslegen.
  • Kann ich Dateien/Anhänge senden?
  • Gotify ist vor allem für Text-Notifs. Für erweiterte Inhalte siehe die API-Extras in der Doku.

API-Doku: https://gotify.net/docs/api

Alternativen und Ergänzungen

  • ntfy: Ebenfalls self-hosted Push, ähnlicher Ansatz.
  • Matrix/Telegram/Slack: Gut für Chat, aber nicht primär für einfache, direkte Pushs.
    Gotify punktet, wenn du eine kompakte, fokussierte Self-Hosted-Notification-Lösung willst.

Fazit

Gotify ist eine schnelle, leichte und datenschutzfreundliche Lösung für Push-Benachrichtigungen. Mit Docker in Minuten installiert, per API leicht angebunden und ideal für Automatisierung, Monitoring und Smart Home. Wenn du Kontrolle, Einfachheit und eigene Infrastruktur schätzt, ist Gotify eine hervorragende Wahl.