English
€EUR
Containers

Immich

Compatible with the Infrawire installer

Self-hosted photo and video backup, ready on your VPS

Minimum requirements
  • 6 GB RAM
Developer
Immich
Version
Latest stable
License
AGPL-3.0

About Immich

An open source alternative to Google Photos, Immich automatically backs up the photos and videos from your phones to a server you control. It offers a timeline, shared albums, search by content, face recognition and a map of where your pictures were taken. Individuals use it to move their memories out of a US cloud, and families, small teams and photographers use it to keep one central library.

At delivery, the cloud-init script has installed Docker Engine and the Compose plugin from the official Docker repository. It has then downloaded the docker-compose.yml file and the example .env from the latest Immich release into /opt/immich. A random database password has been generated and the containers are started. The web interface listens on port 2283.

No administrator account is created in advance: the first user to register becomes the administrator. The useful details (URL, paths, database password) are in /tmp/credentials.txt, readable only by root.

What you can do with Immich

  • Automatic backup from your phone

    The iOS and Android apps send photos and videos to your server in the background. You choose which albums to sync.

  • Smart search and face grouping

    Immich indexes image content so you can find a photo from a description, and groups faces by person. This processing runs on your server, not at a third party.

  • Albums and controlled sharing

    Create albums shared with other users, or public links. Each family member has their own account and their own library.

  • Official stack via Docker Compose

    The deployment uses the files published with the latest Immich release, in /opt/immich. Updating takes two Compose commands.

  • Data in plain folders

    The library is stored in /opt/immich/library and the PostgreSQL database in /opt/immich/postgres. Backing up or migrating comes down to copying two folders.

  • Safe first administrator account

    No default credentials are created. The first registered user becomes the administrator, so there is no publicly known account on an exposed server.

Get started with Immich

From order to production in a few minutes.

  1. 1

    Order the VPS with Immich

    Choose a Linux VPS (Debian 12 or 13, Ubuntu 22.04 or 24.04) in Paris or Frankfurt, then tick Immich in the Applications tab of the order form. Allow enough disk for your library and at least 6 GB of RAM for smart search.

  2. 2

    Connect and read the server details

    Once the server is delivered, connect over SSH. The installation pulls Docker images and can take a few minutes: follow it in the log, then read the details file and copy it to your password manager, since it sits in /tmp.

    Bash
    ssh USER@SERVER_IP tail -n 20 /var/log/immich-auto-install.log sudo cat /tmp/credentials.txt
  3. 3

    Create the administrator account

    Open http://SERVER_IP:2283 in your browser and start the welcome wizard. The first registered user gets administrator rights. Then install the mobile app and enter the server URL to turn on backup.

  4. 4

    Secure it before real use

    Point a DNS A record for YOUR_DOMAIN to SERVER_IP, put an HTTPS reverse proxy in front of port 2283, and limit the open ports. Also plan a regular backup of /opt/immich/library and /opt/immich/postgres.

    Bash
    sudo ufw allow OpenSSH sudo ufw allow 80,443/tcp sudo ufw enable

Immich use cases

  • Replace Google Photos or iCloud

    You import your existing library and turn on automatic backup on your phones. Your photos stay on a server hosted in Europe, in Paris or Frankfurt.

  • Shared family photo library

    Each relative has their own account, albums and mobile backup. Shared albums gather holiday photos without going through a messaging app.

  • Archive for amateur photographers

    You gather your camera exports into a single searchable timeline. Search and sorting by person or place bring up a shot in seconds.

  • Self-hosting test environment

    You evaluate Immich before migrating a large library, or you learn to operate a Docker Compose stack with PostgreSQL. The server is disposable and reproducible.

Immich FAQ

The Immich documentation recommends at least 6 GB of RAM and 2 cores, with 4 cores preferable. Smart search and face recognition are demanding, especially during the initial import of a large library. Size the disk according to the volume of your photos and videos.

More about Immich

What is installed on the server

Everything lives in /opt/immich: docker-compose.yml, the .env file (mode 600, it contains the database password), the library folder for photos and the postgres folder for the database files. The installation log is at /var/log/immich-auto-install.log.

Run Compose commands from that folder:

Bash
cd /opt/immich docker compose ps docker compose logs -f immich-server

Enabling HTTPS with a reverse proxy

The service answers in plain HTTP on port 2283. Before you connect phones from outside, put it behind a reverse proxy (Caddy, Nginx or Traefik) that obtains a certificate for YOUR_DOMAIN. With Caddy, the configuration is only a few lines:

YOUR_DOMAIN {
    reverse_proxy 127.0.0.1:2283
}

With Nginx, remember to raise client_max_body_size, otherwise uploads of large videos will fail.

One more thing to know: Docker publishes ports by bypassing UFW rules. To make 2283 unreachable directly once the proxy is in place, edit the ports line of the immich-server service in docker-compose.yml so it listens on 127.0.0.1:2283, then restart with docker compose up -d.

Backups

You need to back up both the library and the database: one without the other does not give you a clean restore. The simplest method is to stop the containers, copy both folders to external storage, then start them again.

Bash
cd /opt/immich docker compose stop tar -czf /root/immich-backup.tar.gz library postgres .env docker compose start

For a large library, prefer rsync to another machine, and test a restore at least once. A backup kept on the same disk as the server does not protect you from a disk failure.

Updates

The downloaded files match the version that was current at delivery. To move to a newer version, read the project's release notes first, because Immich changes quickly and some releases require a manual step. Then:

Bash
cd /opt/immich docker compose pull docker compose up -d

Take a backup before every major update. For more tutorials on running a VPS, see the Learn section; plans are described on the Linux VPS page.

Stay up to date with the latest offers, discounts and special promotions.

View promotions

We use cookies

We use analytics cookies to improve your experience on our site. No data is sold to third parties. Learn more in our privacy policy.