---
title: 'Immich - Bilderarchiv'
url: 'https://niklas-stephan.de/en/wiki/free-open-source-software/immich-bilderarchiv'
markdown: 'https://niklas-stephan.de/en/wiki/free-open-source-software/immich-bilderarchiv.md'
lang: en
date: '2026-11-08'
description: 'Immich - Bilderarchiv Immich ist Google / Apple Fotos souverän selbst gehostet, mit fast allen von dort bekannten Features. Konkret bedeutet das, dass die Bilder die wir auf dem Handy machen, automatisch zu Immich hochgeladen werden und dort dann auf allen anderen verbundenen Endgeräten sowie über …'
---

# Immich - Bilderarchiv

[Immich](https://immich.app/) ist Google / Apple Fotos souverän selbst gehostet, mit fast allen von dort bekannten Features.

Konkret bedeutet das, dass die Bilder die wir auf dem Handy machen, automatisch zu Immich hochgeladen werden und dort dann auf allen anderen verbundenen Endgeräten sowie über die Web-UI zur Verfügung stehen. Über eine einfache KI werden außerdem Gesichter erkannt und über die Geotags der Bilder Positionsdaten verfügbar gemacht.

![](https://niklas-stephan.de/images/c/6/1/3/d/c613dd389b21ab3dac8c05188dbc0fb9c14c3d64-immich.webp)Gegenüber anderen freuen Open-Source Alternativen wie die in Nextcloud, Opencloud oder Owncloud sticht die Spezialisierung und Zuverlässigkeit der Synchronisation heraus.

## Setup

Immich ist eine klassische Client/Server App.

### Server

Immich lässt sich als Service auf unserem VPS betreiben.

Zur Realisierung richten wir die folgende Docker-Compose Infrastruktur in einem Projektordner unserer Wahl ein.

```yaml
immich/
├── compose.yml
├── .env
├── db/
├── data/
└── model-cache/
```

Der Inhalt der Dateien folgt diesem Schema

Details

`compose.yml` ```yaml services: immich-server: #Applikationsserver container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} #Version aus der .env Datei devices: - /dev/dri:/dev/dri #Zur Grafikbeschleunigung mit Intel/AMD Grafikkraten im Host volumes: - ${UPLOAD_LOCATION}:/data #Speicherort der Bilder - /etc/localtime:/etc/localtime:ro #Uhrzeit env_file: - .env #Name der .env Datei depends_on: - redis # Redis Cache Container - database # Datenbankcontainer restart: unless-stopped healthcheck: disable: false networks: - default #Internes Netzwerk - caddy #Reverse Proxy Netzwerk immich-machine-learning: container_name: immich_machine_learning image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} #Version aus der .env Datei group_add: - video #Zur Grafikbeschleunigung mit Intel/AMD Grafikkraten im Host devices: - /dev/dri:/dev/dri #Zur Grafikbeschleunigung mit Intel/AMD Grafikkraten im Host volumes: - ./model-cache:/cache #Speicherort der KI-Modelle env_file: - .env #Name der .env Datei restart: unless-stopped healthcheck: disable: false networks: - default #Internes Netzwerk redis: container_name: immich_redis image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa healthcheck: test: redis-cli ping || exit 1 restart: unless-stopped networks: - default database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} #Passwort au POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: "--data-checksums" user: "1000:1000" volumes: - ${DB_DATA_LOCATION}:/var/lib/postgresql/data shm_size: 512mb restart: unless-stopped networks: - default networks: caddy: external: true ``` 

Details

`.env` ```yaml # You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=/zfsdata/apps/immich/library # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=./db # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List TZ=Europe/Berlin # The Immich version to use. You can pin this to a specific version like "v2.1.0" IMMICH_VERSION=v2 # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=DEIN-DB-PASSWORD # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich PUID=1000 PGID=1000 ``` 

Während wir die beiden Ordner nur anlegen.

### Client Setup

Apple iOS: <https://get.immich.app/ios>

Android: <https://get.immich.app/android>

## Alternativen

- Google Fotos
- Apple Fotos
- OpenCloud
- Nextcloud
- OwnCloud

## Quellen / Links

- <https://docs.immich.app/overview/quick-start>
- <https://github.com/immich-app/immich>
- <https://immich.app>
- <https://get.immich.app/android>
- <https://get.immich.app/ios>

---

## Navigation

- Parent: [Free Open-Source Software](https://niklas-stephan.de/en/wiki/free-open-source-software.md)
- Previous: [Hugo](https://niklas-stephan.de/en/wiki/free-open-source-software/hugo.md)
- Next: [Matomo](https://niklas-stephan.de/en/wiki/free-open-source-software/matomo.md)
