, ,

Immich – Die SelfHost Fotoverwaltungssoftware

Für über ein Jahr bin ich auf die Software Immich gestoßen und dachte mir „wer bitte brauch das?“. Ich bin Apple Nutzer und bin mit der Fotos App sehr zufrieden. Doch mit der Fotos App bin ich eingeschränkt. Sie läuft nur auf Apple Geräten. Das Teilen von Fotos mit z.B. Android Nutzern ist nicht möglich bzw. nur schwer. Klar kann ich einfach ein Google Konto erstellen (hat man in der Regel sowieso z.B. für YouTube) und kann hier die 15Gb nutzen. Aber was sind 15Gb? Die können schnell voll sein.
Zudem finde ich Linux spannend und Linux Mint ist auch mein zweites Betriebsystem auf diesen Rechner. Ich kann also nicht mal eben Fotos von Apple nach Linux senden.

Mit Immich bin ich Flexibel. Ich kann es über einen Reverse Proxy öffentlich zugänglich machen. Ich kann es aber auch nur im LAN betreiben.
Es gibt für Android und iPhone eine App (gut möglich auch fürs iPad).

Installation

Genug gefaselt, Zeit für die Installation. Solltest du Immich vorher mal testen wollen, auf dem GitHub Projekt gibt es einen Link zu einer Testumgebung.

Zur Installation habe ich einen LXC Container in Proxmox erstellt mit 10GB. Stand jetzt nach der fertigen Installation sind knapp 7GB belegt (ohne Fotos). 2GB RAM waren ein bisschen zu knapp. Der Container lief unter Last nur am Limit. Aus dem Grund habe ich den RAM auf 6GB angepasst, was sicherlich ein bisschen zu viel ist. Bei der CPU das gleiche. 1 CPU war zu wenig, aus dem Grund angepasst auf 3, was wiederum zu viel ist.
Haben ist eben besser als brauchen.
WICHTIG bei der Erstellung des LXC’s: Solltest du eine SMB Freigabe planen, nimm den Haken bei Unprivilegierter Container raus. Ist der Container erstellt gehst du unter Optionen Features und aktivierst Nesting und SMB/CIFS.

Ich weiß, LXC und dann noch Docker. Container im Container. Es läuft und das stabil. LXC’s sind schlanker und ich habe gerne für jede Anwendung einen eigenen LXC/VM. Solltest du Docker in einer VM oder auf einem Pi laufen lassen, dann ignoriere den Schritt mit den LXC Einstellungen.

Für die Fotos Ablage habe ich auf meiner externen Festplatte einen Ordner erstellt und diesen als SMB freigegeben. Die SMB Freigabe habe ich über OpenMediaValt erstellt.

Da Immich Docker benötigt, habe ich zuerst curl, Docker, und Docker Compose installiert. Dann habe ich mich für den Container Dockge entschieden. Über Dockge habe ich die weitere Installation vorgenommen.

## System Update
apt update && apt upgrade -y && apt autoremove -y && reboot

## Installation von curl
apt install curl -y

## Installation von Docker
curl -sSL https://get.docker.com | sh

## Installation von docker compose
apt install docker-compose -y

## Installation von Dockge
## passende Ordner erstellen
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge

## Verzeichnis Downloaden
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
nano compose.yaml

## ich habe hier noch einen container_name und hostnamen hinzugefügt. Die Verzeichnisse müssen so bleiben. Was geändert werden kann ist das /opt/stacks unter volumes.

  dockge:
    container_name: dockge
    hostname: dockge

## Container ausrollen
docker compose up -d

## erreichbar unter Port 5001
http://192.168.IP.IP:5001

## USER und Passwort vergeben

SMB Freigabe

Wie gesagt, wollte ich meine Fotos auf einer externen Festplatte speichern. Das hat für mich den Vorteil, dass ich vom Mac, unter Linux und auch unter Windows im Netzwerk oder per VPN auf die Fotos zugreifen kann.

Zuerst habe ich die Pakete für CIFS Installiert. 

apt install cifs-utils -y

Dann habe ich einen Ordner erstellt in /mnt/hdd4tb. Bei mir handelt es sich hierbei um eine HDD Festplatte mit 4Tb. Ihr könnt den Ordner aber auch Immich nennen, macht vermutlich mehr Sinn.

