first commit
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# 🏗️ Architecture détaillée
|
||||
|
||||
## Vue matérielle
|
||||
|
||||
```text
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ Jonsbo N4 (boîtier) │
|
||||
│ │
|
||||
│ ┌───────────────┐ ┌───────────────┐ ┌─────────────────┐ │
|
||||
│ │ Ryzen 5 5600 │ │ 32 Go DDR4 │ │ TrueNAS Scale │ │
|
||||
│ │ (CPU) │ │ (RAM) │ │ (OS, ZFS) │ │
|
||||
│ └───────────────┘ └───────────────┘ └─────────────────┘ │
|
||||
│ │
|
||||
│ Stockage : │
|
||||
│ ┌───────────┐ ┌───────────────┐ ┌───────────────────────┐ │
|
||||
│ │ 256 Go NVMe│ │ 2× 500 Go SSD │ │ 2× 4 To HDD + 1× 8 To │ │
|
||||
│ │ → OS │ │ → Apps/Docker │ │ → Data / Médias │ │
|
||||
│ └───────────┘ └───────────────┘ └───────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Logique de séparation
|
||||
|
||||
| Couche | Support | Contenu |
|
||||
| ---------------- | ------------------ | -------------------------------------- |
|
||||
| Système | NVMe 256 Go | TrueNAS Scale (boot pool) |
|
||||
| Applications | 2× SSD 500 Go | Conteneurs Docker, bases de données |
|
||||
| Données sensibles | 2× HDD 4 To (miroir) | Photos, vidéos, documents personnels |
|
||||
| Médias | 1× HDD 8 To | Bibliothèque multimédia (Jellyfin) |
|
||||
|
||||
Cette séparation permet :
|
||||
|
||||
- d'isoler les workloads (le système ne partage pas son support avec les données) ;
|
||||
- de dimensionner chaque pool selon son usage (performance pour les apps, capacité/redondance pour les données) ;
|
||||
- de limiter le rayon d'impact d'une panne disque à une seule couche.
|
||||
|
||||
## Vue logique des services
|
||||
|
||||
```text
|
||||
┌────────────────────┐
|
||||
│ Cloudflared │
|
||||
│ (tunnel sortant) │
|
||||
└─────────┬────────────┘
|
||||
│ HTTPS uniquement
|
||||
┌─────────▼────────────┐
|
||||
│ Nginx Proxy Manager │
|
||||
│ (reverse proxy + TLS) │
|
||||
└─────────┬────────────┘
|
||||
│
|
||||
┌──────────────┬──────────┼──────────┬──────────────┐
|
||||
│ │ │ │ │
|
||||
┌────▼───┐ ┌─────▼────┐ ┌───▼────┐ ┌────▼─────┐ ┌─────▼─────┐
|
||||
│Nextcloud│ │ Jellyfin │ │ Immich │ │Vaultwarden│ │ Gitea … │
|
||||
└────┬───┘ └──────────┘ └────────┘ └──────────┘ └───────────┘
|
||||
│
|
||||
┌────▼─────────────┐
|
||||
│ Authentik (SSO/MFA)│ ← contrôle d'accès transverse à tous les services
|
||||
└────────────────────┘
|
||||
```
|
||||
|
||||
## Principes directeurs
|
||||
|
||||
1. **Aucun service n'est exposé directement** : tout passe par le tunnel sortant Cloudflared puis le reverse proxy.
|
||||
2. **Authentification centralisée** : Authentik agit comme point de contrôle unique pour le SSO/MFA.
|
||||
3. **Isolation réseau interne** : les conteneurs communiquent sur des réseaux Docker dédiés, pas en mode `host`.
|
||||
4. **VPN dédié pour les flux sensibles** : Gluetun encapsule le trafic de téléchargement (Deluge) pour éviter toute fuite d'IP.
|
||||
Reference in New Issue
Block a user