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).
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>
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>
- 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>
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>