diff --git a/README.md b/README.md index 5ea5686..cb029b9 100644 --- a/README.md +++ b/README.md @@ -64,31 +64,49 @@ nodecast-tv is a modern, web-based IPTV player featuring Live TV, EPG, Movies (V ### Docker Deployment -You can run nodecast-tv easily using Docker. +The repository includes a ready-to-use `docker-compose.yml`. Run these commands from the repository directory so Compose uses that file and the local Dockerfiles. -1. Create a `docker-compose.yml` file (or copy the one from this repo): +#### Standard deployment - ```yaml - services: - nodecast-tv: - image: gitea.anthonybouteiller.ovh/blomios/nodecast-tv:latest - container_name: nodecast-tv - ports: - - "3000:3000" # Host:Container - volumes: - - ./data:/app/data - restart: unless-stopped - environment: - - NODE_ENV=production - - PORT=3000 # Optional: Internal container port - ``` +Start nodecast-tv without the optional Laya runtime: -2. Run the container: - ```bash - docker-compose up -d - ``` +```bash +docker compose up -d --build nodecast-tv +``` -The application will be available at `http://localhost:3000`. +The application will be available at `http://localhost:3000`. Live channel analysis continues to work in **Standard** mode when Laya is not running. + +#### Optional Laya runtime + +Laya provides optional local-AI assistance for channel grouping and language detection. It is behind the Compose profile named `laya`, so a plain `docker compose up -d` does not start it. + +Start nodecast-tv and Laya together: + +```bash +docker compose --profile laya up -d --build +``` + +Rebuild and recreate both services after an update: + +```bash +docker compose --profile laya up -d --build --force-recreate +``` + +Rebuild and recreate only Laya: + +```bash +docker compose --profile laya up -d --build --force-recreate laya +``` + +The Laya model cache is persisted under `./data/models/laya`. The first analysis can take longer while the runtime downloads or loads its model. + +Inside Compose, nodecast-tv reaches Laya at `http://laya:8000`. When running nodecast-tv directly on the host with a separately exposed Laya runtime, use: + +```bash +LAYA_BASE_URL=http://localhost:8000 npm start +``` + +`http://laya:8000` is a Compose-internal hostname and does not resolve from a host process. To publish the image, log in if needed with `docker login gitea.anthonybouteiller.ovh`, then run `./scripts/docker-build-push.sh`. Use `--no-push` to build it locally without publishing. @@ -213,6 +231,41 @@ All transcoding and stream processing settings are found in **Settings → Trans ## Troubleshooting +### Docker Compose and optional Laya + +Check that you are in the repository directory and that Compose sees both services: + +```bash +docker compose config --services +docker compose --profile laya config --services +docker compose config --profiles +``` + +The standard configuration should list `nodecast-tv`; with the `laya` profile enabled it should list both `nodecast-tv` and `laya`. The available profiles should include `laya`. + +If `docker compose ... laya` reports `no such service: laya`, you are usually using an old or different Compose file, or running the command from the wrong directory. Update the checkout, change to the directory containing this repository's `docker-compose.yml`, and run `docker compose config --services` again. + +If Settings reports **“The optional Laya runtime is unavailable”**, nodecast-tv remains usable and falls back to Standard analysis. To diagnose Laya, run: + +```bash +docker compose --profile laya ps +docker compose --profile laya logs nodecast-tv +docker compose --profile laya logs laya +docker compose --profile laya config +``` + +After configuration or image changes, perform a clean recreation: + +```bash +docker compose --profile laya up -d --build --force-recreate +``` + +To recreate only the optional runtime: + +```bash +docker compose --profile laya up -d --build --force-recreate laya +``` + ### Video Won't Play (Black Screen or Loading Forever) | Symptom | Likely Cause | Solution | diff --git a/docker-compose.yml b/docker-compose.yml index 3a86400..530e7aa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,13 +15,11 @@ services: - PORT=3000 # Internal container port - LAYA_BASE_URL=http://laya:8000 - LAYA_BATCH_TIMEOUT_MS=120000 - depends_on: - laya: - condition: service_healthy devices: - /dev/dri:/dev/dri # Required for VAAPI/QuickSync/AMF (Linux) laya: + profiles: ["laya"] build: context: . dockerfile: Dockerfile.laya