- Bump version to 0.5.0-beta - Add Apache-2.0 LICENSE (official text) + NOTICE - Add Docker support: multi-stage Dockerfile + docker-compose * non-root user, tini PID 1, gunicorn + uvicorn workers * healthcheck, OCI labels, persistent /data volume - Add GitHub Actions CI (lint/import-check + Docker smoke-test) - Backend polish: * modern lifespan handler (replaces deprecated on_event) * explicit sort validation (400 instead of 500) * title min_length=1 schema validation * configurable data dir + http timeout via env * avg_rating helper extracted (DRY) - Frontend polish: * beta badge in title, footer with live version * loading spinner on initial fetch * updated README, badges, config table, roadmap
30 lines
831 B
YAML
30 lines
831 B
YAML
# Komponiert WatchStack mit persistentem Daten-Volume.
|
|
# Optional: Reverse-Proxy (caddy/traefik) davorschalten.
|
|
|
|
services:
|
|
watchstack:
|
|
build: .
|
|
image: watchstack:beta
|
|
container_name: watchstack
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${WATCHSTACK_PORT:-8000}:8000"
|
|
environment:
|
|
WATCHSTACK_HOST: "0.0.0.0"
|
|
WATCHSTACK_PORT: "8000"
|
|
WATCHSTACK_WORKERS: "2"
|
|
WATCHSTACK_DATA_DIR: "/data"
|
|
# TZ: "Europe/Berlin"
|
|
volumes:
|
|
- watchstack-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request,sys,os; r=urllib.request.urlopen('http://127.0.0.1:8000/api/health',timeout=3); sys.exit(0 if r.status==200 else 1)"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
volumes:
|
|
watchstack-data:
|
|
name: watchstack-data
|