Communityoplossing

Een externe fotobibliotheek toevoegen aan Immich op ZimaOS

A ZimaOS user wanted Immich to recognize photos already stored on another drive. The confirmed community solution was to mount that host folder into immich-server and then add the container-side path as an Immich External Library.

Als je al foto's op een andere HDD of SSD hebt staan en wilt dat Immich op ZimaOS deze indexeert zonder ze naar de normale uploadbibliotheek van Immich te verplaatsen, gebruik dan een externe bibliotheek. De communitythread uit oktober 2024 bevestigde deze workflow: maak de ZimaOS-hostmap eerst beschikbaar in de immich-server-container en voeg daarna het bijbehorende pad aan de containerzijde toe in Immich-beheer.

Dit verschilt van het wijzigen van de primaire uploadopslag van Immich. Een latere reactie in dezelfde thread vroeg of de externe schijf de enige locatie voor alle toekomstige Immich-uploads kon worden, maar die vraag werd in de oorspronkelijke thread niet beantwoord. De huidige Immich-documentatie behandelt dit als twee afzonderlijke workflows: externe bibliotheken voor bestaande bestanden en UPLOAD_LOCATION/aangepaste opslagpaden voor door Immich beheerde uploads.

Wat de oorspronkelijke thread daadwerkelijk heeft opgelost

De oorspronkelijke auteur wilde dat Immich foto's zou herkennen die buiten de standaardlocatie waren opgeslagen. Later meldde diegene succes met deze stappen:

  1. Open de Immich-instellingen in ZimaOS.
  2. Open de service immich-server.
  3. Voeg de ZimaOS-hostmap toe als Docker-volume.
  4. Gebruik een pad aan de containerzijde, zoals /home/user/photos1.
  5. Open Immich-beheer.
  6. Maak een externe bibliotheek aan en voeg hetzelfde pad aan de containerzijde toe.

Een latere gebruiker bevestigde expliciet dat deze oplossing voor hen werkte.

Het hostpad en het Immich-pad zijn verschillend

Het Docker-toewijzingsconcept is:

Map op ZimaOS-host → map in Immich-container

Bijvoorbeeld:

/media/Photos:/home/user/photos1:ro

Immich scant het ZimaOS-hostpad niet rechtstreeks. Het kan alleen het pad scannen dat in de container zichtbaar is:

/home/user/photos1

Gebruik de modus Alleen-lezen voor bestaande fotoarchieven

De oorspronkelijke communityoplossing gebruikte :ro. De huidige Immich-documentatie raadt nog steeds koppelingen in de modus Alleen-lezen aan wanneer Immich de bestanden alleen moet indexeren:

/media/Photos:/home/user/photos1:ro

In de modus Alleen-lezen kan Immich geen bestanden verwijderen of sidecar-metagegevens naar de bronmap schrijven.

Huidige documentatie over externe bibliotheken van Immich

Maak de externe bibliotheek aan in Immich

Open Immich nadat de koppeling bestaat met een beheerdersaccount en ga naar het gedeelte Externe bibliotheken. Maak een bibliotheek aan, selecteer de eigenaar en voeg het pad in de container toe:

/home/user/photos1

Voer daarna een scan uit. Immich zou moeten beginnen met het indexeren van de foto's en het aanmaken van taken voor miniaturen en metagegevens.

Controleer of het pad in de container bestaat

Als Immich het pad naar de bibliotheek weigert, controleer dan of de koppeling zichtbaar is voor immich-server. Het kernprobleem in de oorspronkelijke thread was niet alleen het kiezen van een map in de Immich-interface; Docker moest die map eerst beschikbaar maken in de container.

De huidige Immich-documentatie maakt dezelfde vereiste expliciet: het gekoppelde pad moet in de container bestaan voordat het als externe bibliotheek kan worden toegevoegd.

Kopieer de historische stap voor het tabblad Database niet blindelings

In het bronbericht uit 2024 stond ook dat je hetzelfde pad moest toevoegen op het tabblad Immich Database. Die instructie moet je tegenwoordig voorzichtig benaderen.

