Docs / Self-Hosted Applications / How to Install Immich for Self-Hosted Photo Management

How to Install Immich for Self-Hosted Photo Management

By Admin · Mar 2, 2026 · Updated Apr 23, 2026 · 30 views · 3 min read

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 -d to update Immich
  • Back up the PostgreSQL database regularly using docker exec with pg_dump
  • Monitor disk usage as your photo library grows
  • Use the admin panel to manage users and configure machine learning settings

Was this article helpful?