Skip to main content

Immich LXC Setup with External Storage and Backup Strategy

OverviewÜberblick

Immich waswurde installedmithilfe usingder the Proxmox Community Scripts, which resulted in a fully functional LXC container without issues.
After the initial setup, the container configurationinstalliert, was adjustedzu toeinem providevoll sufficientfunktionsfähigen storageLXC-Container capacityohne forProbleme photos and videos, as the default container disk size is not suitable for long-term media storage.führte.

TheNach solutionder isinitialen basedEinrichtung onwurde mappingdie Immich’sContainer-Konfiguration uploadangepasst, directoryum toausreichend aSpeicherkapazität für Fotos und Videos bereitzustellen, da die Standard-Container-Disk-Größe für langfristige Medienspeicherung nicht geeignet ist.

Die Lösung basiert darauf, das Immich-Upload-Verzeichnis auf ein dedicatedseparates largegroßes storageSpeichervolume volumezu mappen und Backups außerhalb der standardmäßigen Proxmox-Container-Backups andzu handling backups outside of Proxmox’s standard container backups.handhaben.


StorageSpeicherlayout Layoutund and Mount Mount-Point

Immich Upload DirectoryUpload-Verzeichnis

Immich storesspeichert allalle uploadedhochgeladenen mediaMedien inim thefolgenden followingVerzeichnis directoryinnerhalb insidedes the container:Containers:

/opt/immich/upload/

ToUm avoidzu fillingverhindern, updass thedas container’sRoot-Dateisystem rootdes filesystem,Containers thisvoll directoryläuft, iswird mappeddieses toVerzeichnis aauf einen separateseparaten mountMount-Point pointgemappt, backedder byvon aeinem largergrößeren diskDatenträger (e.g.z. ZFSB. storageZFS-Speicher onauf thedem ProxmoxProxmox-Host) host).unterstützt wird.


Mount Point Migration ProcedureMount-Point-Migrationsprozedur

1. BackupBestehendes ExistingUpload-Verzeichnis Upload Directorysichern

BeforeBevor changingetwas anything,geändert logwird, intoin theden Immich Immich-LXC andeinloggen createund aein backupBackup ofdes thebestehenden existingUpload-Verzeichnisses upload directory:erstellen:

cp -a /opt/immich/upload /opt/immich/upload.backup

ThisDadurch ensuresbleiben thedie originalursprüngliche folderOrdnerstruktur structureund andalle anyvorhandenen existingDateien files are preserved.erhalten.


2. CreateMount-Point anderstellen Mapund the Mount Pointmappen

OnAuf thedem Proxmox host:Proxmox-Host:

  • CreateEin aneues newSpeichervolume storage volumeerstellen (e.g.z. ZFSB. datasetZFS-Dataset oroder subvolume)Subvolume) withmit sufficientausreichend capacity.Kapazität.
  • MapDieses thisVolume volumein into theden LXC at:mappen unter:
/opt/immich/upload/

ThisDadurch replaceswird thedas originalursprüngliche directoryVerzeichnis withdurch theden externalexternen storage.Speicher ersetzt.


3. RestoreInhalte Directorydes ContentsVerzeichnisses wiederherstellen

AfterNachdem theder mountMount-Point pointim isContainer activeaktiv inside the container:ist:

cp -a /opt/immich/upload.backup/* /opt/immich/upload/

ThisDas guaranteesstellt thatsicher, dass Immich findsdie theerwartete directoryVerzeichnisstruktur structure it expects.vorfindet.


4. FixEigentümer Ownershipund andBerechtigungen Permissionskorrigieren

Immich requiresbenötigt, thedass uploaddas directoryUpload-Verzeichnis todem beBenutzer ownedimmich by the immich user:gehört:

chown -R immich:immich /opt/immich/upload

FailingWird todas donicht thisgemacht, maykönnen leadUpload-Fehler tooder uploadfehlende errors or missing mediaMedien in theder UI.Oberfläche auftreten.


Backup ConsiderationsBackup-Überlegungen (Important)wichtig)

⚠ Proxmox Datacenter Backups

TheDer mappedgemappte mountMount-Point pointwird is not includednicht in regularden Proxmoxregulären containerProxmox-Container-Backups backups.berücksichtigt.

ThisDas isist expectednormales behaviorVerhalten andund mustmuss beexplizit handledgehandhabt explicitly.werden.


Backup StrategyBackup-Strategie

Restic + rclone (WebDAV)

Die Backups arewerden handledunabhängig independently ofvon Proxmox usingmit thefolgendem followingStack stack:umgesetzt:

  • restic forfür versioned,versionierte, encryptedverschlüsselte backupsBackups
  • rclone asals theTransport-Layer
  • transport layer
  • WebDAV asals the remote storage backend as it is the easiest to be used inside LXCsRemote-Speicher-Backend (Iam think)einfachsten nutzbar innerhalb von LXCs)

ThisDieser approachAnsatz provides:bietet:

  • Encrypted,Verschlüsselte, deduplicateddeduplizierte backupsBackups
  • IndependenceUnabhängigkeit fromvon containerContainer-Snapshots
  • snapshots
  • Feingranulare Kontrolle über Retention und Zeitplanung
  • Fine-grainedEinfache controlWiederherstellungen overohne retentionProxmox-Beteiligung
  • and scheduling
  • Easy restores without Proxmox involvement

OnlyNur theder externalexterne uploadUpload-Speicher storagemuss needsgesichert towerden; beder backedContainer up;selbst thekann containerjederzeit itselfneu canaufgebaut be rebuilt at any time.werden.


Design RationaleDesign-Begründung

  • LargeGroße mediaMediendaten datasind isvom decoupledContainer from the containerentkoppelt
  • ContainerContainer-Neuinstallationen rebuilds aresind trivial
  • Backups aresind reliable,zuverlässig, explicit,explizit andund auditablenachvollziehbar
  • StorageSpeicherwachstum growtherfordert doeskein notResizing requiredes LXC resizing

ThisDieses setupSetup alignspasst wellsehr withgut long-termzur photolangfristigen libraryVerwaltung managementeiner andFotobibliothek avoidsund commonvermeidet pitfallsgängige withFallstricke container-basedbei mediacontainerbasierten applications.Medienanwendungen.