Immich – Self-Hosted Google Photos Alternative installieren | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

303 Dokumentationen verfügbar

Wissensdatenbank

Immich Google Photos Alternative Self Hosted

Zuletzt aktualisiert: 05.04.2026 um 19:42 Uhr

Immich – Self-Hosted Google Photos Alternative installieren

Was ist Immich?

Immich ist ein modernes, selbst gehostetes Foto- und Videoverwaltungssystem als Open-Source Alternative zu Google Photos. Mit Immich können Sie Ihre Mediendateien vollständig kontrollieren und von überall aus darauf zugreifen.

Hauptfunktionen:

  • Foto-/Video-Verwaltung: Hochladen, Organisieren und Anzeigen von Tausenden von Medien
  • Automatisches Backup: Mobile App für automatisches Backup (Android/iOS)
  • Gesichtserkennung: AI-basierte Gesichtserkennung mit Clustering
  • Intelligente Suche: Suche nach Objekten, Orten, Personen, Text (OCR)
  • Alben und Kollektionen: Organisieren Sie Fotos in Alben und teilen Sie diese
  • Video-Transkodierung: Automatische Videokonvertierung
  • Statuskarte: Zeigt Fotoorte auf einer Karte an (wenn EXIF vorhanden)
  • Timeline: Zeitgesteuerte Ansicht aller Medien
💡 Tipp: Immich erfordert eine GPU (NVIDIA) für optimale ML-Performance. Sie können es auch ohne GPU betreiben, aber die Gesichtserkennung wird deutlich langsamer sein.

Systemanforderungen

Komponente Minimum Empfohlen
CPU 2 Kerne 4+ Kerne
RAM 4 GB 8-16 GB
Speicher Abhängig von Fotomenge 100+ GB (SSD empfohlen)
GPU Keine (optional) NVIDIA GPU (CUDA) für schnelle ML
Docker 20.10+ 24.0+

Installation mit Docker Compose

Schritt 1: Docker und Docker Compose installieren

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Docker Compose installieren
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Schritt 2: Verzeichnisse erstellen

mkdir -p /opt/immich
cd /opt/immich
mkdir -p upload pgdata

Schritt 3: .env Datei erstellen

Erstellen Sie /opt/immich/.env:

# Immich Environment Variables
IMMICH_VERSION=v1.100.0

# PostgreSQL Database
DB_HOSTNAME=immich-db
DB_PORT=5432
DB_USERNAME=immich
DB_PASSWORD=secure_password_here_change_this
DB_DATABASE_NAME=immich

# Redis
REDIS_HOSTNAME=immich-redis
REDIS_PORT=6379

# Immich Server
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_PORT=3001

# Machine Learning (optional)
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
IMMICH_WORKERS=4

# File Upload
UPLOAD_LOCATION=/usr/src/app/upload

# Timezone
TZ=Europe/Berlin

# NVIDIA GPU Support (optional)
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=compute,utility

Schritt 4: docker-compose.yml erstellen

version: '3.8'

services:
  immich-server:
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    container_name: immich-server
    ports:
      - "3001:3001"
    depends_on:
      - immich-db
      - immich-redis
    environment:
      DB_HOSTNAME: ${DB_HOSTNAME}
      DB_PORT: ${DB_PORT}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE_NAME: ${DB_DATABASE_NAME}
      REDIS_HOSTNAME: ${REDIS_HOSTNAME}
      IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003
      IMMICH_WORKERS: ${IMMICH_WORKERS:-4}
      TZ: ${TZ}
    volumes:
      - /opt/immich/upload:/usr/src/app/upload
    restart: unless-stopped
    networks:
      - immich-network

  immich-microservices:
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    container_name: immich-microservices
    command: start.sh microservices
    depends_on:
      - immich-db
      - immich-redis
    environment:
      DB_HOSTNAME: ${DB_HOSTNAME}
      DB_PORT: ${DB_PORT}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_DATABASE_NAME: ${DB_DATABASE_NAME}
      REDIS_HOSTNAME: ${REDIS_HOSTNAME}
      IMMICH_MACHINE_LEARNING_URL: http://immich-machine-learning:3003
      TZ: ${TZ}
    volumes:
      - /opt/immich/upload:/usr/src/app/upload
    restart: unless-stopped
    networks:
      - immich-network

  immich-machine-learning:
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    container_name: immich-machine-learning
    environment:
      IMMICH_WORKERS: ${IMMICH_WORKERS:-4}
      TZ: ${TZ}
    volumes:
      - /opt/immich/model-cache:/cache
    restart: unless-stopped
    # Für NVIDIA GPU Unterstützung: uncomment
    # deploy:
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: 1
    #           capabilities: [compute, utility]
    networks:
      - immich-network

  immich-db:
    image: postgres:15-alpine
    container_name: immich-db
    environment:
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      TZ: ${TZ}
    volumes:
      - /opt/immich/pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    networks:
      - immich-network

  immich-redis:
    image: redis:7-alpine
    container_name: immich-redis
    restart: unless-stopped
    networks:
      - immich-network

  immich-typesense:
    image: typesense/typesense:0.24.0
    container_name: immich-typesense
    environment:
      TYPESENSE_API_KEY: ${TYPESENSE_API_KEY:-changeme}
      TYPESENSE_ENABLE_CORS: "true"
    volumes:
      - /opt/immich/tsdata:/data
    restart: unless-stopped
    networks:
      - immich-network

