# INSTALLATION ## Objectif Documenter une installation reproductible de la plateforme medias. ## Documentation liee - Creation VM: `docs/VM_KONENPAN_CREATION.md` - Troubleshooting: `docs/TROUBLESHOOTING.md` - Template incident: `docs/TEMPLATE_INCIDENT.md` - Couche acces media: `MEDIA_ACCESS_API.md` - Backend viewer: `VIEWER_BFF.md` - Ingestion Windows: `WINDOWS_INGESTION.md` - DNS local stack medias: `docs/DNSMASQ_MEDIAS.md` - Reverse proxy HTTPS: `docs/CADDY_ARAUCARIA.md` - Deploiement sur VM: `docs/DEPLOIEMENT_KONENPAN.md` ## Perimetre - Services concernes: - Version cible: - Environnement cible: dev | test | prod ## Prerequis - Acces depots et secrets necessaires - Docker / Docker Compose installes - Certificats/TLS disponibles - DNS et ports valides ## Variables et secrets - Fichier source des variables: - Secrets requis: - Regle: ne jamais committer les secrets ## Procedure d'installation 1. Preparer l'environnement. 2. Recuperer la configuration necessaire. 3. Demarrer les services. 4. Initialiser les composants (DB, realm IAM, etc.). 5. Verifier l'etat de sante. ## Validation post-installation - Services demarres et stables - Authentification fonctionnelle - Acces medias testes - Logs sans erreur bloquante ## Rollback - Conditions de rollback: - Etapes de rollback: - Verification apres rollback: ## Logs et traces - Emplacement des logs: - Commandes de collecte: - Duree de retention: ## Historique des mises a jour - Date: - Auteur: - Resume du changement: ## Exemple rempli: stack medias avec viewer BFF (dev) ### Perimetre - Services concernes: minio, media-access-api, viewer-bff - Version cible: keycloak externe (`kc.arauco.online`), minio latest stable, Node.js 20 LTS (viewer-bff) - Environnement cible: dev ### Variables et secrets - Fichier source des variables: `.env.dev` (non versionne) - Secrets requis: `OIDC_CLIENT_SECRET`, `MINIO_ROOT_PASSWORD` - Note: `media-access-api` est build localement depuis `./media-access-api` (pas de dependance obligatoire a un registry externe). ### Procedure d'installation (exemple) 1. Deployer les fichiers sur `konenpan` via le depot Git relay `chillka` selon `docs/DEPLOIEMENT_KONENPAN.md`. 2. Copier `.env.photoprism-secure.example` vers `.env.dev` puis renseigner les secrets. 3. Configurer les enregistrements DNS locaux vers `araucaria` (`docs/DNSMASQ_MEDIAS.md`). 4. Configurer Caddy sur `araucaria` pour publier les services en HTTPS (`docs/CADDY_ARAUCARIA.md`). 5. Verifier l'acces OIDC externe (`OIDC_ISSUER` vers `kc.arauco.online/realms/chiruca`). 6. Demarrer la stack locale avec `compose.photoprism-secure.dev.yml`. 7. Verifier la creation du bucket prive `medias-private` et l'absence de lecture anonyme. 8. Publier `viewer-bff` via Caddy (`photos.arauco.online`) et router `media-api.arauco.online` vers `media-access-api`. 9. Lancer une ingestion initiale des dossiers Windows (`WINDOWS_INGESTION.md`). Commandes de reference: ```bash cp .env.photoprism-secure.example .env.dev docker compose --env-file .env.dev -f compose.photoprism-secure.dev.yml up -d --build docker compose --env-file .env.dev -f compose.photoprism-secure.dev.yml ps ``` ### Validation post-installation (exemple) - Login utilisateur test via OIDC OK. - `GET /v1/permissions` retourne les prefixes attendus. - URL pre-signee valide permet lecture objet autorise. - URL directe MinIO sans signature refusee. - Utilisateur multi-roles voit la somme des dossiers autorises. - Acces HTTPS via Caddy valide (`photos.arauco.online`, `media-api.arauco.online`). - `GET https://photos.arauco.online/health` retourne `status=ok`. ### Rollback (exemple) - Conditions: echec OIDC global, erreurs 5xx persistantes API, ACL non conformes. - Etapes: revenir au compose precedent, restaurer `.env` et mapping roles, redemarrer les services stables. - Verification apres rollback: login OIDC + lecture media dossier autorise uniquement. ### Logs et traces (exemple) - Emplacement des logs: `docker compose logs`, logs `media-access-api`, logs `viewer-bff`. - Commandes de collecte: `docker compose -f compose.photoprism-secure.dev.yml logs --since=30m > logs-install-dev.txt` - Duree de retention: 14 jours (dev).