Merge branch 'docs/add-index-documentaire'
DevSecOps Pipeline - Universal Quality Gate / System & Environment Check (push) Successful in 4s Details
DevSecOps Pipeline - Universal Quality Gate / Secret Detection (Gitleaks) (push) Successful in 26s Details
DevSecOps Pipeline - Universal Quality Gate / IaC Security & Vulnerability Scan (Trivy) (push) Successful in 21s Details

Merge to main 4 docs
This commit is contained in:
Marc Lasserre 2026-08-21 20:01:53 +02:00
commit 54dd8cc146
Signed by: M7s
GPG Key ID: F74837410959661B
5 changed files with 196 additions and 0 deletions

20
.gitignore vendored Normal file
View File

@ -0,0 +1,20 @@
# OS & Éditeurs
.DS_Store
Thumbs.db
*.swp
*~
.vscode/
.idea/
# Fichiers temporaires & Logs
*.log
tmp/
*.tmp
# Sécurité & Secrets local (Anti-fuite)
.env
.env.local
*.pem
*.key
*.p12
*.pfx

53
INDEX_DOCUMENTAIRE.md Normal file
View File

@ -0,0 +1,53 @@
# Index Documentaire du Système d'Information RYM
Ce document recense l'ensemble de la documentation cadre, technique et opérationnelle du SI RYM.
Il garantit la traçabilité et le suivi des révisions conformément aux exigences **ISO 27001 (SMSI)**, **ISO 9001 (SMQ)** et aux préconisations de l'**ANSSI**.
---
### 🛡️ 1. Gouvernance, Sécurité & Qualité (`rym_gouvernance`)
#### A. Norme ISO 27001 & RGPD (`iso27001/`)
| Réf. / Code | Titre du Document | Description / Portée | Statut / Version | Responsable | Fréquence de Révision |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **DOC-SEC-00** | `INDEX_DOCUMENTAIRE.md` | Registre central de la documentation du SI | **Approuvé v1.0** | Marc Lasserre | Continue |
| **DOC-SEC-01** | `iso27001/POLITIQUE_SECURITE.md` | PSSI (Politique de Sécurité du SI) | **Approuvé v1.0** | Marc Lasserre | Annuelle |
| **DOC-SEC-02** | `iso27001/SOUVERAINETE.md` | Principes d'indépendance technique & doctrine | **Approuvé v1.0** | Marc Lasserre | Annuelle |
| **DOC-SEC-03** | `iso27001/MATRICE_RISQUES.md` | Cartographie et analyse des risques / menaces | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
| **DOC-SEC-04** | `iso27001/GESTION_INCIDENTS.md` | Procédures d'escalade et réponse aux incidents | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
| **DOC-SEC-05** | `iso27001/POLITIQUE_TRAITEMENT_DONNEES.md` | Protection RGPD, pseudonymisation & gouvernance ML | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
#### B. Norme ISO 9001 & Organisation (`iso9001/`)
| Réf. / Code | Titre du Document | Description / Portée | Statut / Version | Responsable | Fréquence de Révision |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **DOC-QUA-01** | `iso9001/PROCESSUS_RELEASE.md` | Workflow de mise en production (SMQ) | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
| **DOC-QUA-02** | `iso9001/REGLES_CODE_REVIEW.md` | Standards de relecture de code & PR | **Approuvé v1.0** | Binôme RYM | Continue |
| **DOC-ORG-01** | `iso9001/ONBOARDING.md` | Procédure d'accueil et intégration collaborateurs | **Approuvé v1.0** | Marlène Marigny | Selon besoin |
#### C. Architecture & Cartographie Technique (`techniques/`)
| Réf. / Code | Titre du Document | Description / Portée | Statut / Version | Responsable | Fréquence de Révision |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **DOC-TEC-01** | `techniques/CARTOGRAPHIE_SI.md` | Vision SI, langages (Python/TS) & Moteur ML | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
| **DOC-TEC-02** | `techniques/CARTOGRAPHIE_ANSSI.md` | Cloisonnement des 2 SI & Trajectoire Cluster k3s | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
| **DOC-TEC-03** | `techniques/ARCHITECTURE_OUTILS.md` | Stack souveraine EU & Ergonomie non-tech | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
| **DOC-TEC-04** | `techniques/HARDENING_SERVEURS.md` | Bastion & Sécurisation du VPS Debian | **Approuvé v1.0** | Marc Lasserre | Annuelle |
| **DOC-TEC-05** | `techniques/CONSEILS_DEPLOIEMENT.md` | Procédures d'exploitation & maintenance | **Approuvé v1.0** | Marc Lasserre | Semestrielle |
---
### ⚙️ 2. Infrastructure & Déploiement (`rym_infrastructure`)
| Réf. / Code | Titre du Document | Description / Portée | Statut / Version | Responsable | Fréquence de Révision |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **DOC-INF-01** | `README.md` | Architecture, prérequis & stack Podman | **En cours v0.9** | Marc Lasserre | Continue |
---
### 💻 3. Applicatif Frontend & Backend (`rym_horizon`)
| Réf. / Code | Titre du Document | Description / Portée | Statut / Version | Responsable | Fréquence de Révision |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **DOC-APP-01** | `README.md` | Setup local, stack Node/React & variables d'env. | **En cours v0.9** | Marc Lasserre | Continue |

