I had a similar issue on my Synology NAS with my docker image stopping itself right after starting. It turned out to be a permissions issue; the root user didn’t have read/write access to all the user folders that I was mounting to the docker image as volumes. After adding those permissions, it ran normally.
With version 2.x (currently in alpha), this is much simpler: you only need to bind mount /ps/library:
If you’re just getting started, I’d suggest you use the photostructure/server:alpha image, so you can avail yourself of this easier setup, and the new features I’ve built for v2. I’ve been holding back on releasing that build as stable due to showstopping bugs on macOS and Windows. (I currently run the alpha build on docker to host my family’s photos, fwiw).
The error, “Failed to set up config directory: /ps/config and /ps/library are missing or not writable.” is being thrown before PhotoStructure has set up logging and error reporting, which is why you’re staring at this cryptic stacktrace.
The next alpha build will fix this issue. Thanks for reporting!
More info here, but note that the documentation is specific to stable - alpha is actually simpler (you only need /ps/library, not /ps/temp, /ps/config, etc) - I am sure @mrm will update the documentation at some point:
Most likely a permission issue with your /mnt/qnap/photoprism-test folder. See @nuk’s comment above.
But also, as I mentioned earlier you need a minimum of 2 mounts. One for /ps/library (which you have) and the other mount is for where you store the pictures you want to import.
Which begs the question, what do you currently have in /mnt/qnap/photoprism-test? This may not be strictly required, but I would recommend that your /ps/library mount points to an empty folder on your NAS. This is where photostructure will store its database, thumbnails, log files, temp files. It should not be where your pictures are stored.
so I’m confused. @mrm’s example just has one binding mount, and your example shows two. Which is it?
Don’t mind the folder name, photoprism-test. I am testing out several programs, and this directory hasn’t been used by anything yet. There is only one PNG file inside that folder right now.
If you’re using an :alpha or :beta v2.x build, you must have a bind mount for /ps/library. Details are here:
If you want PhotoStructure to import photos and videos outside of your library, then add additional bind-mounts as needed. Examples are in the docker instructions linked above.
You need minimum two, but you can have as many as you want. the one in @mrm’s example is the only one strictly required for photostructure to start, but I assume you actually want photostructure to scan pictures, right? The nature of docker is that a container can’t see any folders outside of itself if you don’t mount it. So any folder you want PS to scan has to be mounted. It can be 1 folder, it can be 25 folders if you’ve got your pictures spread all over the place.
update: I stand corrected, you might be able to get away with just one. I just would not recommend it. I like to keep my source images in a read-only bind mount so that PS can’t accidentally delete them or mess with them in any way.