From 81b07ee46d3aa54505b60038550b5c6470d06a32 Mon Sep 17 00:00:00 2001 From: Simon Rieger Date: Tue, 1 Jul 2025 20:39:43 +0200 Subject: [PATCH] add README --- README.md | 127 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 2 - 2 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..69b5502 --- /dev/null +++ b/README.md @@ -0,0 +1,127 @@ +# GoToSocial Benachrichtigungs-Relay zu ntfy + +Dieses Projekt ist ein Go-Service, der regelmäßig Benachrichtigungen von einer [GoToSocial](https://docs.gotosocial.org/) Instanz abruft und als Push-Nachrichten an einen eigenen [ntfy](https://ntfy.sh/) 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 + +1. **Repository klonen** + + ``` + git clone + cd + ``` + +2. **.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 + ``` + +3. **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 + +--- + +## Beispiel für eine Benachrichtigung + +![ntfy Beispiel](https://docs.ntfy.sh/img/push-example.png) + +--- + +## 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 + +--- + +## Weiterführende Links + +- [GoToSocial Dokumentation](https://docs.gotosocial.org/) +- [ntfy Dokumentation](https://docs.ntfy.sh/) diff --git a/docker-compose.yml b/docker-compose.yml index 8bb124d..02fe184 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - services: gots-notify: build: .