Some checks failed
Lint & Test / test (push) Failing after 29s
Auth is now optional: when `auth.api_keys` is empty, all endpoints are open (no login screen, no Bearer tokens). Health endpoint reports `auth_required` so the frontend knows which mode to use. Backup/restore fixes: - Auto-backup uses atomic writes (was `write_text`, risked corruption) - Startup backup skipped if recent backup exists (<5 min cooldown), preventing rapid restarts from rotating out good backups - Restore rejects all-empty backups to prevent accidental data wipes - Store saves frozen after restore to prevent stale in-memory data from overwriting freshly-restored files before restart completes - Missing stores during restore logged as warnings - STORE_MAP completeness verified at startup against StorageConfig
39 lines
1.0 KiB
YAML
39 lines
1.0 KiB
YAML
server:
|
|
host: "0.0.0.0"
|
|
port: 8080
|
|
log_level: "INFO"
|
|
# CORS: restrict to localhost by default.
|
|
# For LAN access, add your machine's IP, e.g. "http://192.168.1.100:8080"
|
|
cors_origins:
|
|
- "http://localhost:8080"
|
|
|
|
auth:
|
|
# API keys — when empty, authentication is disabled (open access).
|
|
# To enable auth, add one or more label: "api-key" entries.
|
|
# Generate secure keys: openssl rand -hex 32
|
|
api_keys:
|
|
dev: "development-key-change-in-production"
|
|
|
|
storage:
|
|
devices_file: "data/devices.json"
|
|
templates_file: "data/capture_templates.json"
|
|
postprocessing_templates_file: "data/postprocessing_templates.json"
|
|
picture_sources_file: "data/picture_sources.json"
|
|
output_targets_file: "data/output_targets.json"
|
|
pattern_templates_file: "data/pattern_templates.json"
|
|
|
|
mqtt:
|
|
enabled: false
|
|
broker_host: "localhost"
|
|
broker_port: 1883
|
|
username: ""
|
|
password: ""
|
|
client_id: "ledgrab"
|
|
base_topic: "ledgrab"
|
|
|
|
logging:
|
|
format: "json" # json or text
|
|
file: "logs/wled_controller.log"
|
|
max_size_mb: 100
|
|
backup_count: 5
|