12 Commits

Author SHA1 Message Date
root
8f1cc89050 chore: update .gitignore to exclude secrets and runtime data 2026-08-21 18:26:20 +02:00
44f9ab4020 Merge pull request 'chore: archive current Kino runtime and deployment' (#5) from sync/current-ct201-20260821 into main
Reviewed-on: #5
2026-08-21 16:16:37 +00:00
Botomir
436a22544b chore: archive current Kino runtime and deployment 2026-08-21 18:08:44 +02:00
Hermes Agent
884c198783 Import remaining Nextcloud Kino-Projekt material into git
Moves git-compatible content from Nextcloud
(Botomir/Projekte/Angefangen/Kino-Projekt) into this repo per cleanup
request, under nextcloud-import/ to avoid colliding with the actively
maintained backend/frontend/worker layout:

- status/planning docs (Botomir-Status.md, Plan-Botomir.md, Projektbeschreibung.md)
- docs/ (deployment.md, provider-policy.md)
- backend-nextcloud-variant/ (older app/ layout, kept for reference only)
- plugin.video.xstream/, script.module.xstreamscraper/ (vendored Kodi addon source)

A third-party Firefox extension folder was intentionally left in Nextcloud
(unrelated vendor code, not project source).
2026-08-17 10:47:13 +02:00
0980e79297 Merge pull request 'fix: remap backend host port 8000 → 8100 to avoid port conflict' (#2) from DAP-45-anpassung-port into main
Reviewed-on: #2
2026-06-18 18:11:45 +00:00
Paperclip CEO Agent
875736781c fix: remap backend host port 8000 → 8100 to avoid port conflict
Port 8000 is occupied on the host. Backend container still listens
internally on 8000; only the host-side mapping changes to 8100.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 20:05:42 +02:00
Paperclip CEO Agent
ef8a023f85 feat: add .env.example and fix .gitignore to track it
The README instructs `cp .env.example .env` but no template was committed;
the .gitignore also excluded .env.* which would have hidden it.

- Add .env.example with DB_PASSWORD, SECRET_KEY, JELLYFIN_URL, JELLYFIN_API_KEY
- Add !.env.example exception to .gitignore so the template is tracked

Closes DAP-43.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 19:54:07 +02:00
Paperclip Agent
6c7c63e5c8 fix(worker): survive startup race — wrap poll in try/except, add restart policy and backend healthcheck dependency
- Poll loop body is now wrapped in outer try/except so UndefinedTable (or any
  transient DB error) logs a warning and retries after poll_interval instead of
  killing the worker process.
- docker-compose: worker gets `restart: unless-stopped` so Docker recovers it
  automatically on any unexpected exit.
- docker-compose: worker `depends_on` now includes `backend: condition: service_healthy`
  so it waits for the backend (which runs migrations) to be ready before polling.

Fixes DAP-40.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 20:13:32 +02:00
Paperclip Agent
281ce7f9e4 fix: use BigInteger for size_bytes to support files >2 GB
Fixes psycopg2 NumericValueOutOfRange when mock provider returns
size_bytes=4_000_000_000. Adds regression test for >2.15 GB payload.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 20:10:55 +02:00
Paperclip Agent
54c9ece5a0 fix: use npm install instead of npm ci (no package-lock.json)
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-13 19:34:55 +02:00
Paperclip Agent
20be1d73be feat: implement minimal vertical slice — backend, worker, frontend, docker-compose
- FastAPI backend with /health, /api/search, /api/downloads CRUD + retry
- Provider abstraction (mock provider for architecture validation)
- SQLAlchemy models with DownloadStatus state machine
- Python polling worker simulating job lifecycle without real downloads
- React/Vite/TypeScript frontend: search, results table, download queue with progress
- Docker Compose wiring all services with postgres healthcheck
- .env.example, updated README and .gitignore

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-13 17:54:45 +02:00
Paperclip Agent
0745aa3c3e Initialize project-kino workspace 2026-06-13 15:49:57 +02:00