Immich on Hetzner

10.06.2026

I migrated almost all my stuff from Google, but Photos were still standing. Let's deep dive into this topic and change that!

Welcome to my post about switching from Google Photos to Immich self-hosted software.


Disclaimer: One of harsh truths about this is that you need to know something about linux commands, and it is not that easy to migrate. Having production ready photo app is not only about having the app running, but also about backups and security.

My steps

Chapter Link Name Description
Chapter 1 Why Immich and Hetzner What else could I use?
Chapter 2 Used technologies Mainly description of Hetzner storage options
Chapter 3 Setting up Hetzner server How to set up Hetzner server correctly with volumes
Chapter 4 Immich infrastructure How to set up Immich, showcase of my repository with README
Chapter 5 Immich backup How to set up backup of photos and database, examples in repo
Chapter 6 Photos migration How to migrate photos from Google once Immich + backups are up and running
Chapter 7 Price comparison Google Photos vs my Immich setup price comparison
Chapter 8 Summary ---

Why Immich and Hetzner

Immich

Immich is a self-hosted photo and video management solution which is looking similar to Google Photos.

It has great docs, android and iOS apps and a big team working on it.

Many people are self-hosting it, and they are really happy, Immich repository has over 100,000 stars and new versions are coming out regularly.

In case you will use Immich, think about donating some money to them via official webpage

If you don't want to self-host, check out Ente.

Hetzner

For compute hosting, I had multiple options (check them here) but ultimately I liked Hetzner, their location in Germany and that all their datacenters are powered with sustainable power.

You can choose whatever VPS provider you find cool; I would just keep in mind you probably want a provider from EU since you are doing this migration for a reason (buying a server from Google would be weird)

Used technologies

So what we need from Hetzner is:

Another thing you probably want is a custom domain.

Setting up Hetzner server

After you buy a cloud server from Hetzner (let's say CPX31) you will need to set it up. This is outside the scope of this post, but think about:

Once you are done, buy Hetzner Volume (Block Storage) in the same location as your server and mount it.

As the last step, buy Hetzner Storage Box in a different location than your server

With these 3 bought you can go to the next chapter and set up Immich

Immich infrastructure

I've prepared a repository immich-infra which helps with the setup.

Note: Always check if this repository was updated with latest Immich version

Checkout the README file, please read it first before you start typing commands

In a nutshell

Steps needed on the server:

  1. Install Caddy
    1. Installs caddy reverse proxy logic and gets you a certificate
  2. Setup Immich with disk storage
    1. Prepares Immich instance with saving data into Hetzner Volumes SSD
  3. Set up nightly backups with systemd timers (this is described in the next chapter)
    1. Every night a script copies the data into Storage Box

Steps needed for custom domain:

  1. Set DNS A record to point to your server IP address
    1. This step is not in the README, you need to edit this in your-domain-provider's webpage
    2. example.org needs to match your IMMICH_SITE_HOSTNAME in caddy.service file

DNS A record example: example.org points to 1.12.345.67 with TTL 5 minutes

After you are done with Immich instalation you can create first admin user, check official docs

Immich backup

As mentioned previously, check immich-infra repository and find Backup Strategy chapter.

Once done your data will be transferred every night into the Hetzner Storage Box


Now your system is running and backing up the data.

Wait for the first automated backup to be done (the next day) and TEST restoring it (either on server or on your local machine). How-to on backup restoration is also in the README

Your backup is useless if you cannot restore it, so please pay attention to this step.


If your backup works, I recommend you to move it to the HDD somewhere disconnected from the internet. Repeat it once a time.

Photos migration

Let's stop here for a quick recap:

Now is the time to actually migrate your photos from Google. You have many options from which I recommend two:

Option 1 - Manually download from Google Photos

I would use this option if you already have your photos in albums and want to keep them that way.

  1. Log into Google Photos
  2. Choose album
  3. Click download all
  4. Create album in Immich
  5. Upload photos to the album in Immich

Pros:

Cons:

Option 2 - Download photos via Google Takeout

If you don't care about albums or don't have shared photos albums in Google Photos, feel free to do it an easy way.

  1. Log into Google Takeout
  2. Click to download all your Photos only (by default you could download all your data from multiple apps)
  3. Choose file size, bigger the better (if you click only 2 GB file, and you have 100 GB of photos it means you will need to download and unzip 50 files)
  4. Once you have all your files (or parts of them) on the disk somewhere drop them into Immich UI and wait for upload

Pros:

Cons:

Price comparison

We will do the calculation for:

Remember: Hetzner Volume is pay per GB, so if you use 500 GB it will be €22/month

All prices are without VAT.

With this setup it costs €14.59/month + VAT.

Important distinction is that on Immich instance, you are able to have multiple users thus lowering price per user significantly. With 3 users you are on ~€5/month which is closer to Google Photos or Ente (Ente has Family Plans with shared storage though).


Google Photos are (depending on country) around €2.50 per 100 GB but keep in mind you should also back it up (this bumps up costs a little bit)

Ente is €5.99 per 200 GB so that's also cheaper than Immich on Hetzner.

Summary

Self-hosting is hard and ofter costly way to software. But if you want extra privacy and really owning your own photos, it's one of the best approaches.

In the end (if you still want to self-host and don't want to pay for Hetzner setup) I would recommend getting your own NAS, removing server and volume costs and using Storage Box as a backup, this would shrink your monthly costs to ~€3.20 (not counting the price of NAS in the beginning)

If you don't want to self-host but want to migrate from Google, use Ente - I was also seriously thinking about it.

Thanks for reading this post, as always feel free to ping me on blog@sivak.eu if you have any questions, or you need help with setting this up.