diff --git a/docs/03-SERVICES-OTHER.md b/docs/03-SERVICES-OTHER.md index 40e2f5e..15b5a94 100644 --- a/docs/03-SERVICES-OTHER.md +++ b/docs/03-SERVICES-OTHER.md @@ -1,6 +1,6 @@ # Other Services -**Last Updated:** 2026-06-29 +**Last Updated:** 2026-07-08 Non-critical services that enhance functionality but don't affect core network operation. @@ -102,6 +102,22 @@ Non-critical services that enhance functionality but don't affect core network o ## Media +### Immich (Photos) + +| Component | IP (dockerproxy) | URL | +|-----------|------------------|-----| +| immich_server | 172.18.0.132 | https://photos.xtrm-lab.org | +| immich_machine_learning | (immich_default) | - | +| immich_postgres | (immich_default) | - (vectorchord) | +| immich_redis | (immich_default) | - | + +**Purpose:** Self-hosted Google Photos replacement (Immich v3) +**Stack:** docker compose at `/mnt/user/appdata/immich/` (`IMMICH_VERSION=v3`) +**Access:** Traefik → `photos.xtrm-lab.org` (wildcard cert, no forward-auth so mobile app works) + direct LAN `192.168.10.20:2283` +**Storage:** library on cache NVMe pool `/mnt/user/photos` (raidz1, redundant, fast); Postgres on cache `appdata/immich/postgres` +**Backup:** nightly 03:30 (`scripts/immich-backup.sh`, cron `dynamix/immich-backup.cron`) — pg_dumpall (keep 14) + originals rsync → `/mnt/disk1/immich-backup` (array disk1, parity-protected, independent media) +**Import:** immich-go v0.32.0 at `scripts/` for Google Takeout import (`scripts/import-google-photos.sh`) + ### Plex | Network | Port | URL | diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 7c2cd66..eb6d150 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,6 +2,17 @@ **Purpose:** Major infrastructure events only. Minor changes are in git commit messages. +--- +## 2026-07-08 + +### Immich deployed (Google Photos replacement) +- **[IMMICH]** Deployed Immich v3.0.1 as a self-hosted Google Photos replacement — docker compose stack at `/mnt/user/appdata/immich/` (`IMMICH_VERSION=v3`), containers: immich_server, immich_machine_learning, immich_postgres (vectorchord), immich_redis +- **[IMMICH]** Exposed via Traefik at `https://photos.xtrm-lab.org` (wildcard cert, no forward-auth so the mobile app works) + direct LAN `192.168.10.20:2283`. No new NAT rule (goes through existing 443→Traefik) +- **[IMMICH]** Storage: primary library on cache NVMe pool `/mnt/user/photos` (raidz1, redundant, fast) — chosen over the array (single parity disk, ~900G free, slower). Postgres data on cache +- **[IMMICH]** Backup: nightly 03:30 cron (`scripts/immich-backup.sh` via `dynamix/immich-backup.cron`) — pg_dumpall (keep 14) + originals rsync → `/mnt/disk1/immich-backup` (array disk1, parity-protected, independent media) +- **[IMMICH]** Google Takeout import ready via immich-go v0.32.0 (`scripts/import-google-photos.sh`); import pending user's Takeout archive +- **[NOTE]** Dropped the stock `/etc/localtime` bind mount (host symlink `→ Europe/Sofia/` with trailing slash breaks runc); use `TZ=Europe/Kyiv` instead + --- ## 2026-06-30