first commit
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
# 🗄️ Homelab – Serveur NAS & infrastructure de services auto-hébergés
|
||||
|
||||
> Serveur **TrueNAS Scale** auto-hébergé, conçu comme une infrastructure de stockage résiliente et un socle de services sécurisés appliquant des principes **Zero-Trust** à un environnement personnel.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Vue d'ensemble
|
||||
|
||||
Ce projet est un **NAS personnel** tournant 24/7, construit autour de **TrueNAS Scale**. Il dépasse le simple stockage de fichiers : c'est un mini-datacenter personnel, pensé pour la maîtrise des données, la résilience face aux sinistres/ransomware, et l'hébergement d'une vingtaine de services conteneurisés.
|
||||
|
||||
**Usages principaux :**
|
||||
|
||||
- 🔐 Sécuriser et maîtriser mes données personnelles (photos, vidéos, documents)
|
||||
- ☁️ Mettre en place une stratégie de sauvegarde hybride (local + cloud, logique 3-2-1)
|
||||
- 🐳 Héberger un écosystème applicatif conteneurisé (cloud, médias, identité, mots de passe…)
|
||||
- 🧠 Appliquer des principes d'architecture Zero-Trust à un homelab
|
||||
|
||||
---
|
||||
|
||||
## 🧱 Architecture générale
|
||||
|
||||
```text
|
||||
┌──────────────────────────────────┐
|
||||
│ Jonsbo N4 │
|
||||
│ TrueNAS Scale Host │
|
||||
│ Ryzen 5 5600 / 32 Go DDR4 │
|
||||
└────────────────┬───────────────────┘
|
||||
│
|
||||
┌───────────────────────────┼───────────────────────────┐
|
||||
│ │ │
|
||||
┌───────▼────────┐ ┌────────▼─────────┐ ┌────────▼─────────┐
|
||||
│ Stockage │ │ Identité & accès │ │ Services Docker │
|
||||
│ │ │ │ │ │
|
||||
│ • NVMe → OS │ │ • Authentik (SSO) │ │ • Nextcloud │
|
||||
│ • SSD → Apps │ │ • Cloudflared │ │ • Jellyfin │
|
||||
│ • HDD → Data │ │ (tunnel sortant) │ │ • Immich │
|
||||
│ • HDD → Médias │ │ • Vaultwarden │ │ • Gitea, etc. │
|
||||
└─────────────────┘ └────────────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Infrastructure matérielle
|
||||
|
||||
| Composant | Détail |
|
||||
| ----------- | ------------------------------------------ |
|
||||
| Boîtier | Jonsbo N4 |
|
||||
| CPU | Ryzen 5 5600 |
|
||||
| RAM | 32 Go DDR4 |
|
||||
| OS storage | 256 Go NVMe (TrueNAS Scale) |
|
||||
| Apps/Docker | 2 × 500 Go SSD 2,5″ |
|
||||
| Données | 2 × 4 To HDD (photos, vidéos, documents) |
|
||||
| Médias | 1 × 8 To HDD (bibliothèque multimédia) |
|
||||
| Hyperviseur | TrueNAS Scale (ZFS) |
|
||||
| Fonctionnement | 24/7 |
|
||||
|
||||
**Logique d'architecture :**
|
||||
|
||||
- Séparation stricte OS / Applications / Données
|
||||
- Isolation logique des workloads
|
||||
- Stockage critique redondé (pools ZFS dédiés)
|
||||
- Optimisation des performances (NVMe pour le système, SSD pour les conteneurs)
|
||||
|
||||
Approche inspirée des environnements professionnels : segmentation fonctionnelle, limitation des risques, maintenabilité.
|
||||
|
||||
---
|
||||
|
||||
## 🗂️ Stratégie de stockage & sauvegarde
|
||||
|
||||
### 🔐 Données sensibles
|
||||
|
||||
- Stockage sur pool ZFS dédié et redondé
|
||||
- Snapshots réguliers
|
||||
- Versioning avec politique de conservation maîtrisée
|
||||
|
||||
Protection contre la suppression accidentelle et les scénarios ransomware.
|
||||
|
||||
### ☁️ Sauvegarde cloud hybride
|
||||
|
||||
Synchronisation chiffrée de 2 To vers **pCloud** (abonnement « à vie »).
|
||||
|
||||
**Objectifs :**
|
||||
|
||||
- Protection contre un sinistre matériel
|
||||
- Résilience face au ransomware
|
||||
- Stratégie **3-2-1** adaptée à un environnement personnel
|
||||
|
||||
> Les données critiques ne dépendent jamais exclusivement du cloud. Les sauvegardes distantes sont versionnées afin de limiter l'impact d'une compromission ou d'un chiffrement malveillant.
|
||||
|
||||
Détails dans [`docs/storage-and-backup-strategy.md`](docs/storage-and-backup-strategy.md).
|
||||
|
||||
---
|
||||
|
||||
## 🐳 Écosystème applicatif auto-hébergé
|
||||
|
||||
| Service | Rôle |
|
||||
| ----------------------- | ---------------------------------------------- |
|
||||
| Nextcloud | Cloud personnel |
|
||||
| Jellyfin | Streaming local |
|
||||
| Immich | Gestion photos intelligente |
|
||||
| Authentik | SSO & gestion centralisée des identités |
|
||||
| Vaultwarden | Gestionnaire de mots de passe |
|
||||
| Cloudflared | Tunnel sortant sécurisé |
|
||||
| Nginx Proxy Manager | Reverse proxy & TLS |
|
||||
| Gitea | Gestion de code |
|
||||
| Portainer | Administration Docker |
|
||||
| ONLYOFFICE | Suite bureautique collaborative |
|
||||
| Synapse | Serveur Matrix (messagerie décentralisée) |
|
||||
| Sonarr / Radarr / Prowlarr | Indexation & gestion médias |
|
||||
| Deluge + Gluetun | Téléchargement cloisonné via VPN |
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Sécurité & architecture Zero-Trust
|
||||
|
||||
### 🌍 Aucun port exposé
|
||||
|
||||
- Pas d'ouverture WAN directe
|
||||
- Accès distant exclusivement via tunnel sortant chiffré (**Cloudflared**)
|
||||
- HTTPS natif de bout en bout
|
||||
- Réduction drastique de la surface d'attaque
|
||||
|
||||
### 🔐 Gestion des identités centralisée (Authentik)
|
||||
|
||||
- SSO
|
||||
- MFA
|
||||
- Segmentation des accès
|
||||
- Politique de moindre privilège
|
||||
|
||||
### 🐳 Isolation des services
|
||||
|
||||
- Conteneurisation systématique
|
||||
- Séparation réseau interne
|
||||
- Reverse proxy centralisé (Nginx Proxy Manager)
|
||||
- Cloisonnement des applications sensibles
|
||||
|
||||
### 🔍 Protection des flux sensibles
|
||||
|
||||
- VPN dédié pour certains conteneurs (Gluetun)
|
||||
- Journalisation et surveillance des logs
|
||||
- Mises à jour régulières
|
||||
|
||||
Détails dans [`docs/security-policy.md`](docs/security-policy.md).
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Modèle de menace
|
||||
|
||||
| Risque | Mitigation principale |
|
||||
| ------------------------------------ | ----------------------------------------------- |
|
||||
| Défaillance matérielle | Pools ZFS redondés, sauvegarde externalisée |
|
||||
| Erreur humaine / suppression accidentelle | Snapshots réguliers, versioning |
|
||||
| Ransomware | Snapshots immuables, sauvegarde hors-site, versioning cloud |
|
||||
| Exposition Internet involontaire | Zéro port ouvert, tunnel sortant uniquement |
|
||||
| Compromission d'identifiants | SSO + MFA via Authentik |
|
||||
| Fuite de données sensibles | Segmentation réseau, isolation par conteneur |
|
||||
|
||||
Détail complet dans [`docs/threat-model.md`](docs/threat-model.md).
|
||||
|
||||
---
|
||||
|
||||
## 📊 Approche résilience & continuité
|
||||
|
||||
- Snapshots réguliers (politique de rétention documentée)
|
||||
- Sauvegarde distante externalisée (pCloud, 2 To, chiffrée)
|
||||
- Séparation données critiques / médias
|
||||
- Restauration granulaire possible
|
||||
- Documentation d'architecture tenue à jour
|
||||
|
||||
Objectif : réduire le RPO/RTO même dans un contexte personnel.
|
||||
|
||||
---
|
||||
|
||||
## 📁 Contenu du dépôt
|
||||
|
||||
```text
|
||||
truenas-project/
|
||||
│
|
||||
├── readme.md # Ce fichier
|
||||
│
|
||||
├── docs/
|
||||
│ ├── architecture.md # Schémas et choix d'architecture détaillés
|
||||
│ ├── storage-and-backup-strategy.md # Pools ZFS, snapshots, stratégie 3-2-1
|
||||
│ ├── security-policy.md # Politique de sécurité Zero-Trust
|
||||
│ └── threat-model.md # Modèle de menace détaillé
|
||||
│
|
||||
├── configs/
|
||||
│ ├── docker-compose/
|
||||
│ │ └── docker-compose.yml.example # Template anonymisé (sans secrets)
|
||||
│ ├── cloudflared/
|
||||
│ │ └── config.yml.example # Template de tunnel sortant
|
||||
│ ├── nginx-proxy-manager/
|
||||
│ │ └── notes.md # Bonnes pratiques de configuration
|
||||
│ └── backup/
|
||||
│ └── pcloud-sync.sh.example # Script de synchro chiffrée (template)
|
||||
│
|
||||
└── screenshots/
|
||||
├── 1.png # Dashboard
|
||||
├── 2.png # Liste des apps Truenas (docker)
|
||||
└── 3.png # Liste non exhaustive (bug affichage GUI) des dockers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Compétences illustrées
|
||||
|
||||
**Stockage & résilience**
|
||||
|
||||
- Administration TrueNAS Scale / ZFS (pools, snapshots, versioning)
|
||||
- Conception d'une stratégie de sauvegarde 3-2-1 hybride
|
||||
- Planification RPO/RTO
|
||||
|
||||
**Cybersécurité**
|
||||
|
||||
- Architecture Zero-Trust appliquée (aucun port exposé, tunnel sortant uniquement)
|
||||
- Gestion centralisée des identités (SSO/MFA via Authentik)
|
||||
- Cloisonnement réseau et isolation par conteneur
|
||||
- Réduction de la surface d'attaque
|
||||
|
||||
**Administration système**
|
||||
|
||||
- Conteneurisation (Docker/Portainer)
|
||||
- Reverse proxy & TLS (Nginx Proxy Manager)
|
||||
- Auto-hébergement d'une suite applicative complète (cloud, médias, identité, code)
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Sécurité du dépôt
|
||||
|
||||
> Ce dépôt est **public**. Aucune clé privée, mot de passe, adresse IP réelle ou information sensible n'est commitée. Les fichiers de configuration sont systématiquement **anonymisés ou fournis sous forme de templates**.
|
||||
|
||||
---
|
||||
|
||||
## 📌 À propos
|
||||
|
||||
Projet personnel en évolution continue, utilisé comme plateforme d'apprentissage, d'expérimentation et de montée en compétences en ingénierie cybersécurité et architecture système.
|
||||
|
||||
---
|
||||
|
||||
*Infrastructure opérationnelle — évolutions régulières selon les services ajoutés et les retours d'expérience.*
|
||||
Reference in New Issue
Block a user