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
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?
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.
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.
Danke – eine Kleinigkeit: In der '.env' steht
> Please use only the characters
A-Za-z0-9
, without special characters or spacesSollte 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
„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 zuapt
) undshow
ist beiip
der Standard, d. h.ip a
bzw.ip r
reicht. Spart so viel Zeit ;)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.
Und besser ohne das unnötige
cat
:tr -dc 'a-zA-Z0-9' < /dev/urandom |fold -w 24 |head -n 1
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.