{"id":167,"date":"2026-07-29T22:21:58","date_gmt":"2026-07-30T02:21:58","guid":{"rendered":"https:\/\/hackpr.net\/blog\/?p=167"},"modified":"2026-07-29T22:27:48","modified_gmt":"2026-07-30T02:27:48","slug":"como-instalar-immich-en-proxmox-tu-propio-google-photos-self-hosted","status":"publish","type":"post","link":"https:\/\/hackpr.net\/blog\/como-instalar-immich-en-proxmox-tu-propio-google-photos-self-hosted\/","title":{"rendered":"C\u00f3mo instalar Immich en Proxmox: tu propio Google Photos self-hosted"},"content":{"rendered":"[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; column_margin=&#8221;default&#8221; column_direction=&#8221;default&#8221; column_direction_tablet=&#8221;default&#8221; column_direction_phone=&#8221;default&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; row_border_radius=&#8221;none&#8221; row_border_radius_applies=&#8221;bg&#8221; row_position_desktop=&#8221;default&#8221; row_position_tablet=&#8221;inherit&#8221; row_position_phone=&#8221;inherit&#8221; overflow=&#8221;visible&#8221; overlay_strength=&#8221;0.3&#8243; gradient_direction=&#8221;left_to_right&#8221; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_tablet=&#8221;inherit&#8221; column_padding_phone=&#8221;inherit&#8221; column_padding_position=&#8221;all&#8221; flex_gap_desktop=&#8221;10px&#8221; column_element_direction_desktop=&#8221;default&#8221; column_element_spacing=&#8221;default&#8221; desktop_text_alignment=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221; phone_text_alignment=&#8221;default&#8221; background_color_opacity=&#8221;1&#8243; background_hover_color_opacity=&#8221;1&#8243; column_backdrop_filter=&#8221;none&#8221; column_shadow=&#8221;none&#8221; column_border_radius=&#8221;none&#8221; column_link_target=&#8221;_self&#8221; column_position=&#8221;default&#8221; gradient_direction=&#8221;left_to_right&#8221; overlay_strength=&#8221;0.3&#8243; width=&#8221;1\/1&#8243; tablet_width_inherit=&#8221;default&#8221; animation_type=&#8221;default&#8221; bg_image_animation=&#8221;none&#8221; border_type=&#8221;simple&#8221; column_border_width=&#8221;none&#8221; column_border_style=&#8221;solid&#8221;][vc_column_text css=&#8221;&#8221; text_direction=&#8221;default&#8221;]\u00bfCansado de pagarle a Google, Apple o Amazon por almacenamiento de fotos? En este art\u00edculo te ense\u00f1o c\u00f3mo instalar <strong>Immich<\/strong>, la alternativa open source que llevo corriendo en mi homelab, en un servidor dentro de Proxmox.<\/p>\n<h2>\u00bfQu\u00e9 es Immich?<\/h2>\n<p>Immich es una plataforma de c\u00f3digo abierto para respaldo y gesti\u00f3n de fotos y videos, pensada como reemplazo directo de Google Photos. Entre sus funciones principales:<\/p>\n<ul>\n<li>Backup autom\u00e1tico desde tu celular (apps para iOS y Android)<\/li>\n<li>Reconocimiento facial<\/li>\n<li>B\u00fasqueda por objetos (por ejemplo, buscar &#8220;servers&#8221; y que te muestre todas tus fotos de racks)<\/li>\n<li>Organizaci\u00f3n por ubicaci\u00f3n (mapa con geolocalizaci\u00f3n de tus fotos)<\/li>\n<li>\u00c1lbumes compartidos<\/li>\n<li>Soporte multi-usuario<\/li>\n<\/ul>\n<p>Todo esto corriendo en tu propio hardware, sin l\u00edmites de almacenamiento m\u00e1s que el de tu disco, y sin depender de las pol\u00edticas de precios de terceros.<\/p>\n<h2>Requisitos previos<\/h2>\n<p>Antes de empezar necesitas:<\/p>\n<ul>\n<li>Un servidor o VM con <strong>Proxmox<\/strong> (yo lo corro en un servidor dedicado dentro de mi entorno Proxmox)<\/li>\n<li><strong>Docker<\/strong> y <strong>Docker Compose<\/strong> instalados en esa VM<\/li>\n<li>Al menos 4 GB de RAM (recomendado 6-8 GB si vas a usar reconocimiento facial y machine learning)<\/li>\n<li>Espacio en disco suficiente para tu librer\u00eda de fotos (recomiendo un disco separado o punto de montaje dedicado)<\/li>\n<li>Acceso a la terminal (SSH)<\/li>\n<\/ul>\n<h2>Paso 1: Crear la VM en Proxmox<\/h2>\n<p>Desde el panel de Proxmox, crea una nueva VM (o usa una existente) con Ubuntu Server o Debian como sistema operativo base. Asigna al menos:<\/p>\n<ul>\n<li>2 vCPUs<\/li>\n<li>4-8 GB de RAM<\/li>\n<li>32 GB de disco para el sistema (el almacenamiento de fotos deber\u00eda ir en un disco\/punto de montaje separado)<\/li>\n<\/ul>\n<h2>Paso 2: Instalar Docker y Docker Compose<\/h2>\n<p>Con\u00e9ctate por SSH a tu VM y ejecuta:<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/get.docker.com -o get-docker.sh\r\nsudo sh get-docker.sh\r\nsudo usermod -aG docker $USER\r\n<\/code><\/pre>\n<p>Cierra sesi\u00f3n y vuelve a entrar para que el cambio de grupo tome efecto. Verifica la instalaci\u00f3n:<\/p>\n<pre><code class=\"language-bash\">docker --version\r\ndocker compose version\r\n<\/code><\/pre>\n<h2>Paso 3: Descargar los archivos de Immich<\/h2>\n<p>Crea un directorio para Immich y descarga los archivos oficiales:<\/p>\n<pre><code class=\"language-bash\">mkdir .\/immich-app\r\ncd .\/immich-app\r\n\r\nwget -O docker-compose.yml https:\/\/github.com\/immich-app\/immich\/releases\/latest\/download\/docker-compose.yml\r\nwget -O .env https:\/\/github.com\/immich-app\/immich\/releases\/latest\/download\/example.env\r\n<\/code><\/pre>\n<h2>Paso 4: Configurar el archivo <code>.env<\/code><\/h2>\n<p>Abre el archivo <code>.env<\/code> con tu editor favorito:<\/p>\n<pre><code class=\"language-bash\">nano .env\r\n<\/code><\/pre>\n<p>Ajusta al menos estas variables:<\/p>\n<ul>\n<li><code>UPLOAD_LOCATION<\/code> \u2014 la ruta donde se guardar\u00e1n tus fotos y videos (idealmente en un disco separado)<\/li>\n<li><code>DB_PASSWORD<\/code> \u2014 cambia la contrase\u00f1a por defecto de la base de datos<\/li>\n<li><code>TZ<\/code> \u2014 tu zona horaria (por ejemplo <code>America\/Puerto_Rico<\/code>)<\/li>\n<\/ul>\n<h2>Paso 5: Levantar los contenedores<\/h2>\n<p>Con todo configurado, levanta los servicios:<\/p>\n<pre><code class=\"language-bash\">docker compose up -d\r\n<\/code><\/pre>\n<p>Esto descargar\u00e1 las im\u00e1genes necesarias (servidor, base de datos Postgres, Redis, machine learning) y arrancar\u00e1 todo el stack. La primera vez puede tardar unos minutos.<\/p>\n<p>Verifica que todo est\u00e9 corriendo:<\/p>\n<pre><code class=\"language-bash\">docker compose ps\r\n<\/code><\/pre>\n<h2>Paso 6: Acceder a Immich<\/h2>\n<p>Abre tu navegador y entra a:<\/p>\n<pre><code>http:\/\/IP-DE-TU-SERVIDOR:2283\r\n<\/code><\/pre>\n<p>Ah\u00ed crear\u00e1s tu cuenta de administrador y podr\u00e1s empezar a configurar bibliotecas, usuarios y respaldo autom\u00e1tico.<\/p>\n<h2>Paso 7: Configurar las apps m\u00f3viles<\/h2>\n<p>Descarga la app de Immich desde la App Store o Google Play, entra la URL de tu servidor (o config\u00farala a trav\u00e9s de tu VPN\/reverse proxy si accedes desde fuera de tu red local), inicia sesi\u00f3n con tu cuenta y activa el respaldo autom\u00e1tico.<\/p>\n<h2>Recomendaciones adicionales<\/h2>\n<ul>\n<li><strong>Reverse proxy:<\/strong> si quieres acceder desde fuera de tu red, te recomiendo poner Immich detr\u00e1s de un reverse proxy (Nginx Proxy Manager o Traefik) con HTTPS, en vez de exponer el puerto directamente.<\/li>\n<li><strong>Backups:<\/strong> Immich no reemplaza un backup \u2014 considera respaldar tanto la base de datos como la carpeta de <code>UPLOAD_LOCATION<\/code> regularmente (yo uso snapshots de Proxmox m\u00e1s un backup externo).<\/li>\n<li><strong>Actualizaciones:<\/strong> para actualizar, simplemente vuelve a descargar el <code>docker-compose.yml<\/code> m\u00e1s reciente y corre <code>docker compose pull &amp;&amp; docker compose up -d<\/code>.<\/li>\n<\/ul>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Con esto ya tienes tu propio &#8220;Google Photos&#8221; corriendo en tu homelab, con control total sobre tus datos. Si te trab\u00f3 alg\u00fan paso o tienes preguntas, d\u00e9jamelas en los comentarios.<\/p>\n[\/vc_column_text][\/vc_column][\/vc_row]\n","protected":false},"excerpt":{"rendered":"<p>[vc_row type=&#8221;in_container&#8221; full_screen_row_position=&#8221;middle&#8221; column_margin=&#8221;default&#8221; column_direction=&#8221;default&#8221; column_direction_tablet=&#8221;default&#8221; column_direction_phone=&#8221;default&#8221; scene_position=&#8221;center&#8221; text_color=&#8221;dark&#8221; text_align=&#8221;left&#8221; row_border_radius=&#8221;none&#8221; row_border_radius_applies=&#8221;bg&#8221; row_position_desktop=&#8221;default&#8221; row_position_tablet=&#8221;inherit&#8221; row_position_phone=&#8221;inherit&#8221; overflow=&#8221;visible&#8221; overlay_strength=&#8221;0.3&#8243; gradient_direction=&#8221;left_to_right&#8221; shape_divider_position=&#8221;bottom&#8221; bg_image_animation=&#8221;none&#8221;][vc_column column_padding=&#8221;no-extra-padding&#8221; column_padding_tablet=&#8221;inherit&#8221; column_padding_phone=&#8221;inherit&#8221; column_padding_position=&#8221;all&#8221; flex_gap_desktop=&#8221;10px&#8221; column_element_direction_desktop=&#8221;default&#8221; column_element_spacing=&#8221;default&#8221; desktop_text_alignment=&#8221;default&#8221; tablet_text_alignment=&#8221;default&#8221; phone_text_alignment=&#8221;default&#8221;&#8230;<\/p>\n","protected":false},"author":1,"featured_media":171,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-167","post","type-post","status-publish","format-standard","has-post-thumbnail","category-homelab"],"_links":{"self":[{"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":3,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"predecessor-version":[{"id":170,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions\/170"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/media\/171"}],"wp:attachment":[{"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hackpr.net\/blog\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}