iCloudPD As External Library
I'm kinda struggling to get my imported library via icloudpd connected to Immich... Is this the article to do so? The new path I enter keeps crashing my Docker container (being run in Synology DSM). https://docs.immich.app/guides/external-library
I think the problem is I just don't understand the line you add after the {UPLOAD_LOCATION}. I'd say I'm pretty noobish but I'm determined to get this working. Thank you in advance!
This is the first chunk of its docker-compose.yml:
Here's a relevant snippet from my .env:
I've also attached a screenshot of the first run's log.
External Library | Immich
This guide walks you through adding an External Library.

57 Replies
:wave: Hey @Sips_ real guy best guy,
Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:.
References
- Container Logs:
docker compose logs
docs
- Container Status: docker ps -a
docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
- Code Formatting https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Checklist
I have...
1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
2. :ballot_box_with_check: read applicable release notes.
3. :ballot_box_with_check: reviewed the FAQs for known issues.
4. :ballot_box_with_check: reviewed Github for known issues.
5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy).
6. :ballot_box_with_check: uploaded the relevant information (see below).
7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable
(an item can be marked as "complete" by reacting with the appropriate number)
Information
In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:
- Your docker-compose.yml and .env files.
- Logs from all the containers and their status (see above).
- All the troubleshooting steps you've tried so far.
- Any recent changes you've made to Immich or your system.
- Details about your system (both software/OS and hardware).
- Details about your storage (filesystems, type of disks, output of commands like fdisk -l
and df -h
).
- The version of the Immich server, mobile app, and other relevant pieces.
- Any other information that you think might be relevant.
Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)
If this ticket can be closed you can use the /close
command, and re-open it later if needed.I was also curious if iCloudPD libraries' folder structure was easily read by Immich? Otherwise, what is the most effective setup?
Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
The error you are seeing is because either you changed the value of
UPLOAD_LOCATION
after first startup, or it is not mounted properlyIn the yml or the env file? š¤
env file
I mean, you can change it in the yml too but people don't usually do that š
Oh what?? But the external library documentation said so (I thought at least)
But Iāll try changing the env, just a sec
Hang on
You're confusing things
It's trying to find
/volume1/homes/MrNicholas/immich-backup/encoded-video/.immich
I'm not talking about /volume1/homes/MrNicholas/icloudpd_backup
Should I change the path to that? What is it pointing to exactly?
In the env file you've put
UPLOAD_LOCATION=/volume1/homes/MrNicholas/immich-backup
Is that the same value that has been with Immich from the start, yes or no?No, probably not š¤
So you've changed that recently?
Because you can't just change it, you have to also move all files
I did, I changed that location so the directory is missing there
Since I reset my NAS for new drives
So you need to either move/copy the files from the old location
OR, delete everything in
./postgres
to start over
But that last method is quite literally a fresh startYeah, I actually set it up last time but didnāt generate any data yet.
So it is a fresh start!
Any commentary on this as well? Not sure if iCloudPD imports a perfectly workable folder structure for Immich to sort through @Mraedis
Iām still stuck with the directories though š
so thatās my priority
The directory structure doesn't really matter because it indexes all files, unless you explicitly exclude them
Ok, thank you š
ahhh, so I set the yml to this:
and the env to this:
Yeah you can't do that š
I assume what you were going for was:
env
yml
But you can't put UPLOAD_LOCATION inside an external library, or vice versa
Upload_location is ONLY for internal immich files, you don't put anything in there yourself
So what you want is
And
Don't forget to delete the postgres folder to start fresh
Thatās a little bit confusing šµāš«
It's really not
UPLOAD_LOCATION needs to be an empty, new folder for Immich
End of explanation
Don't put anything in there yourself
Can it be in its docker folder? Or should it be somewhere separate?
It should be an empty folder that's definitely not inside an external library, can be anywhere you want
Can I name it āUpload_Locationā?
There's no limit to the name :p
As long as the right hand side of the
:
is either /usr/src/app/upload
or /data
in your yaml
Because that's what the internal path in the container isThe very starting line right?
I can still have as the addition
Yes
What does the right hand side mean there?
It's what you add in the GUI
it can be anything you want as long as it doesn't conflict with the immich folders
- /volume1/docker/icpd_nico:/mnt/ext1
would work fine too for instance
and then you add /mnt/ext1 in the GUIWill I need to access it otherwise?
Where is /mnt/ext1 located on the drive; is that in the container?
No on your host it's just
/volume1/docker/icpd_nico
Is it appropriate to make the icloudpd folders external or should I just make it the immich library itself?
Since like you said, it can read through it anyway
You can't "make it the library" through mounts, that would require uploading with either immich-cli or immich-go
Okay, cool! I'll try running it now.
Then I'll add the directories to the GUI
Okay, so far so good. š®āšØ

I think I'm still a little stuck here lol
That's where the pd is and docker has access to the folder?
The iCloudPD download location?
The photo library I mean

These are under the volume1 directory
What does the error say exactly?
It says the folder doesnāt exist
And you did
/volume1/docker/icpd_nico:/volume1/docker/icpd_nico
right?In the YML?
yes
I changed it to this
then you need to do /mnt/ext1 in the GUI
I tried that too š„²
Same error thrown
That probably means permissions error but I'm not exactly a Synology whizz here
Iāll try and do so wizardry of my own then
Yeah⦠it says āOne Path Failed Validationā
https://github.com/immich-app/immich?tab=readme-ov-file
I went searching and the answer they gave is "follow the docs"
One person said /usr/src worked for them so I did this:
It actually seems to work now, hopefully that doesnāt fill that folder with anything it isnāt supposed to
NOOOOO it filled my Immich with weird icons

I specifically said don't use internal paths
Also that comment is nonsense
Sorry, still unsure how to proceed.
You should be looking at permission fixes on that icloud folder, as you can see the container has no issue mounting things except for your pd š
Okay, Iāll search further š
So to be very clear, don't change anything to your compose unless it's the way you're mounting the volume. Don't change the paths @Sips_ real guy best guy