De huidige upstream-versie van Immich maakt onderscheid tussen:

  • foto-/video-opslag via UPLOAD_LOCATION of bindkoppelingen naar externe bibliotheken;
  • Opslag van de PostgreSQL-database via DB_DATA_LOCATION.

De locatie van de database is niet hetzelfde als de locatie van de fotobibliotheek. Koppel niet zomaar een fotomap aan PostgreSQL alleen omdat het oude ZimaOS-pakket een tabblad voor de databaseservice toonde.

Externe bibliotheek versus primaire Immich-opslag

Doel Gebruik
Foto's indexeren die al ergens anders zijn opgeslagen Externe bibliotheek
Toekomstige uploads van Immich op een andere schijf opslaan De upload-/opslaglocatie van Immich wijzigen

De brondiscussie bevestigde het eerste geval, niet het tweede.

Als je wilt dat de externe schijf de hoofdopslag van Immich wordt

De huidige Immich Docker Compose-configuratie gebruikt:

UPLOAD_LOCATION=./library

en koppelt dat hostpad aan /data binnen immich-server. De huidige documentatie over aangepaste locaties legt uit hoe je door Immich beheerde gegevens naar een andere hostopslaglocatie verplaatst, met behoud van de verwachte containerpaden.

Aangepaste opslaglocaties van Immich

Als er al belangrijke foto's in Immich staan, maak dan een back-up van zowel de database als het bestandssysteem voordat je de primaire opslaglocatie wijzigt.

Houd de databasevereisten gescheiden

De PostgreSQL-database heeft andere opslagvereisten dan fotobestanden. In de huidige Immich-documentatie staat dat netwerkshares niet worden ondersteund voor het databasepad en dat de database een geschikt lokaal bestandssysteem moet gebruiken.

Verplaats PostgreSQL niet alleen omdat je een externe fotobibliotheek toevoegt.

Externe bibliotheken hebben nog steeds onafhankelijke back-ups nodig

Immich kopieert de oorspronkelijke assets van externe bibliotheken niet naar de normale beheerde opslag. De originelen blijven op de externe schijf staan. Als die bestanden van de schijf worden verwijderd, kan Immich ze als ontbrekend markeren of na een nieuwe scan uit de actieve bibliotheek verwijderen.

Maak onafhankelijk een back-up van de brongegevensdrager. De metagegevens in de Immich-database zijn geen vervanging voor een back-up van het bestandssysteem.

Checklist voor externe Immich-bibliotheken op ZimaOS

  1. Bepaal welke bestaande ZimaOS-hostmap de foto's bevat.
  2. Open de huidige instellingen van de Immich-app/container.
  3. Koppel de hostmap aan immich-server.
  4. Gebruik bij voorkeur :ro voor een archief dat Immich niet mag wijzigen.
  5. Gebruik een duidelijk containerpad, zoals /home/user/photos1 of /mnt/media/photos.
  6. Open in Immich Beheer → Externe bibliotheken.
  7. Voeg het exacte pad aan de containerzijde toe.
  8. Voer een bibliotheekscan uit.
  9. Verwar dit niet met het verplaatsen van de primaire opslag van Immich. UPLOAD_LOCATION.
  10. Maak afzonderlijk een back-up van de externe schijf.

Veelgestelde vragen over externe opslag van Immich

Werkte de oorspronkelijke oplossing?

Ja. De oorspronkelijke auteur meldde dat het werkte, en een andere gebruiker bevestigde later dat dezelfde werkwijze ook voor hen werkte.

Maakt een externe bibliotheek de externe schijf tot de belangrijkste uploadlocatie van Immich?

Nee. Externe bibliotheken indexeren bestanden die al buiten de beheerde opslag voor uploads van Immich bestaan.

Welk pad moet ik in Immich invoeren?

Gebruik het pad aan de containerzijde uit de Docker-koppeling, niet het hostpad van ZimaOS.

Ja, wanneer de externe map een archief is dat Immich alleen mag lezen. Schakel de alleen-lezenmodus alleen uit als je wilt dat Immich daar bewust bestanden wijzigt of verwijdert.