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

project-kino

Docker-hosted web GUI for searching and downloading movies/series, with Jellyfin integration.

Quick Start

cp .env.example .env
# edit .env — set DB_PASSWORD, SECRET_KEY, JELLYFIN_URL, JELLYFIN_API_KEY
docker compose up --build

Architecture

frontend (React/Vite + nginx)
    └─ /api/* → backend (FastAPI)
                    └─ PostgreSQL
worker (Python polling)
    └─ reads pending downloads from DB, simulates job execution

API

Method Path Description
GET /health Health check
GET /api/search?q= Search across configured providers
POST /api/downloads Queue a download
GET /api/downloads List all downloads
GET /api/downloads/:id Get one download
POST /api/downloads/:id/retry Retry a failed download

Providers

Providers are operator-configured search sources. The default mock provider returns test data. Add real providers by implementing BaseProvider in backend/src/providers.py and registering them in the _registry.

No hardcoded piracy sources. All download URLs come from operator-configured providers only.

Configuration

All secrets via environment variables or .env (never committed):

Variable Description
DB_PASSWORD PostgreSQL password
SECRET_KEY App secret key
JELLYFIN_URL Jellyfin base URL
JELLYFIN_API_KEY Jellyfin API key
MEDIA_PATH Local path for downloaded media
Description
No description provided
Readme 3.1 MiB
Languages
Python 95.1%
JavaScript 3.1%
TypeScript 0.6%
HTML 0.6%
CSS 0.4%
Other 0.2%