Add Immich photo management + migrate forge URLs #62

Merged
eblume merged 12 commits from feature/immich into main 2026-01-26 11:20:12 -08:00

12 commits

Author SHA1 Message Date
6b9b8bcc6f Use VectorChord 0.5.0 for Immich compatibility
Immich v2.4.1 requires VectorChord >=0.3 <0.6, but the 17.7-1.0.0
image has VectorChord 1.0.0. Use the 17-0.5.0 tag instead.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:47:20 -08:00
18f56a8890 Update Immich to chart v0.10.3 and app v2.4.1
- Update Helm chart from immich-0.10.0 to immich-0.10.3
- Update Immich to v2.4.1 (latest)
- Fix image tag structure for bjw-s common library

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:40:28 -08:00
2818758817 Fix immich values: add DB env vars under controllers.main
The bjw-s common library expects env vars under
controllers.main.containers.main.env, not at the top level.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:17:14 -08:00
4832044a65 Temp: point immich values at feature branch for testing
Will reset to main after PR merge.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:12:08 -08:00
c0333458fa Fix immich values.yaml: correct persistence structure
- Add 'data:' key under valkey.persistence
- Add 'enabled: true' for machine-learning cache

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:11:36 -08:00
57b79baf26 Fix immich-storage: exclude kustomization.yaml from includes
kustomization.yaml is not a K8s resource - ArgoCD was trying to apply
it directly which fails. Only include the actual manifest files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:09:19 -08:00
367b86710e Fix immich-pg: use VectorChord with correct config
- Use cloudnative-vectorchord:17.7-1.0.0 image (not pgvecto.rs)
- Add shared_preload_libraries at postgresql level (not parameters)
- Create vector, vchord, cube, earthdistance extensions

Immich v1.133.0+ uses VectorChord as successor to pgvecto.rs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:05:16 -08:00
f1f4575554 Fix immich-pg: use correct cloudnative-pgvecto.rs image
The image is ghcr.io/tensorchord/cloudnative-pgvecto.rs:17.5,
not tensorchord/cloudnative-vectorchord which doesn't exist.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 09:57:55 -08:00
89e5edca56 Fix immich-pg: remove shared_preload_libraries parameter
CloudNativePG webhook rejects shared_preload_libraries as a "fixed"
parameter - it's managed by the container image itself.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 09:51:51 -08:00
b01400bcbb Add rule: always use --context=minikube-indri with kubectl
Prevent accidental operations against work clusters by requiring
explicit context specification on all kubectl commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 08:13:48 -08:00
5482f74500 Add Immich photo management service
Deploy Immich via Helm chart with:
- PostgreSQL cluster with pgvecto.rs (immich-pg) for AI vector search
- NFS storage on sifaka for photo library
- Tailscale Ingress + Caddy proxy for photos.ops.eblu.me access
- Machine learning service for face/object recognition

Immich provides a self-hosted Google Photos/iCloud alternative with
AI-powered search, face recognition, and support for RAW files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 07:52:24 -08:00
dbc47d0231 Migrate ArgoCD repos from indri:2200 to forge.ops.eblu.me:2222
Update all ArgoCD application repo URLs and SSH known hosts to use
the new Caddy-proxied forge endpoint instead of the legacy Tailscale
MagicDNS hostname.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 07:52:11 -08:00