πΈ Project: Immich Deployment (Operation Snapshot)
Status: ποΈ Planned
Target: risa-mediacore (192.168.1.21)
Objective: Deploy a hardware-accelerated Immich instance for photo management, consolidating legacy data into the Unified Vault.
πΊοΈ Architecture
1. Storage Strategy (Standardized)
We will adhere to the "One App, One Folder" standard within the Unified Vault.
* Path: /mnt/vault/media/photos
* Role: Master Library (Immich has read/write ownership).
* Sub-folders:
* library/ (Originals)
* thumbs/ (Generated assets)
* upload/ (Mobile upload target)
* profile/ (User avatars/profile data)
* video/ (Transcoded videos)
2. Compute Node (Risa)
- Host:
risa-mediacore(i5-8500T). - Acceleration: Intel QuickSync (
/dev/dri) for video transcoding and ML tasks. - Network: Behind Gateway (Caddy).
- Domain:
photos.the-lal.net(Cloudflare DNS Challenge).
3. Data Migration (Consolidation)
- Source: Legacy Dataset
TheWarpCore/immich_photos(on TrueNAS). - Action: Move content to
/mnt/vault/media/photos. - Cleanup: Delete
TheWarpCore/immich_photosdataset after verification.
π Execution Plan & Checkpoints
β Phase 1: Storage Prep
- Action: Create directory structure
/mnt/vault/media/photoson TrueNAS (via Risa mount). - Action: Migrate data from legacy
immich_photos(~170MB) to new location. - Action: Set Permissions (GID 3000).
- Checkpoint: π Verify data exists in new path and Permissions are correct.
β Phase 2: Deployment Config
- Action: Create
docker-compose.ymlin/opt/docker_data/immich.- Includes: Server, Microservices, Machine Learning, Redis, Postgres.
- Action: Create
.envfile with secure secrets (DB Password). - Action: Configure Hardware Acceleration (Map
/dev/dri). - Checkpoint: π Verify
docker-compose configpasses.
β Phase 3: Launch & Initialize
- Action: Start the stack.
- Action: Verify logs for "Server listening".
- Checkpoint: π Access via Local IP (
http://192.168.1.21:2283).
β Phase 4: Gateway Integration
- Action: Update Caddyfile on Risa.
- Config:
caddy photos.the-lal.net { tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } reverse_proxy 192.168.1.21:2283 } - Checkpoint: π Verify external access via
https://photos.the-lal.net.
π§ Sanity Check (Pre-Flight)
- Port Conflict? Immich uses 2283. Check if Risa has 2283 free.
- Hardware Access? Verify
/dev/driexists on Risa. - Legacy Data? Confirm
TheWarpCore/immich_photosis accessible for migration. - Database? Do we need a fresh DB or is there an old dump? (Plan assumes Fresh DB, importing files as "External" or "Upload"). Correction: If migrating files, we treat them as a "Library Import" or "External Library" to re-index.