Estimated reading time: 8 minutes

Google Photos was practical for a long time - but the data protection leaves a lot to be desired and the control over your private pictures lies with a corporation. With Immich you can host your photos completely yourself - on your own server or NAS. You retain full control, save on subscription costs and rely on data protection without compromise. You can even create a Live demo from Immich yourself to familiarize yourself with everything.

For detailed instructions and an explanation of all configuration options, I recommend the YouTube video linked below. In this video, every single setting is explained in detail so that you receive comprehensive instructions for the exact setup. You can find any code from the video in this article so that you can use it directly without having to type it in.

This blog post and video is part of a series in which we create and set up our own home server. We start with the basics like an Ubuntu VM installation with Docker and then continue with the configuration of your own domain, security precautions and above all lots of cool and useful self-hosted services. Whether media servers like Plex or Jellyfin or document management like Paperless-NGX. Together we'll build the setup you want to see. We even tackle topics such as single sign-on (SSO) together.

🔐 Why you should host your photos yourself

Photos and videos are among our most valuable digital memories. Nevertheless, most people store their images with large corporations such as Google (Google Photos), Apple (iCloud) or Microsoft (OneDrive). Convenient - of course. But: you are giving up control over your private data.

▶️ Your images are analyzed, categorized and stored in the cloud - often across national borders.
▶️ Storage will become chargeable at some point.
▶️ What happens if you want to change providers or your account is blocked?

The solution: self-hosting.
With a private cloud, you have full control over your photos - on your own server, your storage, your infrastructure.

And this is exactly where Immich into play.

🚀 What is Immich?

Immich is an open source tool for managing your photos and videos - similar to Google Photos, but: You run it yourself. It runs on your own server (e.g. a Raspberry Pi, NAS or VPS) and gives you complete control over your media collection.

  • You install Immich on your own server (e.g. a NAS, Raspberry Pi, home server or VPS).
  • You can access your images via the browser or app (Android/iOS).
  • You can make automatic backups from your smartphone, create albums, search, share - all without cloud compulsion.

Immich combines powerful features with data protection and modern technology. The user interface is intuitive, fast and even fun.

Reasons for Immich

1. more control over your data - finally!

You decide where your photos are stored, who has access to them and how long they remain stored. No cloud provider that makes money from your memories or suddenly puts functions behind a paywall.

Advantage for you:
You no longer need to worry about account blocking, data leaks or subscription constraints. Your data is yours again - it's that simple.

2. automatic upload from all your devices

Immich offers a really good mobile app that automatically backs up all photos and videos from your cell phone - just like Google Photos.

Advantage for you:
You no longer have to transfer or save anything manually. Your memories are immediately on your server - without any loss of quality or advertising.

3. surprised: Immich recognizes faces and places - completely locally

You think such functions are only available on the big players? You thought wrong! Immich can recognize faces, sort photos by location and even offers a powerful full-text search - and that all localwithout cloud analysis or tracking.

Advantage for you:
You can find old vacation pictures in a flash - and nobody else knows what you're looking for or saving.

4. super-fast previews and modern gallery view

Immich's web interface is modern, fast and super intuitive. No comparison to sluggish alternatives like Nextcloud Photos.

Advantage for you:
You can browse through your media collection as quickly as in a native app - even if there are a few thousand files.

5. family-friendly: shared albums made easy

Want to give your family access to certain albums? Immich makes it easy for you. You can share individual albums, add users and assign specific rights.

Advantage for you:
Everyone only sees what you share - perfect for families, couples or shared flats.

6. unexpected bonus: You learn something in the process

When setting up Immich, you learn about servers, Docker and storage management along the way - and it feels damn good.

Advantage for you:
You develop digital sovereignty. And hey - you can also use this knowledge for other projects later on.

7. it's free - and you support open source

Immich is free and is actively developed further. You can report bugs, suggest features or even help out - in contrast to commercial services.

Advantage for you:
You're not just using a tool - you're becoming part of a community that takes data protection and freedom really seriously.

✨ Features from Immich - what you get

Immich is more than just "a gallery" - it's a smart, powerful media hub. Here is an overview of the most important functions:

