feat: Setup Wizard for first-run configuration

Container starts with only DB credentials. On first visit, a step-by-step
wizard guides through admin password, weather, HA, Vikunja, Unraid, MQTT,
n8n and news configuration. Backward-compat: ADMIN_PASSWORD env skips wizard.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sam 2026-03-02 16:06:10 +01:00
parent e25d055ba2
commit 6651bfaf60
9 changed files with 1042 additions and 34 deletions

View file

@ -3,37 +3,21 @@ services:
build: .
container_name: daily-briefing
ports:
- "8080:8080"
- "9080:8080"
environment:
# ── Required: Database (PostgreSQL) ──
# ── Required: Database (external PostgreSQL) ──
- DB_HOST=10.10.10.10
- DB_PORT=5433
- DB_NAME=openclaw
- DB_USER=sam
- DB_PASSWORD=sam
# ── Required: Admin Panel ──
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}
- JWT_SECRET=${JWT_SECRET:-}
# ── Optional: skip setup wizard by providing ADMIN_PASSWORD ──
# - ADMIN_PASSWORD=your-password
# - JWT_SECRET=optional-fixed-secret
# ── Seed Values (used on first start only, then DB takes over) ──
# Weather
- WEATHER_LOCATION=Leverkusen
- WEATHER_LOCATION_SECONDARY=Rab,Croatia
# Home Assistant
- HA_URL=https://homeassistant.daddelolymp.de
- HA_TOKEN=${HA_TOKEN}
# Vikunja Tasks
- VIKUNJA_URL=http://10.10.10.10:3456/api/v1
- VIKUNJA_TOKEN=${VIKUNJA_TOKEN}
# Unraid Servers (JSON array)
- UNRAID_SERVERS=${UNRAID_SERVERS:-[]}
# MQTT (optional)
- MQTT_HOST=${MQTT_HOST:-}
- MQTT_PORT=${MQTT_PORT:-1883}
- MQTT_USERNAME=${MQTT_USERNAME:-}
- MQTT_PASSWORD=${MQTT_PASSWORD:-}
- MQTT_TOPICS=${MQTT_TOPICS:-#}
# ── All integrations are configured via the web setup wizard ──
# Visit http://host:9080 on first start to complete setup.
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always