docs(deploy): document optional Laya compose profile (#29)

Update deployment guidance for standard and Laya-profile Compose flows, and mark the Laya service as profile-gated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
blomios
2026-10-06 20:56:49 +02:00
parent 8ff0b162a5
commit 0742ac1a08
2 changed files with 75 additions and 24 deletions

View File

@ -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
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 |

View File

@ -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