Files
mailcow-birthday-daemon/README.md

4.1 KiB
Raw Permalink Blame History

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