[{"data":1,"prerenderedAt":236},["ShallowReactive",2],{"seo-verification":3,"blog-alojar-immich-en-un-vps-ma-es":6,"promo-bar-likely":235},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-alojar-immich-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":176,"ctaBody":177,"ctaButton":178,"ctaUrl":179,"relatedPosts":180},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.",11,1,false,"2026-03-30T00:00:00+00:00","2026-09-23T15:23:17+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,152,155],{"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 `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)",{"type":38,"title":153,"body":154},"Actualizar Immich con seguridad: prevenir la pérdida de datos","Las actualizaciones menores de Immich — de v3.1.x a v3.2.x, por ejemplo — no son siempre inofensivas. El issue #31485 documentó la desaparición silenciosa de 23 923 registros tras actualizar de v3.1.0 a v3.2.0: los archivos estaban presentes en disco pero ausentes de la base de datos, a pesar de que las migraciones se declararon exitosas. El issue #29983 revela un problema de coexistencia entre la extensión antigua `pgvecto.rs` y VectorChord en instancias que migraron antes de la v3: las columnas residuales `vectors.vector(512)` provocan el error `could not access file '$libdir\u002Fvectors'` en los registros secundarios, inutilizando el servicio de machine learning. La buena práctica es la misma en ambos casos: haga una copia de seguridad antes de actualizar, verifique el estado de las extensiones, fije la versión de destino y conserve la copia de seguridad varias semanas tras la actualización. En Immich v3.2.2 (versión estable actual), VectorChord ha reemplazado a pgvecto.rs como biblioteca vectorial — cualquier instancia que aún lleve la extensión `vectors` debe seguir el procedimiento de limpieza descrito a continuación.",{"type":55,"title":156,"steps":157},"Procedimiento de actualización segura v3.x → v3.y",[158,161,164,167,170,173],{"title":159,"body":160},"Volcado completo de PostgreSQL ANTES de actualizar","Exporte la base de datos completa antes de realizar ningún cambio: `docker exec immich_postgres pg_dumpall -c -U postgres > backup-$(date +%Y%m%d).sql`. Este archivo con marca de fecha le permite restaurar el estado exacto del día, incluidos los registros que podrían desaparecer silenciosamente durante una migración defectuosa como la del issue #31485.",{"title":162,"body":163},"Verificar la extensión vectorial activa","Antes de extraer las nuevas imágenes, compruebe qué extensiones están cargadas: `docker exec immich_postgres psql -U postgres -c \"SELECT extname FROM pg_extension;\"`. Si la lista contiene `vectors` (pgvecto.rs), está afectado por el issue #29983 y debe limpiar la extensión antigua antes de continuar.",{"title":165,"body":166},"Si `vectors` está presente: procedimiento VectorChord","Detenga la pila (`docker compose down`) y ejecute la limpieza en el servicio `database`: `docker exec immich_postgres psql -U postgres -c \"DROP EXTENSION IF EXISTS vectors CASCADE;\"`. Descargue las nuevas imágenes (`docker compose pull`) y reinicie el conjunto completo. Asegúrese de reiniciar el contenedor `machine_learning` — no solo `immich_server` —, ya que es el que carga la biblioteca vectorial en memoria.",{"title":168,"body":169},"Fijar un tag concreto en `.env`","En su archivo `.env`, defina `IMMICH_VERSION=v3.2.2` (o la versión estable de destino) en lugar de `latest` o un tag flotante `v3`. Un tag concreto garantiza que `docker compose pull` no extraiga una versión inesperada y que sepa exactamente qué está ejecutando en producción.",{"title":171,"body":172},"Verificar los medios tras la migración","Una vez reiniciada la pila, abra la interfaz web y vaya a **Administración → Tareas**. Ejecute un `Scan Library` para detectar posibles archivos huérfanos. Si el recuento de medios visibles difiere del anterior a la actualización, detenga Immich de inmediato, restaure el volcado SQL (`psql -U postgres \u003C backup-YYYYMMDD.sql`) y reindexe (`immich admin reindex`) antes de reiniciar.",{"title":174,"body":175},"Conservar la copia de seguridad 30 días tras la actualización","No elimine el archivo de volcado hasta al menos 30 días después de la actualización. Algunas pérdidas de datos (cf. issue #31485) solo se detectan tras varios días de uso normal, especialmente cuando los álbumes o los enlaces compartidos revelan medios desaparecidos. Una copia de seguridad eliminada demasiado pronto es irrecuperable.","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",[181,199,217],{"id":182,"slug":183,"slugs":184,"title":188,"excerpt":189,"readTime":190,"views":18,"isPinned":19,"noindex":19,"publishedAt":191,"updatedAt":192,"category":193,"categories":194,"featuredImage":30,"bgImage":31,"posterImage":196,"relatedSolution":197},71,"alojar-nextcloud-en-su-propio-vps",{"fr":185,"en":186,"ar":187,"es":183},"heberger-nextcloud","hosting-nextcloud-on-your-own-vps","استضافة-nextcloud-على-خادمك-الـvps-الخاص","Alojar Nextcloud en VPS: guía NC 35, PHP 8.3 y MariaDB 11","Aloje Nextcloud en un VPS: Docker Compose, Redis, copia MariaDB, subidas de más de 40 GB tras Cloudflare y una alternativa a Office 2021.",20,"2026-04-10T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[195],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":198},"nextcloud",{"id":200,"slug":201,"slugs":202,"title":206,"excerpt":207,"readTime":208,"views":18,"isPinned":19,"noindex":19,"publishedAt":209,"updatedAt":210,"category":211,"categories":212,"featuredImage":30,"bgImage":31,"posterImage":214,"relatedSolution":215},72,"alojar-ghost-en-un-vps",{"fr":203,"en":204,"ar":205,"es":201},"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.",10,"2026-04-09T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[213],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":216},"ghost",{"id":218,"slug":219,"slugs":220,"title":224,"excerpt":225,"readTime":23,"views":226,"isPinned":19,"noindex":19,"publishedAt":227,"updatedAt":228,"category":229,"categories":230,"featuredImage":30,"bgImage":31,"posterImage":232,"relatedSolution":233},73,"alojar-wordpress-en-un-vps",{"fr":221,"en":222,"ar":223,"es":219},"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.",0,"2026-04-08T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[231],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":234},"wordpress",true,1794270532190]