Tropic Host

Immich en un VPS: instala tu propia nube para fotos y vídeos

7 min de lectura
Tropic
Immich en un VPS: instala tu propia nube para fotos y vídeos

Immich: cómo instalar tu propia nube de fotos y vídeos en un VPS

Immich es un servicio autoalojado para almacenar y subir fotos y vídeos automáticamente. Ofrece aplicaciones móviles, interfaz web, álbumes, búsqueda inteligente y reconocimiento facial, mientras mantiene la biblioteca en el servidor que elijas.

A continuación veremos los requisitos de Immich, su instalación en Ubuntu con Docker Compose, la configuración de HTTPS, la conexión del teléfono y las copias de seguridad externas.

Immich en seis pasos

  1. Crear un VPS Linux con suficiente RAM y espacio en disco.
  2. Apuntar un subdominio, como photos.example.com, a la dirección IP del servidor.
  3. Instalar Docker y descargar la configuración oficial de Immich.
  4. Indicar las rutas de la biblioteca multimedia y de la base de datos, y arrancar los contenedores.
  5. Cerrar el puerto interno al exterior y configurar HTTPS.
  6. Instalar la aplicación móvil y configurar una copia de seguridad externa.

Qué es Immich

Immich es una aplicación de código abierto para gestionar de forma independiente una biblioteca de fotos y vídeos. Las imágenes se muestran en una línea de tiempo, pueden agruparse en álbumes, encontrarse mediante la búsqueda y subirse automáticamente desde el teléfono al servidor.

La principal diferencia frente a un servicio fotográfico convencional en la nube es el control de la parte del servidor. Los archivos se guardan en tu VPS o servidor doméstico, pero el propietario debe encargarse del espacio disponible, las actualizaciones, la seguridad y las copias de seguridad.

ParámetroServicio de fotos en la nubeImmich
Dónde se guardan los archivosEn la infraestructura del proveedorEn tu servidor
MantenimientoA cargo del proveedorA cargo del propietario
CostesPlan según el volumenVPS, disco y copias de seguridad

Immich no es una copia de seguridad por sí mismo. Si las fotos solo existen en un VPS, un fallo del disco o una eliminación accidental todavía pueden destruir el archivo.

Principales funciones de Immich

  • Subida automática. Las aplicaciones para Android e iOS envían las fotos y los vídeos de los álbumes seleccionados. De forma predeterminada se utiliza Wi-Fi, y los archivos que ya existen se omiten según su suma de comprobación.
  • Búsqueda inteligente. El servicio permite buscar por personas, lugar, fecha, cámara, texto presente en la imagen y descripción del contenido. Los rostros se agrupan y después se les puede asignar un nombre.
  • Álbumes y uso compartido. Admite varios usuarios, álbumes compartidos, acceso compartido con otra persona y enlaces públicos con contraseña y fecha de caducidad.
  • Mapa y metadatos. Immich lee los datos EXIF, muestra el lugar de la toma, crea recuerdos y admite favoritos, archivo y bibliotecas externas.

El aprendizaje automático exige especialmente CPU y RAM durante la primera importación. Una vez creadas las miniaturas y los índices, la carga diaria suele ser menor.

Requisitos de servidor de Immich

Los requisitos oficiales de las versiones actuales son:

  • un sistema Linux o similar a Unix de 64 bits;
  • al menos 2 núcleos de CPU, con 4 recomendados;
  • al menos 6 GB de RAM, con 8 GB recomendados;
  • Docker Engine con el complemento docker compose;
  • un SSD local para la base de datos PostgreSQL;
  • espacio para los archivos originales, las miniaturas y los vídeos transcodificados.

Immich puede ejecutarse en un servidor con 4 GB de RAM si se desactivan las funciones de aprendizaje automático. Para el reconocimiento facial y la búsqueda inteligente, conviene elegir 8 GB desde el principio.

Las miniaturas y los archivos transcodificados añaden de media un 10–20 % al tamaño de la biblioteca multimedia. Para un archivo de 200 GB, reserva al menos 240–260 GB. El directorio de la base de datos DB_DATA_LOCATION debe estar en un SSD local y no en una unidad de red.

Una configuración inicial práctica es de 4 vCPU, 8 GB de RAM, Ubuntu 24.04 LTS y un SSD con un 20–30 % más de capacidad que la biblioteca original. No es imprescindible una tarjeta gráfica dedicada, aunque puede acelerar el procesamiento de un archivo grande.

Cómo instalar Immich en un VPS

El ejemplo utiliza Ubuntu 24.04 y el subdominio photos.example.com.

1. Configura el DNS y prepara Ubuntu

Crea un registro DNS A que apunte a la dirección IPv4 del VPS. Después, conéctate por SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

No cierres la sesión SSH actual hasta comprobar que una nueva conexión funciona correctamente.

2. Instala Docker y Docker Compose

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

Debes utilizar específicamente el comando docker compose: el antiguo docker-compose ya no cuenta con soporte del proyecto.

3. Descarga y configura Immich

mkdir -p /opt/immich /srv/immich-data
cd /opt/immich

curl -L -o docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env

Abre el archivo:

nano /opt/immich/.env

Modifica los parámetros principales:

UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORD

Indica tu propia zona horaria. La contraseña de PostgreSQL debe estar formada por letras latinas y números; el comando openssl rand -hex 24 genera un valor aleatorio. Deja las demás líneas tal como aparecen en el archivo example.env actual.