View File

@ -0,0 +1,21 @@
# Plan de Reprise d'Activité (PRA / DRP) — SI RYM
## 1. Objectifs (RTO / RPO)
* **RPO (Recovery Point Objective)** : 24 heures (données perdues max = 1 journée).
* **RTO (Recovery Time Objective)** : 2 heures (temps max de reconstruction complète du SI).
---
## 2. Stratégie de Sauvegarde (3-2-1 Rule)
1. **Quoi** : Volumes Podman, Bases PostgreSQL/SQLite, Dépôts Git Gitea (`gitea dump`).
2. **Comment** : Script automatisé exécuté par `cron` à 02h00 du matin. Chiffrement AES-256 avant envoi (*Zero-Knowledge*).
3. **Où** : Export hors-site vers Object Storage S3 souverain (OVH ou autre en zone exclusivement EU -Hors Suisse) ou serveur de secours isolé.
---
## 3. Procédure de Reconstruction à Froid (En cas de crash total du VPS)
1. Provisionner un nouveau VPS Debian vierge.
2. Cloner le dépôt de configuration : `git clone https://git.gorym.net/RYM/rym_infrastructure.git`.
3. Exécuter le script de Hardening : `./HARDENING_SERVEURS.sh`.
4. Rapatrier et déchiffrer la dernière sauvegarde S3.
5. Remonter les conteneurs Podman : `podman-compose up -d`.

View File

@ -0,0 +1,36 @@
### 📄 2. `techniques/ARCHITECTURE_OUTILS.md`
# Architecture des Outils & Stratégie Souveraine
## 1. Vision Métier & Ergonomie "Non-Tech"
Pour garantir une adoption fluide par l'ensemble de l'équipe (profils techniques et non-techniques) sans multiplier les outils :
* **Zéro CRM/Usine à gaz complexe** : Le suivi de projet et la gouvernance se font directement via l'interface web de Gitea (`git.gorym.net`).
* **Validation en 1-clic** : La relecture et la validation des documents/code se font via le bouton **"Approuver"** de l'interface web, sans aucune ligne de commande.
* **Unified Domain** : L'ensemble des services métiers et techniques sont regroupés sous l'écosystème unifié `*.gorym.net`.
---
## 2. Stack Technique Souveraine (EU Compliance)
Afin d'éliminer toute dépendance aux Cloud Act US (Vercel, Supabase SaaS, Anthropic) :
| Couche Applicative | Stack Cible Souveraine | Remplacement Souverain |
| :--- | :--- | :--- |
| **Hébergement Frontend** | React 18 / Vite (Nginx Podman) | Remplacement de Vercel public par le VPS Debian Podman. |
| **Orchestration & Runtime** | **Podman (Dev/Mono) -> Cluster k3s (Prod)** | Alternatif souverain léger à Docker et aux services Kubernetes Cloud gérés (EKS/GKE). |
| **Backend & API** | Node.js Express / Python FastAPI | Remplacement des fonctions Vercel Serverless. |
| **Base de Données** | PostgreSQL (Rootless Podman) | Auto-hébergement local du script `supabase-military.sql`. |
| **Secrets & Passwords** | Passbolt / Bitwarden Send | Hôte sur `send.gorym.net` (Zero-Knowledge). |
| **IA & Audio (Horizon)** | API Souveraines / Modèles Open-Source | Transition progressive depuis Claude/ElevenLabs vers des modèles UE. |
| **Communication & Chat** | **Matrix(Synapse) + Client Element | Alternative souveraine E2EE (chiffrée de bout en bout) à Slack, Mattermost & Teams |
---
## 3. Matrice de Responsabilités (Marc & Marlène)
| Périmètre | Marc Lasserre (Tech/DevSecOps) | Marlène Marigny (Product/Stratégie) |
| :--- | :--- | :--- |
| **Infra & SecOps** | Maintien Podman, CI/CD, Nginx, Backups | Utilisation des endpoints applicatifs |
| **Gouvernance** | Rédaction technique, règles GPG, PSSI | Validation web des PR, gestion de la Roadmap |
| **Product & App** | Intégration SecOps du code React/API | Design, fonctionnalités métier, Dépôt de code sur Gitea |

View File

@ -0,0 +1,66 @@
# Cartographie du SI & Cloisonnement (Guide ANSSI)
## 1. Principes Général & Doctrine d'Isolation
Conformément aux recommandations de l'ANSSI, le Système d'Information (SI) du projet est cloisonné en deux périmètres strictement étanches pour limiter la surface d'attaque et contenir tout risque de propagation.
* **SI IT & Outillage (DevSecOps / Administration)** : Héberge la forge, la CI/CD, les secrets et la documentation cadre.
* **SI Général / Production (Applicatif Peakload)** : Héberge l'application client, l'API et la base de données physiologiques.
---
## 2. Matrice de Cloisonnement des deux SI
```text
[ Internet / Public ]
[ Reverse Proxy Nginx (TLS 1.3 / WAF) ]
├──────────────────────────────────────┐
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ SI GENERAL / PRODUCTION │ │ SI IT / OUTILLAGE │
│ Zone Applicative Peakload │ │ Zone DevSecOps & Governance │
├──────────────────────────────┤ ├──────────────────────────────┤
│ • App Web (React/Vite) │ │ • Forge (`git.gorym.net`) │
│ • API Engine (FastAPI/Node) │ │ • Runner CI/CD (`act_runner`)│
│ • BDD (PostgreSQL Rootless) │ │ • Secrets (`send/passbolt`) │
└──────────────────────────────┘ └──────────────────────────────┘
```
---
## 3. Matrice des Flux & Cartographie Réseau
| Zone | Composant | Port Interne | Exposition Publique | Protocole / Usage
| :--- | :--- | :--- | :--- | :--- |
| **Edge** | Reverse Proxy (Nginx) | 80, 443 | Oui (gorym.net) | HTTPS (TLS 1.3 Strict) |
| **SI IT** | Forge Gitea | 3000 | Via Proxy (git.gorym.net) | HTTP/SSH Chiffré |
| **SI IT** | Secrets (Passbolt/Send)| 8080 | Via Proxy (send.gorym.net) |HTTPS Zero-Knowledge |
| **SI IT** | Chat & Visioconference (Matrix/Element) | 8008, 8081 | Via Proxy (chat.gorym.net) | HTTPS / E2EE (Chiffrement bout en bout) |
| **SI Prod** | Frontend Peakload | 5000 | Via Proxy (app.gorym.net) | HTTPS |
| **SI Prod** | API Core | 8000 | Interne Podman uniquement | REST / JSON |
| **SI Prod** | Base PostgreSQL |5432 | **NON (Isolé Podman)** |SQL interne chiffré |
## 4. Mesures de SecOps & Isolation ANSSI
* *Réseaux Podman distincts :* Le SI IT et le SI Prod tournent sur deux réseaux virtuels Podman internes totalement séparés.
* *Privilèges :* Exécution à 100 % sous mode Rootless (aucun conteneur n'est exécuté sous l'utilisateur root du VPS).
* *Base de données isolée :* PostgreSQL n'a aucun port exposé sur l'extérieur. Seule l'API interne du pod Prod peut communiquer avec lui.
---
## 5. Trajectoire d'Orchestration Haute Disponibilité (k3s Cluster)
Afin de garantir la scalabilité, la résilience et la haute disponibilité (HA) du SI Général/Production sans aucune dépendance aux orchestrateurs Cloud propriétaires :
* **Runtime de proximité / Dev** : Les services sont conteneurisés sous **Podman** (mode Rootless, respect strict des normes OCI).
* **Orchestration de Production (k3s)** : Le déploiement s'appuie sur un cluster **k3s** (distribué, léger, certifié CNCF) auto-hébergé sur des instances VPS souveraines européennes.
* **Isolation par Namespaces Kubernetes** :
* `namespace: rym-core` (API, Moteur ML, Traitement VRC/Santé)
* `namespace: rym-db` (PostgreSQL / Redis isolés avec NetworkPolicies strictes)
* `namespace: rym-ingress` (Ingress Controller Nginx / TLS 1.3)
* **Sécurité des Pods (PSS)** : Application des règles *Restricted Pod Security Standards* de Kubernetes (interdiction des privilèges root, contraintes de capabilités Linux).
---