1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# 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`
### 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
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).
|