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.
- Android-App (F-Droid): https://f-droid.org/packages/com.github.gotify/
- Android-Quellcode: https://github.com/gotify/android
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.
Nützliche Links
- Website: https://gotify.net/
- Dokumentation: https://gotify.net/docs/
- Server (GitHub): https://github.com/gotify/server
- Docker Image: https://hub.docker.com/r/gotify/server
- Android-App (GitHub): https://github.com/gotify/android
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.