chore(web-arm): migrate Nextcloud photos into Immich (immich-go) #179

Open
opened 2026-06-26 14:14:30 +02:00 by dominik.polakovics · 0 comments

Goal

Bulk-import the existing Nextcloud photo library into Immich's managed library using immich-go, copying originals into Immich (model B — Immich fully owns the files, so in-app delete/reorg works and Nextcloud can be retired cleanly afterward).

Depends on #178 (Immich must be deployed and you must have logged in once).

Preconditions

  • #178 deployed; you've logged into Immich once via Authelia (you are now the admin).
  • Generate an Immich API key (Account Settings → API Keys).

Steps

  1. Run immich-go on web-arm so it reads Nextcloud files straight off the already-mounted CIFS share (/var/lib/nextcloud/data/<user>/files/…) and uploads to http://127.0.0.1:2283 — no re-download.
    • e.g. nix run nixpkgs#immich-go -- upload --server http://127.0.0.1:2283 --api-key <KEY> --recursive /var/lib/nextcloud/data/<user>/files/<photos> (confirm exact flag names for the installed immich-go version).
    • Recommended: map folders → albums so Nextcloud's structure becomes Immich albums. Decide flat vs albums at run time.
  2. Mind the temporary 2× storage on the Storage Box: during the overlap the photos exist in both Nextcloud's sub4 share and Immich's sub12 library/. Ensure box headroom.
  3. Verify counts / capture dates / albums in Immich. Let ML finish indexing in the background (it's CPU-throttled, so it's slow but harmless to the websites; it reads each original once over slow CIFS).
  4. Once verified, decommission Nextcloud (separate change): the photos now live in Immich's library and you can retire the Nextcloud photo data.

Notes

  • Keep the Nextcloud copy until you've confirmed the Immich import is complete and correct.
  • This is a human issue — immich-go needs an interactive API key and judgement calls on album mapping / verification.
## Goal Bulk-import the existing Nextcloud photo library into Immich's **managed** library using `immich-go`, copying originals into Immich (model B — Immich fully owns the files, so in-app delete/reorg works and Nextcloud can be retired cleanly afterward). **Depends on #178** (Immich must be deployed and you must have logged in once). ## Preconditions - #178 deployed; you've logged into Immich once via Authelia (you are now the admin). - Generate an Immich **API key** (Account Settings → API Keys). ## Steps 1. Run `immich-go` **on web-arm** so it reads Nextcloud files straight off the already-mounted CIFS share (`/var/lib/nextcloud/data/<user>/files/…`) and uploads to `http://127.0.0.1:2283` — no re-download. - e.g. `nix run nixpkgs#immich-go -- upload --server http://127.0.0.1:2283 --api-key <KEY> --recursive /var/lib/nextcloud/data/<user>/files/<photos>` (confirm exact flag names for the installed immich-go version). - **Recommended:** map folders → albums so Nextcloud's structure becomes Immich albums. Decide flat vs albums at run time. 2. Mind the **temporary 2× storage** on the Storage Box: during the overlap the photos exist in both Nextcloud's `sub4` share and Immich's `sub12` `library/`. Ensure box headroom. 3. Verify counts / capture dates / albums in Immich. Let ML finish indexing in the background (it's CPU-throttled, so it's slow but harmless to the websites; it reads each original once over slow CIFS). 4. Once verified, decommission Nextcloud (separate change): the photos now live in Immich's library and you can retire the Nextcloud photo data. ## Notes - Keep the Nextcloud copy until you've confirmed the Immich import is complete and correct. - This is a **human** issue — `immich-go` needs an interactive API key and judgement calls on album mapping / verification.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cloonar/nixos#179
No description provided.