Immich als LXC (Linux-Container) in Proxmox

Ich habe Immich als beste Alternative zu Google Fotos gefunden. Die Bilder bleiben in der eigenen Hand. Es gibt Apps für alle Endgeräte sowie eine schöne Web-GUI. Normalerweise wird Immich idealerweise mit Docker installiert, aber da ich derzeit im Proxmox-Fieber bin, nachdem Unraid mich enttäuscht hat, habe ich nach eine Lösung als LXC gesucht und gefunden. Die Anleitung habe ich von Github übernommen. Referenzen gibt’s ganz unten…

Mein System läuft derzeit auf Proxmox VE 8.2.4


Container anlegen:

Wenn wir schon im LXC arbeiten wollen, legen wir diesen auch bitte mit folgender Konfiguration an.
Unprivileged, 8GB, RAM, 16GB Storage, 2 CPUs, feste IP-Adresse.

In Proxmox müsst ihr dazu das LXC-Template zu Ubuntu 24.04 nehmen.


Weiter geht’s….

Container läuft? Dann erstmal die Kiste aktualisieren und die benötigten Pakete installieren.

Mit root am Container anmelden und aktualisieren…

apt update && sudo apt upgrade -y
apt install curl git postgresql-common redis -y

PostgreSQL installieren

/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
apt install postgresql postgresql-16-pgvector -y

Immich-User anlegen – Beispielpasswort: immich-pass

adduser immich
usermod -aG sudo immich

Datenbank vorbereiten – Beispielpasswort: immich-db-pass

su postgres
psql
CREATE DATABASE immich;
CREATE USER immich WITH ENCRYPTED PASSWORD 'immich-db-pass';
GRANT ALL PRIVILEGES ON DATABASE immich to immich;
ALTER USER immich WITH SUPERUSER;
\q
exit

FFmpeg installieren

apt install gnupg software-properties-common
add-apt-repository universe
mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
export VERSION_OS="$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )"
export VERSION_CODENAME="$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )"
export DPKG_ARCHITECTURE="$( dpkg --print-architecture )"
cat <<EOF | tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/${VERSION_OS}
Suites: ${VERSION_CODENAME}
Components: main
Architectures: ${DPKG_ARCHITECTURE}
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF
apt update
apt install jellyfin-ffmpeg6
ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg  /bin/ffmpeg
ln -s /usr/lib/jellyfin-ffmpeg/ffprobe /bin/ffprobe

Node.js installieren

su immich
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

exit

su immich

nvm install 20

exit

Custom-Photo-Processing-Library installieren

sed -i '165 s/#//' /etc/locale.gen
locale-gen

Compiler Tools installieren…

su immich
cd ~
git clone https://github.com/loeeeee/immich-in-lxc.git
cd immich-in-lxc
exit
su
cd /home/immich/immich-in-lxc/
./dep-ubuntu.sh

Compilieren starten

./pre-install.sh
su immich
./install.sh
./install.sh

Anpassen der Runtime-Variablen

nano runtime.env

Hier die Timezone korrigieren und das anfangs gesetzte Datenbankpasswort anpassen


Systemd-Service-Files laden und starten

su
./post-install.sh
systemctl daemon-reload && \
systemctl start immich-microservices && \
systemctl start immich-ml && \
systemctl start immich-web
systemctl enable immich-microservices && \
systemctl enable immich-ml && \
systemctl enable immich-web

Alles richtig gemacht? Dann startet euer Immich unter http://ip-adresse:3001

Weiter in Immich…

  • Admin anlegen (EMail-Adresse, Passwort, Name)
  • Danach mit den Daten anmelden und das light oder dark theme auswählen
  • Die Privacy könnt ihr anpassen, ist aber optional
  • Die Storage template engine lassen wir deaktivert

Jetzt sind wir im Portal…


Referenzen: Github-Anleitung, Immich