gots-notify/README.md
2025-07-01 20:39:43 +02:00

3.1 KiB

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

  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


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