[{"data":1,"prerenderedAt":241},["ShallowReactive",2],{"seo-verification":3,"blog-dimensionar-un-vps-para-jellyfin-navidrome-e-immich-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-dimensionar-un-vps-para-jellyfin-navidrome-e-immich-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":180,"ctaBody":181,"ctaButton":182,"ctaUrl":183,"relatedPosts":184},513,"dimensionar-un-vps-para-jellyfin-navidrome-e-immich",{"fr":12,"en":13,"ar":14,"es":10},"stack-mediatheque-vps-jellyfin-navidrome-immich","size-a-vps-for-jellyfin-navidrome-and-immich","تحجيم-خادم-vps-لتشغيل-jellyfin-وnavidrome-وimmich","Dimensionar un VPS para Jellyfin, Navidrome e Immich","RAM, vCPU y disco por servicio para que Jellyfin, Navidrome, Immich y Audiobookshelf quepan en un solo VPS, con un proxy Caddy y copias de seguridad.",13,0,false,"2026-10-27T00:00:00+00:00","2026-10-27T23:58:39+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fstack-mediatheque-vps-jellyfin-navidrome-immich-poster.svg",{"categorySlug":34,"appSlug":35},"colaboracion-productividad","immich","Reunir películas, música, fotos y audiolibros en un solo servidor parece sencillo, hasta el día en que Immich indexa sus rostros y la memoria se desploma. Un error de dimensionamiento cuesta en ambos sentidos: un plan demasiado justo que se reinicia en bucle, o un plan demasiado holgado que se paga cada mes. Esta guía cuantifica cada servicio, fija la regla que evita la transcodificación de vídeo, presupuesta el disco por biblioteca y lo une todo detrás de un único proxy inverso. Termina con una tabla que asocia el perfil de su biblioteca con un plan de VPS.",[38,42,51,54,89,92,95,126,129,138,141,150,173,177],{"type":39,"title":40,"body":41},"h2","Por qué una sola máquina para cuatro bibliotecas","Dejar Plex, Google Fotos, Spotify o Audible conduce casi siempre al mismo esquema: un servicio por tipo de medio, cada uno en su pequeño servidor o en el NAS del salón. El resultado son cuatro actualizaciones que seguir, cuatro certificados y cuatro copias de seguridad que planificar. Un único VPS lo reduce a un punto de entrada, una red de Docker y un plan de copias.\n\nLa dificultad no es la instalación, que nuestras guías de \u003Ca href=\"\u002Fes\u002Fblog\u002Falojar-immich-en-un-vps\">Immich\u003C\u002Fa>, \u003Ca href=\"\u002Fes\u002Fblog\u002Falojar-jellyfin-en-un-vps\">Jellyfin\u003C\u002Fa>, \u003Ca href=\"\u002Fes\u002Fblog\u002Fnavidrome-servidor-de-musica-self-hosted-en-vps\">Navidrome\u003C\u002Fa> y \u003Ca href=\"\u002Fes\u002Fblog\u002Faudiobookshelf-audiolibros-y-podcasts-self-hosted-en-vps\">Audiobookshelf\u003C\u002Fa> ya detallan. La dificultad es el dimensionamiento: Immich y la transcodificación de vídeo aplastan un servidor pequeño, mientras que Navidrome y Audiobookshelf pasan casi inadvertidos. Este artículo responde a una sola pregunta: qué máquina, para qué biblioteca.",{"type":43,"title":44,"items":45},"ul","Lo que gana al reunirlo todo",[46,47,48,49,50],"**Un único punto de entrada** — un proxy inverso, un subdominio por servicio, certificados obtenidos y renovados automáticamente.","**Memoria compartida** — Navidrome y Audiobookshelf consumen poco, y la memoria que uno deja libre beneficia los picos del otro.","**Un único plan de copias** — cuatro carpetas de configuración, un volcado de PostgreSQL, un script.","**Escalado vertical** — cuando la biblioteca crece, aumenta RAM, vCPU y disco del mismo VPS sin reinstalar la pila.","**Acceso root completo** — usted elige la distribución, ajusta el kernel e instala lo que la pila exija.",{"type":39,"title":52,"body":53},"El presupuesto de memoria y procesador, servicio por servicio","Solo las cifras de Immich y de Jellyfin proceden de una documentación oficial; las demás líneas son ajustes de partida, que hay que medir en su máquina. Obtenga sus valores una vez en marcha la pila con `docker stats --no-stream` y ajuste.\n\nImmich es la partida dominante. Su documentación indica 6 GB de RAM como mínimo y 8 GB recomendados, 2 núcleos como mínimo y 4 recomendados. También precisa que en una máquina de 4 GB Immich puede funcionar con el aprendizaje automático desactivado, y que la base PostgreSQL necesita al menos 2 GB si fija límites de recursos en Docker. Desde la versión 3, la imagen de aprendizaje automático en amd64 exige el nivel de conjunto de instrucciones x86-64-v2: compruebe que el plan elegido lo expone.\n\nEn cuanto al procesador, es la indexación inicial la que satura: la detección de rostros y la búsqueda semántica usan todos los núcleos disponibles durante horas, y luego vuelve la calma. Los demás servicios casi no se notan mientras no transcodifique.",{"type":55,"title":56,"headers":57,"rows":61},"comparison","Presupuesto de reserva por servicio",[58,59,60],"Servicio","RAM a reservar","Qué la hace crecer",[62,66,70,73,77,81,85],[63,64,65],"Caddy (proxy inverso)","Ajuste de partida: 100 MB, a medir","Casi nada: el número de subdominios apenas lo cambia",[67,68,69],"Navidrome","Ajuste de partida: 250 MB, a medir","Los escaneos de una biblioteca grande y los clientes que piden transcodificación de audio",[71,68,72],"Audiobookshelf","Los pódcast descargados automáticamente y los escaneos de metadatos",[74,75,76],"Jellyfin en reproducción directa","Ajuste de partida: 1 GB, a medir (Jellyfin menciona 4 GB como posible suficiente en un servidor Linux sin interfaz, 8 GB recomendados en un despliegue medio)","Los análisis de la biblioteca y las imágenes generadas en la pasada inicial",[78,79,80],"Jellyfin con transcodificación por software","Sin cifra oficial por flujo: medir con un flujo de prueba","Cada flujo convertido en paralelo, sobre todo en HEVC o con subtítulos incrustados",[82,83,84],"Immich (servidor, ML, PostgreSQL, Valkey)","6 GB mínimo, 8 GB recomendados","La indexación inicial, el reconocimiento facial, la búsqueda semántica",[86,87,88],"Pila completa, una sola máquina","Al menos 8 GB (valor recomendado de Immich), 16 GB de margen: una estimación a comprobar","Las tareas de Immich lanzadas mientras se transcodifica una película",{"type":39,"title":90,"body":91},"El presupuesto de disco: calcule en GB antes de elegir","El disco es el primer techo de un VPS multimedia, y se calcula. Para el vídeo, la fórmula es: tasa de bits en Mb\u002Fs multiplicada por la duración en segundos, dividida entre 8. Una película de dos horas a 8 Mb\u002Fs pesa unos 7 GB, a 4 Mb\u002Fs unos 3,6 GB. Para la música, un álbum de 45 minutos en MP3 a 320 kb\u002Fs ocupa unos 110 MB; en FLAC, cuente más bien de 300 a 500 MB. Un audiolibro de 10 horas a 64 kb\u002Fs pesa cerca de 290 MB.\n\nPara las fotos, parta de 3 MB por imagen: 10 000 fotos ocupan por tanto unos 30 GB, sin contar los vídeos del teléfono. La documentación de Immich añade que las miniaturas y los vídeos transcodificados aumentan el tamaño de la fototeca entre un 10 y un 20 % de media.\n\nSepare después lo que debe ser rápido de lo que debe ser grande. La base PostgreSQL de Immich pesa típicamente de 1 a 3 GB, debe vivir en un SSD local y nunca en un recurso de red. Lo mismo vale para la configuración de Jellyfin y Audiobookshelf: Audiobookshelf desaconseja expresamente colocar su carpeta de configuración en un recurso de red, con el riesgo de corromper su base SQLite. Los medios, en cambio, pueden ir a un volumen aparte y más grande.",{"type":39,"title":93,"body":94},"No transcodificar: la regla que protege a un VPS pequeño","Jellyfin distingue cuatro modos de reproducción, del más ligero al más pesado: reproducción directa, remux, flujo directo y transcodificación. Su documentación describe la reproducción directa como la entrega del archivo sin modificación, con casi ninguna carga adicional para el servidor; la transcodificación de vídeo es el modo más costoso.\n\nSin tarjeta gráfica, toda transcodificación de vídeo pasa por el procesador, y la documentación de Jellyfin recuerda que siempre se recomienda una GPU para ello. También advierte de que HEVC, VP9 y AV1 pueden ser muy exigentes en decodificación por software, y de que la conversión de HDR a SDR (tone-mapping) usa siempre un codificador por software si no hay GPU.\n\nLa regla práctica se resume en tres gestos. Guarde sus películas en un formato que sus dispositivos lean de forma nativa, típicamente H.264 en MP4 o MKV. Convierta una vez, de antemano, los archivos problemáticos en lugar de convertirlos en cada reproducción. Y use el ajuste por usuario de Jellyfin para prohibir la transcodificación de audio y vídeo a las cuentas que no la necesitan. Para comprobar que un flujo no consume nada, inicie una reproducción y observe el panel: allí se muestra el tipo de reproducción, y el procesador debe permanecer en reposo.",{"type":96,"title":97,"steps":98},"steps","Montar la pila: una red, un proxy, un subdominio por servicio",[99,102,105,108,111,114,117,120,123],{"title":100,"body":101},"Crear las carpetas, los permisos y la red compartida","Separe medios, fotos y configuraciones, asigne la propiedad al usuario 1000 y cree la red que compartirán todos los contenedores:\n\n`sudo mkdir -p \u002Fsrv\u002Fmedia\u002Fvideo \u002Fsrv\u002Fmedia\u002Fmusic \u002Fsrv\u002Fmedia\u002Faudiobooks \u002Fsrv\u002Fphotos \u002Fsrv\u002Fstack\u002Fmedia \u002Fsrv\u002Fstack\u002Fimmich`\n`sudo mkdir -p \u002Fsrv\u002Fstack\u002Fjellyfin\u002Fconfig \u002Fsrv\u002Fstack\u002Fjellyfin\u002Fcache \u002Fsrv\u002Fstack\u002Fnavidrome\u002Fdata \u002Fsrv\u002Fstack\u002Faudiobookshelf\u002Fconfig \u002Fsrv\u002Fstack\u002Faudiobookshelf\u002Fmetadata`\n`sudo chown -R 1000:1000 \u002Fsrv\u002Fstack \u002Fsrv\u002Fphotos`\n`sudo chmod -R a+rX \u002Fsrv\u002Fmedia`\n`docker network create edge`",{"title":103,"body":104},"Apuntar cuatro subdominios al VPS","Cree cuatro registros A (jellyfin, music, books, photos) hacia la IPv4 del VPS. Caddy obtiene los certificados solo si los registros A o AAAA apuntan al servidor y los puertos 80 y 443 están abiertos desde el exterior.",{"title":106,"body":107},"Escribir el compose de los tres servicios ligeros","En `\u002Fsrv\u002Fstack\u002Fmedia\u002Fcompose.yaml`, declare Jellyfin, Navidrome y Audiobookshelf. No se publica ningún puerto: solo Caddy habla con la red `edge`. Los medios se montan en solo lectura para Jellyfin y Navidrome.\n\n`services:`\n`  jellyfin:`\n`    image: jellyfin\u002Fjellyfin`\n`    user: 1000:1000`\n`    volumes:`\n`      - \u002Fsrv\u002Fstack\u002Fjellyfin\u002Fconfig:\u002Fconfig`\n`      - \u002Fsrv\u002Fstack\u002Fjellyfin\u002Fcache:\u002Fcache`\n`      - \u002Fsrv\u002Fmedia\u002Fvideo:\u002Fmedia:ro`\n`    restart: unless-stopped`\n`    networks: [edge]`\n`  navidrome:`\n`    image: navidrome\u002Fnavidrome:latest`\n`    user: 1000:1000`\n`    volumes:`\n`      - \u002Fsrv\u002Fstack\u002Fnavidrome\u002Fdata:\u002Fdata`\n`      - \u002Fsrv\u002Fmedia\u002Fmusic:\u002Fmusic:ro`\n`    restart: unless-stopped`\n`    networks: [edge]`\n`  audiobookshelf:`\n`    image: ghcr.io\u002Fadvplyr\u002Faudiobookshelf:latest`\n`    user: 1000:1000`\n`    volumes:`\n`      - \u002Fsrv\u002Fstack\u002Faudiobookshelf\u002Fconfig:\u002Fconfig`\n`      - \u002Fsrv\u002Fstack\u002Faudiobookshelf\u002Fmetadata:\u002Fmetadata`\n`      - \u002Fsrv\u002Fmedia\u002Faudiobooks:\u002Faudiobooks`\n`    restart: unless-stopped`\n`    networks: [edge]`",{"title":109,"body":110},"Añadir Caddy al mismo archivo","Complete el archivo con el servicio del proxy, y luego las declaraciones de la red externa y del volumen de certificados:\n\n`  caddy:`\n`    image: caddy:2`\n`    ports:`\n`      - \"80:80\"`\n`      - \"443:443\"`\n`    volumes:`\n`      - .\u002FCaddyfile:\u002Fetc\u002Fcaddy\u002FCaddyfile:ro`\n`      - caddy_data:\u002Fdata`\n`    restart: unless-stopped`\n`    networks: [edge]`\n`networks:`\n`  edge:`\n`    external: true`\n`volumes:`\n`  caddy_data:`",{"title":112,"body":113},"Escribir el Caddyfile, un bloque por servicio","En `\u002Fsrv\u002Fstack\u002Fmedia\u002FCaddyfile`, basta un nombre de dominio para activar el TLS automático, y Caddy redirige HTTP a HTTPS por sí solo:\n\n`jellyfin.your-domain.com {`\n`  reverse_proxy jellyfin:8096`\n`}`\n`music.your-domain.com {`\n`  reverse_proxy navidrome:4533`\n`}`\n`books.your-domain.com {`\n`  reverse_proxy audiobookshelf:80`\n`}`\n`photos.your-domain.com {`\n`  reverse_proxy immich_server:2283`\n`}`",{"title":115,"body":116},"Instalar Immich con su compose oficial","Descargue los dos archivos de la última versión y no modifique el compose en sí:\n\n`cd \u002Fsrv\u002Fstack\u002Fimmich`\n`wget -O docker-compose.yml https:\u002F\u002Fgithub.com\u002Fimmich-app\u002Fimmich\u002Freleases\u002Flatest\u002Fdownload\u002Fdocker-compose.yml`\n`wget -O .env https:\u002F\u002Fgithub.com\u002Fimmich-app\u002Fimmich\u002Freleases\u002Flatest\u002Fdownload\u002Fexample.env`\n\nEn `.env`, defina los tres valores siguientes (la contraseña solo admite letras y cifras):\n\n`UPLOAD_LOCATION=\u002Fsrv\u002Fphotos\u002Flibrary`\n`DB_DATA_LOCATION=\u002Fsrv\u002Fstack\u002Fimmich\u002Fpostgres`\n`DB_PASSWORD=\u003Cmot-de-passe-A-Za-z0-9>`",{"title":118,"body":119},"Conectar Immich a la red común","Cree `\u002Fsrv\u002Fstack\u002Fimmich\u002Fdocker-compose.override.yml`. Docker Compose lo fusiona automáticamente con el archivo oficial, que permanece intacto y sustituible en cada actualización:\n\n`services:`\n`  immich-server:`\n`    networks: [default, edge]`\n`networks:`\n`  edge:`\n`    external: true`",{"title":121,"body":122},"Arrancar y comprobar cada entrada","Arranque las dos pilas, espere la emisión de los certificados y pruebe después las cabeceras HTTP y el TLS. Debe obtener un código 2xx o 3xx sobre HTTPS, nunca un error de certificado:\n\n`cd \u002Fsrv\u002Fstack\u002Fmedia && docker compose up -d`\n`cd \u002Fsrv\u002Fstack\u002Fimmich && docker compose up -d`\n\n`curl -I https:\u002F\u002Fjellyfin.your-domain.com`\n`curl -I https:\u002F\u002Fphotos.your-domain.com`",{"title":124,"body":125},"Medir y luego ajustar Immich","Durante la indexación, consulte `docker stats --no-stream` y la carga del procesador. Si la memoria roza el techo, desactive una función de aprendizaje automático (búsqueda inteligente, reconocimiento facial) en los ajustes de administración, o reduzca la concurrencia de las tareas sin superar el número de núcleos.",{"type":39,"title":127,"body":128},"Copia de cada servicio, restauración antes de necesitarla","Una pila de cuatro aplicaciones tiene cuatro formas de perder datos. La trampa clásica es copiar las fotos sin la base de datos: Immich no escanea su carpeta de biblioteca, confía en su base para saber qué existe. La documentación distingue las carpetas originales (`library`, `upload`, `profile`), que hay que copiar sí o sí, de las regenerables (`thumbs`, `encoded-video`).\n\nImmich genera además sus propios volcados de la base, por defecto cada día a las 2 de la madrugada, conservando los 14 últimos en la carpeta `backups` de la ubicación de subida. Contienen solo metadatos, nunca las fotos. Para garantizar la coherencia, detenga el contenedor del servidor durante la copia; si no, copie primero la base y después los archivos.\n\nLa restauración, en una máquina de pruebas, sigue el procedimiento oficial (y después la inyección del volcado en `psql`). Atención: `down -v` borra todos los datos de Immich de la máquina donde lo ejecute:\n\n`docker compose down -v`\n`docker compose pull`\n`docker compose create`\n`docker start immich_postgres`",{"type":43,"title":130,"items":131},"Plan de copias por servicio",[132,133,134,135,136,137],"**Immich, base de datos** — un volcado comprimido fuera del VPS: `docker exec -t immich_postgres pg_dump --clean --if-exists --dbname=immich --username=postgres | gzip > \"\u002Fsrv\u002Fbackup\u002Fimmich-db.sql.gz\"`, adaptando nombre de base y usuario a su `.env`.","**Immich, archivos** — `library`, `upload` y `profile` copiados con `rsync` a un almacenamiento remoto; `thumbs` y `encoded-video` pueden regenerarse.","**Jellyfin** — la carpeta `\u002Fsrv\u002Fstack\u002Fjellyfin\u002Fconfig` (bibliotecas, usuarios, metadatos), con el contenedor detenido mientras se archiva. La caché se reconstruye.","**Navidrome** — `\u002Fsrv\u002Fstack\u002Fnavidrome\u002Fdata` (base, listas de reproducción, caché); la música es su fuente de verdad y se copia como cualquier carpeta de archivos.","**Audiobookshelf** — `\u002Fconfig` y `\u002Fmetadata`: la base SQLite y el progreso de escucha viven en la primera, las copias internas en la segunda.","**La restauración se prueba** — repita el procedimiento oficial de Immich, detallado arriba, en una máquina de pruebas antes de fiarse.",{"type":39,"title":139,"body":140},"Resolución de problemas: memoria saturada, permisos denegados, subidas cortadas","Los fallos de esta pila se reparten en dos familias: la memoria, cuando Immich y una transcodificación se disputan los mismos gigabytes, y los permisos, cuando un contenedor sin root no puede leer o escribir una carpeta montada. Para la primera, empiece buscando una traza del kernel con `dmesg -T | grep -i \"out of memory\"`: si aparece un proceso de Immich, el kernel lo mató por falta de memoria y el contenedor se reinicia en bucle. Para la segunda, compare siempre el identificador del usuario del contenedor con el propietario de las carpetas montadas.",{"type":43,"title":142,"items":143},"Errores encontrados y su remedio",[144,145,146,147,148,149],"**Immich se reinicia en bucle en un plan pequeño** — el kernel mata el contenedor de aprendizaje automático (busque `out of memory` en `dmesg`). Desactive la búsqueda inteligente y el reconocimiento facial, o pase a un plan con al menos 8 GB.","**`can't set healthcheck.start_interval as feature require Docker Engine v25 or later`** — su Docker es demasiado antiguo. Actualícelo, o comente la línea `start_interval` en la sección `database` del compose, como indica la documentación de Immich.","**Subidas de vídeo cortadas al cabo de un minuto** — la documentación de Immich señala un código 499 detrás de Traefik con el tiempo de lectura por defecto de 60 segundos, y recomienda 600 segundos. Revise el tiempo de espera de su proxy.","**Navidrome: `unable to open database file`** — la carpeta `\u002Fdata` no admite escritura. Asigne la propiedad al identificador definido por la directiva `user`.","**Navidrome arranca pero la biblioteca sigue vacía, con `permission denied` en los registros** — la carpeta de música no es legible: aplique `chmod -R a+rX` en `\u002Fsrv\u002Fmedia\u002Fmusic`.","**Jellyfin no ve las películas** — el usuario 1000 del contenedor no puede leer la carpeta montada. Pruebe con `docker exec jellyfin ls \u002Fmedia` y corrija los permisos; `PUID` y `PGID` no funcionan con estas imágenes, solo cuenta la directiva `user`.",{"type":55,"title":151,"headers":152,"rows":156},"Qué plan para qué biblioteca",[153,154,155],"Perfil de biblioteca","Plan recomendado","Margen y límite",[157,161,165,169],[158,159,160],"Música, audiolibros y algunas películas en reproducción directa, Immich sin aprendizaje automático, uno o dos usuarios","VPS Start: 2 vCPU, 4 GB, 50 GB SSD, a 99 DH\u002Fmes","Memoria justa: Immich queda sin ML y conviene evitar la transcodificación; el disco limita a unas pocas películas (≈ 7 GB para una película de dos horas a 8 Mb\u002Fs)",[162,163,164],"Fototeca familiar de unas 10 000 imágenes (30 a 36 GB) con ML activo, música y audiolibros, reproducción directa","VPS Power: 4 vCPU, 8 GB, 100 GB SSD, a 299 DH\u002Fmes","Alcanza los 8 GB recomendados solo para Immich; la indexación inicial ralentiza el resto",[166,167,168],"Pila completa de cuatro servicios, dos o tres usuarios, una transcodificación puntual","VPS Business: 8 vCPU, 16 GB, 200 GB SSD, a 499 DH\u002Fmes","Holgado; el disco pasa a ser el techo en cuanto el vídeo supera unos cientos de GB",[170,171,172],"Varios flujos transcodificados a la vez","VPS Business como mínimo, y conversión previa de los archivos","Sin GPU, añadir vCPU no basta: conviene convertir una vez en lugar de transcodificar en cada reproducción",{"type":174,"title":175,"body":176},"tip","Medir antes de pagar más","Empiece por el plan que indica la tabla, lance la indexación de Immich y consulte la memoria con `docker stats --no-stream` durante un día de máxima actividad. Si el margen supera el 30 %, el tamaño es correcto; si el kernel mata un contenedor, suba de plan. El escalado vertical del VPS evita reinstalar: RAM y disco aumentan, sus carpetas `\u002Fsrv` y sus compose se quedan donde están.",{"type":39,"title":178,"body":179},"La documentación oficial y los pasos siguientes","Los valores de esta guía proceden de la documentación de los editores: \u003Ca href=\"https:\u002F\u002Fdocs.immich.app\u002Finstall\u002Frequirements\">requisitos de Immich\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fdocs.immich.app\u002Fadministration\u002Fbackup-and-restore\">copia y restauración de Immich\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fjellyfin.org\u002Fdocs\u002Fgeneral\u002Fadministration\u002Fhardware-selection\u002F\">elección del hardware para Jellyfin\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fjellyfin.org\u002Fdocs\u002Fgeneral\u002Fpost-install\u002Ftranscoding\u002F\">transcodificación de Jellyfin\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.navidrome.org\u002Fdocs\u002Finstallation\u002Fdocker\u002F\">Navidrome con Docker\u003C\u002Fa> y \u003Ca href=\"https:\u002F\u002Fcaddyserver.com\u002Fdocs\u002Fautomatic-https\">el HTTPS automático de Caddy\u003C\u002Fa>.\n\nPara elegir un proxy distinto de Caddy, lea \u003Ca href=\"\u002Fes\u002Fblog\u002Felegir-reverse-proxy-vps-caddy-traefik-nginx\">nuestra comparativa de Caddy, Traefik y Nginx Proxy Manager\u003C\u002Fa>. Si deja Plex, el proceso se detalla en \u003Ca href=\"\u002Fes\u002Fblog\u002Fseguridad-plex-migrar-jellyfin-navidrome-vps\">nuestra guía de migración a Jellyfin y Navidrome\u003C\u002Fa>.","Un VPS que crece con su mediateca","Con un VPS de ServOrbit.com, dispone de acceso root, IPv4 dedicada, SSD NVMe y elección de distribución. Cuando la biblioteca crece, el escalado vertical añade RAM y disco sin reinstalar. La opción de administración de VPS está disponible.","Ver los VPS Cloud","\u002Fvps-cloud",[185,203,222],{"id":186,"slug":187,"slugs":188,"title":192,"excerpt":193,"readTime":194,"views":195,"isPinned":19,"publishedAt":196,"updatedAt":197,"category":198,"categories":199,"featuredImage":30,"bgImage":31,"posterImage":201,"relatedSolution":202},82,"alojar-immich-en-un-vps",{"fr":189,"en":190,"ar":191,"es":187},"heberger-immich","host-immich-on-your-own-vps","استضافة-immich-على-خادمك-الافتراضي-الخاص-vps","Alojar Immich en su propio VPS","Aloje Immich en su VPS: alternativa autoalojada a Google Photos con copia de seguridad móvil, reconocimiento facial y SSL con Docker. Incluye migración a v3.",11,1,"2026-03-30T00:00:00+00:00","2026-09-23T15:23:17+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[200],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-immich-poster.svg",{"categorySlug":25,"appSlug":35},{"id":204,"slug":205,"slugs":206,"title":210,"excerpt":211,"readTime":212,"views":213,"isPinned":19,"publishedAt":214,"updatedAt":215,"category":216,"categories":217,"featuredImage":30,"bgImage":31,"posterImage":219,"relatedSolution":220},84,"alojar-jellyfin-en-un-vps",{"fr":207,"en":208,"ar":209,"es":205},"heberger-jellyfin","host-jellyfin-on-your-own-vps","استضافة-jellyfin-على-خادمك-الافتراضي-الخاص-vps","Alojar Jellyfin en un VPS: guía completa 2026","Despliega Jellyfin self-hosted en VPS con Docker, nginx, HTTPS, plugins, almacenamiento y transcodificación. Guía completa actualizada para 2026.",10,8,"2026-03-28T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[218],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-jellyfin-poster.svg",{"categorySlug":34,"appSlug":221},"jellyfin",{"id":223,"slug":224,"slugs":225,"title":229,"excerpt":230,"readTime":212,"views":231,"isPinned":19,"publishedAt":232,"updatedAt":215,"category":233,"categories":238,"featuredImage":30,"bgImage":31,"posterImage":240,"relatedSolution":30},227,"elegir-reverse-proxy-vps-caddy-traefik-nginx",{"fr":226,"en":227,"ar":228,"es":224},"choisir-reverse-proxy-vps-caddy-traefik-nginx","caddy-traefik-or-nginx-proxy-manager-which-to-choose","caddy-أم-traefik-أم-nginx-proxy-manager-أيهما-تختار","Caddy, Traefik o Nginx Proxy Manager: ¿cuál elegir?","Guía para elegir entre Caddy, Traefik y Nginx Proxy Manager en un VPS con Docker: criterios, tabla comparativa y recomendaciones según su perfil.",2,"2026-08-06T00:00:00+00:00",{"id":234,"name":235,"slug":236,"color":237,"icon":236},5,"Comparativas","comparatif","bg-info\u002F10 text-info",[239],{"id":234,"name":235,"slug":236,"color":237,"icon":236},"\u002Fblog\u002Fcovers\u002Fchoisir-reverse-proxy-vps-caddy-traefik-nginx-poster.svg",1793146101255]