-
v0.4.2
Stablereleased this
2026-03-30 09:06:17 +00:00 | 0 commits to master since this releaseRelease Notes – v0.4.2
Datum: 30. März 2026
Übersicht
Dieses Release behebt ein ärgerliches Kompatibilitätsproblem mit SOGo-Kontaktlisten. Wer SOGo als Groupware nutzt und bisher mysteriöse Fehler beim Parsen der CardDAV-Daten erlebt hat – das sollte jetzt Geschichte sein! 🎉
Fehlerbehebungen
- SOGo VLIST-Kontaktlisten werden jetzt gefiltert (
da699b2)
SOGo speichert Kontaktlisten im proprietärenVLIST-Format direkt in den CardDAV-Adressbüchern. Der vCard-Decoder konnte diese nicht verarbeiten und brach mit Fehlern ab. Ab sofort werdenVLIST-Einträge automatisch aus den CardDAV-Antworten herausgefiltert, bevor sie den Parser erreichen. Die eigentlichen Kontakte (vCards) bleiben selbstverständlich vollständig erhalten.
Changelog
Commit Beschreibung da699b2fix: SOGo VLIST-Kontaktlisten aus CardDAV-Antworten filtern Downloads
- SOGo VLIST-Kontaktlisten werden jetzt gefiltert (
-
v0.4.1
Stablereleased this
2026-03-29 22:11:14 +00:00 | 8 commits to master since this releaseRelease Notes – v0.4.1
Datum: 30. März 2026
Fehlerbehebungen
- CI/CD: Release-Workflow vereinfacht und korrigiert – Der bisherige
workflow_dispatch-basierte Release-Workflow wurde durch ein schlankeres Modell ersetzt, das automatisch auf dasrelease:published-Event reagiert. Manuelle Versionseingabe, Tag-Erstellung und Validierung entfallen – das übernimmt jetzt Gitea direkt beim Erstellen eines Releases. Das reduziert Fehlerquellen und vereinfacht den gesamten Release-Prozess erheblich.
Changelog
Commit Beschreibung Autor Datum b0ab2ebfix(ci): Release-Workflow auf release:publishedEvent umgestelltPatrick Asmus 2026-03-30 Downloads
- CI/CD: Release-Workflow vereinfacht und korrigiert – Der bisherige
-
released this
2026-03-29 21:56:55 +00:00 | 10 commits to master since this releaseRelease Notes – v0.4.0
Datum: 29. März 2026
Übersicht
Es ist soweit – v0.4.0 bringt eine ganze Ladung an neuen Features, mehr Konfigurationsmöglichkeiten und ein deutlich verbessertes Logging mit! 🎉
Diese Version macht den Birthday-Daemon flexibler, transparenter und robuster. Von Jahrestagen über konfigurierbare Sync-Intervalle bis hin zu einem richtigen Docker-Healthcheck – hier steckt richtig viel Neues drin. Viel Spaß beim Updaten!
Neue Funktionen
- Jahrestage (Anniversary) & Emoji-Präfixe – Der Daemon unterstützt jetzt neben Geburtstagen auch Jahrestage (
ANNIVERSARY). Kalendereinträge bekommen zudem hübsche Emoji-Präfixe, damit man auf den ersten Blick sieht, was Sache ist. - Kalenderfarbe automatisch setzen – Die Kalenderfarbe (
calendar-color) wird nun automatisch gesetzt – weniger manuelle Arbeit, mehr Einheitlichkeit. - Konfigurierbarer Event-Horizont (
EVENT_YEARS) – Über die neue UmgebungsvariableEVENT_YEARSlässt sich einstellen, wie viele Jahre im Voraus Events angelegt werden sollen. - Mailboxen ausschließen (
MAILBOX_EXCLUDE) – Einzelne Mailboxen können jetzt bequem per Umgebungsvariable von der Synchronisation ausgeschlossen werden. - Konfigurierbarer Log-Level (
LOG_LEVEL) – Das Logging lässt sich jetzt über die UmgebungsvariableLOG_LEVELsteuern (Werte:debug,info,warn,error). - Sync-Intervall konfigurierbar (
SYNC_INTERVAL) – Das Synchronisationsintervall ist jetzt überSYNC_INTERVALeinstellbar (Standard: 15 Minuten). - Docker-Healthcheck – Ein dateibasierter Docker-Healthcheck wurde hinzugefügt, sodass der Container-Status sauber überwacht werden kann.
- Graceful Shutdown – Signal-Handling sorgt dafür, dass der Daemon bei einem Stop-Signal sauber herunterfährt.
Fehlerbehebungen
- Startup-Connectivity-Check optimiert – Der bisherige fixe 15-Sekunden-Delay beim Start wurde durch eine aktive Erreichbarkeitsprüfung von API und SOGo ersetzt. Der Daemon startet jetzt schneller, sobald die Abhängigkeiten bereit sind.
- Überflüssige Leerzeilen entfernt – Kleinere Code-Cleanups in
startup.go. - CI: Release-Workflow angepasst – Der Release-Workflow wurde auf manuellen Trigger umgestellt und SCM-Release deaktiviert.
Verbesserungen
- Neues Log-Format – Die Log-Ausgaben nutzen jetzt einheitliche Tags:
[INFO],[WARN],[ERROR],[DEBUG]– das macht das Lesen und Filtern von Logs deutlich einfacher.
Dokumentation
- Hinweis zu fehlender Jahrestag-Unterstützung in der SOGo-Weboberfläche ergänzt sowie Kalenderansicht aktualisiert.
- Hinweis auf Schnellstart-Anleitung für Umgebungsvariablen in der README ergänzt.
CALENDAR_NAMEin die Beispiel-Compose-Datei aufgenommen.- Beispielausgabe für den Cleanup-Befehl in der Dokumentation ergänzt.
Changelog
Commit Beschreibung cb1b420fix(ci): Release-Workflow auf manuellen Trigger umgestellt, SCM-Release deaktiviert 3ede893fix: Überflüssige Leerzeilen am Ende von startup.go entfernt 0311c83Startup-Connectivity-Check: Fixen 15s-Delay durch aktive Erreichbarkeitsprüfung von API und SOGo ersetzt 93371e3feat: Kalenderfarbe (calendar-color) automatisch setzen ea598a9Umgebungsvariable EVENT_YEARS für konfigurierbaren Event-Horizont hinzugefügt c151433docs: Hinweis zu fehlender Jahrestag-Unterstützung in SOGo-Weboberfläche + Kalenderansicht aktualisiert 05faa43feat: MAILBOX_EXCLUDE hinzugefügt – Mailboxen per Env von der Synchronisation ausschließen 1e51010Log-Format auf [INFO]/[WARN]/[ERROR]/[DEBUG]-Tags umgestellt, Logging erweitert 58bb3b0feat: Konfigurierbarer Log-Level über LOG_LEVEL-Umgebungsvariable (debug/info/warn/error) hinzugefügt e74d5f7feat: Jahrestage (ANNIVERSARY) und Emoji-Präfixe für Kalendereinträge fc673b0Graceful Shutdown mit Signal-Handling hinzugefügt b36ae57feat: Sync-Intervall über SYNC_INTERVAL konfigurierbar (Standard: 15m) 67c3f10feat: Dateibasierten Docker-Healthcheck hinzugefügt efcbd04docs: Hinweis auf Schnellstart für Umgebungsvariablen in README ergänzt b9c81bddocs: CALENDAR_NAME in Beispiel Compose ergänzt 882fb64docs: Beispielausgabe für Cleanup-Befehl ergänzt Downloads
- Jahrestage (Anniversary) & Emoji-Präfixe – Der Daemon unterstützt jetzt neben Geburtstagen auch Jahrestage (
-
v0.3.2
Stablereleased this
2026-03-28 23:37:46 +00:00 | 36 commits to master since this releaseRelease Notes – v0.3.2
Datum: 29. März 2026
Überblick
Dieses Release behebt einen CI/CD-Konfigurationsfehler in der GoReleaser-Konfiguration, der dazu führte, dass der YAML-Parser beim Unmarshalling fehlschlug.
Fehlerbehebungen
CI/CD: YAML-Unmarshal-Fehler in
.goreleaser.yamlbehoben- Commit:
cb81926 - Autor: Patrick Asmus (scriptos)
- Betroffene Datei:
.goreleaser.yaml
Der Block
gitea_urlswar fälschlicherweise unterhalb vonrelease.giteaeingerückt, wodurch er als verschachteltes Feld interpretiert wurde. Dies führte zu einem YAML-Unmarshal-Fehler beim Ausführen von GoReleaser.Änderung:
gitea_urlswurde auf die oberste Ebene (Top-Level) der YAML-Konfiguration verschoben, sodass GoReleaser die Konfiguration korrekt parsen kann.Downloads
- Commit:
-
v0.3.1
Stablereleased this
2026-03-28 23:09:38 +00:00 | 38 commits to master since this releaseRelease Notes – v0.3.1
Datum: 29. März 2026
Neue Funktionen
- Cleanup-Subcommand hinzugefügt – Neuer Befehl zum Entfernen doppelter Kalender. Ermöglicht das Bereinigen von Duplikaten, die durch frühere Programmversionen entstanden sein können. (
b346d58)
Fehlerbehebungen
- GoReleaser: Gitea-URLs explizit konfiguriert – Ein Fehler bei der automatischen Erkennung der Release-URL wurde behoben, indem
gitea_urlsin der GoReleaser-Konfiguration explizit gesetzt werden. (a321bb6)
Dokumentation
- Dokumentation erweitert und in einzelne Dokumente aufgeteilt – Die bisherige Dokumentation wurde umstrukturiert und in separate Dateien unterteilt: Schnellstart, Funktionsweise, Troubleshooting und Update-Anleitung. (
a2ca58e, PR #6) - Bildverweis für API-Key-Erstellung ergänzt – Screenshot-Anleitung zur Erstellung eines mailcow API-Keys hinzugefügt. (
0a5f78f, PR #7) - Hinweis zur Repository-Spiegelung und Issue-Tracker – README um Hinweise zur Spiegelung des Repositories und den korrekten Issue-Tracker ergänzt. (
60ecd23, PR #8) - Doku-Hinweis auf v0.2.0 präzisiert – Klarstellung in der Dokumentation bezüglich der Mindestversion. (
b346d58)
Downloads
- Cleanup-Subcommand hinzugefügt – Neuer Befehl zum Entfernen doppelter Kalender. Ermöglicht das Bereinigen von Duplikaten, die durch frühere Programmversionen entstanden sein können. (
-
v0.3.0
Stablereleased this
2026-03-28 21:30:21 +00:00 | 49 commits to master since this releaseRelease Notes – v0.3.0
Datum: 28. März 2026
Neue Funktionen
Optionale Kalender-Benachrichtigungen für Geburtstage (
772eaba)Geburtstags-Events können ab sofort mit einem VALARM (iCal-Alarm) versehen werden, sodass Kalender-Clients wie SOGo, iOS, Android oder Thunderbird zur konfigurierten Uhrzeit eine Erinnerung anzeigen.
Neue Umgebungsvariablen:
Variable Pflicht Standard Beschreibung NOTIFICATION_ENABLEDNein falseAktiviert VALARM-Benachrichtigungen für Geburtstags-Events ( true/false)NOTIFICATION_TIMENein 08:00Uhrzeit der Benachrichtigung im Format HH:MM(nur wirksam wennNOTIFICATION_ENABLED=true)Details:
- Events bleiben weiterhin Ganztags-Events – es wird lediglich ein VALARM-Trigger hinzugefügt.
- Die Uhrzeit wird intern in eine iCal-Duration umgerechnet (z. B.
08:00→PT8H,09:30→PT9H30M), relativ zum Start des Ganztags-Events (Mitternacht). - Bestehende Events ohne VALARM werden beim nächsten Synchronisationszyklus automatisch erkannt und neu erstellt – keine manuelle Migration nötig.
- Falls die Benachrichtigungen wieder deaktiviert werden (
NOTIFICATION_ENABLED=false), werden Events mit VALARM ebenfalls automatisch durch Events ohne VALARM ersetzt.
Fehlerbehebungen
CI:
GITEA_SERVER_URLals Secret ausgelagert (0767ad1)- Die
GITEA_SERVER_URLwurde in der Release-Workflow-Datei (.gitea/workflows/release.yaml) aus der hartcodierten Konfiguration entfernt und stattdessen als Secret hinterlegt. Dies verbessert die Wartbarkeit und Sicherheit der CI-Pipeline.
Downloads
-
v0.2.3
Stablereleased this
2026-03-28 20:19:55 +00:00 | 52 commits to master since this releaseRelease Notes – v0.2.3
Datum: 28.03.2026
Verbesserungen
Geburtstagstermine als Ganztags-Events
Geburtstagstermine werden ab sofort als korrekte Ganztags-Events (
VALUE=DATE) im iCal-Format erstellt. Bisher wurden die Termine ohne diesen Parameter angelegt, was in manchen Kalender-Clients zu einer fehlerhaften Darstellung führte.DTSTARTundDTENDerhalten nun den TypVALUE=DATE- Automatische Migration: Bestehende Termine werden beim nächsten Lauf erkannt und anhand des neuen Formats validiert. Termine ohne
VALUE=DATEwerden automatisch neu erstellt. - Betroffene Datei:
cmd/mcbdd/caldav.go
Bugfixes
CI: setup-go Downgrade (v6 → v5)
Die GitHub-/Gitea-Action
setup-gowurde von v6 auf v5 zurückgestuft, da v6 eine Inkompatibilität mit Node 24 imact_runneraufweist.Downloads
-
v0.2.2
Stablereleased this
2026-03-28 16:43:04 +00:00 | 55 commits to master since this releaseRelease Notes – v0.2.2
Datum: 28. März 2026
Überblick
Bugfix-Release zur Behebung der GoReleaser-Konfiguration für Gitea-Releases.
Vollständiger Changelog
6757362– fix(ci): Gitea-Release-URL und Token-Typ für GoReleaser ergänzt
Downloads
-
v0.2.1
Stablereleased this
2026-03-28 16:15:40 +00:00 | 57 commits to master since this releaseRelease Notes – v0.2.1
Datum: 28. März 2026
Vergleich: v0.2.0 → v0.2.1
Fehlerbehebungen (Bugfixes)
CI/CD: Docker-Login und Build auf CLI umgestellt
- Der Docker-Login-Schritt in den Gitea-Workflows (
docker-test.yaml,release.yaml) verwendet nun direktdocker loginüber die CLI statt derdocker/login-action@v3GitHub-Action. - Der Docker-Build- und Push-Schritt in der Test-Pipeline (
docker-test.yaml) wurde vondocker/build-push-action@v6auf nativedocker build/docker push-Befehle umgestellt. - Gitea-spezifische Actions-Expressions (z. B.
${{ gitea.actor }},${{ secrets.REGISTRY_TOKEN }}inline) wurden durch Umgebungsvariablen (${GITHUB_ACTOR},${REGISTRY_TOKEN}) ersetzt, um die Kompatibilität mit dem Gitea Actions Runner zu verbessern.
Docker-Tags: Nur noch vollständiges Semver-Tag
- Die gekürzten Docker-Image-Tags (nur Major
v0, Major.Minorv0.2) wurden aus der GoReleaser-Konfiguration (.goreleaser.yaml) entfernt. - Es werden ab sofort nur noch das vollständige Semver-Tag (
v0.2.1) undlatestveröffentlicht, um Verwirrung durch überlappende Tags zu vermeiden.
Betroffene Dateien
Datei Änderung .gitea/workflows/docker-test.yamlDocker-Login und Build auf CLI umgestellt, Secrets als Env-Variablen .gitea/workflows/release.yamlDocker-Login auf CLI umgestellt .goreleaser.yamlGekürzte Major/Minor Docker-Tags entfernt
Upgrade-Hinweise
Dieses Release enthält ausschließlich CI/CD- und Build-Konfigurationsänderungen. Es sind keine funktionalen Änderungen am Daemon selbst enthalten. Ein Upgrade ist ohne Anpassungen an der eigenen Konfiguration möglich.
Downloads
- Der Docker-Login-Schritt in den Gitea-Workflows (
-
v0.2.0
Stablereleased this
2026-03-28 15:41:57 +00:00 | 60 commits to master since this releaseRelease Notes – v0.2.0
Datum: 28. März 2026
Neue Funktionen
- Hairpin-NAT-Lösung, CA-Zertifikate und konfigurierbarer Kalendername – Unterstützung für Hairpin-NAT-Szenarien, eingebettete CA-Zertifikate sowie die Möglichkeit, den CalDAV-Kalendernamen per Konfiguration festzulegen (
c000664) MAILCOW_RESOLVE_HOSTfür internes DNS-Routing – Neue Umgebungsvariable, um bei internem Netzwerk-Routing (z. B. Docker-Stack) eine alternative Auflösung des Mailcow-Hosts zu ermöglichen (838e702)- Startup-Delay von 15 Sekunden – Beim Stack-Neustart wird gewartet, bis nginx bereit ist, bevor der Daemon seine Arbeit aufnimmt (
be77b36)
Fehlerbehebungen
- CA-Zertifikate zum Container-Image hinzugefügt – Behebt TLS-Verbindungsfehler im Container (
3df0ab8) - Fehlenden Newline am Dateiende in README.md ergänzt – Pre-commit-Fix (
6db5113) - LICENSE.md aus trailing-whitespace Hook ausgeschlossen – Verhindert unnötige Formatierungsänderungen (
28285b2)
CI/CD
- Workflows auf Gitea Actions umgestellt – Migration von GitHub Actions zu Gitea Actions (
aad37e3) - Workflows von
.githubnach.giteaverschoben – Verzeichnisstruktur an Gitea angepasst (2900e52) - Docker-Test-Workflow hinzugefügt – Automatischer Build-Test bei Pull Requests und manuellem Auslösen (
fa28298) - Workflow-Anpassungen – Weitere Optimierungen an den CI-Workflows (
f0ba2ad) - Cleanup alter SHA-getaggter Images – Automatisches Aufräumen veralteter Container-Images (
1c70eb6)
Dokumentation
- Dokumentation auf Deutsch übersetzt – Gesamte Projektdokumentation ins Deutsche überführt (
adec0db) - Neue Umgebungsvariablen in
.env.exampleergänzt – Beispielkonfiguration aktualisiert (e4e2f83) - Bild zur README hinzugefügt (
f240471) - Hinweis zur KI-gestützten Entwicklung in README ergänzt (
bde2064) - Dokumentation aktualisiert (
2a6d9b2) - LICENSE.md formatiert (
f9bc388)
Wartung & Sonstiges
- Containerfile in Dockerfile umbenannt – Einheitliche Benennung (
f70d089) - Taskfile.yml entfernt – Nicht benötigter Task-Runner bereinigt (
27f17fa) - Lizenz und Repository-Referenzen auf eigenen Fork aktualisiert (
ceb5002) .gitignore: KI-Arbeitsverzeichnis vom Tracking ausgeschlossen (4c496ee)
Gesamtanzahl Commits: 21
Downloads
- Hairpin-NAT-Lösung, CA-Zertifikate und konfigurierbarer Kalendername – Unterstützung für Hairpin-NAT-Szenarien, eingebettete CA-Zertifikate sowie die Möglichkeit, den CalDAV-Kalendernamen per Konfiguration festzulegen (