SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor

Instalar Emby Server en un VPS Ubuntu (24.04 y 26.04)

Instala Emby 4.10.1.0 en Ubuntu con el .deb oficial de GitHub y apt, da permisos a tus carpetas, cierra el 8096 y pon Caddy con HTTPS. Sin GPU, transcodifica la CPU.

Cómo instalar Emby Server en Ubuntu sin atajos rotos

Para instalar Emby Server en un VPS (servidor privado virtual) con Ubuntu, descarga el paquete .deb de la versión 4.10.1.0 desde las publicaciones oficiales de Emby en GitHub. Después instálalo con apt install ./archivo.deb. Así apt resuelve las dependencias que dpkg no sabe descargar. Antes de abrir nada, activa el cortafuegos. Al final pon Caddy delante para servir Emby por HTTPS y deja el puerto 8096 cerrado a internet.

Esta guía está escrita para Ubuntu 24.04 LTS y Ubuntu 26.04 LTS. Emby no publica qué versiones concretas de Ubuntu soporta. Su página de requisitos dice solo "Ubuntu, Debian, Fedora, CentOS or SuSE Linux". Por eso cada paso trae una comprobación. Si algo falla en tu versión, lo verás en ese paso y no tres pasos después.

Por qué no sirve la página de descarga de emby.media

Lo normal sería ir a emby.media, entrar en la descarga para Linux y seguir las instrucciones. Hoy, 20 de octubre de 2026, esa página enlaza a la versión 3.2.50.0, que es muy antigua. Los enlaces apuntan al repositorio antiguo MediaBrowser/Emby en GitHub. La versión actual está en otro repositorio, MediaBrowser/Emby.Releases. Compruébalo tú mismo: abre la página y mira el número de versión dentro de los enlaces de descarga, porque el texto de la página no lo muestra.

En MediaBrowser/Emby.Releases, la publicación que GitHub marca como "Latest" es la 4.10.1.0, del 29 de septiembre de 2026. También hay versiones 4.11.0.x, pero están marcadas como pre-release (beta). La más reciente es la 4.11.0.9-beta, del 18 de octubre. Para un servidor que vas a dejar en marcha, usa la estable. Esta guía fija la 4.10.1.0.

Si buscas en español "instalar Emby en Ubuntu", vas a encontrar guías que añaden un repositorio con apt-key y una línea con focal. No las sigas. Las instrucciones de Emby para Ubuntu y Debian no usan ningún repositorio APT. Dicen que descargues el archivo, lo instales y abras el navegador en el puerto 8096. Además, la página de manual de apt-key en Ubuntu 24.04 dice que su uso está obsoleto y que Ubuntu 24.04 es la última versión que lo incluye. Por tanto, en 26.04 ese comando ya no está.

Antes de instalar: el cortafuegos primero

Un VPS está en internet desde el primer minuto. Emby escucha en el puerto 8096 en cuanto arranca. El asistente de primer arranque es donde se crea la primera cuenta de usuario. Si el puerto queda abierto, cualquiera que llegue antes que tú ve ese asistente. Por eso el cortafuegos va antes que Emby.

Con ufw (Uncomplicated Firewall), permite SSH y los puertos web que necesitará Caddy, y nada más:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

ufw status verbose debe mostrar Status: active, la política deny (incoming) y reglas solo para SSH, 80 y 443. El 8096 no aparece, y eso es lo que quieres. Si tu SSH escucha en otro puerto, permite ese puerto antes de ufw enable, o te quedarás fuera de tu propio servidor. Deja abierta una segunda sesión SSH mientras haces esto. Si quieres entender cada regla, la guía de reglas básicas de ufw en un VPS explica el orden y las políticas por defecto. Recuerda también que muchos proveedores tienen un cortafuegos de red propio en el panel, separado de ufw.

Descargar el .deb de Emby 4.10.1.0 para tu arquitectura

