Files

68 lines
2.3 KiB
YAML

services:
birthday-sync:
# Build locally
#build: .
# Or use published image
image: ghcr.io/anatosun/bdaysync:latest
container_name: birthday-sync
restart: unless-stopped
environment:
# CardDAV Configuration
CARDAV_SERVER_URL: "${CARDAV_SERVER_URL}"
CARDAV_USERNAME: "${CARDAV_USERNAME}"
CARDAV_PASSWORD: "${CARDAV_PASSWORD}"
# CalDAV Configuration
CALDAV_SERVER_URL: "${CALDAV_SERVER_URL}"
CALDAV_USERNAME: "${CALDAV_USERNAME}"
CALDAV_PASSWORD: "${CALDAV_PASSWORD}"
# Birthday Event Configuration
BIRTHDAY_EVENT_TITLE: "${BIRTHDAY_EVENT_TITLE:-🎂 {name}'s Birthday}"
BIRTHDAY_EVENT_DESCRIPTION: "${BIRTHDAY_EVENT_DESCRIPTION:-Birthday of {name}}"
BIRTHDAY_REMINDER_DAYS: "${BIRTHDAY_REMINDER_DAYS:-1,7}"
BIRTHDAY_REMINDER_MESSAGE: "${BIRTHDAY_REMINDER_MESSAGE:-Reminder: {name}'s birthday is in {days} days!}"
BIRTHDAY_EVENT_CATEGORY: "${BIRTHDAY_EVENT_CATEGORY:-Birthday}"
BIRTHDAY_UPDATE_EXISTING: "${BIRTHDAY_UPDATE_EXISTING:-true}"
# Scheduling Configuration
RUN_MODE: "${RUN_MODE:-daemon}" # Options: daemon, once
SYNC_SCHEDULE: "${SYNC_SCHEDULE:-0 6 * * *}" # Daily at 6 AM
DIAGNOSTIC_SCHEDULE: "${DIAGNOSTIC_SCHEDULE:-0 7 * * 0}" # Weekly on Sunday at 7 AM
SYNC_INTERVAL_HOURS: "${SYNC_INTERVAL_HOURS:-0}" # Alternative: sync every N hours (0 = use cron)
# Service Configuration
DEBUG: "${DEBUG:-false}"
TZ: "${TZ:-UTC}"
LOG_LEVEL: "${LOG_LEVEL:-INFO}"
LOG_TO_FILE: "${LOG_TO_FILE:-false}"
STARTUP_DELAY: "${STARTUP_DELAY:-30}" # Seconds to wait before first sync
# Health Check Configuration
HEALTH_CHECK_CONNECTIVITY: "${HEALTH_CHECK_CONNECTIVITY:-false}"
volumes:
# Optional: Persist logs if LOG_TO_FILE=true
- /srv/docker/bdaysync/birthday-logs:/var/log/birthday-sync
# Resource limits
deploy:
resources:
limits:
memory: 256M
cpus: "0.5"
reservations:
memory: 64M
cpus: "0.1"
# Health check (using the Python script itself)
healthcheck:
test: ["CMD", "python", "bdaysync/main.py", "--health-check"]
interval: 30m
timeout: 30s
retries: 3
start_period: 1m
# Logging configuration
#logging: