🔧🚀 Immich – Komplette Installationsanleitung! So richtest du deine eigene Foto-Cloud ein 📸💾

YouTube player

Heute möchte ich euch eine Software vorstellen, dir mir im Alltag viel Zeit einspart. Heutzutage haben wir tausende Bilder und Videos zu verwalten. Man dokumentiert den Wachstum der Kinder , will besondere Momente festhalten, oder nimmt einfach nur gerne Fotos von der Natur auf. Fotos und Videos gehören einfach zum heutigen Alltag. Lange Zeit habe ich mit Cloud Diensten gearbeitet. Ich will hier gar keine Namen nennen, aber die machen alle, mehr oder weniger gut, was ihre Aufgabe ist, nämlich Bilder verwalten. Irgendwie hat es mir nur nie gefallen, meine Bilder in die Cloud zu stellen. Deshalb möchte ich heute eine Software vorstellen, die mir aus meiner Sicht mindestens den gleichen Komfort bietet, aber lokal betrieben werden kann.

Um euch die Arbeit zu erleichtern, habe ich ein Installationsskript erstellt, welches euch den Einstieg in diese Software hoffentlich vereinfacht. Es kann als LXC Container unter Proxmox, VM oder direkt auf einer Hardware installiert werden.

Seht es mir nach, dass ich nicht alle Varianten durchtesten konnte. Voraussetzung ist ein 64 Bit basiertes Linux Betriebssystem ( mit Ubuntu getestet) . Auch solltet ihr ein wenig RAM mitbringen, da auch KI basierte Verfahren zum Einsatz kommen. Mehr dazu findet ihr im Video.

Immich ist kostenlos, bietet aber in der Software die Möglichkeit eine Lizenz zu erwerben. Damit erweitert ihr nicht den Funktionsumfang, aber ihr unterstützt damit die Entwickler. Die Pflege und Entwicklung einer Software ist immer mit sehr viel Aufwand verbunden. Wenn euch die Software also gefällt, lege ich es jeden ans Herz , hier ggf. auch tätig zu werden 🙂

Home | Immich

Um das Skript zu installieren, führt folgenden Befehl aus:

wget https://blog.smarthomeundmore.de/wp-content/uploads/install_immich.sh

danach muss das Skript noch ausführbar gemacht werden.

chmod +x install_immich.sh

Um jetzt die Installation auszuführen, müsst ihr nur noch das Skript aufrufen.

./install_immich.sh

Jetzt könnt ihr die bei der Installation angezeigte Adresse im Browser eingeben und loslegen.

Falls ihr euch das Skript manuell anlegen wollt, hier noch die Inhalte des Skriptes

#!/bin/bash

set -e  # Beende das Skript bei Fehlern

# Variablen definieren
INSTALL_DIR="/opt/immich-app"
IMMICH_USER="immich"
DOCKER_COMPOSE_YML_URL="https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml"
ENV_FILE_URL="https://github.com/immich-app/immich/releases/latest/download/example.env"

# Passwort f  r den Immich-Benutzer abfragen
echo "Bitte ein Passwort f  r den Benutzer '$IMMICH_USER' eingeben:"
read -s IMMICH_PASSWORD
echo "Bitte das Passwort erneut eingeben:"
read -s IMMICH_PASSWORD_CONFIRM

if [ "$IMMICH_PASSWORD" != "$IMMICH_PASSWORD_CONFIRM" ]; then
    echo "Passw  rter stimmen nicht   berein. Abbruch."
    exit 1
fi

# System aktualisieren
sudo apt update && sudo apt upgrade -y

# Notwendige Pakete installieren
sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release pwgen

# Docker-Repository hinzuf  gen und Docker installieren
if ! command -v docker &> /dev/null; then
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    sudo usermod -aG docker $USER
    newgrp docker << END
    echo "Docker wurde installiert und ist sofort ohne Abmeldung nutzbar."
END
fi

# Docker Compose installieren
if ! command -v docker compose &> /dev/null; then
    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
fi

# Benutzer f  r Immich erstellen
if ! id "$IMMICH_USER" &>/dev/null; then
    sudo useradd -m -s /bin/bash "$IMMICH_USER"
    echo "$IMMICH_USER:$IMMICH_PASSWORD" | sudo chpasswd
    echo "Benutzer $IMMICH_USER wurde erstellt."
fi

# Benutzer zur Docker-Gruppe hinzuf  gen
sudo usermod -aG docker "$IMMICH_USER"

# Docker-Socket-Berechtigungen setzen
sudo chmod 666 /var/run/docker.sock

# Installationsverzeichnis erstellen und Berechtigungen setzen
sudo mkdir -p "$INSTALL_DIR"
sudo chown -R "$IMMICH_USER:$IMMICH_USER" "$INSTALL_DIR"
cd "$INSTALL_DIR"

# docker-compose.yml und .env herunterladen
sudo -u "$IMMICH_USER" wget -O docker-compose.yml "$DOCKER_COMPOSE_YML_URL"
sudo -u "$IMMICH_USER" wget -O .env "$ENV_FILE_URL"

# Standardwerte in der .env Datei setzen
sudo -u "$IMMICH_USER" sed -i "s|UPLOAD_LOCATION=./library|UPLOAD_LOCATION=$INSTALL_DIR/library|g" .env
sudo -u "$IMMICH_USER" sed -i "s|DB_DATA_LOCATION=./postgres|DB_DATA_LOCATION=$INSTALL_DIR/postgres|g" .env
sudo -u "$IMMICH_USER" sed -i "s|DB_PASSWORD=postgres|DB_PASSWORD=$IMMICH_PASSWORD|g" .env

# Container starten mit neuem Benutzer
sudo su - "$IMMICH_USER" -c "cd $INSTALL_DIR && docker compose up -d"

# IP-Adresse und Port ausgeben
IP_ADDRESS=$(hostname -I | awk '{print $1}')
PORT=$(sudo grep -oP 'IMMICH_SERVER_PORT=\K\d+' .env || echo "2283")

# Abschlussmeldung
echo "Installation abgeschlossen! Immich l  uft nun im Hintergrund unter dem Benutzer $IMMICH_USER."
echo "Installationsverzeichnis: $INSTALL_DIR"
echo "Datenbank-Passwort: $IMMICH_PASSWORD"
echo "Immich kann unter folgender Adresse erreicht werden: http://$IP_ADDRESS:$PORT"