chore(rebrand): rename WatchStack -> Quivio
CI / test (push) Has been cancelled

Quivio (Kofferwort aus Quire + Video) ersetzt den Arbeitstitel WatchStack.
Es ist origineller, frei auf PyPI/npm, und passt perfekt zur Doppelnatur
der App: Buecher (Quire) + Serien (Video).

Geaendert:
- Python-Paket app/ -> quivio/ (+ alle Imports angepasst)
- DB-File watchstack.db -> quivio.db
- Docker-Image: quivio:0.5.1-beta, Container-Name quivio
- Compose-Services: quivio, quivio-local
- ENV-Vars: QUIVIO_VERSION, QUIVIO_PORT, Volume quivio-data
- Frontend-Logo "W" -> "Q", Titel "Quivio", Footer
- Favicon "Q" (Georgia serif fuer klassischen Look)
- Logger-Name: watchstack -> quivio
- README, NOTICE, dist/README, data/README: Quivio
- CI-Workflow: testet quivio/ Pfade
- build-and-push.sh: lokaler Tag "quivio:VERSION"
- service-Feld in /api/health: quivio
- OpenAPI title: Quivio

Bugfix (gefunden beim Renaming):
- seed.py hatte versteckten "from app.database import DB_PATH" — gefixt

Verifiziert end-to-end:
- Python-Import OK
- Backend: service=quivio, version=0.5.1-beta, 8 unique items
- Docker-Build OK, Push in Gitea-Registry OK (neuer sha256-Digest)
- Container: Quivio 0.5.1-beta ready (logger), HTML ohne WatchStack-Rest
- OpenAPI title=Quivio
- 8 unique items nach cold start (Race-Fix haelt)
This commit is contained in:
ki
2026-07-22 00:42:09 +02:00
parent fe291ba8ec
commit 9a4909f083
25 changed files with 102 additions and 114 deletions
+16 -16
View File
@@ -1,8 +1,8 @@
# Komponiert WatchStack.
# Komponiert Quivio.
#
# Standard (empfohlen, Beta):
# Image wird aus der Gitea Container Registry gezogen — kein lokaler
# Build noetig. Version liegt in app/__init__.py (single source of truth).
# Build noetig. Version liegt in quivio/__init__.py (single source of truth).
#
# docker compose up -d
# -> http://localhost:8000
@@ -12,24 +12,24 @@
# => baut aus dem Dockerfile statt aus der Registry
#
# Andere Version ziehen:
# WATCHSTACK_VERSION=0.6.0 docker compose pull && docker compose up -d
# QUIVIO_VERSION=0.6.0 docker compose pull && docker compose up -d
#
# Optional: Reverse-Proxy (caddy/traefik) davorschalten.
# Wird vom .env oder der Umgebung ueberschrieben, wenn vorhanden.
# Hinweis: Gitea-Pfad ist LOWERCASE (Vibecode/watchlist -> vibecode/watchlist),
# weil Docker-Repository-Namen kleingeschrieben sein muessen.
x-watchstack-version: &watchstack_version ${WATCHSTACK_VERSION:-0.5.1-beta}
x-gitea-image: &gitea_image git.pkop.de/vibecode/watchlist:${WATCHSTACK_VERSION:-0.5.1-beta}
x-quivio-version: &quivio_version ${QUIVIO_VERSION:-0.5.1-beta}
x-gitea-image: &gitea_image git.pkop.de/vibecode/watchlist:${QUIVIO_VERSION:-0.5.1-beta}
services:
watchstack:
quivio:
# Standard: Image aus der Gitea Container Registry.
image: *gitea_image
container_name: watchstack
container_name: quivio
restart: unless-stopped
ports:
- "${WATCHSTACK_PORT:-8000}:8000"
- "${QUIVIO_PORT:-8000}:8000"
environment:
WATCHSTACK_HOST: "0.0.0.0"
WATCHSTACK_PORT: "8000"
@@ -37,7 +37,7 @@ services:
WATCHSTACK_DATA_DIR: "/data"
# TZ: "Europe/Berlin"
volumes:
- watchstack-data:/data
- quivio-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
@@ -47,23 +47,23 @@ services:
# Lokaler Build (Development) — ueber opt-in Profile aktivierbar:
# docker compose --profile local up -d --build
watchstack-local:
quivio-local:
profiles: ["local"]
build:
context: .
dockerfile: Dockerfile
image: watchstack:local
container_name: watchstack-local
image: quivio:local
container_name: quivio-local
restart: unless-stopped
ports:
- "${WATCHSTACK_PORT:-8001}:8000" # anderer Port, damit Registry-Variante parallel laufen kann
- "${QUIVIO_PORT:-8001}:8000" # anderer Port, damit Registry-Variante parallel laufen kann
environment:
WATCHSTACK_HOST: "0.0.0.0"
WATCHSTACK_PORT: "8000"
WATCHSTACK_WORKERS: "2"
WATCHSTACK_DATA_DIR: "/data"
volumes:
- watchstack-data:/data
- quivio-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
@@ -72,5 +72,5 @@ services:
start_period: 10s
volumes:
watchstack-data:
name: watchstack-data
quivio-data:
name: quivio-data