add README
This commit is contained in:
parent
1ed5bdfdc9
commit
81b07ee46d
2 changed files with 127 additions and 2 deletions
127
README.md
Normal file
127
README.md
Normal file
|
@ -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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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/)
|
|
@ -1,5 +1,3 @@
|
||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
gots-notify:
|
gots-notify:
|
||||||
build: .
|
build: .
|
||||||
|
|
Loading…
Add table
Reference in a new issue