ansango / wiki
 ·  2 min de lectura

Jellyfin en Proxmox con Docker

Jellyfin en Docker sobre Proxmox con discos separados y acceso desde Linux + GPU Intel N100

1️⃣ Preparación del servidor Proxmox

Ver discos

lsblk -f

2️⃣ Formateo de discos

# Limpiar discos
wipefs -a /dev/sda
sgdisk --zap-all /dev/sda
wipefs -a /dev/sdb
sgdisk --zap-all /dev/sdb

# Crear tabla GPT y partición
parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary ext4 0% 100%
mkfs.ext4 /dev/sda1

parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext4 0% 100%
mkfs.ext4 /dev/sdb1
mkdir -p /mnt/disk1 /mnt/disk2
mount /dev/sda1 /mnt/disk1
mount /dev/sdb1 /mnt/disk2
/dev/sda1 /mnt/disk1 ext4 defaults 0 0
/dev/sdb1 /mnt/disk2 ext4 defaults 0 0
systemctl daemon-reload
mount -a

3️⃣ Configuración del contenedor LXC

pct set <ID> -features nesting=1,keyctl=1,fuse=1

Montar discos en el contenedor

nano /etc/pve/lxc/<ID>.conf

Añadir:

mp0: /mnt/disk1,mp=/media
mp1: /mnt/disk2,mp=/media2

Configuración de la GPU Intel N100

  1. Pasar la GPU al contenedor:
lxc.cgroup2.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
  1. Reiniciar contenedor:
pct restart <ID>
  1. Verificar dentro del contenedor:
pct enter <ID>
ls /dev/dri

Deberías ver:

card0  renderD128

Esto permite a Jellyfin usar QuickSync / VAAPI para transcodificación.


4️⃣ Instalación de Docker y Docker Compose en LXC

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl status docker
sudo systemctl start docker

5️⃣ Docker Compose para Jellyfin

Crear carpetas:

mkdir -p /opt/jellyfin/config /opt/jellyfin/cache
cd /opt/jellyfin

docker-compose.yml final:

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    ports:
      - "8096:8096"
    volumes:
      - /opt/jellyfin/config:/config
      - /opt/jellyfin/cache:/cache
      - /media:/media       # Disco 1
      - /media2:/media2     # Disco 2
    devices:
      - /dev/dri:/dev/dri   # GPU Intel N100 para QuickSync/VAAPI
    restart: unless-stopped

Levantar Jellyfin:

docker-compose up -d

Acceso: http://IP_DEL_CONTENEDOR:8096


6️⃣ Acceso a los discos desde Linux personal (SSHFS)

sudo apt install sshfs -y
mkdir -p ~/disk1 ~/disk2
sshfs [email protected]:/mnt/disk1 ~/disk1
sshfs [email protected]:/mnt/disk2 ~/disk2
fusermount -u ~/disk1
fusermount -u ~/disk2

7️⃣ Consideraciones finales