No description
.env.example | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
main.go | ||
README.md |
GoToSocial Benachrichtigungs-Relay zu ntfy
Dieses Projekt ist ein Go-Service, der regelmäßig Benachrichtigungen von einer GoToSocial Instanz abruft und als Push-Nachrichten an einen eigenen ntfy Server weiterleitet.
Jede Benachrichtigung enthält einen "Beitrag anzeigen"-Button, der direkt auf die Originalseite des jeweiligen Posts verweist.
Features
- Polling von GoToSocial-Benachrichtigungen über die REST-API
- Versand neuer Benachrichtigungen als Push an einen ntfy-Server
- HTML zu Klartext: Entfernt HTML aus den Benachrichtigungen
- Action-Button: Öffnet den Original-Post auf der Instanz
- Konfigurierbar über
.env
-Datei - Docker- und Compose-Setup
- Logging mit Titel und Typ der Benachrichtigung
- Token-Unterstützung für ntfy und GoToSocial
Voraussetzungen
- GoToSocial Instanz mit API-Zugang und Token (Scope:
read:notifications
) - ntfy-Server (selbst gehostet oder ntfy.sh)
- Docker & Docker Compose
Installation
-
Repository klonen
git clone cd
-
.env-Datei anlegen und konfigurieren
Beispiel:
# GoToSocial API GOTOSOCIAL_URL=https://social.example.com GOTOSOCIAL_TOKEN=dein_gotosocial_token # ntfy NTFY_SERVER=https://ntfy.example.com NTFY_TOKEN=dein_ntfy_token NTFY_TOPIC=mein_topic # Intervall für Polling (z.B. 30s, 1m) POLL_INTERVAL=30s
-
Build & Start mit Docker Compose
docker-compose up --build -d
Verwendete Dateien
-
main.go
Go-Programm: Fragt Benachrichtigungen ab und sendet sie an ntfy. -
Dockerfile
Baut das Go-Binary und erstellt ein minimales Image. -
docker-compose.yml
Startet den Dienst mit allen Umgebungsvariablen. -
.env
Konfigurationsdatei für Zugangsdaten und Einstellungen.
Benachrichtigungsformat
- Titel:
"Neue Benachrichtigung von "
- Nachricht: Typ und Inhalt der Benachrichtigung (HTML entfernt)
- Tags:
bell
,incoming_envelope
- Action-Button:
- Label:
Beitrag anzeigen
- Öffnet die Original-URL des Beitrags (
status.url
) in der GoToSocial-Instanz
- Label:
Beispiel für eine Benachrichtigung
Hinweise
- Das Feld
status.url
muss von der GoToSocial-API bereitgestellt werden (ab aktuellem Release Standard). - Die Anwendung speichert keine Daten dauerhaft, sondern verarbeitet nur neue Benachrichtigungen seit dem letzten Polling.
- Für produktiven Einsatz: Tokens sicher speichern und HTTPS verwenden.
Anpassungen
- Polling-Intervall: Über
POLL_INTERVAL
in der.env
-Datei anpassbar. - Topic: Über
NTFY_TOPIC
wählbar. - ntfy-Server: Eigener Server oder ntfy.sh verwendbar.
Fehlerbehandlung & Logging
- Alle Aktionen und Fehler werden mit Zeitstempel geloggt.
- Logs sind im Docker-Container über
docker logs gots-notify
einsehbar.
Lizenz
MIT License