Media storage strategy
Hi!
I just started using Immich and I really like the app! I'm thinking about a storage strategy going forward.
My current/legacy media storage is kept in a base folder with sub-folders structured as year/month. As of now I've included the media as an External library and successfully synced 9723 videos + 131 457 photos (787GB). So far so good!
Now, going forward I wan't to start including accounts for my family of five, setup iOS Immich app on their device and turn on automatic (background) sync. If I've understood it correctly the sync feature will create assets in the UPLOAD_LOCATION and there is no option to store them in my External library. For that I would have to manage the sync/upload to External library outside Immich and then either run scan manually or enable "Automatic watching" to keep the timeline updated. Theoretically I could point the UPLOAD_LOCATION to be included in the External library folder structure, but from what I read that is not a recommended approach.
Storing legacy media library in one way and the new media library (Immich) in another way seems inconsistent and could potentially cause me headache down the road. For this reason I'm opting towards moving/migrating my existing External library to the Immich library.
Some questions on top of my mind:
1. What would be the best approach for moving/migrating? Maybe there are some guide(s) for this that I missed?
2. If I want to use a Storage template, should I apply that before moving the files?
3. Any other things or risks I should consider before doing the operation(s)?
Thanks in advance for any help!
17 Replies
:wave: Hey @andstr,
Thanks for reaching out to us. Please follow the recommended actions below; 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 compose ps
docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
Checklist
1. :blue_square: I have verified I'm on the latest release(note that mobile app releases may take some time).
2. :blue_square: I have read applicable release notes.
3. :blue_square: I have reviewed the FAQs for known issues.
4. :blue_square: I have reviewed Github for known issues.
5. :blue_square: I have tried accessing Immich via local ip (without a custom reverse proxy).
6. :blue_square: I have uploaded the relevant logs, docker compose, and .env files, making sure to use code formatting.
7. :blue_square: I have 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)
If this ticket can be closed you can use the /close
command, and re-open it later if needed.1. Use the CLI to upload everything
2. You can enable storage template at any point
3. You might want to pause the background jobs while you upload everything to have that first step go as fast as possible. And as always, have good backups.
@bo0tzz Awsome, thanks for quick support!
having UPLOAD_LOCATION in an external library is not just not recommended, it will completely break your immich install and generate infinite thumbnails
Make sure you have good, off site, versioned backups
Good luck!
I use Arqbackup to remote host, that has worked well so far. Thanks for the support again!
Mac or windows..? 🤢
lol
Maybe I should create a new ticket, but I will try reusing this one if it is accepted :p
Following the guide: https://immich.app/docs/features/command-line-interface/
It says under Quick start
immich login [url] [key]
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG
Now, login command throws:
error: unknown command 'login'
(Did you mean logout?)
Docs needing update?
I then tried "Immich login-key <url:port> <API key>. That rendered:
Executing API key auth flow...
Logged in as undefined
Wrote auth info to /root/.config/immich/auth.yml
Then running "immich server-info" yields:
/usr/lib/node_modules/@immich/cli/dist/src/services/session.service.js:68
throw new Error(
Could not parse response. Is Immich listening on ${this.api.apiConfiguration.instanceUrl}?
);
^
Error: Could not parse response. Is Immich listening on http://fractal:2283?
What I'm doing wrong?What version of the cli do you have?
2.0.6
That's pretty old, try updating it
I thought npm i -g @Immich/cli would fetch the latest stable
npm update -g @Immich/cli
changed 1 package in 2s
---
immich -V
2.0.6
Maybe use the docker version of the CLI. It’s much easier
It should
npm install -g @Immich/cli@latest
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE package: '@immich/[email protected]',
npm warn EBADENGINE required: { node: '>=20.0.0' },
npm warn EBADENGINE current: { node: 'v18.20.5', npm: '10.8.2' }
npm warn EBADENGINE }
ah running old node?
yep
Confirming it works now with node v22.11.0 and Immich 2.2.32