Files
truenas-project/readme.md
T
2026-06-20 11:21:34 +02:00

10 KiB
Raw Blame History

🗄️ 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

                   ┌──────────────────────────────────┐
                   │           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.


🐳 É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.


🎯 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.


📊 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

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.