Immich is a self-hosted Google Photos alternative with automatic mobile backup and AI-powered search. This guide covers installing it with Docker Compose: downloading the official compose files, configuring the .env, starting the containers, creating your admin account, and connecting the mobile app.
Before You Start: Requirements
You’ll need Docker and Docker Compose installed on the server. RAM is the resource to plan around — Immich’s machine-learning containers (face detection, CLIP-based semantic search) need headroom on top of the main application and its database, not just enough for the app alone. Storage should be sized for where your library is headed, not just where it starts — a photo and video library only grows.
Step-by-Step: Installing Immich with Docker Compose
Create a Directory and Download the Compose Files
mkdir ./immich-app && cd ./immich-app
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.envDownloading both files from the latest release keeps them in sync with each other — mixing an old compose file with a new .env (or the reverse) is a common source of confusing startup errors.
Configure the .env File
Open `.env` and set `UPLOAD_LOCATION` to where your photos and videos should actually live — somewhere with real capacity, not the default. Do the same for the database data location; network shares aren’t supported there. While you’re in the file, uncomment and set the timezone variable so timestamps match where you actually are.
Start Immich
docker compose up -dTwo gotchas worth knowing before you run this: the command is `docker compose`, not `docker-compose` — the older hyphenated form fails differently and confusingly on a fresh Ubuntu install. And if you hit a permission or unknown-flag error, you’re likely running the `docker.io` distro package rather than Docker’s own — installing Docker Engine from Docker’s official repository resolves it.
First Login and Creating Your Admin Account
Once the containers are up, open `http://your-server-ip:2283` in a browser. The first account registered on a fresh instance becomes the administrator, so register immediately rather than leaving that page open to whoever finds it first. From there, install the mobile app (iOS or Android) and sign in to start automatic photo and video backup from your phone.
Sizing Your VPS for Immich’s Machine Learning Workload
| Library size | Recommended tier | Spec |
|---|---|---|
| Personal library | Cloud VPS 6 | 6 vCPU, 12 GB RAM, 200 GB SSD — €7.14/mo |
| Large / fast-growing library | Cloud VPS Plus 8 | 8 vCPU, 24 GB RAM, 450 GB NVMe — €33.32/mo |
Choosing Immich vs. Alternatives
This guide covers getting Immich installed, not whether it’s the right photo tool for you. Contabo already has that covered in depth: What Is Immich? for a full feature rundown, Immich vs PhotoPrism vs Ente if you’re still deciding between self-hosted photo apps, and Best Self-Hosted Photo Management Apps for the broader field of options.
Why Self-Host Immich on Contabo
Cloud VPS 6 covers a personal photo library comfortably, with enough RAM headroom for Immich’s machine-learning containers alongside the main app. Move to Performance VPS once the library gets large or grows quickly — the extra RAM and NVMe I/O both matter as the machine-learning index and media storage grow together. If Immich is one piece of a bigger self-hosting setup, Contabo’s homelab planning guide covers how it fits alongside the rest.
FAQ: Installing Immich
What port does Immich use?
2283 by default, for both the web application and mobile app connections. It can be changed via the environment configuration if that port is already in use.
Do I need a powerful VPS to run Immich?
Not powerful, but RAM matters more than raw CPU — the machine-learning features (face recognition, semantic search) need headroom beyond just running the app. A 6 vCPU / 12 GB VPS comfortably handles a personal library.
Can I use Immich’s install script instead of Docker Compose?
There is an install script, but Immich’s own documentation marks it experimental and not recommended for production — Docker Compose is the supported path for a server you intend to actually rely on.
Is Immich free?
Yes — Immich is open source (AGPL-3.0) and free to self-host. You only pay for the server it runs on.
Disclaimer: Product specifications, features, and prices mentioned in this article are subject to change and may vary by region, billing term, and active promotions. Please check each provider’s or brand’s official website for current figures, pricing, and local currency rates.