feat(jupiter): native Immich profile module (docker → NixOS) #10
@@ -16,7 +16,7 @@ links, metadata) and photo/video library.
|
|||||||
| Topic | Decision |
|
| Topic | Decision |
|
||||||
|-------|----------|
|
|-------|----------|
|
||||||
| Approach | Native `services.immich` (nixpkgs), not `oci-containers` |
|
| Approach | Native `services.immich` (nixpkgs), not `oci-containers` |
|
||||||
| Version target | Stable nixpkgs ships **2.7.5**, unstable **3.0.3**. Pin target ≥ running docker version (forward-migration only) |
|
| Version target | **Resolved: docker runs 2.7.5 == stable nixpkgs 2.7.5.** Use the stable module as-is; no `package` override. Same-version restore, no forward schema migration |
|
||||||
| Media location | Default local path `/var/lib/immich`. NAS deferred to a future read-only external library |
|
| Media location | Default local path `/var/lib/immich`. NAS deferred to a future read-only external library |
|
||||||
| Database | Migrate via dump/restore — keep everything |
|
| Database | Migrate via dump/restore — keep everything |
|
||||||
| HW acceleration | Video transcoding only (VAAPI/QSV via existing Intel graphics stack). ML on CPU |
|
| HW acceleration | Video transcoding only (VAAPI/QSV via existing Intel graphics stack). ML on CPU |
|
||||||
@@ -83,8 +83,9 @@ groups (above); (b) the hwaccel backend (QSV/VAAPI) is chosen in Immich's
|
|||||||
|
|
||||||
### Pre-flight (hard blocker)
|
### Pre-flight (hard blocker)
|
||||||
1. Get running docker Immich version (`docker exec <server> immich --version` or web UI footer).
|
1. Get running docker Immich version (`docker exec <server> immich --version` or web UI footer).
|
||||||
2. Compare to target (stable 2.7.5 / unstable 3.0.3). Target **must be ≥ running**.
|
2. **Resolved 2026-08-05: running version is 2.7.5, equal to stable nixpkgs.**
|
||||||
- running ≤ 2.7.5 → stable module as-is
|
Use the stable module as-is (no `package` override). Kept for reference:
|
||||||
|
- running ≤ 2.7.5 → stable module as-is ← **this case**
|
||||||
- 2.7.6–3.0.3 → set `package = pkgs.unstable.immich`
|
- 2.7.6–3.0.3 → set `package = pkgs.unstable.immich`
|
||||||
- `> 3.0.3` → bump nixpkgs first; **stop and re-plan**
|
- `> 3.0.3` → bump nixpkgs first; **stop and re-plan**
|
||||||
3. Record docker `UPLOAD_LOCATION` and DB container name/credentials.
|
3. Record docker `UPLOAD_LOCATION` and DB container name/credentials.
|
||||||
@@ -111,9 +112,10 @@ Before deleting any docker data: `systemctl stop immich-*`, disable the profile,
|
|||||||
`nixos-rebuild switch`, `docker compose up -d`. Original docker DB + upload
|
`nixos-rebuild switch`, `docker compose up -d`. Original docker DB + upload
|
||||||
folder remain untouched until explicitly removed after a few days of confidence.
|
folder remain untouched until explicitly removed after a few days of confidence.
|
||||||
|
|
||||||
## Known risk
|
## Known risk — RESOLVED
|
||||||
|
|
||||||
Step 9 crosses the **pgvecto.rs → VectorChord** vector-extension boundary if the
|
The main risk was step 9 crossing the **pgvecto.rs → VectorChord** vector-extension
|
||||||
docker version predates VectorChord. Follow Immich's official "migrate vector
|
boundary. With source and target both at **2.7.5**, both use VectorChord — no
|
||||||
database" guidance during restore. The exact case is known only after the
|
boundary crossing and no forward schema migration. The restore is a same-version
|
||||||
pre-flight version check.
|
dump/load. Residual risk is limited to routine dump/restore mechanics
|
||||||
|
(roles, extension availability in the NixOS Postgres, ownership on restore).
|
||||||
|
|||||||
Reference in New Issue
Block a user