networks:
  immich-network:
    driver: bridge

volumes:
  pgdata:
  model-cache:
  tsdata:

Schritt 5: Immich starten

cd /opt/immich
docker-compose up -d

# Logs anschauen
docker-compose logs -f immich-server

Immich ist jetzt verfügbar unter: http://localhost:3001

⚠️ Wichtig: Ändern Sie das Datenbankpasswort und API-Schlüssel in der .env Datei! Verwenden Sie starke, zufällig generierte Passwörter.

Erste Anmeldung und Setup

  1. Öffnen Sie http://localhost:3001 im Browser
  2. Registrieren Sie den Admin-Account (erster Benutzer wird Admin)
  3. Nach dem Login gelangen Sie zum Dashboard
  4. Erstellen Sie Alben oder Bibliotheken (optional)

Fotos hochladen

Via Web-Interface

  1. Klicken Sie auf Upload in der Sidebar
  2. Wählen Sie Fotos/Videos zum Hochladen
  3. Warten Sie auf Abschluss des Uploads

Via Mobile App (Automatisches Backup)

Android:

  • Installieren Sie "Immich" aus dem Google Play Store
  • Geben Sie Server-URL und Anmeldedaten ein
  • Aktivieren Sie "Auto Backup" in den Einstellungen
  • Wählen Sie Backup-Ordner (DCIM, Screenshots, etc.)

iOS:

  • Installieren Sie "Immich" aus dem App Store
  • Konfigurieren Sie gleich wie Android
  • Auto Backup funktioniert auch im Hintergrund

Gesichtserkennung aktivieren

Voraussetzungen

Die Machine Learning Container muss laufen (in docker-compose.yml enthalten).

Gesichtserkennung konfigurieren

  1. Gehen Sie zu Settings → Administration → Facial Recognition
  2. Aktivieren Sie Enable Facial Recognition
  3. Setzen Sie Min Recognized Faces auf 1-5 (je höher, desto sicherer aber weniger Ergebnisse)
  4. Speichern

Scan auslösen

  • Gehen Sie zu Administration → Facial Recognition
  • Klicken Sie Trigger Face Detection
  • Der Scan läuft im Hintergrund (kann mehrere Stunden dauern)
  • Fortschritt wird in den Logs angezeigt

Nach dem Scan können Sie in der Web-UI Gesichter erkennen und Personen-Alben erstellen.

Hardware Transcoding (NVIDIA GPU)

Wenn Sie eine NVIDIA GPU haben, aktivieren Sie Hardware-Transcoding:

NVIDIA Docker Runtime installieren

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update && sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

docker-compose.yml anpassen

# In immich-server Service:
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: 1
          capabilities: [compute, utility]

# In immich-machine-learning Service:
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: 1
          capabilities: [compute, utility]

Nach Änderung:

docker-compose up -d

Reverse Proxy mit Nginx

# /etc/nginx/sites-available/immich
server {
    listen 80;
    server_name photos.example.com;

    location / {
        return 301 https://$server_name$request_uri;
    }
}

server {
    listen 443 ssl http2;
    server_name photos.example.com;

    ssl_certificate /etc/letsencrypt/live/photos.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/photos.example.com/privkey.pem;

    client_max_body_size 100M;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Aktivieren und SSL einrichten:

ln -s /etc/nginx/sites-available/immich /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

certbot certonly --nginx -d photos.example.com
✅ Gut zu wissen: Setzen Sie client_max_body_size in Nginx auf mindestens 100M, um große Videodateien hochzuladen zu können.

Backup-Strategie

Datenbank Backup

#!/bin/bash
# /usr/local/bin/immich-backup.sh

BACKUP_DIR="/backup/immich"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# PostgreSQL Dump
docker exec immich-db pg_dump -U immich immich | \
    gzip > $BACKUP_DIR/immich-db-$DATE.sql.gz

# Upload Ordner kopieren (bei Bedarf)
# tar -czf $BACKUP_DIR/immich-upload-$DATE.tar.gz /opt/immich/upload

echo "Backup completed: $BACKUP_DIR/immich-db-$DATE.sql.gz"

In Crontab einbinden:

# Täglich um 2 Uhr
0 2 * * * /usr/local/bin/immich-backup.sh

Speicherverwaltung

Dateityp Speicherort Notizen
Fotos/Videos /opt/immich/upload Original Mediendateien
Datenbank /opt/immich/pgdata PostgreSQL Daten
ML-Modelle /opt/immich/model-cache Cached ML-Modelle (neu heruntergeladen wenn gelöscht)

Update Prozedur

cd /opt/immich

# Image updaten
docker-compose pull

# Container neu starten
docker-compose up -d

# Datenbank-Migrations werden automatisch durchgeführt
docker-compose logs -f immich-server

Speicherverwaltung und Optimierung

Upload-Speicher optimieren:

# Duplikate finden (optional)
fdupes -r /opt/immich/upload

# Cache der Machine Learning Modelle leeren
docker exec immich-machine-learning rm -rf /cache/*

# Datenbank Speicher optimieren
docker exec immich-db vacuumdb -U immich -d immich

Verwandte Artikel

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120