daily-briefing/docker-compose.yml
Sam f6a42c2dd2 feat: add Admin Panel with JWT auth, DB settings, and integration management
Complete admin backend with login, where all integrations (weather, news,
Home Assistant, Vikunja, Unraid, MQTT) can be configured via web UI instead
of ENV variables. Two-layer config: ENV seeds DB on first start, then DB
is source of truth. Auto-migration system on startup.

Backend: db.py shared pool, auth.py JWT, settings_service CRUD, seed_service,
admin router (protected), test_connections per integration, config.py rewrite.

Frontend: react-router v6, login page, admin layout with sidebar, 8 settings
pages (General, Weather, News, HA, Vikunja, Unraid, MQTT, ChangePassword),
shared IntegrationForm + TestButton components.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 10:37:30 +01:00

39 lines
1.2 KiB
YAML

services:
daily-briefing:
build: .
container_name: daily-briefing
ports:
- "8080:8080"
environment:
# ── Required: Database (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:-}
# ── 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:-#}
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always