[{"data":1,"prerenderedAt":209},["ShallowReactive",2],{"seo-verification":3,"blog-alojar-immich-en-un-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-alojar-immich-en-un-vps-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":35,"sections":36,"ctaTitle":152,"ctaBody":153,"ctaButton":154,"ctaUrl":155,"relatedPosts":156},82,"alojar-immich-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"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.",8,1,false,"2026-03-30T00:00:00+00:00","2026-09-07T11:26:10+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\u002Fheberger-immich-poster.svg",{"categorySlug":25,"appSlug":34},"immich","Immich es una alternativa autoalojada a Google Photos, con copia de seguridad automática desde el móvil, reconocimiento facial y búsqueda inteligente por IA. Instalarlo en su propio VPS significa repatriar miles de fotos personales fuera de las nubes publicitarias, conservando a la vez una experiencia moderna y fluida. Con la versión 3.0.0, la arquitectura de búsqueda vectorial se ha simplificado: `pgvecto.rs` se sustituye por los índices HNSW nativos de PostgreSQL, lo que facilita la actualización — siempre que se respete la ruta de migración obligatoria.",[37,41,51,54,76,79,82,85,100,103,106,124],{"type":38,"title":39,"body":40},"h2","Por qué autoalojar Immich en un VPS","Sus fotos están entre los datos más sensibles que confía a una nube: rostros, lugares, hábitos, geolocalización. Immich reproduce la experiencia de Google Photos, aplicaciones móviles incluidas, pero sobre una infraestructura que le pertenece. Desde la versión 3.0.0, su stack se ha aligerado: la extensión de terceros `pgvecto.rs` se ha eliminado en favor de los índices HNSW nativos de PostgreSQL (`pgvector`), lo que reduce las dependencias y simplifica las copias de seguridad de la base de datos. Un VPS dedicado le permite aislar el exigente servicio de ML, dimensionar el almacenamiento según su fototeca y evitar que sus imágenes sirvan para entrenar modelos de terceros. Usted sigue siendo dueño del cifrado, de las copias de seguridad y del acceso.",{"type":42,"title":43,"items":44},"ul","Lo que aporta autoalojar Immich",[45,46,47,48,49,50],"Copia de seguridad automática desde iOS y Android en cuanto se toma una foto, como una nube privada.","Reconocimiento facial y búsqueda semántica ejecutados en su servidor, sin envío a terceros.","Capacidad igual a la de su disco VPS: sin cuota impuesta, sin facturación por GB.","Compartición de álbumes mediante un enlace seguro que usted controla y revoca en cualquier momento.","Soporte multiusuario: cada miembro del hogar o del equipo tiene su biblioteca aislada.","Metadatos EXIF, mapas y líneas de tiempo conservados localmente, sin explotación publicitaria.",{"type":38,"title":52,"body":53},"Requisitos de hardware y software","Immich es el más exigente de esta serie por su servicio de machine learning. Cuente con 4 GB de RAM como mínimo, pero se recomiendan de 6 a 8 GB si el reconocimiento facial procesa una fototeca extensa. De 2 a 4 vCPU permiten digerir la indexación inicial sin bloquear la interfaz. El almacenamiento es el factor clave: prevea con holgura, porque una biblioteca familiar supera rápidamente los 100 GB; un VPS con disco ampliable es lo ideal. En cuanto al software: Docker y `docker compose` v2, un dominio (`photos.votreentreprise.com`) y suficiente espacio de swap para absorber los picos del modelo de ML durante la primera importación.",{"type":55,"title":56,"steps":57},"steps","Desplegar Immich paso a paso",[58,61,64,67,70,73],{"title":59,"body":60},"Preparar el VPS y el almacenamiento","Actualice el sistema, instale Docker y cree después un punto de montaje dedicado a los medios, por ejemplo `\u002Fmnt\u002Fphotos`, separado del disco del sistema. Active al menos 2 GB de swap para el servicio de machine learning.",{"title":62,"body":63},"Obtener el compose oficial y el .env","Descargue el `docker-compose.yml` y el archivo `example.env` del repositorio de Immich con `wget`. Renómbrelo a `.env` y defina después `UPLOAD_LOCATION=\u002Fmnt\u002Fphotos`, la contraseña de la base de datos y `DB_DATA_LOCATION` en un volumen persistente.",{"title":65,"body":66},"Comprender los tres servicios (v3+)","Desde la versión 3.0.0, la stack arranca `immich-server`, `immich-machine-learning` y `database` (PostgreSQL con `pgvector`). Redis ya no es un servicio separado — va integrado en el servidor Immich. La extensión `pgvecto.rs` se ha eliminado: no utilice la antigua imagen de base de datos `ghcr.io\u002Fimmich-app\u002Fpostgres`, sustituida por la imagen oficial de PostgreSQL 17 con `pgvector`.",{"title":68,"body":69},"Arrancar la pila y crear el administrador","Ejecute `docker compose up -d` y espere a que se descarguen las imágenes de ML, que son voluminosas. Abra el puerto `2283` a nivel interno y cree después la cuenta de administrador mediante el asistente web, antes de invitar a otros usuarios.",{"title":71,"body":72},"Proteger con un reverse proxy y SSL","Coloque Caddy delante del servidor: `photos.votreentreprise.com { reverse_proxy immich-server:2283 }`. Aumente el tamaño máximo de subida del proxy (`client_max_body_size` en Nginx), porque los vídeos pueden ser pesados; de lo contrario, los envíos desde el móvil fallan.",{"title":74,"body":75},"Configurar la aplicación móvil","Instale Immich desde la App Store o la Play Store, indique `https:\u002F\u002Fphotos.votreentreprise.com` como URL del servidor, inicie sesión y active después la copia de seguridad automática del carrete para replicar de forma continua sus nuevas fotos.",{"type":77,"body":78},"tip","Durante la primera importación masiva, lance la generación de miniaturas y de embeddings de ML en un periodo de baja actividad y vigile la RAM con `docker stats`. Si el servicio de machine learning se satura, puede apuntarlo temporalmente al modelo más ligero en los ajustes y volver después a un modelo más preciso una vez terminada la indexación inicial. Así evita que el VPS se hunda bajo la carga de ese primer escaneo.",{"type":77,"title":80,"body":81},"¿Poca RAM? Ejecute Immich sin el contenedor de IA","Si su VPS solo tiene de 2 a 4 GB de RAM, retire el servicio immich-machine-learning del archivo compose. Immich arranca perfectamente sin él: la copia de seguridad móvil, la línea de tiempo, los álbumes, la compartición, la vista de mapa y la búsqueda manual siguen funcionando todos — solo pierde el reconocimiento facial automático y la búsqueda inteligente en lenguaje natural. Vuelva a añadir el contenedor de machine learning más adelante, cuando pase a un VPS más grande, e Immich indexará en ese momento su biblioteca existente para la búsqueda por IA.",{"type":38,"title":83,"body":84},"Resolver los errores de machine learning","El contenedor `immich-machine-learning` puede volverse inaccesible en silencio por dos motivos distintos: un error de red de Docker o una parada silenciosa por falta de memoria RAM. Los síntomas típicos son entradas como `Machine learning request to 'http:\u002F\u002Fimmich-machine-learning:3003' failed: fetch failed` en los registros del servidor, o tareas bloqueadas del tipo `Unable to run job handler (AssetDetectFaces)`. El diagnóstico lleva menos de cinco minutos.",{"type":55,"title":86,"steps":87},"Diagnosticar y corregir el servicio de ML",[88,91,94,97],{"title":89,"body":90},"Comprobar la red de Docker","Ejecute `docker network inspect immich_default` y localice si `immich-server` e `immich-machine-learning` figuran ambos en la lista `Containers`. Si falta uno, revise el campo `networks` de su `docker-compose.yml`: ambos servicios deben referenciar la misma red.",{"title":92,"body":93},"Detectar un OOM silencioso","Ejecute `dmesg | grep -i oom` para ver si el kernel ha matado un proceso. Cada OOM kill menciona el nombre del contenedor y la cantidad de memoria solicitada. Un resultado vacío no confirma la ausencia de un OOM si el sistema se ha reiniciado desde el incidente.",{"title":95,"body":96},"Consultar los registros del contenedor de ML","Ejecute `docker logs immich-machine-learning --tail 50` para observar las últimas líneas. Una parada limpia o un error de carga del modelo aparecerá ahí con más claridad que un OOM silencioso del kernel.",{"title":98,"body":99},"Reiniciar el servicio de ML","Si la red es correcta y la RAM es suficiente, reinicie únicamente ese servicio con `docker compose restart immich-machine-learning` y observe si las tareas se reanudan en los minutos siguientes mediante `docker logs -f immich-machine-learning`.",{"type":77,"title":101,"body":102},"VPS ≤ 2 GB: desactivar el machine learning","El servicio de ML acumula CLIP, el reconocimiento facial y el OCR, es decir, unos 2 GB de RAM en el pico. En un VPS con solo 2 GB, añada `MACHINE_LEARNING_ENABLED=false` a su archivo `.env` y reinicie después la pila con `docker compose up -d`. La copia de seguridad móvil, los álbumes y la búsqueda manual siguen funcionando. El reconocimiento facial y la búsqueda por IA se activarán en cuanto pase a un VPS con 4 GB de RAM o más.",{"type":38,"title":104,"body":105},"Migrar de la v2.4.x a la v3.0.0: la ruta obligatoria","La versión 3.0.0 de Immich es una ruptura arquitectónica: `pgvecto.rs` desaparece y los índices vectoriales se reconstruyen de forma nativa con `pgvector` (HNSW). Esta reconstrucción es **bloqueante** — la base de datos recalcula todos los vectores de su fototeca antes de volver a poner el servidor en línea, lo que puede llevar de varios minutos a varias horas según el tamaño de la biblioteca. Antes de saltar directamente a la v3, debe pasar obligatoriamente por la versión **1.132.3**: es el punto de bisagra que prepara la migración de los índices. Partir de una versión anterior sin pasar por ese hito provoca un error de migración de la base de datos y bloquea el arranque del servidor.",{"type":55,"title":107,"steps":108},"Procedimiento de actualización v2.4.x → v3",[109,112,115,118,121],{"title":110,"body":111},"Hacer una copia de seguridad de la base de datos antes que nada","Antes de cualquier actualización, exporte la base con `docker exec -t immich_postgres pg_dumpall -c -U postgres > backup_immich_avant_v3.sql`. Conserve también la carpeta `UPLOAD_LOCATION`. Una migración HNSW fallida a mitad de camino y sin copia de seguridad deja la base en un estado incoherente.",{"title":113,"body":114},"Subir primero a la versión 1.132.3","Modifique `docker-compose.yml` para utilizar la versión `v1.132.3` (tag exacto) en `immich-server` y `immich-machine-learning`. Ejecute `docker compose pull && docker compose up -d`. Deje que el servidor arranque por completo y compruebe que los trabajos de fondo se reanudan sin error en `docker logs immich-server`.",{"title":116,"body":117},"Pasar a la imagen oficial de PostgreSQL (solo v3)","La v3 utiliza la imagen oficial de PostgreSQL 17 con `pgvector`, y ya no la imagen personalizada `ghcr.io\u002Fimmich-app\u002Fpostgres`. En el `docker-compose.yml` que se entrega con la v3, el servicio `database` apunta a `docker.io\u002Ftensorchord\u002Fpgvecto-rs:pg14-v0.2.0` sustituido por `postgres:17-bookworm` con la extensión `pgvector`. Utilice el archivo compose oficial de la v3 y no recicle el archivo de la v2.",{"title":119,"body":120},"Actualizar a la v3.0.0 y esperar la reindexación HNSW","Sustituya los tags por `v3.0.0` y descargue las imágenes: `docker compose pull && docker compose up -d`. La migración HNSW arranca automáticamente en el primer lanzamiento. Durante esta fase, el servidor sigue disponible, pero la búsqueda inteligente y el reconocimiento facial quedan suspendidos. Siga el progreso en `docker logs -f immich-server`: una línea `Finished migration` confirma el final. En una fototeca de 50 000 fotos, cuente entre 10 y 30 minutos según el número de vCPU asignados.",{"title":122,"body":123},"Comprobar los trabajos de fondo tras la migración","Abra la interfaz web, vaya a **Administración → Tareas** y confirme que ningún trabajo está en estado de error. Si hay tareas `Smart Search` o `Face Detection` bloqueadas, relánzelas desde la interfaz. Los nuevos vectores HNSW se recalculan una sola vez: las importaciones posteriores se indexan con normalidad.",{"type":125,"title":126,"headers":127,"rows":131},"comparison","Immich v2 frente a v3: lo que cambia en la práctica",[128,129,130],"Aspecto","v2.4.x","v3.0.0",[132,136,140,144,148],[133,134,135],"Extensión vectorial","`pgvecto.rs` (imagen personalizada)","`pgvector` HNSW nativo (PostgreSQL oficial)",[137,138,139],"Servicios Docker","4 (server, ML, Redis, DB)","3 (server, ML, DB — Redis integrado)",[141,142,143],"Actualización directa desde v2","No — hay que pasar obligatoriamente por v1.132.3","Sí desde v1.132.3",[145,146,147],"Copia de seguridad de la base","Depende de la imagen personalizada","Compatible con `pg_dump` estándar",[149,150,151],"Reindexación al arranque","No","Sí (bloqueante, duración según el tamaño)","Recupere el control de su biblioteca de fotos","El VPS Cloud de ServOrbit aporta la RAM, el almacenamiento ampliable y Docker listos para Immich, su servicio de machine learning y su base de datos vectorial. Respalde sus fotos de forma continua en un servidor que le pertenece solo a usted.","Desplegar Immich en un VPS Cloud","\u002Fvps-cloud",[157,175,191],{"id":158,"slug":159,"slugs":160,"title":164,"excerpt":165,"readTime":166,"views":167,"isPinned":19,"publishedAt":168,"updatedAt":21,"category":169,"categories":170,"featuredImage":30,"bgImage":31,"posterImage":172,"relatedSolution":173},71,"alojar-nextcloud-en-su-propio-vps",{"fr":161,"en":162,"ar":163,"es":159},"heberger-nextcloud","hosting-nextcloud-on-your-own-vps","استضافة-nextcloud-على-خادمك-الـvps-الخاص","Alojar Nextcloud en VPS: guía completa NC 34 y seguridad","Despliegue Nextcloud 34.0.2 en su VPS con Docker y Redis. Guía completa: apps ausentes en NC 34.0.0, restricción PostgreSQL oc_filecache_extended y CVE de 2FA.",11,0,"2026-04-10T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[171],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":174},"nextcloud",{"id":176,"slug":177,"slugs":178,"title":182,"excerpt":183,"readTime":17,"views":167,"isPinned":19,"publishedAt":184,"updatedAt":21,"category":185,"categories":186,"featuredImage":30,"bgImage":31,"posterImage":188,"relatedSolution":189},72,"alojar-ghost-en-un-vps",{"fr":179,"en":180,"ar":181,"es":177},"heberger-ghost","hosting-ghost-on-your-own-vps","استضافة-ghost-على-خادمك-الـvps-الخاص","Alojar Ghost en un VPS: guía completa 2026","Despliegue Ghost v6 en su VPS con Caddy, MySQL, Ghost CLI y Stripe Tax: instalación, reverse proxy TLS, actualización y errores de arranque frecuentes.","2026-04-09T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[187],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":190},"ghost",{"id":192,"slug":193,"slugs":194,"title":198,"excerpt":199,"readTime":200,"views":167,"isPinned":19,"publishedAt":201,"updatedAt":202,"category":203,"categories":204,"featuredImage":30,"bgImage":31,"posterImage":206,"relatedSolution":207},73,"alojar-wordpress-en-un-vps",{"fr":195,"en":196,"ar":197,"es":193},"heberger-wordpress","host-wordpress-on-your-own-vps","استضافة-wordpress-على-خادم-vps-الخاص-بك","Alojar WordPress en su propio VPS","Aloje WordPress en su VPS para un rendimiento y un control máximos: Docker, MariaDB, caché, reverse proxy y SSL.",3,"2026-04-08T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[205],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":208},"wordpress",1789664999096]