> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kernelmedia.tv/llms.txt
> Use this file to discover all available pages before exploring further.

# Installing a Remote Transcoder

> Offload transcode work to a separate node

A remote transcoder node runs on a separate machine (ideally one with its own GPU) and takes transcode jobs off your main server.

<Info>
  Remote Transcoding is a Pro/Lifetime feature. Link your server to a kernelmedia.tv account with an active license before pairing a node; see [Pro & Lifetime Features](/pro-features).
</Info>

<Warning>
  The transcoder defaults to port `9014`, the same default as the Kernel server. If you're running both on one host, change one of them.
</Warning>

## Docker

```bash theme={null}
docker run -d --name kernel-transcoder \
  --network host \
  -v /path/to/config.yml:/etc/kernel-transcoder/config.yml \
  -v /path/to/media:/media \
  kernelmedia/remotenode:latest
```

`--network host` is required. The node discovers your Kernel server (and vice versa) over UDP multicast, which doesn't work across Docker's default bridge network.

**With an NVIDIA GPU:**

```bash theme={null}
docker run -d --name kernel-transcoder \
  --network host \
  --gpus all \
  -v /path/to/config.yml:/etc/kernel-transcoder/config.yml \
  -v /path/to/media:/media \
  kernelmedia/remotenode:nvidia
```

## Linux packages

```bash theme={null}
sudo apt install kernelmediaservernode   # or: sudo dnf install kernelmediaservernode
sudo systemctl status kernelmediaservernode
```

This installs the binary to `/opt/kernelmediaservernode`, config at `/etc/kernelmediaservernode/config.yml`, and a systemd unit that's enabled and started automatically.

## Manual (zip)

Download the matching platform zip from [kernelmedia.tv/download](https://kernelmedia.tv/download), then:

```bash theme={null}
./kernel-transcoder -config config.yml
```

A default `config.yml` is created on first run if one doesn't exist.

## Key config.yml settings

```yaml theme={null}
server:
  host: 0.0.0.0
  port: 9014          # change if this clashes with the Kernel server on the same host
workers:
  max_concurrent: 4
storage:
  allowed_input_paths:
    - /media
  allowed_output_paths:
    - /media/transcoded
```

`${VAR}` references in `config.yml` are expanded from the environment at startup.

<Note>
  The node's own name is set via `node.name` in `config.yml`. A `NODE_NAME` environment variable has no effect.
</Note>

Next: [pair the node with your server](/transcoder/pairing).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.