immich - deine eigene Fotoverwaltung

  Lioh Möller   Lesezeit: 3 Minuten  🗪 8 Kommentare Auf Mastodon ansehen

Verwalte deine Fotos mit immich auf deinem Homeserver und teile deine Erinnerungen mit deinen Freunden ohne Google Fotos und ähnliche Dienste!

immich - deine eigene fotoverwaltung

immich einrichten

In diesem Video möchte ich euch zeigen, wie ihr eure eigene Fotoverwaltung mit immich auf eurem Homeserver einrichten könnt. Dazu verwenden wir Docker und Docker-Compose und machen die Software über einen NGINX-Proxy mit Let's Encrypt sicher aus dem Internet zugänglich.

Vorbereitung: Virtuelle Maschine einrichten

Falls ihr immich in einer virtuellen Maschine mit VirtualBox installieren möchtet, achtet darauf, den Bridged-Modus in den Netzwerkeinstellungen der VM zu aktivieren, damit ihr eine IP-Adresse aus eurem lokalen Netzwerk erhaltet.

Docker installieren

Zuerst installieren wir Docker und Docker Compose. Damit ihr die Container ohne Root-Rechte verwalten könnt, fügt ihr euren Benutzer zur 'docker'-Gruppe hinzu.

sudo apt install docker.io docker-compose
usermod -a -G docker $DEIN_USERNAME

Vergesst nicht euch nach dem Hinzufügen des Benutzers zur Gruppe einmal ab- und wieder anzumelden.

Verzeichnis für immich erstellen

Als Nächstes erstellt ihr ein Verzeichnis für die immich-Anwendung

mkdir ./immich-app
cd ./immich-app

Nun könnt ihr die erforderlichen Dateien herunterladen. Dazu gehören die Docker-Compose-Datei und eine Konfigurationsdatei (.env), in der einige Parameter wie der Datenbankname und das Passwort festlegen werden. 

wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

Sicheres Passwort generieren

Um die Sicherheit zu erhöhen, empfehle ich, das Standardpasswort in der Konfigurationsdatei zu ändern. Ihr könnt das Tool "pwgen" verwenden, um ein sicheres Passwort zu generieren.

sudo apt install pwgen
pwgen -y -n 24

Docker-Container starten

Nachdem ihr die Konfigurationsdateien angepasst habt, startet ihr den Docker-Container.

docker-compose up -d

Sofern alles geklappt hat, könnt ihr im Browser auf die lokale Adresse zugreifen, um zu überprüfen, ob immich korrekt läuft.

http://localhost:2283

Externer Zugriff mit DynDNS und SSL

Um von extern auf eure Anwendung zugreifen zu können, benötigt ihr eine DynDNS-Adresse und ein SSL-Zertifikat, welches ihr mit dem Tool Certbot beziehen könnt. Ein NGINX Webserver fungiert als Reverse Proxy.

sudo apt install nginx certbot python3-certbot-nginx

Mittels Certbot könnt ihr das Zertifikat beziehen. Voraussetzung ist, dass eure DynDNS-Domain auf eure IP-Adresse zeigt und dass die Ports 80 und 443 im Router auf euren Homeserver weitergeleitet werden:

certbot certonly -d immich.domain.tld
systemctl enable certbot.timer

In der Dokumentation des Projektes findet ihr eine NGINX-Konfigurationsdatei, die die SSL-Zertifikate nutzt und den Verkehr von der DynDNS-Adresse zur immich-Anwendung auf dem localhost weiterleitet.

Konfiguration anwenden und testen

Nachdem die Nginx-Konfiguration erstellt und aktiviert wurde, starten wir den Webserver. Testet dann den Zugriff auf die Anwendung über die DynDNS-Adresse. Wenn alles geklappt hat, werdet ihr sehen, dass die Benutzeroberfläche von immich zugänglich ist, über die ihr nun eure Fotos hochladen und verwalten könnt.

Ich hoffe, ihr habt viel Spaß beim Einrichten eurer eigenen Fotoverwaltung mit immich! Wenn ihr während der Installation nicht weiter kommen solltet, zögert nicht, Fragen in der Community zu stellen.

Links:

Anleitung von Lars Müller auf GNU/Linux.ch: https://gnulinux.ch/immich-mit-docker-compose-installieren

Offizielle Dokumentation: https://immich.app/docs/install/docker-compose/

Das Freie Software Fotobuch: https://notabug.org/fsfe-zh/fotobuch

TuxWiz

Hast du Lust, das Linux-Betriebssystem auf eine unterhaltsame Weise kennenzulernen? Dann schau unbedingt auf meinem YouTube-Kanal TuxWiz vorbei! ✨

Ich habe speziell für Einsteiger eine Playlist erstellt, die dich Schritt für Schritt durch die aufregende Welt von Linux und Freier Software führt. Also starte von Anfang an – du wirst sehen, wie viel Spass es macht!

Die Linux-Lernvideos bauen auf meiner Debian GNU/Linux basierenden Distribution SpaceFun auf. Viele der bei Einsteiger_innen beliebten Linux-Distros wie Mint, MX Linux oder Ubuntu stammen ebenfalls aus dieser kosmischen Familie. Falls du eine andere Distro nutzt, keine Sorge – die grundlegenden Mechanismen sind universell und lassen sich problemlos übertragen.

Ich freue mich auch, wenn du mir auf Mastodon folgst. Dort erfährst du immer sofort, wenn es etwas Neues zu entdecken gibt.

Mein Kanal auf YouTube: https://www.youtube.com/@tuxwiz

Die Einsteiger-Playlist: https://www.youtube.com/playlist?list=PLJlnbs0kQiZiWks57CPOoCOnUlFwbZWQp

Tags

immich, Selfhosting

mozarella
Geschrieben von mozarella am 10. Mai 2025 um 13:58

Mal eine blöde Frage. Wenn ich einen Docker-Container nutze, wie hier für immich beschrieben. Darin dann Fotos rein lade, sind die dann in dem Docker-Container gefangen? Oder liegen die im Dateisystem des Hostes? Es gibt mittlerweile sehr viele Projekte für Docker, immich und nextcloud. Wenn aber die Daten dann in den jeweiligen Containern "gefangen" sind, macht es eigentlich keinen Sinn, oder? Oder kommt man von "außen" also vom Host aus, auch an die Daten heran?

neffets
Geschrieben von neffets am 10. Mai 2025 um 16:30

Konfiguration und Daten liegen in der Regel außerhalb des Containers in Volumes und sind damit auch in anderen Containern oder vom Host aus zugreifbar. Der Container enthält lediglich die Applikation mit ihren Abhängigkeiten und wird beim Starten automatisch aktualisiert und beim Beenden gelöscht.

Lioh Möller
Geschrieben von Lioh Möller am 10. Mai 2025 um 17:10

Nein, bei all den von mir vorgestellten Projekten liegen die Daten ausserhalb des Containers. Im Fall von immich wird dies in der .env Datei definiert und der Standard-Eintrag sorgt dafür, dass deine Bilder im App-Verzeichnis landen.

kamome
Geschrieben von kamome am 10. Mai 2025 um 18:56

Danke – eine Kleinigkeit: In der '.env' steht

> Please use only the characters A-Za-z0-9, without special characters or spaces

Sollte es mit pwgen tatsächlich Probleme geben, wäre das hier sicherer (und funktioniert „überall“ ohne Installation):

cat /dev/urandom |tr -dc 'a-zA-Z0-9' |fold -w 24 |head -n 1

kamome
Geschrieben von kamome am 10. Mai 2025 um 19:56

„Sicherer“ hier natürlich nicht im Sinne von „Passwortsicherheit“, sondern von „funktioniert ohne Probleme“.

Und noch zwei total ;) wichtige Erleichterungen, um Tipparbeit zu sparen:

apt search -n ^docker ist schneller zu tippen (das -n nicht dokumentiert in Debians manpage zu apt) und show ist bei ip der Standard, d. h. ip a bzw. ip r reicht. Spart so viel Zeit ;)

Lioh Möller
Geschrieben von Lioh Möller am 10. Mai 2025 um 21:53

Solche Hinweise in READMEs ignoriere ich gewissenhaft 😂 - das ist ja genauso wie zu sagen, das Passwort darf nur eine bestimmte Länge haben. Sollte es solche Beschränkungen tatsächlich geben, ist es nicht sauber programmiert worden. Ich kann aber bestätigen, dass es auch mit Sonderzeichen funktioniert hat. Auf jeden Fall danke für die kompatible Ergänzung.

kamome
Geschrieben von kamome am 12. Mai 2025 um 08:18

Und besser ohne das unnötige cat:

tr -dc 'a-zA-Z0-9' < /dev/urandom |fold -w 24 |head -n 1

Lars
Geschrieben von Lars am 30. Juli 2025 um 20:25

Immich läuft leider nicht innerhalb eines Sub-Directories. https://immich.app/docs/administration/reverse-proxy Hatte mich gewundert, warum ein mydomain/media nicht funktioniert. Ich ziehe alle Sub-Directories mittels HAProxy auf. Dann eben nicht. Schade, aber entweder innerhalb eines Sub-Directories oder gar nicht.