-
released this
2026-02-13 09:03:46 +00:00 | 25 commits to main since this releaseRelease Notes
v1.0.0 (2026-02-14)
Erstes stabiles Release der ntfy2vikunja-Bridge.
Übersicht
ntfy2vikunjaverbindet ntfy mit Vikunja: Nachrichten aus einem ntfy-Topic werden per WebSocket empfangen, in einer Queue zwischengespeichert und als Tasks in Vikunja angelegt.Features
- WebSocket-Subscriber – ntfy-Integration mit Reconnect und Backoff
- Persistente Queue – SQLite für zuverlässige Verarbeitung
- Retry mit Exponential Backoff – bis zu 8 Versuche bei Fehlern
- Dead-letter –
dead-Status nach maximaler Retry-Anzahl - Entkoppelte Architektur – Ingestor + Worker getrennt oder kombiniert
- Optionales ntfy-Feedback – „Task erstellt“-Nachricht an eigenes Topic
- Healthcheck – Queue-Status als JSON für Monitoring
Task-Mapping
Nachricht Ergebnis Backup prüfenTask ohne Priorität, ohne Fälligkeit Backup prüfen due:2026-03-10Task mit Fälligkeitsdatum Backup prüfen prio:5Task mit Priorität 5 ! Backup sofort due:2026-03-10Task mit Priorität 5 und Fälligkeit - Priorität:
prio:1..5,priority:low|medium|high|urgentoder führendes! - Fälligkeit:
due:YYYY-MM-DDin Title oder Body - Android: Leere
triggered-Events werden ignoriert
Voraussetzungen
- Python 3.11+ (3.10 sollte funktionieren)
- ntfy-Instanz mit Token
- Vikunja-Instanz mit API-Token (minimal:
Tasks -> Create)
Installation
pip install -r requirements.txt cp .env.example .env # .env bearbeiten python bridge_run.py # Lokal: alles in einem ProzessLinux / Deployment
- systemd: Ingestor + Worker als separate Services oder
bridge-runkombiniert - Forgejo CI/CD: Automatischer Deploy via
.forgejo/workflows/deploy.yml - Dokumentation:
DEPLOY.md,OPERATIONS.md
Projektstruktur
ntfy_subscribe.py # WebSocket-Client create_task.py # Vikunja Task-API queue_store.py # SQLite Queue bridge_ingestor.py # ntfy -> Queue bridge_worker.py # Queue -> Vikunja bridge_run.py # Kombinierter Runner healthcheck.py # Queue-Monitoring deploy/systemd/ # systemd Units deploy/sudoers/ # Deploy-BerechtigungenDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads