services: app: build: . env_file: .env environment: HOST: 0.0.0.0 PORT: 8080 RELOAD: 0 SHOW: 0 DATABASE_PATH: /data/lookingfor.db NICEGUI_STORAGE_PATH: /data/.nicegui REDIS_URL: redis://redis:6379/0 BACKUP_DIR: /data/backups volumes: - app-data:/data depends_on: redis: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=3)"] interval: 30s timeout: 5s retries: 3 start_period: 30s redis: image: redis:7-alpine command: ["redis-server", "--appendonly", "yes"] volumes: - redis-data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 5 caddy: image: caddy:2-alpine environment: DOMAIN: ${DOMAIN:?set DOMAIN in .env} ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy-data:/data - caddy-config:/config depends_on: - app restart: unless-stopped volumes: app-data: redis-data: caddy-data: caddy-config: