Deployment guide

Host Immich on Your Own VPS

Deploy on a VPS Cloud →

Self-hosting9 min read

Host Immich on Your Own VPS

Immich is a self-hosted alternative to Google Photos, with automatic backup from mobile, facial recognition and smart AI-powered search. Installing it on your own VPS means bringing thousands of personal photos back out of ad-driven clouds, while keeping a modern, smooth experience.

Why self-host Immich on a VPS

Your photos are among the most sensitive data you entrust to a cloud: faces, places, habits, geolocation. Immich reproduces the Google Photos experience, mobile apps included, but on infrastructure you own. Its stack is more demanding than a wiki's: an application server, a PostgreSQL with the pgvecto.rs vector extension for semantic search, Redis, and a machine learning service that computes the embeddings for facial recognition and keyword search. A dedicated VPS lets you isolate this resource-hungry ML service, size the storage to fit your photo library, and prevent your pictures from being used to train third-party models. You remain in control of encryption, backups and access.

What self-hosting Immich brings

  • Automatic backup from iOS and Android as soon as a photo is taken, like a private cloud.
  • Facial recognition and semantic search run on your server, with no data sent to a third party.
  • Unlimited storage defined by your VPS disk, with no imposed quota or per-GB billing.
  • Album sharing via a secure link that you control and can revoke at any time.
  • Multi-user support: each member of the household or team has their own isolated library.
  • EXIF metadata, maps and timelines kept locally, with no advertising exploitation.

Hardware and software requirements

Immich is the most demanding in this series because of its machine learning service. Plan for at least 4 GB of RAM, but 6 to 8 GB are recommended if facial recognition processes a large photo library. 2 to 4 vCPUs let you handle the initial indexing without freezing the interface. Storage is the key factor: plan generously, as a family library quickly exceeds 100 GB; a VPS with expandable disk is ideal. On the software side: Docker and docker compose v2, a domain (photos.yourcompany.com), and enough swap space to absorb the ML model's spikes during the first import.

Deploy Immich step by step

01

Prepare the VPS and storage

Update the system, install Docker, then create a dedicated mount point for media, for example /mnt/photos, separate from the system disk. Enable at least 2 GB of swap for the machine learning service.

02

Retrieve the official compose file and the .env

Download the docker-compose.yml and the example.env file from the Immich repository with wget. Rename it to .env, then set UPLOAD_LOCATION=/mnt/photos, the database password and DB_DATA_LOCATION to a persistent volume.

03

Understand the four services

The stack starts immich-server, immich-machine-learning, redis and database (PostgreSQL with the vector extension). Do not replace the database image with a standard PostgreSQL: the pgvecto.rs extension is essential for semantic search.

04

Launch the stack and create the administrator

Run docker compose up -d and wait for the large ML images to download. Open port 2283 internally, then create the administrator account via the web wizard before inviting other users.

05

Secure with a reverse proxy and SSL

Place Caddy in front of the server: photos.yourcompany.com { reverse_proxy immich-server:2283 }. Increase the proxy's maximum upload size (client_max_body_size on Nginx) because videos can be large, otherwise mobile uploads fail.

06

Configure the mobile app

Install Immich from the App Store or the Play Store, enter https://photos.yourcompany.com as the server URL, sign in, then enable automatic camera roll backup to continuously replicate your new photos.

During the first bulk import, run the generation of thumbnails and ML embeddings during off-peak hours and monitor the RAM with docker stats. If the machine learning service becomes saturated, you can temporarily point it to the lightest model in the settings, then switch back to a more accurate model once the initial indexing is finished. This prevents the VPS from collapsing under the load of the very first scan.

Take back control of your photo library

The ServOrbit Cloud VPS provides the RAM, expandable storage and Docker ready for Immich, its machine learning service and its vector database. Back up your photos continuously on a server that belongs to you alone.

Need help?

Browse our help center and FAQ, or write to our team — support in French, English and Arabic.