How to Install Immich for Self-Hosted Photo Management
Immich is an open-source, high-performance photo and video management solution that you can host on your own Breeze. It offers automatic backup from mobile devices, facial recognition, map views, and a beautiful web interface reminiscent of commercial cloud photo services — but with full ownership of your data.
Prerequisites
- A Breeze instance running Ubuntu 22.04 or later with at least 4 GB of RAM
- Docker and Docker Compose installed
- A domain name pointed to your Breeze (e.g.,
photos.example.com) - Sufficient storage for your photo library
Step 1 — Prepare the Environment
Create a directory for your Immich installation and download the official Docker Compose configuration:
mkdir -p ~/immich && cd ~/immich
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Step 2 — Configure Environment Variables
Edit the .env file to set your preferences:
UPLOAD_LOCATION=/home/immich/uploads
DB_PASSWORD=$(openssl rand -base64 32)
IMMICH_VERSION=release
Make sure the upload directory exists and has proper permissions:
sudo mkdir -p /home/immich/uploads
sudo chown -R 1000:1000 /home/immich/uploads
Step 3 — Launch Immich
Start all services with Docker Compose:
docker compose up -d
This will pull and start the Immich server, machine learning container, PostgreSQL database, and Redis cache. Initial startup may take a few minutes as the containers download.
Step 4 — Set Up a Reverse Proxy
Configure Nginx to proxy requests to Immich on port 3001:
server {
listen 443 ssl http2;
server_name photos.example.com;
client_max_body_size 50000M;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
}
}
The client_max_body_size directive is important to allow large photo and video uploads without timeouts.
Step 5 — Initial Setup and Mobile App
Navigate to https://photos.example.com and create your admin account. Then install the Immich mobile app on your phone, enter your server URL, and enable automatic backup. Immich will begin uploading and indexing your photos in the background, generating thumbnails, extracting metadata, and running facial recognition.
Maintenance Tips
- Run
docker compose pull && docker compose up -dto update Immich - Back up the PostgreSQL database regularly using
docker execwithpg_dump - Monitor disk usage as your photo library grows
- Use the admin panel to manage users and configure machine learning settings