# ============================================================================= # Felhom Controller Configuration # ============================================================================= # Location: /opt/docker/felhom-controller/controller.yaml # # This file contains ONLY infrastructure and customer identity config. # Application-specific configuration (passwords, paths, etc.) is handled # interactively during first deployment via the dashboard UI and stored # per-app in /opt/docker/stacks//app.yaml # # Environment variable overrides: FELHOM_
_ # (e.g., FELHOM_CUSTOMER_DOMAIN=example.hu) # ============================================================================= # --- Customer identity --- customer: id: "demo-felhom" # Unique customer identifier name: "Demo Ügyfél" # Display name (shown on dashboard) domain: "demo-felhom.eu" # Base domain for all services email: "" # Customer notification email (optional) telegram_chat_id: "" # Telegram notifications (optional, future) # --- Infrastructure secrets --- infrastructure: cf_tunnel_token: "" # Cloudflare Tunnel token cf_api_token: "" # Cloudflare API token (DNS-01 challenge) # --- Paths (system-level only) --- paths: stacks_dir: "/opt/docker/stacks" # Where compose files live data_dir: "/opt/docker/felhom-controller/data" system_data_path: "/mnt/sys_drive" # NVMe/system drive mount — fallback for apps without HDD hdd_path: "" # DEPRECATED: use Settings > Adattárolók instead. Fallback only for auto-discovery. # --- System --- system: reserved_memory_mb: 384 # Memory reserved for OS (excluded from app budget) # --- Web UI --- web: listen: ":8080" # Bcrypt hash. Empty = first-visit setup prompt. password_hash: "" session_secret: "" # Auto-generated on first start # --- Git synchronization --- git: repo_url: "https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git" branch: "main" sync_interval: "15m" username: "" token: "" # --- Stack management --- stacks: protected: - "traefik" - "cloudflared" - "felhom-controller" - "filebrowser" update_window: "03:00-05:00" compose_command: "" # --- Backup --- # Per-drive backup paths are computed automatically: # /backups/primary/restic/ — restic repo per drive # /backups/primary//db-dumps/ — DB dumps per app # /backups/secondary/ — cross-drive rsync + restic backup: enabled: true restic_password_file: "/opt/docker/felhom-controller/data/restic-password" db_dump_schedule: "02:30" restic_schedule: "03:00" retention: keep_daily: 7 keep_weekly: 4 keep_monthly: 6 prune_schedule: "weekly" # --- Monitoring --- monitoring: enabled: true healthchecks_base: "https://status.felhom.eu" ping_uuids: heartbeat: "" # Every 5 min — controller process alive system_health: "CHANGEME-uuid-for-system-health" # Every 5 min — comprehensive system check db_dump: "CHANGEME-uuid-for-db-dump" # Daily — after database dumps backup: "CHANGEME-uuid-for-backup" # Daily — after restic snapshot backup_integrity: "" # Weekly (Sunday) — restic check system_health_interval: "5m" health_check_schedule: "06:00" thresholds: disk_warn_percent: 80 disk_crit_percent: 90 backup_max_age_hours: 36 cpu_warn_percent: 90 memory_warn_percent: 85 temperature_warn_celsius: 75 # --- Central hub (operator dashboard) --- hub: enabled: false # Enable central reporting url: "https://hub.felhom.eu" # Hub API endpoint api_key: "" # Shared secret for authentication push_interval: "15m" # How often to push reports # --- Self-update --- self_update: enabled: true check_interval: "6h" image: "gitea.dooplex.hu/admin/felhom-controller" auto_update: false health_timeout_seconds: 60 # --- Notifications --- notifications: customer_events: - "disk_warning" - "backup_failed" - "update_available" - "security_update" operator_events: - "disk_critical" - "backup_failed" - "self_update_failed" - "container_unhealthy" # --- Logging --- logging: level: "info" file: "" max_size_mb: 10 max_files: 3 # --- Assets --- assets: # App logos, screenshots, and descriptions are baked into the container # image at build time (from the felhom.eu website assets). # Served locally at /static/assets/ — no external dependency. # The source URL is only used during image build, not at runtime. source_url: "https://felhom.eu"