La publicación 4.10.1.0 trae paquetes .deb para amd64 (unos 236 MB) y para arm64 (unos 93 MB). Primero mira qué arquitectura tiene tu VPS:

dpkg --print-architecture

La salida es amd64 en casi todos los VPS con procesador Intel o AMD, y arm64 en los servidores ARM. Descarga el archivo que corresponde. Trabaja en /tmp para que el archivo sea legible por el usuario interno de apt:

cd /tmp
curl -fLO https://github.com/MediaBrowser/Emby.Releases/releases/download/4.10.1.0/emby-server-deb_4.10.1.0_amd64.deb
ls -lh emby-server-deb_4.10.1.0_amd64.deb

En un servidor ARM, cambia amd64 por arm64 en el nombre del archivo, en las dos líneas. ls -lh debe mostrar un archivo de cientos de megas en amd64. Si curl termina con un error 404, el nombre del archivo está mal escrito. Cópialo de nuevo desde la página de la publicación.

Instalar Emby con apt, no con dpkg

La página de Emby dice dpkg -i {filename}. Eso funciona solo si ya tienes todas las dependencias del paquete. dpkg instala un archivo y nada más: la documentación de Ubuntu Server dice que no puede descargar paquetes ni sus dependencias. Si falta una, la instalación queda a medias y tienes que arreglarla después. Usar apt en lugar de dpkg es recomendación de esta guía, no de Emby:

sudo apt update
sudo apt install ./emby-server-deb_4.10.1.0_amd64.deb

El ./ del principio es importante. La referencia de Debian documenta apt install /ruta/al/paquete.deb como la forma de instalar un paquete local intentando resolver sus dependencias. Sin una ruta que empiece por ./ o /, apt toma el texto como el nombre de un paquete de los repositorios, no lo encuentra y se detiene. Las dependencias solo se resuelven si están en los repositorios que tiene configurados tu sistema.

Para ver qué se instaló y con qué nombre de paquete:

dpkg -l | grep -i emby

Debe aparecer una línea que empieza por ii con la versión 4.10.1.0. ii significa instalado y configurado.

Comprobar el servicio emby-server de systemd

En sistemas con systemd, Emby corre como el servicio emby-server. Es el nombre que usa la guía de resolución de problemas de Emby:

sudo systemctl status emby-server

Debe mostrar active (running). Si muestra failed, lee el registro:

sudo journalctl -u emby-server -n 50 --no-pager

Comprueba también que escucha en el puerto 8096 y que responde desde el propio servidor:

sudo ss -tlnp | grep 8096
curl -sI http://127.0.0.1:8096 | head -n 1

ss debe mostrar un proceso escuchando en el 8096. curl debe devolver una línea que empieza por HTTP con algún código. Lo que importa es que responda. Connection refused significa que el servicio todavía no ha arrancado o que ha fallado.

Hay dos detalles que no te doy como hechos, porque Emby no los documenta en sus páginas: la ruta exacta del archivo de unidad y el usuario que aparece en él. Míralos en tu servidor con systemctl cat emby-server. Lo que Emby sí documenta es que, por defecto, el servidor corre con el usuario del sistema emby. Su archivo de configuración es /etc/emby-server.conf.

Dar al usuario emby acceso a tus carpetas de medios

Emby no corre como root. Su artículo sobre permisos en Linux lo dice claro: no se ejecuta como superusuario, y no conviene que lo haga. Eso significa que el usuario emby necesita permiso para leer tus películas y tu música. Si no lo tiene, la biblioteca aparece vacía aunque los archivos estén ahí.

El método de Emby usa un grupo y ACL (listas de control de acceso). Aquí los medios están en /srv/media. Cambia la ruta por la tuya:

sudo apt install -y acl
sudo groupadd media
sudo usermod -a -G media emby
sudo setfacl -R -m g:media:rX /srv/media
sudo setfacl -R -m d:g:media:rX /srv/media
sudo systemctl restart emby-server

La primera línea setfacl da al grupo media permiso sobre lo que ya existe. La segunda, con d:, fija el permiso por defecto. Así los archivos nuevos que copies después lo heredan. La X mayúscula da permiso de ejecución solo a los directorios (y a archivos que ya eran ejecutables). En un directorio, ese permiso es el que deja entrar en él. Sin él, emby ve el nombre de la carpeta pero no puede abrirla.

El reinicio es necesario porque un proceso recibe sus grupos al arrancar. Mientras no reinicias el servicio, el proceso de Emby sigue sin el grupo media.

El artículo de Emby usa rwX (lectura y escritura). Aquí uso rX, solo lectura, porque es lo que hace falta para reproducir. Si quieres que Emby guarde imágenes o metadatos junto a tus archivos, cambia rX por rwX, como en el artículo de Emby. Comprueba el resultado como el usuario emby:

sudo -u emby ls /srv/media

Debe listar tus carpetas. Permission denied significa que falta permiso en esa carpeta o en una de las carpetas que la contienen. Esto pasa a menudo cuando los medios están dentro de /home/tu-usuario. Si tu carpeta de inicio no deja pasar a otros usuarios (míralo con ls -ld /home/tu-usuario), emby no llega a la subcarpeta. Mueve los medios fuera de /home. Si tus archivos ocupan mucho, la guía para montar un servidor multimedia en un VPS de almacenamiento explica cómo separar el disco de datos del sistema.

El asistente de primer arranque en el puerto 8096, por túnel SSH

Emby indica que después de instalar abras http://localhost:8096. En un VPS, localhost es el propio VPS, no tu ordenador. Y el 8096 está cerrado en el cortafuegos, a propósito. La solución es un túnel SSH. Ejecútalo desde tu ordenador, no desde el servidor:

ssh -L 8096:127.0.0.1:8096 usuario@IP_DEL_VPS

Mientras esa sesión esté abierta, abre http://localhost:8096 en el navegador de tu ordenador. SSH lleva la conexión cifrada hasta el servidor y la entrega a Emby por la interfaz local del VPS. Por eso no hace falta abrir ningún puerto.

Según el artículo de instalación de Emby, el asistente pide estas cosas en orden: el idioma, una primera cuenta de usuario con contraseña, tus bibliotecas de medios y si quieres el mapeo automático de puertos para acceso remoto. Usa una contraseña larga. Al añadir bibliotecas, apunta a las rutas que preparaste antes, como /srv/media/peliculas. Desactiva el mapeo automático de puertos. Sirve para abrir puertos en un router doméstico, y en un VPS no hay router que configurar.

Poner Caddy delante para tener HTTPS

Caddy es un servidor web que obtiene y renueva certificados TLS (Transport Layer Security) por sí solo. Necesitas un nombre de dominio, por ejemplo emby.example.com, con un registro DNS de tipo A (o AAAA para IPv6) que apunte a la IP de tu VPS. La documentación de Caddy pone dos condiciones más para el HTTPS automático: los puertos 80 y 443 abiertos desde fuera, y Caddy capaz de usarlos. El cortafuegos ya los abrió.

Instala Caddy desde su repositorio oficial. Estos son los comandos de la documentación de Caddy para Debian y Ubuntu, sin cambios:

sudo apt install --yes debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Fíjate en la diferencia con las guías de apt-key. Aquí la clave va a su propio archivo de llavero y solo vale para el repositorio de Caddy. El paquete arranca Caddy como servicio de systemd con el nombre caddy. Ahora edita /etc/caddy/Caddyfile y deja solo esto:

emby.example.com {
    reverse_proxy 127.0.0.1:8096
}

Aplica el cambio y mira el registro:

sudo systemctl reload caddy
sudo journalctl -u caddy -n 50 --no-pager

Desde tu ordenador, https://emby.example.com debe abrir la pantalla de inicio de sesión de Emby con un candado válido. Si el certificado no llega, el registro de Caddy dice por qué. Casi siempre es porque el registro DNS todavía no apunta al VPS, o porque el puerto 80 o el 443 está bloqueado en el cortafuegos del proveedor. La guía de Caddy como proxy inverso en un VPS trata con más detalle las cabeceras y cómo servir varias aplicaciones desde el mismo Caddy.

Por último, comprueba desde tu ordenador que el 8096 sigue cerrado:

curl -m 5 http://IP_DEL_VPS:8096

Debe terminar con un error de tiempo agotado. Si recibes una respuesta de Emby, el puerto está abierto en algún sitio. Revisa sudo ufw status y el cortafuegos del panel de tu proveedor.

Decirle a Emby que hay un proxy inverso

En el panel de Emby, abre los ajustes de hosting (Hosting Settings). Ahí hay tres valores que revisar:

  • En el modo de conexión segura, elige Handled by reverse proxy. Así Emby sabe que Caddy se encarga del HTTPS.
  • En el dominio externo, escribe emby.example.com sin número de puerto, como pide la documentación de Emby.
  • Deja activada la comprobación de cabeceras del proxy (X-Real-Ip y X-Forwarded-For). Viene activada por defecto y permite a Emby ver la IP real de cada cliente en lugar de 127.0.0.1.

Deja los puertos locales con sus valores por defecto. El artículo de Emby también lo recomienda.

¿Puede transcodificar Emby en un VPS sin GPU?

Transcodificar es convertir un vídeo a otro formato o calidad mientras se reproduce. Lo hace el servidor cuando el cliente no puede reproducir el archivo tal como está. La página de requisitos de Emby dice que el proceso usa mucha CPU y que una máquina lenta puede no ser suficiente. También dice que, si transcodificas para varios dispositivos, puede hacer falta una CPU más rápida.

Emby puede usar la GPU (unidad de procesamiento gráfico) para transcodificar. En Linux admite Nvidia NVDEC y NVENC, VA API e Intel QuickSync. Pero la transcodificación por hardware es una función de Emby Premiere, la suscripción de pago. La tabla de funciones de Emby la marca como solo para Premiere, con una única excepción: los dispositivos Nvidia Shield y los NAS de WD. Un VPS no es ninguno de los dos. A 20 de octubre de 2026, Premiere cuesta 4,99 USD al mes, 54 USD al año o 119 USD en un pago único, según emby.media.

Mira si tu VPS tiene GPU con lspci | grep -i -E 'vga|3d'. Sin GPU, pagar Premiere no hace más rápida la transcodificación, porque no hay hardware que acelerar. Toda la conversión la hace la CPU. En la práctica, lo que mejor funciona en un VPS es la reproducción directa: archivos en formatos que tus clientes reproducen sin conversión. Así el servidor solo envía los datos. Para ver cuánto le cuesta a tu CPU, abre htop en el servidor mientras reproduces algo que obligue a transcodificar, por ejemplo al bajar la calidad en el cliente.

Si prefieres no pagar por ninguna función, mira Jellyfin. Se presenta como software libre con licencia GNU GPL, sin costes ocultos y sin rastreo. La guía de Jellyfin en un VPS como servidor multimedia sigue el mismo camino que esta: instalación, permisos y proxy inverso.

¿Cuánta RAM necesita Emby?

La página de requisitos de Emby da estas cifras: un mínimo de 512 MB de RAM en Linux y una recomendación de al menos 2 GB. Para la CPU pide como mínimo un Intel Core 2 Duo de 1,6 GHz o mejor, y recomienda 2,4 GHz o más. Emby no da cifras según el tamaño de la biblioteca ni según el número de transcodificaciones a la vez.

No te inventes un número a partir de eso. Mídelo en tu servidor. sudo systemctl status emby-server muestra una línea Memory: con lo que usa el servicio en ese momento. Míralo después de escanear la biblioteca entera y mientras alguien reproduce algo. free -h te dice cuánto queda libre para el resto del sistema.

