# NVENC GPU Passthrough for libtorrent-server (Docker)

Hardware-accelerated transcoding for `stremio-libtorrent-server` via Docker `--gpus all`.

## Prerequisites

- NVIDIA GPU (tested: RTX 2080 Ti, 11GB VRAM)
- NVIDIA drivers installed
- Docker installed

## Install nvidia-container-toolkit

```bash
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
```

## Configure Docker runtime

```bash
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
```

Verify:

```bash
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi
```

## Deploy libtorrent-server with GPU

```bash
docker rm -f stremio-libtorrent 2>/dev/null
docker run -d \
  --name stremio-libtorrent \
  --gpus all \
  -p 11470:8080 \
  -e TRANSCODING_MODE=auto \
  -e CACHE_DIR=/cache \
  -v stremio-libtorrent-cache:/cache \
  --restart unless-stopped \
  androshack/stremio-libtorrent-server:latest
```

### Key env vars

| Variable | Value | Effect |
|----------|-------|--------|
| `TRANSCODING_MODE` | `auto` | NVENC when GPU available, CPU fallback |
| `TRANSCODING_MODE` | `nvenc` | Force NVENC (fails if GPU missing) |
| `CACHE_DIR` | `/cache` | Torrent data cache path |

## Verify NVENC is active

```bash
docker exec stremio-libtorrent nvidia-smi 2>/dev/null
docker logs stremio-libtorrent 2>&1 | grep -i -E "(nvenc|transcode|gpu)"
```

## Troubleshooting

**"no known GPU vendor found"** — nvidia-container-toolkit not installed or Docker runtime not configured:

```bash
docker info | grep -i runtime  # should show "nvidia"
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
```

**Container name conflict**:

```bash
docker rm -f stremio-libtorrent
# Re-create with the docker run command above
```
