4.1 KiB
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.
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_HOSTfü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-dockerizeddie eigenedocker-compose.ymlbei Updates überschreibt, müssen eigene Anpassungen immer in derdocker-compose.override.ymlerfolgen. 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/.