Actualizar Emby más adelante

No hay ningún repositorio APT de Emby configurado, así que apt upgrade nunca actualiza Emby. Eso tiene una ventaja: tú decides cuándo cambiar de versión. Cuando salga una nueva versión estable, descarga su .deb desde la página de publicaciones de MediaBrowser/Emby.Releases y repite el mismo sudo apt install ./archivo.deb. Antes, haz una copia de seguridad de la configuración. La ruta de los datos no está documentada en las páginas de Emby que he consultado. Búscala en systemctl cat emby-server y en /etc/emby-server.conf antes de copiar nada. Evita las versiones marcadas como beta en un servidor que usan otras personas.

Problemas frecuentes y qué significan

apt dice que no encuentra el paquete. Escribiste el nombre del archivo sin ./ delante. Sin ruta, apt busca un paquete con ese nombre en los repositorios, y no existe.

apt rechaza el paquete por la arquitectura. Descargaste arm64 en un servidor amd64, o al revés. Vuelve a mirar dpkg --print-architecture y descarga el otro archivo.

La biblioteca aparece vacía. El usuario emby no puede leer la carpeta, y sudo -u emby ls /ruta devuelve Permission denied. Revisa los permisos de la carpeta y de todas las carpetas que la contienen. Reinicia emby-server después de cambiar grupos.

El túnel SSH no abre nada. Comprueba en el servidor que Emby escucha con sudo ss -tlnp | grep 8096. Si no aparece, el servicio no está en marcha. Lee sudo journalctl -u emby-server -n 50.

Caddy no consigue el certificado. El dominio no apunta al VPS, o el 80 o el 443 no llegan desde fuera. El registro de journalctl -u caddy lo indica.

FAQ

¿Existe un repositorio APT oficial de Emby para Ubuntu?

Las instrucciones oficiales de Emby para Ubuntu y Debian no usan ningún repositorio APT. Dicen que descargues el paquete .deb y lo instales. Las guías que añaden un repositorio con apt-key y una línea focal no siguen ese método, y apt-key está obsoleto según su propia página de manual en Ubuntu 24.04. Descarga el .deb desde las publicaciones de MediaBrowser/Emby.Releases en GitHub e instálalo con sudo apt install ./archivo.deb.

¿Por qué la web de Emby ofrece la versión 3.2.50.0 para Linux?

A 20 de octubre de 2026, la página de descarga para Linux de emby.media enlaza a la 3.2.50.0, en el repositorio antiguo MediaBrowser/Emby. La versión estable actual es la 4.10.1.0, en el repositorio MediaBrowser/Emby.Releases. Hay versiones 4.11 en beta, pero para un servidor en uso conviene la estable.

¿Puedo usar transcodificación por hardware en un VPS con Emby?

Solo si el VPS tiene GPU y pagas Emby Premiere, porque la transcodificación por hardware es una función de Premiere. La mayoría de los VPS no tienen GPU. En ese caso toda la transcodificación la hace la CPU. Para no cargar la CPU, usa archivos que tus clientes reproduzcan de forma directa. Si quieres un servidor multimedia sin funciones de pago, mira Jellyfin.

¿Cuánta memoria RAM necesita Emby Server en Linux?

Emby pide un mínimo de 512 MB de RAM en Linux y recomienda al menos 2 GB. No da cifras según el tamaño de la biblioteca. Mide tu caso con sudo systemctl status emby-server, que muestra la memoria del servicio. Hazlo después de escanear la biblioteca y durante una reproducción.

¿Debo abrir el puerto 8096 en el cortafuegos?

No. Usa un túnel SSH (ssh -L 8096:127.0.0.1:8096 usuario@IP_DEL_VPS) para el asistente de primer arranque, y Caddy en los puertos 80 y 443 para el acceso normal por HTTPS. Con el 8096 cerrado, nadie llega a Emby sin pasar por el proxy, y nadie ve el asistente antes que tú.