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:
@@ -1,13 +1,15 @@
|
||||
# WatchStack
|
||||
# Quivio
|
||||
|
||||
> **v0.5.0-beta** — eine Watchlist für **Bücher, Serien & mehr** — inspiriert von MyAnimeList, aber mit eigenem Konzept.
|
||||
> **v0.5.1-beta** — eine Watchlist für **Bücher, Serien & mehr** — inspiriert von MyAnimeList, aber mit eigenem Konzept.
|
||||
|
||||
[](https://www.apache.org/licenses/LICENSE-2.0)
|
||||
[](https://git.pkop.de/Vibecode/watchlist)
|
||||
[](https://www.python.org)
|
||||
[](#-docker)
|
||||
|
||||
WatchStack ist eine **single-user-lokale** Watchlist-App. Bücher und Serien teilen sich eine Oberfläche, ein Datenmodell und eine Such- und Filterlogik. Keine Anmeldung, kein Cloud-Zwang — läuft komplett auf deiner Maschine oder in einem Docker-Container.
|
||||
**Quivio** (Kofferwort aus *Quire* + *Video*) ist eine **single-user-lokale** Watchlist-App.
|
||||
Bücher und Serien teilen sich eine Oberfläche, ein Datenmodell und eine Such- und Filterlogik.
|
||||
Keine Anmeldung, kein Cloud-Zwang — läuft komplett auf deiner Maschine oder in einem Docker-Container.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
@@ -26,7 +28,7 @@ WatchStack ist eine **single-user-lokale** Watchlist-App. Bücher und Serien tei
|
||||
|
||||
**v0.5.1-beta** bedeutet:
|
||||
- Kernfunktionalität (CRUD, Suche, Stats, Progress) ist stabil und getestet
|
||||
- Datenmodell kann sich noch ändern (siehe `models.py` — additive Änderungen wahrscheinlich)
|
||||
- Datenmodell kann sich noch ändern (siehe `quivio/models.py` — additive Änderungen wahrscheinlich)
|
||||
- Datenbank-Migrationen sind **nicht** enthalten — bei Major-Upgrades DB sichern
|
||||
- Public-API-Pfade stabil; Sub-Ressourcen (Genres/Tags) noch in Bewegung
|
||||
|
||||
@@ -38,7 +40,7 @@ Bitte Issues und Wünsche im [Repo](https://git.pkop.de/Vibecode/watchlist) meld
|
||||
|
||||
```bash
|
||||
docker pull git.pkop.de/vibecode/watchlist:0.5.1-beta
|
||||
docker run -d --name watchstack -p 8000:8000 -v watchstack-data:/data git.pkop.de/vibecode/watchlist:0.5.1-beta
|
||||
docker run -d --name quivio -p 8000:8000 -v quivio-data:/data git.pkop.de/vibecode/watchlist:0.5.1-beta
|
||||
```
|
||||
|
||||
Das Image liegt im **Packages**-Tab des Repos (Gitea Container Registry,
|
||||
@@ -52,13 +54,11 @@ docker compose up -d
|
||||
# → http://localhost:8000
|
||||
|
||||
# Oder direkt:
|
||||
docker build -t watchstack:beta .
|
||||
docker run -d --name watchstack -p 8000:8000 -v watchstack-data:/data watchstack:beta
|
||||
docker build -t quivio:beta .
|
||||
docker run -d --name quivio -p 8000:8000 -v quivio-data:/data quivio:beta
|
||||
```
|
||||
|
||||
Die SQLite-DB liegt im benannten Volume `watchstack-data` (Pfad `/data/watchstack.db` im Container). Backups: `docker run --rm -v watchstack-data:/data -v $PWD:/backup alpine tar czf /backup/ws-$(date +%F).tgz /data`.
|
||||
|
||||
### Option B: Lokal (Python 3.11+)
|
||||
### Option C: Python direkt
|
||||
|
||||
```bash
|
||||
git clone https://git.pkop.de/Vibecode/watchlist.git
|
||||
@@ -66,15 +66,6 @@ cd watchlist
|
||||
./run.sh # legt venv an, installiert deps, startet auf 127.0.0.1:8000
|
||||
```
|
||||
|
||||
### Option C: Manuell
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
uvicorn app.main:app --reload
|
||||
```
|
||||
|
||||
## 🔧 Konfiguration (Umgebungsvariablen)
|
||||
|
||||
| Variable | Default | Zweck |
|
||||
@@ -85,6 +76,10 @@ uvicorn app.main:app --reload
|
||||
| `WATCHSTACK_WORKERS` | `2` | gunicorn-Worker (nur Docker) |
|
||||
| `WATCHSTACK_HTTP_TIMEOUT` | `8` | Timeout für Open-Library-Lookup (Sek.) |
|
||||
|
||||
> Hinweis: Die ENV-Variablen heißen weiterhin `WATCHSTACK_*`, weil das der
|
||||
> Docker-konforme Standard ist. Im lokalen Dev ist das egal, da die Defaults
|
||||
> passen.
|
||||
|
||||
## 📚 API-Übersicht
|
||||
|
||||
| Methode | Pfad | Zweck |
|
||||
@@ -121,7 +116,7 @@ Vollständige interaktive Doku: <http://localhost:8000/docs> (Swagger UI, von Fa
|
||||
|
||||
```
|
||||
watchlist/
|
||||
├── app/
|
||||
├── quivio/ # Python-Paket (FastAPI, SQLAlchemy, ...)
|
||||
│ ├── __init__.py # __version__
|
||||
│ ├── main.py # FastAPI-App + Routen
|
||||
│ ├── database.py # Engine + Session
|
||||
@@ -132,7 +127,7 @@ watchlist/
|
||||
│ ├── seed.py # Demo-Daten
|
||||
│ └── static/ # Frontend (HTML/CSS/JS)
|
||||
├── data/ # SQLite-DB (gitignored, Volume im Container)
|
||||
├── bin/ # build-and-push.sh, build-image.sh, write-manifest.sh
|
||||
├── bin/ # build-and-push.sh, build-image.sh, write-manifest.sh, get-version.py
|
||||
├── .github/workflows/ # CI
|
||||
├── Dockerfile # Multi-stage Build
|
||||
├── docker-compose.yml
|
||||
@@ -144,11 +139,11 @@ watchlist/
|
||||
## 🛠 Entwicklung
|
||||
|
||||
```bash
|
||||
# Tests (bisher Smoke-Tests ad-hoc; pytest-Suite ist Roadmap)
|
||||
python -c "from app.main import app; print(app.title, app.version)"
|
||||
# Lokales Backend
|
||||
./run.sh
|
||||
|
||||
# Code-Style
|
||||
ruff check app/ # (optional, nicht in requirements)
|
||||
# Tests (bisher Smoke-Tests ad-hoc; pytest-Suite ist Roadmap)
|
||||
python3 -c "from quivio.main import app; print(app.title, app.version)"
|
||||
```
|
||||
|
||||
## 📜 Lizenz
|
||||
|
||||
Reference in New Issue
Block a user