4. Cierra el puerto interno y arranca los contenedores

En docker-compose.yml, localiza el puerto del servicio immich-server:

ports:
  - '2283:2283'

Sustitúyelo por:

ports:
  - '127.0.0.1:2283:2283'

Ahora el puerto solo es accesible desde el propio VPS. Inicia el servicio:

cd /opt/immich
docker compose up -d
docker compose ps

Para el diagnóstico, utiliza docker compose logs --tail=200.

5. Configura HTTPS con Caddy

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
    reverse_proxy 127.0.0.1:2283
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Caddy solicitará el certificado automáticamente si el DNS apunta al VPS y los puertos 80 y 443 están accesibles. Immich debe funcionar en la raíz de un dominio o subdominio; una dirección como example.com/immich no es compatible.

6. Crea el administrador y conecta el teléfono

Abre https://photos.example.com. El primer usuario registrado se convierte en administrador y puede crear otras cuentas.

Instala Immich desde App Store o Google Play. En la pantalla de inicio de sesión, introduce la dirección sin /api:

https://photos.example.com

Selecciona los álbumes y activa la copia de seguridad. La primera importación puede tardar: el servidor crea miniaturas, reconoce rostros, indexa la búsqueda y procesa los vídeos.

Actualización de Immich

Antes de actualizar, lee las notas de la versión, sobre todo al pasar a una nueva versión principal:

cd /opt/immich
docker compose pull
docker compose up -d
docker image prune

Actualiza primero las aplicaciones móviles y después el servidor. Volver la base de datos a una versión anterior puede no ser compatible si no existe una instrucción específica.

Copias de seguridad de Immich

Immich crea volcados de PostgreSQL automáticamente, pero solo contienen la base de datos y los metadatos, no las fotos ni los vídeos. Para una recuperación completa, guarda:

  • todo el directorio /srv/immich-data;
  • /opt/immich/.env y docker-compose.yml;
  • la configuración de Caddy.

Una copia en el mismo VPS no protege frente a un fallo del disco o la eliminación del servidor. Envía los datos a otro servidor, un NAS o un almacenamiento de objetos y sigue la estrategia de copias de seguridad 3-2-1. Comprueba periódicamente una restauración de prueba, no solo que existan los archivos de copia.

Qué VPS elegir para Immich

Para utilizar plenamente el reconocimiento facial y la búsqueda inteligente, es razonable elegir un VPS con al menos 4 vCPU y 8 GB de RAM. Calcula el tamaño del disco según la biblioteca multimedia y deja margen para miniaturas, vídeos y el crecimiento del archivo.

Un VPS Linux de tropic.host con IP fija y almacenamiento SSD es adecuado para esta tarea. Puedes comenzar con una configuración de 8 GB de RAM y ampliar los recursos a medida que crezca la biblioteca. Guarda la base de datos PostgreSQL en un disco local rápido y la copia de seguridad fuera de este VPS.

Un VPS resulta cómodo para acceder las 24 horas desde cualquier red. Para un archivo de varios terabytes, un servidor doméstico puede ser más económico, pero tendrás que garantizar por tu cuenta la alimentación, el acceso externo y la redundancia.

Limitaciones de Immich

El autoalojamiento no garantiza la fiabilidad. Una contraseña débil, el puerto 2283 expuesto, contenedores desactualizados o la ausencia de una copia de seguridad externa crean un riesgo de pérdida de datos.

Immich tampoco es una copia exacta de Google Photos o iCloud: las funciones de edición y sincronización en segundo plano son diferentes, y la velocidad de análisis depende del hardware. Antes de trasladar tu único archivo, prueba el servicio con una biblioteca pequeña.

Resumen

Immich permite crear una galería de fotos propia con subida desde el móvil, álbumes, reconocimiento facial, búsqueda y uso compartido. Para la versión actual, conviene preparar un VPS Linux con 4 núcleos, 8 GB de RAM y un SSD con al menos un 20–30 % de capacidad adicional.

Después de la instalación, configura HTTPS, las actualizaciones y una copia de seguridad externa del directorio multimedia junto con la base de datos. Lo que protege las fotos frente a la pérdida es la copia de seguridad, no el simple hecho de autoalojar el servicio.

FAQ

¿Immich es gratuito?

El servidor de Immich es de código abierto y puede funcionar sin una suscripción obligatoria. Se pagan el VPS, el dominio, el espacio en disco y las copias de seguridad.

¿Cuánta memoria RAM necesita Immich?

El mínimo oficial es de 6 GB de RAM y la cantidad recomendada es de 8 GB. Con 4 GB tendrás que desactivar el aprendizaje automático.

¿Se puede instalar Immich sin dominio?

Técnicamente sí, pero para acceder de forma permanente desde el teléfono es mejor utilizar un dominio y HTTPS. Esto protege la autenticación y la transferencia de archivos.

¿Immich sustituye una copia de seguridad de las fotos?

No. Copia por separado la biblioteca multimedia y la base de datos en otro dispositivo o ubicación.

¿Se puede migrar un archivo de fotos existente?

Sí. Los archivos pueden subirse mediante la interfaz web o la CLI, o se puede conectar un directorio como biblioteca externa. Antes de una importación masiva, crea una copia de los datos de origen.