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

330 Dokumentationen verfügbar

Wissensdatenbank

Immich Google Photos Alternative Self Hosted

Zuletzt aktualisiert: 14.07.2026 um 12:29 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

Texterstellung mit KI-Unterstützung

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
LLMs können Fehler machen. Ihre Nachrichten werden an Google Gemini weitergeleitet.
120