Nun habe ich mich mit meiner SMB Freigabe verbunden.

mount -t cifs //192.168.IP.IP/hdd4tb/Fotos/Immich /mnt/hdd4tb -o username=NUTZER,password=PASSWORT

Das Verzeichnis auf sich Anpassen. Das kann man gut unter Apple Testen indem man den Finder öffnet und CMD+K tippt. Dann öffnet sich ein Fenster. Hier einmal den Pfad eintragen

smb://192.168.IP.IP/hdd4tb/Fotos/Immich

Kommst du auf deinem Ordner, hast du alles richtig gemacht. Das SMB Passwort sollte einfach sein. Also ohne Sonderzeichen. Ich hatte in der Vergangenheit mit Sonderzeichen Probleme. Da sich die Freigabe aufs Heimnetz beschränkt, ist dies auch ein überschaubares Sicherheitsrisiko. Auch benötigt der SMB Nutzer schreib und lese Rechte.

Nun noch unter

nano /etc/fstab

die SMB Freigabe eintragen, so das bei einem Neustart die Verbindung wieder hergestellt wird.

//192.168.IP.IP/hdd4tb/Fotos/Immich /mnt/hdd4tb cifs username=USERNAME,password=PASSWORT 0 0

Immich anpassen

Ich habe mir von GitHub das aktuelle Skript gezogen und dies in VSC auf mich angepasst.
https://github.com/immich-app/immich

Die Anpassung sah wie folgt aus:

  • Verzeichnis anpassen. Hier die in Klammern ignorieren (z.B. ${DB_DATA_LOCATION}). Diese sind ein Verweis auf eine andere Datei.
    volumes:
    – /mnt/hdd4tb/model-cache:/cache
    Hier habe ich die Weiterleitung auf meinen CIFS (SMB) Verzeichnis erstellt.

Docked

In Docked habe ich einen neuen Eintrag erstellt und das Docker Compose File eingefügt. Weiter unten habe ich die .env Datei noch angepasst.

## Verweis auf den Upload Ordner
UPLOAD_LOCATION 

## habe ich im Verzeichnis von meiner Docker Installation gelassen (also nicht in die SMB Freigabe)
DB_DATA_LOCATION

## Die Timezone habe ich auf Deutschland angepasst.
TZ=Europe/Berlin

## einmal auf die Tastatur gehauen und schon hatte ich eine Passwort
DB_PASSWORD 

So sieht es bei mir aus:

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=/mnt/hdd4tb/upload
# The location where your database files are stored
DB_DATA_LOCATION=./postgres

# 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 "v1.71.0"
IMMICH_VERSION=release

# 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=refdbnd9mpr92

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Nun noch dem Container in Docked einen Namen geben und fertig mit Deploy. Dies dauert nun ein paar wenige Minuten.
Über den Port 2283 ist Immich aufrufbar. (http://192.168.IP.IP:2283)

Alternativen

Die Mehrzahl „Alternativen“ hört sich gut an. Tatsächlich handelt es sich hierbei nur um eine App. Die App PhotoSync nutze ich schon seit Jahren und bin mit dieser sehr zufrieden.

Ich nutze sie wie folgt:
Möchte ich meine Fotos vom Handy haben, gehe ich in die App. Dort habe ich einen Pfad zur iCloud hergestellt. Drücke ich auf Upload schreibt die App jedes Foto so um, wie ich es vorher eingestellt habe (Jahr-Monat-Tag). Die App legt auf Wunsch auch einen Ordner nach deinen Wünschen an.

Noch mal kurz zum Pfad wo die Fotos gespeichert werden: Kommst du mit der Dateien App dort hin, kommt PhotoSync auch in das Verzeichnis. Also kannst du die Fotos auch in Nextcloud, Google und Co speichern.

Das ist der leichtere und langweiligere Weg. 🙂


Avatar von Sascha

Kommentare

Eine Antwort zu „Immich – Die SelfHost Fotoverwaltungssoftware“

  1. […] ich Nextcloud. Viele Funktionen der iCloud nimmt mir mein Server ab. Beispiel die Foto-Archiv-App Immich, zu der ich einen Beitrag geschrieben […]

Schreibe einen Kommentar zu Linux – Der Wechsel von MacOS auf Linux – BitNike Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert