Patrick Asmus 14152524f3
All checks were successful
Run Tests / test (push) Successful in 4m33s
Build & Publish / build (release) Successful in 44s
Merge pull request 'fix: SOGo VLIST-Kontaktlisten aus CardDAV-Antworten filtern' (#20) from release-0.4.2 into master
Reviewed-on: #20
2026-03-30 09:05:26 +00:00
2025-11-11 13:41:51 +01:00
2025-11-11 13:41:51 +01:00
2025-11-11 13:41:51 +01:00
2026-03-28 13:19:28 +01:00
2026-03-30 00:51:42 +02:00

Mailcow Birthday Daemon 🎂

Fork-Hinweis: Dieses Projekt ist ein Fork von Marco98/mailcow-birthday-daemon und wird hier eigenständig weiterentwickelt.

Hinweis zur Entwicklung: Dieses Projekt wird mit Unterstützung von KI-gestützten Entwicklungswerkzeugen gepflegt. Go ist nicht meine primäre Sprache umso wichtiger sind sauberer Code, Tests und transparente Entwicklung.

Ein einfacher Daemon, der automatisch einen Geburtstagskalender für jede Mailcow-Mailbox erzeugt und synchronisiert. Es ist kein Benutzereingriff erforderlich alles läuft vollautomatisch.

Kalenderansicht

Kurzübersicht

  • Liest Geburtstage und Jahrestage aus allen CardDAV-Adressbüchern jeder Mailbox
  • Erstellt und synchronisiert automatisch einen Geburtstagskalender pro Benutzer
  • Konfigurierbarer Kalendername (CALENDAR_NAME) und Kalenderfarbe (CALENDAR_COLOR)
  • Optionale Benachrichtigungen (VALARM) zur konfigurierbarer Uhrzeit
  • Konfigurierbares Sync-Intervall (SYNC_INTERVAL) und Event-Horizont (EVENT_YEARS)
  • Mailboxen einzeln ausschließbar via MAILBOX_EXCLUDE
  • Automatische App-Passwort-Verwaltung (persistent im State-File)
  • Integrierter Cleanup-Befehl bei doppelten Kalendern nach Umbenennung
  • Startup-Connectivity-Check, Graceful Shutdown und Docker-Healthcheck
  • Hairpin-NAT-Lösung via MAILCOW_RESOLVE_HOST für Docker-Netze
  • Strukturiertes Logging mit konfigurierbarem Log-Level
  • Läuft als Docker-Container direkt im Mailcow-Stack

Schnellstart

Den folgenden Abschnitt in eine docker-compose.override.yml im Mailcow-Verzeichnis (z. B. /opt/mailcow-dockerized) einfügen:

Wichtig: Da mailcow-dockerized die eigene docker-compose.yml bei Updates überschreibt, müssen eigene Anpassungen immer in der docker-compose.override.yml erfolgen. Docker Compose lädt diese Datei automatisch und mergt sie mit der Hauptkonfiguration eigene Änderungen gehen dadurch bei Mailcow-Updates nicht verloren.

services:
    birthdaydaemon:
        image: git.techniverse.net/scriptos/mailcow-birthday-daemon:latest
        restart: always
        depends_on:
            - nginx-mailcow
        networks:
            - mailcow-network
        environment:
            - MAILCOW_BASE=https://mail.example.com
            - MAILCOW_APIKEY=DEIN-APIKEY-HIER
        volumes:
            - birthdaydaemon:/data

volumes:
    birthdaydaemon:

Hinweis: Das obige Beispiel zeigt nur die minimal nötigen Umgebungsvariablen. Eine vollständige Übersicht aller verfügbaren Umgebungsvariablen findest du im Schnellstart.

Anschließend starten:

cd /opt/mailcow-dockerized
docker compose up -d

Alle verfügbaren Image-Tags sind in der Container Registry einsehbar.

Repository-Spiegel

Rolle URL
Master https://git.techniverse.net/scriptos/mailcow-birthday-daemon.git
Spiegel https://github.com/pscriptos/mailcow-birthday-daemon.git

Hinweis: Die Entwicklung findet im Master-Repository statt. Der GitHub-Spiegel wird automatisch synchronisiert. Issues und Feature-Requests können sowohl auf Gitea als auch auf GitHub eingereicht werden.

Dokumentation

Die vollständige Dokumentation befindet sich im Ordner docs/.

License License | Matrix Matrix | Mastodon Mastodon

Description
Sehr einfacher Daemon, der für jedes Mailcow-Postfach einen Geburtstagskalender erzeugt und synchronisiert.
Readme 498 KiB
v0.4.2 Latest
2026-03-30 09:06:17 +00:00
Languages
Go 99.1%
Dockerfile 0.9%