¿Qué es immich?
Un proyecto open source que te ayuda a montar un sistema como Google Photos pero en tu propio servidor. Conserva muchas de sus facilidades como:
- Cuentas independientes
- Reconocimiento de rostros
- Carpetas privadas
- Carpetas compartidas
- Aplicación móvil en Android e iOS
Y todo esto sin límite de almacenamiento (Todo dependerá de tu capacidad en disco duro).
Requisitos del sistema
- Docker instalado
- Al menos 4GB de ram y un procesador de 2 núcleos
Guia de inicio
Pasos generales de instalación:
- Descarga los archivos requeridos
- Selecciona el lugar donde vivirá la aplicación. Por ejemplo:
/opt/immichmkdir immich
- Descarga
docker-compose.ymlwget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
- Descarga
.envwget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
- Selecciona el lugar donde vivirá la aplicación. Por ejemplo:
- Ingresa los valores requeridos del archivo .env (Recuerda cambiar los datos por defecto)
UPLOAD_LOCATION=./library. En caso de Raspberry Pi, un disco duro externoDB_DATA_LOCATION=./postgresIMMICH_VERSION=releaseDB_PASSWORD=postgresDB_USERNAME=postgresDB_DATABASE_NAME=immich
- Start the containers
sudo docker compose up -d
- Visitas la aplicación y completas el formulario
http://<machine-ip-address>:2283
Bibliotecas externas
Una biblioteca externa sirve para cargar tus fotografías sin necesidad de usar la interfaz web o aplicación móvil para subirlas.
Este proceso se realiza a través de dos apartados:
- Configuración en Docker compose
docker-compose.yml
- Configuración en la aplicación
- Administration => External Libraries Tab => Create Library => Edit import path
Configuración en Docker compose
- Desde el lugar dónde instalaste tu immich detienes y eliminas los contenedores, redes y volúmenes definidos en tu archivo docker-compose.yml.
# Detenemos y eliminamos el contenedor actualsudo docker compose down
# Editas el archivo docker-compose.ymlvim docker-compose.yml- Añades los volumenes a tu archivo de configuración
/mnt/your/location/:/mnt/custom/docker/location
Ejemplo:
immich-server: ... volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/data - /etc/localtime:/etc/localtime:ro - /mnt/your/location:/mnt/custom/docker/location - /mnt/your/location/2:/mnt/custom/docker/location/2- Levantas nuevamente el contenedor
sudo docker compose up -dConfiguración en la aplicación
Con la cuenta del administrador:
- Administration
- External Libraries Tab
- Create Library
- Edit import path
Referencias
Respaldos
Creación de un respaldo
DB_USERNAME=username_databasesudo docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=$DB_USERNAME | gzip > "./backup_$(date '+%Y-%m-%d_%H%M%S').sql.gz"Recuperación desde un respaldo
# Borra el contenedor actualsudo docker compose down -v
# Borra la ubicación de tu instalación de postgres para Immichsudo rm -rf DB_DATA_LOCATION
# Opcional - Update to latest version of Immich (if desired)# sudo docker compose pull
# Crea los contenedores de Docker sin ejecutarlossudo docker compose create
# Inicia el servidor de Postgres y espera 10 segundos a que iniciesudo docker start immich_postgres && sleep 10
# Restaura los datos desde el BackupPATH_BACKUP=/backup/location/dump_file.sql.gzDB_NAME=db_nameDB_USERNAME=db_username
gunzip --stdout $PATH_BACKUP \| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \| sudo docker exec -i immich_postgres psql --dbname=$DB_NAME --username=$DB_USERNAME
# Inicias de nuevo el contenedorsudo docker compose up -dMontado de discos externos con Ext4 con protección LUKS
Es posible que quieras utilizar un disco duro externo para guardar las fotos de tu servidor Immich y es sumamente probable que quieras proteger estas fotos ante un robo del disco duro físico. Para esto puedes utilizar un disco duro Ext4 con protección LUKS. Por lo que tu información estará cifrada.
Montado del disco
# Lista los dispositivos de bloquelsblk
# Desciframos la información contenida en el discosudo cryptsetup luksOpen /dev/sdXN fotos
sudo mount /dev/mapper/fotos /mnt/fotos- X = Letra
- N = Número
- fotos = cualquier alias
- segundo /mnt/fotos = ubicación para montar
Desmontado del disco
# Paramos nuestra instancia de immich (pues usa el disco)sudo docker compose down
# Desmontado del disco y cifrado del mismosudo umount /mnt/fotos && sudo cryptsetup luksClose fotosPreguntas frecuentes
¿Cómo recuperar mi password?
# Entras al contenedor de forma interactivasudo docker exec -it immich_server bash
# Ejecutas la utilidad para recuperar el password del administradorimmich-admin reset-admin-password
# Sales del contenedorexit¿Cómo desinstalar immich?
- Desde el lugar dónde instalaste tu immich detienes y eliminas los contenedores, redes y volúmenes definidos en tu archivo docker-compose.yml.
docker compose down -v- Borras todo lo relacionado a immich (se pueden consultar los valores en el archivo
.env)
DB_DATA_LOCATIONcontains the database, media info, and settings.UPLOAD_LOCATIONcontains all the media uploaded to Immich.
Referencias
- Sitio oficial https://immich.app/
- Repositorio de Github
Nota final¡Gracias por terminar de leer este artículo! uwur
— El Capitán
¿Tienes alguna duda o te gustaría comentar algo sobre este artículo?
Puedes encontrarme en: