{"id":33393,"date":"2026-07-16T09:42:00","date_gmt":"2026-07-16T07:42:00","guid":{"rendered":"https:\/\/contabo.com\/blog\/?p=33393"},"modified":"2026-08-17T11:20:22","modified_gmt":"2026-08-17T09:20:22","slug":"autoalojar-immich-v3-vps","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/es\/autoalojar-immich-v3-vps\/","title":{"rendered":"C\u00f3mo autoalojar Immich v3 en un VPS con Docker Compose"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>En resumen.<\/strong> Immich corre como un stack de cuatro contenedores: servidor, PostgreSQL, Redis y machine learning. El m\u00ednimo oficial es 6 GB de RAM y lo recomendado son 8 GB. Esta gu\u00eda usa un Cloud VPS 8 de Contabo con Ubuntu 22.04 LTS, Docker Compose y Caddy como proxy inverso con certificado Let\u2019s Encrypt autom\u00e1tico. Immich escucha internamente en el puerto 2283 y hacia fuera solo quedan abiertos el 80 y el 443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta gu\u00eda te lleva por el proceso completo de desplegar Immich, una alternativa de c\u00f3digo abierto a Google Photos, en un Cloud VPS 8 de Contabo con Docker Compose. Cubre el aprovisionamiento del VPS, la instalaci\u00f3n de Docker, el stack de Compose de Immich, un proxy inverso Caddy con SSL autom\u00e1tico, la migraci\u00f3n a v3 y la configuraci\u00f3n de la app m\u00f3vil.<\/p>\n\n\n\n<h2 id=\"h-requisitos\" class=\"wp-block-heading\">Requisitos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un despliegue de Immich en Docker se apoya en un stack peque\u00f1o de contenedores que trabajan juntos: el servidor principal, PostgreSQL, Redis y un contenedor de machine learning. El VPS necesita margen suficiente para correrlos todos sin que compitan por recursos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>VPS:<\/strong> Cloud VPS 8 de Contabo (8 vCores, 24 GB de RAM, 300 GB SSD) o un plan equivalente con al menos 6 GB de RAM. Con eso todos los contenedores corren con holgura y queda capacidad de sobra conforme crece la biblioteca de fotos.<\/li>\n\n\n\n<li><strong>Sistema operativo:<\/strong> Ubuntu 22.04 LTS o m\u00e1s reciente<\/li>\n\n\n\n<li><strong>Docker Engine<\/strong> y el plugin de Docker Compose<\/li>\n\n\n\n<li>Un dominio registrado que apunte al VPS mediante un registro A<\/li>\n\n\n\n<li>Un proxy inverso para terminar HTTPS. En esta gu\u00eda se usa Caddy de principio a fin, porque gestiona los certificados por su cuenta<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-paso-1-aprovisiona-y-asegura-tu-vps\" class=\"wp-block-heading\">Paso 1: aprovisiona y asegura tu VPS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use up and down arrow keys to resize the meta box pane.Toggle panel: Yoast SEO Premium<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/contabo.com\/blog\/wp-admin\/post.php?post=33368&amp%3Baction=edit#wpseo-meta-section-content\">SEO<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/contabo.com\/blog\/wp-admin\/post.php?post=33368&amp%3Baction=edit#wpseo-meta-section-readability\">Readability<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/contabo.com\/blog\/wp-admin\/post.php?post=33368&amp%3Baction=edit#wpseo-meta-section-inclusive-language\">Inclusive language<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/contabo.com\/blog\/wp-admin\/post.php?post=33368&amp%3Baction=edit#wpseo-meta-section-schema\">Schema<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/contabo.com\/blog\/wp-admin\/post.php?post=33368&amp%3Baction=edit#wpseo-meta-section-social\">Social<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/contabo.com\/blog\/wp-admin\/post.php?post=33368&amp%3Baction=edit#wpseo-meta-section-video\">Video<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Optimize your content for discovery or get new content suggestions.Get content suggestions<\/p>\n\n\n\n<h2 id=\"h-focus-keyphrase\" class=\"wp-block-heading\">Focus keyphrase<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Focus keyphrase<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use the main word or phrase you want your content found for across search, AI, and beyond.&nbsp;<a target=\"_blank\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/yoa.st\/focus-keyword?php_version=8.1&amp;platform=wordpress&amp;platform_version=7.0.4&amp;software=premium&amp;software_version=28.2&amp;days_active=1386&amp;user_language=en_US\">Learn more about best practices for keyphrases.(Opens in a new browser tab)<\/a>Keyphrase synonyms<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Add synonyms of your focus keyphrase to reduce repetition of your focus keyphrase.&nbsp;<a target=\"_blank\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/yoa.st\/kd1?php_version=8.1&amp;platform=wordpress&amp;platform_version=7.0.4&amp;software=premium&amp;software_version=28.2&amp;days_active=1386&amp;user_language=en_US\">Read more about synonyms.(Opens in a new browser tab)<\/a><\/p>\n\n\n\n<h2 id=\"h-search-appearance\" class=\"wp-block-heading\">Search appearance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Determine how your post should look in the search results.Google preview<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MobileGoogle preview: Switch to desktop preview. Currently showing mobile preview.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desktop<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Url preview:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2021\/01\/favicon-128x128-1.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Contabo Blogcontabo.com<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SEO title preview:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3mo autoalojar Immich v3 en un VPS con Docker Compose | Contabo Blog<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Meta description preview:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aug 14, 2026&nbsp;\uff0d&nbsp;Gu\u00eda paso a paso para instalar Immich v3 en un VPS con Docker Compose. Requisitos de hardware, instalaci\u00f3n, proxy inverso con SSL y migraci\u00f3n desde v2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SEO titleInsert variableGenerate SEO title<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Title Page Separator Site title<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Slug<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Meta descriptionInsert variableGenerate meta description<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gu\u00eda paso a paso para instalar Immich v3 en un VPS con Docker Compose. Requisitos de hardware, instalaci\u00f3n, proxy inverso con SSL y migraci\u00f3n desde v2.<\/p>\n\n\n\n<h2 id=\"h-premium-seo-analysisgoodimmich\" class=\"wp-block-heading\">Premium SEO analysisGoodImmich<\/h2>\n\n\n\n<h2 id=\"h-add-related-keyphrase\" class=\"wp-block-heading\">Add related keyphrase<\/h2>\n\n\n\n<h2 id=\"h-content-blocksnew\" class=\"wp-block-heading\">Content blocksNew<\/h2>\n\n\n\n<h2 id=\"h-internal-linking-suggestions\" class=\"wp-block-heading\">Internal linking suggestions<\/h2>\n\n\n\n<h2 id=\"h-cornerstone-content\" class=\"wp-block-heading\">Cornerstone content<\/h2>\n\n\n\n<h2 id=\"h-advanced\" class=\"wp-block-heading\">Advanced<\/h2>\n\n\n\n<h2 id=\"h-insights\" class=\"wp-block-heading\">Insights<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PostBlock<\/p>\n\n\n\n<h2 id=\"h-list-item\" class=\"wp-block-heading\">List Item<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An individual item within a list.<\/p>\n\n\n\n<h2 id=\"h-color\" class=\"wp-block-heading\">Color<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Text<\/p>\n\n\n\n<h2 id=\"h-typography\" class=\"wp-block-heading\">Typography<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Font size<\/p>\n\n\n\n<h2 id=\"h-advanced-0\" class=\"wp-block-heading\">Advanced<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Skip to the selected blockOpen publish panel<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de tocar el primer contenedor, el servidor necesita un pu\u00f1ado de pasos est\u00e1ndar de endurecimiento. Saltarse esta etapa es una de las razones m\u00e1s comunes por las que los servicios autoalojados terminan comprometidos, porque un VPS reci\u00e9n aprovisionado queda alcanzable desde internet en el momento en que arranca.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Contrata el plan Cloud VPS 8 y elige Ubuntu 22.04 LTS como imagen base durante el aprovisionamiento. El servidor suele quedar listo en pocos minutos y las credenciales de root llegan despu\u00e9s por correo.<\/li>\n\n\n\n<li>Genera localmente un par de llaves SSH con <code>ssh-keygen<\/code> y sube la llave p\u00fablica al VPS durante la instalaci\u00f3n, o agr\u00e9gala despu\u00e9s desde el panel de control de Contabo. Una vez que confirmes que el acceso por llave funciona, desactiva la autenticaci\u00f3n por contrase\u00f1a en <code>\/etc\/ssh\/sshd_config<\/code> con <code>PasswordAuthentication no <\/code>y reinicia el servicio SSH.<\/li>\n\n\n\n<li>Configura UFW para dejar abiertos solo los puertos necesarios: SSH (22), HTTP (80) y HTTPS (443). Ejecuta <code>sudo ufw allow OpenSSH, sudo ufw allow http <\/code>y <code>sudo ufw allow https<\/code>, y luego activa el firewall con <code>sudo ufw enable<\/code>. El puerto 2283, donde escucha Immich, se queda cerrado a internet, porque todo el tr\u00e1fico externo pasa por el proxy inverso.<\/li>\n\n\n\n<li>Crea un usuario sin privilegios de root con <code>adduser <\/code>y <code>usermod -aG sudo<\/code>, y c\u00e1mbiate a esa cuenta para el resto de la instalaci\u00f3n. Correr Docker como root ampl\u00eda el da\u00f1o si alg\u00fan d\u00eda un contenedor queda comprometido.<\/li>\n<\/ol>\n\n\n\n<h2 id=\"h-paso-2-instala-docker-y-docker-compose\" class=\"wp-block-heading\">Paso 2: instala Docker y Docker Compose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Instala Docker Engine y el plugin de Compose directamente desde el repositorio oficial de Docker y no desde los paquetes m\u00e1s viejos que trae Ubuntu, porque esos suelen quedarse varias versiones atr\u00e1s:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y\n\nsudo apt install ca-certificates curl gnupg -y\n\nsudo install -m 0755 -d \/etc\/apt\/keyrings\n\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg\n\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.gpg\n\necho \"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\") stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null\n\nsudo apt update\n\nsudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y\n\nsudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cierra sesi\u00f3n y vuelve a entrar para que la nueva membres\u00eda de grupo tome efecto. Verifica la instalaci\u00f3n con <code>docker --version<\/code> y d<code>ocker compose version<\/code>, y los dos deber\u00edan reportar n\u00fameros de versi\u00f3n estables actuales.<\/p>\n\n\n\n<h2 id=\"h-paso-3-despliega-immich-con-docker-compose\" class=\"wp-block-heading\">Paso 3: despliega Immich con Docker Compose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Con Docker en su lugar, la instalaci\u00f3n de Immich sigue la configuraci\u00f3n oficial de Compose. Crea un directorio para el despliegue y descarga los archivos necesarios del release m\u00e1s reciente en GitHub:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir ~\/immich-app &amp;&amp; cd ~\/immich-app\n\ncurl -o docker-compose.yml https:\/\/github.com\/immich-app\/immich\/releases\/latest\/download\/docker-compose.yml\n\ncurl -o .env https:\/\/github.com\/immich-app\/immich\/releases\/latest\/download\/example.env<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Abre el archivo <code>.env<\/code> y define los siguientes valores antes de levantar el stack:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>UPLOAD_LOCATION=.\/library\n\nDB_DATA_LOCATION=.\/postgres\n\nDB_PASSWORD=a-strong-generated-password\n\nIMMICH_VERSION=release\n\nTZ=Etc\/UTC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Genera <code>DB_PASSWORD<\/code> en lugar de escribir algo a mano y qu\u00e9date en caracteres alfanum\u00e9ricos, para que Docker no interprete mal los caracteres especiales en el archivo de entorno. Con los valores puestos, levanta el stack:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose up -d<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ejecuta <code>docker compose ps<\/code> para confirmar que cada contenedor llega a un estado sano. En el primer arranque eso suele tardar uno o dos minutos, mientras la base de datos inicializa su esquema. Immich queda entonces accesible en <code>http:\/\/server-ip:2283<\/code>, aunque para el uso diario todav\u00eda necesita un dominio y un certificado SSL.<\/p>\n\n\n\n<h2 id=\"h-paso-4-monta-un-proxy-inverso-con-ssl-caddy\" class=\"wp-block-heading\">Paso 4: monta un proxy inverso con SSL (Caddy)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Caddy solicita y renueva los certificados de Let\u2019s Encrypt de forma autom\u00e1tica y te quita una tarea de mantenimiento que otros proxies resuelven a mano con Certbot. Instala Caddy desde su repositorio APT oficial y luego edita <code>\/etc\/caddy\/Caddyfile<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>photos.example.com {\n\n&nbsp;&nbsp;&nbsp; reverse_proxy localhost:2283 {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header_up X-Forwarded-Proto {scheme}\n\n&nbsp;&nbsp;&nbsp; }\n\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reemplaza <code>photos.example.com<\/code> por el dominio que apunta al VPS mediante su registro A de DNS, y recarga Caddy para aplicar el cambio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload caddy<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Caddy pide el certificado del dominio autom\u00e1ticamente en la primera petici\u00f3n entrante. Todo el tr\u00e1fico del puerto 2283 pasa por HTTPS en el puerto 443, y como UFW solo permite los puertos 80 y 443 desde fuera, el puerto real de Immich queda inaccesible de forma directa.<\/p>\n\n\n\n<h2 id=\"h-paso-5-migra-de-immich-v2-a-v3\" class=\"wp-block-heading\">Paso 5: migra de Immich v2 a v3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El release v3 concentra cambios que rompen compatibilidad en la API y en el esquema de la base de datos. Las migraciones no est\u00e1n pensadas para revertirse de forma limpia una vez que corrieron. Por eso conviene siempre leer las notas de release oficiales de v3 antes de empezar, sobre todo en despliegues con integraciones de terceros.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Respalda la base de datos PostgreSQL y el directorio de subidas antes de tocar nada. Las migraciones de esquema no se pueden revertir limpiamente despu\u00e9s de correr. Usa <code>docker exec -t immich_postgres pg_dumpall -c -U postgres &gt; immich_db_backup.sql<\/code> y archiva por separado el directorio de <code>UPLOAD_LOCATION<\/code>.<\/li>\n\n\n\n<li>Edita <code>.env<\/code> y define <code>IMMICH_VERSION=v3<\/code>, o fija una etiqueta concreta como <code>v3.0.0<\/code>. Es buena pr\u00e1ctica repasar el resto de las entradas de <code>.env<\/code> contra sus comentarios, porque a algunos despliegues les conviene mover las rutas a un volumen de datos dedicado.<\/li>\n\n\n\n<li>Descarga las im\u00e1genes actualizadas y reinicia el stack con <code>docker compose pull &amp;&amp; docker compose up -d<\/code>. Con eso Docker baja las im\u00e1genes actualizadas de servidor, base de datos y machine learning antes de recrear los contenedores.<\/li>\n\n\n\n<li>Observa los registros con <code>docker compose logs -f immich-server<\/code> hasta que pasen los health checks, y confirma despu\u00e9s que la interfaz web carga y que los \u00e1lbumes y assets existentes se ven. Revisa contra la documentaci\u00f3n actual de la API v3 cualquier herramienta de terceros, script de respaldo o integraci\u00f3n que llame directamente a la API de Immich, para detectar cambios que rompan compatibilidad.<\/li>\n<\/ol>\n\n\n\n<h2 id=\"h-paso-6-configura-la-app-movil-y-el-respaldo\" class=\"wp-block-heading\">Paso 6: configura la app m\u00f3vil y el respaldo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que el servidor es accesible por HTTPS, la app de Immich para iOS o Android se conecta a \u00e9l ingresando la URL del servidor en la pantalla de inicio de sesi\u00f3n, por ejemplo <code>https:\/\/photos.example.com<\/code>. Despu\u00e9s de entrar con la cuenta de administrador que creaste en la primera configuraci\u00f3n, activa el respaldo en segundo plano desde los ajustes de la app. Las fotos y videos nuevos se suben entonces de forma autom\u00e1tica, sin que tengas que abrir la app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En las dos plataformas, el respaldo en segundo plano depende de que el sistema operativo no mate el proceso de la app de forma agresiva cuando est\u00e1 inactiva. Revisa los ajustes de optimizaci\u00f3n de bater\u00eda para la app de Immich y excl\u00fayela de cualquier funci\u00f3n autom\u00e1tica de hibernaci\u00f3n de apps que traiga el fabricante de tu celular. Fabricantes como Samsung y Xiaomi aplican restricciones de bater\u00eda adicionales por encima del Android est\u00e1ndar y pueden detener las subidas en segundo plano en silencio si las dejas en los valores predeterminados. Normalmente se resuelve si permites uso de bater\u00eda sin restricciones para la app y habilitas datos en segundo plano tanto por Wi-Fi como por red m\u00f3vil, en caso de que quieras sincronizar fuera de casa.<\/p>\n\n\n\n<h2 id=\"h-preguntas-frecuentes-instalar-immich\" class=\"wp-block-heading\">Preguntas frecuentes: instalar Immich<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1786697690338\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo actualizo Immich a v3?<\/strong> <p class=\"schema-faq-answer\">Define <code>IMMICH_VERSION=v3<\/code> (o una etiqueta concreta como <code>v3.0.0<\/code>) en el archivo <code>.env<\/code> y ejecuta despu\u00e9s docker compose pull seguido de <code>docker compose up -d<\/code>. Respalda antes la base de datos y el directorio de subidas, y revisa las notas de release oficiales de v3 por si hay cambios que rompan compatibilidad y de los que dependan integraciones de terceros.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1786697697922\"><strong class=\"schema-faq-question\">\u00bfCu\u00e1nta RAM necesita Immich como m\u00ednimo?<\/strong> <p class=\"schema-faq-answer\">El m\u00ednimo oficial es 6 GB de RAM, y se recomiendan 8 GB para una experiencia m\u00e1s fluida. Eso cubre el consumo combinado del servidor de Immich, PostgreSQL, Redis y el contenedor de machine learning corriendo juntos.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1786697704622\"><strong class=\"schema-faq-question\">\u00bfPuedo correr Immich en un VPS de 4 GB?<\/strong> <p class=\"schema-faq-answer\">Immich corre con 4 GB de RAM si desactivas el contenedor de machine learning definiendo <code>IMMICH_MACHINE_LEARNING_ENABLED=false<\/code> en el archivo <code>.env<\/code>. Eso elimina el reconocimiento facial y la b\u00fasqueda sem\u00e1ntica, pero deja intactas la subida y la navegaci\u00f3n de la biblioteca.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1786697711654\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo respaldo mi base de datos de Immich?<\/strong> <p class=\"schema-faq-answer\">La base de datos PostgreSQL que usa Immich se puede respaldar de forma segura con docker exec y pg_dumpall:<br><code>docker exec -t immich_postgres pg_dumpall -c -U postgres > immich_db_backup.sql<\/code><br>Otra opci\u00f3n es detener el stack por completo con docker compose down antes de copiar directamente el directorio de DB_DATA_LOCATION, para evitar que la base de datos se corrompa. Cualquiera de los dos caminos deber\u00eda correr con una periodicidad fija, junto con un respaldo separado del directorio de UPLOAD_LOCATION, porque la base de datos y los archivos de medios tienen que poder restaurarse juntos para que un respaldo sirva de algo.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo montar Immich v3 en tu propio VPS con Docker Compose: desde asegurar el servidor y levantar el stack de Compose hasta un proxy inverso Caddy con SSL autom\u00e1tico, la migraci\u00f3n desde v2 y el respaldo en segundo plano desde la app m\u00f3vil.<\/p>\n","protected":false},"author":50,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[1988],"tags":[],"ppma_author":[1491],"class_list":["post-33393","post","type-post","status-publish","format-standard","hentry","category-tutoriales"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Tobias Mildenberger","author_link":"https:\/\/contabo.com\/blog\/es\/author\/tobias\/"},"uagb_comment_info":0,"uagb_excerpt":"C\u00f3mo montar Immich v3 en tu propio VPS con Docker Compose: desde asegurar el servidor y levantar el stack de Compose hasta un proxy inverso Caddy con SSL autom\u00e1tico, la migraci\u00f3n desde v2 y el respaldo en segundo plano desde la app m\u00f3vil.","authors":[{"term_id":1491,"user_id":50,"is_guest":0,"slug":"tobias","display_name":"Tobias Mildenberger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/077178d5dce6c3d4c0c0396857a7e544bfdf8adf04145fff5160b33a22e28b1f?s=96&d=mm&r=g","author_category":"","user_url":"https:\/\/contabo.com\/en\/","last_name":"Mildenberger","first_name":"Tobias","job_title":"","description":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/33393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=33393"}],"version-history":[{"count":1,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/33393\/revisions"}],"predecessor-version":[{"id":33395,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/33393\/revisions\/33395"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=33393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=33393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=33393"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=33393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}