Openai/691353e9-c8e4-8002-9ea3-93ea859a8d5c
This conversation was exported from ChatGPT[1]
gpt-5[edit | edit source]
User:[edit | edit source]
Assistant: That screenshot sums up a very common gotcha when running Immich’s CLI inside a TrueNAS-managed container.[edit | edit source]
That screenshot sums up a very common gotcha when running Immich’s CLI inside a TrueNAS-managed container. The key line is:
Error: EACCES: permission denied, mkdir './.config'That’s not an Immich bug — it’s Node.js (which the Immich CLI is built with) trying to create a configuration directory in its current working directory, which inside a TrueNAS-scale container typically maps to /usr/src/app or /root. If that location isn’t writable by the user the CLI runs as, you get exactly this EACCES error.
Here’s how to fix or work around it.
1. Understand what’s happening[edit | edit source]
The Immich CLI stores its authentication tokens in ~/.config/immich by default. But when you execute it inside a TrueNAS App container (especially through the App Shell or Docker exec), you’re often not logged in as root or the environment variables for $HOME aren’t set. That means Node.js falls back to ./.config in the current directory, which is unwritable inside /usr/src/app.
So, it’s not the NAS mount at all — it’s a local write permission problem for that .config folder.
2. Quick fix[edit | edit source]
Run the command with a writable config path:
immich --config /tmp/immich-cli-config login
or, if you want it persistent:
mkdir -p /mnt/photos/immich-cli-config
chmod 777 /mnt/photos/immich-cli-config
immich --config /mnt/photos/immich-cli-config login
That tells Immich CLI to store its auth/session info somewhere you actually control.
3. Permanent solution for TrueNAS[edit | edit source]
If you’re running the CLI inside the TrueNAS Immich App shell:
- Add a writable mount for CLI configs, for example: - Host path: /mnt/tank/immich/config - Container path: /config
- Then run: ``
bash immich --config /config/cli loginbashThis prevents it from ever touching /usr/src/app again. ===== 4. Sanity check ===== You can verify where it’s trying to write by running:
echo $HOME
pwd
ls -ld .
If $HOME is unset or points to /, that’s the smoking gun. You can set it temporarily with:
bash
export HOME=/tmp
===== 5. Bonus: Running CLI from outside the container =====
You can also skip all this by running the Immich CLI on your host machine (or another Linux VM) and just point it at your Immich instance with:
bash
immich --server http://<immich_host>:2283
``
It doesn’t have to run inside the same container.
If you show me your current docker exec or TrueNAS App shell command (and whether you’re root or not inside it), I can tell you exactly what to mount or export so it works cleanly every time.
References[edit | edit source]
- ↑ "Immich CLI permission fix". ChatGPT. Retrieved 2025-11-12.