Installation von Immich mit Docker Compose
Immich ist eine leistungsstarke Open-Source-Plattform zum Verwalten von Fotos und Videos. Mit der offiziellen Anleitung kannst du Immich unkompliziert mit Docker Compose installieren. Hier erkläre ich dir Schritt für Schritt, wie das funktioniert.
Voraussetzungen
Bevor du loslegst, stelle sicher, dass folgende Voraussetzungen erfüllt sind:
- Docker: Installiere Docker auf deinem System. Hier findest du eine Anleitung.
- Docker Compose: Stelle sicher, dass Docker Compose installiert ist. Falls nicht, installiere es über diese Anleitung.
Schritt-für-Schritt-Anleitung
1. Projektverzeichnis erstellen
Erstelle ein Verzeichnis, in dem die Konfigurationsdateien gespeichert werden:
mkdir /opt/immich-docker && cd /opt/immich-docker
2. Docker-Compose-Datei herunterladen
Lade die erforderliche docker-compose.yml
-Datei von der offiziellen Immich-Website:
curl -o docker-compose.yml https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml
3. Umgebungsvariablen konfigurieren
Die Docker-Compose-Datei benötigt eine .env
-Datei, um Umgebungsvariablen zu setzen. Du kannst eine Vorlage herunterladen:
curl -o .env https://raw.githubusercontent.com/immich-app/immich/main/docker/.env.sample
Passe die Datei nach deinen Bedürfnissen an. Öffne sie mit einem Texteditor:
nano .env
Wichtige Variablen sind unter anderem:
- DATABASE_USER und DATABASE_PASSWORD: Benutzername und Passwort für die PostgreSQL-Datenbank.
- TZ=Etc/UTC: Diese auf Europe/Berlin stellen.
(Optional) hwaccel.transcoding.yml
Diese Datei wird genutzt, um Hardwarebeschleunigung (Hardware Acceleration, kurz HW Acceleration) für die Transkodierung von Videos zu aktivieren. Dabei wird die Verarbeitung von Videodateien (wie das Umwandeln in ein kompatibles Format oder das Reduzieren der Dateigröße) durch die GPU deines Systems beschleunigt, anstatt ausschließlich die CPU zu belasten.
wget -O hwaccel.transcoding.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml
(Optional) hwaccel.ml.yml
Diese Datei wird verwendet, wenn keine Hardwarebeschleunigung verfügbar ist. Stattdessen wird die Videoverarbeitung vollständig von der CPU übernommen.
wget -O hwaccel.ml.yml https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml
4. Docker-Compose-Dienste starten
Starte Immich und die zugehörigen Dienste mit Docker Compose:
docker-compose up -d
5. Status prüfen
Überprüfe, ob die Dienste ordnungsgemäß laufen:
docker-compose ps
6. Zugriff auf Immich
Rufe Immich in deinem Browser auf:
http://localhost:2283
Falls du auf einem Server arbeitest, ersetze localhost
mit der IP-Adresse deines Servers.
Tipps zur Verwaltung
Dienste neustarten:
docker-compose restart
Logs anzeigen: Sieh dir die Logs eines bestimmten Dienstes an:
docker-compose logs <dienstname>
Nginx auf dem Host einrichten
Damit auch alles von ausserhalb erreichbar ist, wird nun Nginx eingerichtet. Zuerst müssem die DNS Einstellungen für die Domain vorhanden sein. Ist das erledigt, dann muss noch folgendes getan werden.
certbot certonly --nginx -d immich.domain.tld
Danach wird eine Nginx Konfiguration angelegt.
server {
# Redirect all HTTP requests to HTTPS
listen 80;
listen [::]:80;
server_name immich.domain.tld;
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name immich.domain.tld;
# Path to the SSL certificates from Let's Encrypt
ssl_certificate /etc/letsencrypt/live/immich.domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/immich.domain.tld/privkey.pem;
# SSL options
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
# allow large file uploads
client_max_body_size 50000M;
# Set headers
proxy_set_header Host $http_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;
# enable websockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
# set timeout
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
location / {
proxy_pass http://127.0.0.1:2283;
}
# Optionally add security headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
}
Nun die Seite aktivieren und Nginx neu starten.
ln -s /etc/nginx/sites-available/immich /etc/nginx/sites-enabled/immich
service nginx reload
Mit diesen Schritten hast du Immich erfolgreich installiert und konfiguriert. Für weitere Anpassungen und Updates empfehle ich dir, die offizielle Dokumentation zu konsultieren.
Ich nutze seit mehr als einem Jahr Immich, dies hat Google Fotos und Apple Photos komplett ersetzt, ebenso der Upload in meine Nextcloud. Dieser geschieht nur noch über die Immich App für iOS bzw. Android.