From eae97886d70789dd4de37f3fd987e3434b7a7c07 Mon Sep 17 00:00:00 2001 From: Lionel Date: Sat, 31 Jan 2026 02:54:23 +0100 Subject: [PATCH] docs: add Immich Photo Library documentation --- docs/services/immich.md | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 docs/services/immich.md diff --git a/docs/services/immich.md b/docs/services/immich.md new file mode 100644 index 0000000..14bba1b --- /dev/null +++ b/docs/services/immich.md @@ -0,0 +1,128 @@ +# Immich Photo Library + +Immich est la solution de gestion de photos et vidéos familiale de LakeNet, offrant une alternative self-hosted à Google Photos. + +## Accès + +| Paramètre | Valeur | +|-----------|--------| +| **URL** | [photos.serval-nase.ts.net](https://photos.serval-nase.ts.net) | +| **Go-link** | [go/photos](https://go.serval-nase.ts.net/photos) | +| **Version** | v2.5.2 | +| **Namespace K3s** | `photos` | +| **Auth Web** | Authelia SSO | +| **Auth Mobile** | API Key (bypass Authelia) | + +## Architecture + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ IMMICH ARCHITECTURE │ +├─────────────────────────────────────────────────────────────────┤ +│ Clients (iOS/Web) → Immich Server → PostgreSQL + Redis │ +│ ↓ ↓ │ +│ Authelia SSO ┌─────┴─────┐ │ +│ ↓ ↓ │ +│ HOT (NVME) COLD (Annecy NFS) │ +│ - thumbs - originals │ +│ - profile - encoded-video │ +│ - ML cache - library │ +└─────────────────────────────────────────────────────────────────┘ +``` + +## Composants K3s + +| Pod | Rôle | Resources | +|-----|------|-----------| +| `immich-server` | API + Workers (v2.5+ unified) | 2 CPU, 4Gi RAM | +| `immich-ml` | Machine Learning (faces, objects) | 2 CPU, 2Gi RAM | +| `postgres-immich` | Base de données métadonnées | 500m CPU, 1Gi RAM | +| `redis-immich` | Cache sessions | 100m CPU, 256Mi RAM | + +## Storage Architecture + +### Tier 1 - Hot Storage (Talloires NVME) + +Budget: **~300 GB** + +| PVC | Taille | Contenu | +|-----|--------|---------| +| `immich-thumbs` | 250 Gi | Thumbnails 1024px | +| `immich-profile` | 1 Gi | Avatars utilisateurs | +| `immich-backups` | 20 Gi | DB dumps | +| `immich-ml-cache` | 10 Gi | Modèles ML | +| `postgres-immich-data` | 30 Gi | PostgreSQL data | + +### Tier 2 - Cold Storage (Annecy NAS via NFS) + +Budget: **~1.3 TB** + +| PVC | Taille | Contenu | +|-----|--------|---------| +| `immich-originals` | 600 Gi | Photos/vidéos originales | +| `immich-encoded` | 200 Gi | Vidéos transcodées | +| `immich-library` | 500 Gi | External libraries | + +### Tier 3 - Backup (Backblaze B2) + +🚧 **À configurer** - Backup immutable quotidien + +## Utilisateurs + +| Utilisateur | Rôle | Status | +|-------------|------|--------| +| lionel | Admin | ✅ Actif | +| rachel | User | 🔜 À créer | +| fiona | User | 🔜 À créer | +| jean-claude | User | 🔜 À créer | +| anne | User | 🔜 À créer | +| amelie | User | 🔜 À créer | +| alexis | User | 🔜 À créer | + +## Configuration Réseau + +### IngressRoutes + +```yaml +# Web UI (avec Authelia) +Host: photos.serval-nase.ts.net +Middleware: authelia-forwardauth +Priority: 50 + +# API Mobile (sans Authelia) +Host: photos.serval-nase.ts.net +Path: /api/* +Priority: 100 (bypass auth) +``` + +### DNS + +```bash +# /etc/dnsmasq.d/tailscale.conf sur Talloires +address=/photos.serval-nase.ts.net/100.119.210.84 +address=/photos.serval-nase.ts.net/100.116.198.105 +``` + +## Maintenance + +### Vérifier les pods + +```bash +kubectl get pods -n photos +``` + +### Logs serveur + +```bash +kubectl logs -n photos -l app=immich-server -f +``` + +### Backup base de données + +Immich v2.5+ inclut un système de backup/restore intégré accessible via Administration > Maintenance. + +## Références + +- [Documentation Immich](https://immich.app/docs) +- [Issue Gitea #48](https://git.serval-nase.ts.net/lionel/lake-central/issues/48) +- [Release Notes v2.5.0](https://github.com/immich-app/immich/releases/tag/v2.5.0)