Permission denied to upload with Docker Swarm and NFS

I recently got a new minipc and am in the process of trying (and failing) to migrate services to it. The problem is that I want storage to be on the nas machine (running truenas) still and that opened up a can of worms I was not ready for πŸ˜…

I decided to try using Docker Swarm because I need a few other services to run directly on the nas, while being accessible through the traefik instance on the minipc and this seemed like a sensible way to do that.
For storage, I'm creating NFS shares on the truenas machine and then mounting them using docker as volumes.
Something somewhere is wrong I honestly have no idea what's happing, but I'm getting this error
[Nest] 7  - 09/27/2025, 6:24:31 PM   ERROR [Microservices:StorageService] Failed to read (/usr/src/app/upload/encoded-video/.immich): Error: EACCES: permission denied, open '/usr/src/app/upload/encoded-video/.immich'
microservices worker error: Error: Failed to read: "<UPLOAD_LOCATION>/encoded-video/.immich (/usr/src/app/upload/encoded-video/.immich) - Please see link for more information.", stack: Error: Failed to read: "<UPLOAD_LOCATION>/encoded-video/.immich (/usr/src/app/upload/encoded-video/.immich) - Please see link for more information."
    at StorageService.verifyReadAccess (/usr/src/app/server/dist/services/storage.service.js:129:19)
    at async /usr/src/app/server/dist/services/storage.service.js:56:21
    at async /usr/src/app/server/dist/repositories/database.repository.js:379:27
    at async /usr/src/app/server/node_modules/.pnpm/kysely@0.28.2/node_modules/kysely/dist/cjs/kysely.js:535:20
    at async DefaultConnectionProvider.provideConnection (/usr/src/app/server/node_modules/.pnpm/kysely@0.28.2/node_modules/kysely/dist/cjs/driver/default-connection-provider.js:12:20)
    at async /usr/src/app/server/dist/repositories/database.repository.js:376:13
microservices worker exited with code 1
Killing api process
Was this page helpful?