📤 Automatic backups

As soon as you open the Immich app, new photos/videos from your smartphone are automatically saved - just like with Google Photos.

🧠 Face recognition & object search

Immich analyzes your images with machine learning. For example, you can search for:

  • Persons ("Lisa")
  • Objects ("dog", "car")
  • Image content ("beach", "birthday")

search - even in combination with date or location.

🧭 Map view & geotagging

You can display all images with location information on an interactive map. Perfect for travel photography!

🖼️ Albums & shared albums

Create private or public albums, share them with other users or pass them on via a link.

🧪 Support for RAW images & HEIC

Do you use a DSLR or smartphone with HEIC format? No problem. Immich supports many formats, including:

  • .jpg, .png, .webp
  • .heic, .heif
  • .cr2, .arw, .dngetc.

🔍 Powerful search

You can search by file type, location, creation time, recognized person, album or content - in a matter of seconds.

Multi-user support

You can create your own accounts for your family, friends or teammates - each with their own uploads, albums and favorites.

🧩 How Immich works technically - the components

Immich has a modular structure. The most important services:

  • Web: The user interface
  • API: The central control unit
  • Machine Learning (ML): For face/object recognition
  • Database (PostgreSQL + pgvector)Saves metadata
  • Redis: For caching, performance
  • Typesense (optional): For super-fast search

These services can either run individually as microservices (e.g. in the Kubernetes cluster) or be bundled via an all-in-one image - and this is exactly what we will use in the next step.

📱 Mobile use

Download the Immich app:

Enter server address, log in, activate backup - done!

🧠 Intelligent organization of your media

Immich uses machine learning to categorize your photos. Functions such as face recognition, object identification and a searchable timeline help you to quickly find the image you want.

🛠️ Installation with Docker: step by step

Requirements

  • A server or NAS with Docker support
  • Docker and Docker Compose installed

🧠 Why ghcr.io/imagegenius/immich instead of the official Immich image?

The image ghcr.io/imagegenius/immich comes from the community initiative ImageGenius/docker-immich and offers a Preconfigured, optimized and all-in-one Docker version from Immich.

Immich is under constant and active development. This means that updates can quickly lead to something fundamental changing in the system and your Immich breaking. This will rarely happen with this version.

✅ Advantages of the ImageGenius image

  1. All-in-one setup
    The image already contains prepared services such as:
    • Immich server
    • ML-Worker
    • Auth (probably no longer independent, but used to be)
    • API gateway
      ...all in a single container - perfect for simple installations.
  2. Quick start with less configuration
    Ideal if you want to use Immich on a Home serverNAS or VPS quickly and without extensive setup work.
  3. Automatic integration with hardware acceleration
    The image recognizes Intel QuickSync, for example, if correctly configured via /dev/dri integrated.
  4. Regular updates & community support
    ImageGenius actively maintains the image, is based on the official code, and is tested for stability by the community.
  5. Reduced resource requirements
    It runs more efficiently than a setup with 5+ individual containers - especially helpful on weaker systems like Raspberry Pi, Proxmox LXC, or Synology.

1. create project directory

mkdir immich && cd immich

2. create Docker Compose file

services:
    immich:
        image: ghcr.io/imagegenius/immich
        container_name: immich
        depends_on:
            - immich-db
        environment:
            - DB_HOSTNAME=immich-db
            - DB_USERNAME=immich
            - DB_PASSWORD=yourSafePassword
            - DB_DATABASE_NAME=immich
            - DB_PORT=5432
            - REDIS_HOSTNAME=redis
            - REDIS_PORT=6379
            - REDIS_PASSWORD=
            - MACHINE_LEARNING_WORKERS=1
            - MACHINE_LEARNING_WORKER_TIMEOUT=120
            - TZ=Europe/Berlin
            - PUID=99
            - PGID=100
            - UMASK=022
        ports:
            - 8090:8080
        volumes:
            - /mnt/cache/images:/photos:rw
            - /mnt/cache/images/consume:/import:ro
            - /mnt/external/Sascha/Images:/images-external:ro
            - /mnt/cache/appdata/immich:/config:rw
        devices:
            - /dev/dri # only when you have Intel QuickSync!
        healthcheck:
            test: curl --fail http://localhost:8080 || exit 1
            interval: 1m
            timeout: 10s
            retries: "3"

    immich-db:
        image: ghcr.io/immich-app/postgres:16-vectorchord0.4.3-pgvectors0.2.0
        container_name: immich-db
        environment:
            - TZ=Europe/Berlin
            - POSTGRES_PASSWORD=yourSafePassword
            - POSTGRES_USER=immich
            - POSTGRES_DB=immich
        ports:
            - 5432:5432
        volumes:
            - /mnt/cache/appdata/immich-db:/var/lib/postgresql/data:rw
        healthcheck:
            test: pg_isready -U immich -d immich
            interval: 10s
            timeout: 5s
            retries: "3"

    redis:
        image: redis
	container_name: redis
        environment:
            - TZ=Europe/Berlin
        ports:
            - 6379:6379
        volumes:
            - /mnt/cache/appdata/redis:/data:rw
        healthcheck:
            test: redis-cli --raw incr ping
            interval: 30s
            timeout: 10s
            retries: "3"
        command: --save 60 1 --loglevel warning

Use this file to start three Docker containers:

  1. Immich (the actual photo cloud app)
  2. PostgreSQL database with vector extension (immich-db)
  3. Redis as object cache

What do you need to adjust?

DB_PASSWORD & POSTGRES_PASSWORD
Replace yourSafePassword with a secure password. This value must match in Immich & immich-db.

📌 Customize optionally:

  • Image tag from Immich matching whether you have a compatible Intel iGPU or, for example, an NVIDIA GPU
  • TZ to your time zone
  • Number of MACHINE_LEARNING_WORKERS increase with faster system (for face recognition etc.)
  • Device suitable for your hardware

🚀 3. start

docker compose up -d

Then call it up in the browser: http://deine-ip:2283

Explanation of the Docker Compose file

The first service is "immich". It uses the image ghcr.io/imagegenius/immich:latest and is called "immich" in the container. It depends on the database container "immich-db". The environment variables define how the app reaches the database and the Redis cache, including host name, user name, password, ports and time zone. Settings for user rights (PUID, PGID) and file rights (UMASK) are also specified. The application can be accessed externally via port 8090, internally it runs on port 8080. There are four volume mounts: a folder for photos, a read-only import folder, a read-only external image folder and a writable configuration folder. A health check checks every 60 seconds whether the web server can be reached at localhost:8080. The container is in the network "sascha".

The second service is "immich-db". It is based on a special Postgres image with additional extensions for Immich. It is called "immich-db" in the container and uses the environment variables for time zone, Postgres password, user and database name. It opens port 5432 to the outside and saves data persistently in a mounted directory. The health check checks every 10 seconds with "pg_isready" whether the database is running. This container is also "sascha" in the network.

The third service is "redis". It uses the official Redis image, is called "redis" in the container and only has the time zone as an environment variable. It runs on port 6379, saves data in a persistent directory and is configured using the command "-save 60 1 -loglevel warning" to save snapshots. The health check uses "redis-cli" every 30 seconds to check whether the service is responding. This container is also in the "sascha" network.

In the end, an external network called "sascha" is defined in which all three containers can communicate with each other without having to release their internal services to the outside world.

🛡️ A few more tips

  • Backups regularly (e.g. via rsync, borg or snapshots).
  • UpdatesImageGenius image regularly rebuild.
  • SSLSet up reverse proxy with Traefik or Nginx for HTTPS access.
  • GPU accelerationOptional via /dev/dri Activate QuickSync for Intel.

YouTube video implementation

💬 Conclusion: Your private photo cloud - simple, secure, independent

With Immich, you can build your own modern photo cloud - without any dependence on large platforms. The installation with Docker is done quickly, and with the ImageGenius image you have a stable all-in-one solution.

Whether you are a photographer, want to back up your family photos or run your own small media center - Immich is the right platform for you.

The product display was implemented using the affiliate-toolkit WordPress plugin.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

en_US