Pour des raisons évidentes de cybersécurité (OSINT), les noms de domaine réels et les adresses IP publiques/privées de cette infrastructure ont été anonymisés.
Fermer
Projet Personnel

Architecture Homelab & Systèmes

Déploiement, sécurisation et administration d'un serveur Linux de production. Une démarche d'ingénierie personnelle pour maîtriser les écosystèmes IT (Docker, API, Plan de Reprise d'Activité, Zero Trust) et créer la passerelle indispensable entre la Logistique Opérationnelle et la DSI.

Rôle Architecte Système & Réseau
Infrastructure Debian 12, Docker, S3 Wasabi
Sécurité & Data Wazuh, CrowdSec, Directus

1. Le Rôle du Logisticien : Créer la passerelle avec l'IT

Aujourd'hui, la Logistique et la Supply Chain ne consistent plus seulement à déplacer des palettes, mais à faire transiter de la donnée en temps réel. Lors des grands déploiements logiciels (WMS, ERP, Trackers IoT), j'ai constaté que le taux d'échec ou de retard des projets n'est presque jamais dû à la logistique pure, mais à un profond fossé de communication entre le terrain et la Direction des Systèmes d'Information (DSI).

Les opérationnels demandent des flux métiers complexes sans comprendre les contraintes techniques, et l'IT impose des restrictions de cybersécurité souvent incomprises par le terrain. Mon objectif avec ce Homelab n'est pas de devenir développeur ou SysAdmin de métier, mais de maîtriser parfaitement cette complexité "sous le capot".

En construisant, sécurisant et maintenant ma propre infrastructure serveur de A à Z (Réseaux virtuels, Reverse Proxy, Bases de données relationnelles, API), je suis en mesure, en tant que Chef de Projet, d'anticiper les verrous d'infrastructure, de challenger techniquement les prestataires, et de concevoir des architectures de flux réalistes dès la phase de cahier des charges.

System Specs // Hub Infrastructure
OS / KernelDebian GNU/Linux 12 (bookworm) / 6.1.0-41-cloud-amd64
Hostname[vps-infra-prod]
IP Publique (OVH)XXX.XXX.XX.XX
IP VPN (Tailscale)100.XXX.XXX.XX (Management SSH Restricted)
Domaine Principal[homelab-system.net]
Environnement100% Docker / Docker Compose (/opt structure)

2. Topologie Réseau et Architecture IT

La robustesse d'un système d'information repose sur son cloisonnement. L'intégralité du serveur est déployée via une architecture conteneurisée (Docker). Cela permet d'isoler les bases de données des applications web (Front-end) via des réseaux virtuels stricts.

J'ai modélisé ci-dessous la cartographie exacte des flux de mon infrastructure.

Cliquez pour zoomer
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#f8fafc', 'edgeLabelBackground':'#ffffff', 'tertiaryColor': '#fff'}}}%%
graph TD
    %% --- Styles ---
    classDef public fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
    classDef vpn fill:#e0f2f1,stroke:#00695c,stroke-width:2px,stroke-dasharray: 5 5;
    classDef firewall fill:#ffccbc,stroke:#bf360c,stroke-width:3px;
    classDef traefik fill:#fff9c4,stroke:#fbc02d,stroke-width:2px;
    classDef service fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px;
    classDef monitor fill:#dcedc8,stroke:#33691e,stroke-width:2px;
    classDef infra fill:#cfd8dc,stroke:#455a64,stroke-width:2px;

    %% --- Acteurs ---
    PublicUser((Utilisateur Public)):::public
    Admin((Admin via VPN)):::vpn

    %% --- Pare-Feu & Host ---
    subgraph SecHost [Sécurité Host]
        FW_Public[Firewall Ports 80 443 Mail]:::firewall
        FW_VPN[Interface Tailscale]:::firewall
        CS_Agent[CrowdSec Agent]:::service
    end

    %% --- Infra & Réseau ---
    subgraph InfraRes [Infrastructure Réseau]
        Traefik[Traefik Proxy]:::traefik
        AdGuard[AdGuard Home DNS]:::infra
    end

    %% --- Apps Publiques ---
    subgraph AppPub [Docker Apps Publiques]
        NC[Nextcloud AIO]:::service
        Web[Site Web]:::service
        MC_UI[Mailcow UI]:::service
    end

    %% --- Apps Privées ---
    subgraph AppPriv [Docker Apps Privées]
        VW[Vaultwarden]:::service
    end

    %% --- Monitoring ---
    subgraph MonStack [Monitoring Stack]
        cAd[cAdvisor]:::monitor
        NodeExp[Node Exporter]:::monitor
        PromVM[Prometheus VictoriaMetrics]:::monitor
        Grafana[Grafana Tailscale Only]:::monitor
    end

    %% --- Flux Public ---
    PublicUser --> FW_Public
    FW_Public --> Traefik
    Traefik --> NC
    Traefik --> Web
    Traefik --> MC_UI

    %% --- Flux Admin (Tailscale) ---
    Admin -.-> FW_VPN
    FW_VPN -.->|HTTP:3000| Grafana
    FW_VPN -.->|HTTP:Port| VW
    FW_VPN -.->|HTTP:80/3000| AdGuard
    FW_VPN -.->|SSH| CS_Agent

    %% --- Flux Interne / Monitoring ---
    cAd --> PromVM
    NodeExp --> PromVM
    PromVM --> Grafana
    
    %% --- Flux DNS (Logique) ---
    AdGuard -.->|DNS 53 UDP| Traefik
    AdGuard -.->|DNS 53 UDP| NC
    
    %% --- Logs Security ---
    Traefik -.-> CS_Agent
    NC -.-> CS_Agent
                        

3. Gestion de la Donnée : De la DB SQL à l'API REST

Comprendre l'interaction entre une base de données et une interface métier est crucial. Dans la logistique de demain, les systèmes monolithiques disparaissent au profit d'architectures "Headless" ou micro-services communiquant par API.

La Maîtrise des API avec Directus

Pour manipuler la donnée de façon moderne, j'ai déployé Directus, une plateforme Data (BaaS - Backend as a Service). Directus vient se brancher au-dessus de mes bases de données relationnelles SQL brutes (PostgreSQL, MariaDB) et les transforme instantanément en API REST et GraphQL hautement sécurisées.

Cela me permet de simuler de véritables flux ERP/WMS : l'application n'accède jamais directement à la table SQL, elle interroge une URL (API) avec un jeton d'authentification (Token). C'est exactement l'architecture utilisée aujourd'hui par les solutions SaaS logistiques de pointe.

4. Cybersécurité : "Zero Trust" et Surveillance Active (SIEM)

L'approche "Zero Trust" part du principe qu'aucun trafic, pas même interne, ne doit être approuvé par défaut. Face à l'augmentation des cyberattaques (qui ciblent de plus en plus la Supply Chain pour paralyser les flux physiques), la sécurité de ce serveur est draconienne :

  • VPN Management (Tailscale) : Le pare-feu (UFW) ferme purement et simplement le port 22 (SSH) au public. L'administration profonde du serveur ne peut se faire qu'au travers d'un tunnel WireGuard via l'IP virtuelle Tailscale.
  • Intrusion Prevention System (CrowdSec) : Outil de défense collaborative remplaçant l'historique Fail2Ban. CrowdSec analyse les logs du Reverse Proxy (Traefik) en temps réel. S'il détecte des comportements malveillants (scans de ports, bruteforce), il communique avec le pare-feu Linux pour bannir l'IP au niveau réseau (L3).
  • Surveillance Active et SIEM (Wazuh) : Pour la détection de menaces complexes, l'intégrité des fichiers (FIM) et la conformité réglementaire, j'ai déployé l'agent Wazuh. Il surveille les anomalies comportementales au niveau de l'OS (rootkits, escalades de privilèges) et consolide les données de sécurité, me donnant une vision digne d'un SOC (Security Operations Center).
Domaine / Service (Anonymisé) Réseau Interne Docker Politique SSO (Authelia)
vault.[domaine].net (Vaultwarden) proxy / database Restricted (MFA + VPN Only)
api.[domaine].net (Directus Admin) proxy / pg-data Two-Factor (2FA)
cloud.[domaine].net (Nextcloud) nextcloud-aio Bypass (MFA Géré en natif)
Trafic Inconnu / Root - Deny (Bloqué par défaut)

5. Plan de Reprise d'Activité (PRA) & Règle du 3-2-1

Dans le monde de la Supply Chain, perdre la base de données d'un WMS pendant 2 heures signifie paralyser un entrepôt entier, bloquer les camions à quai et subir des pertes financières colossales. La conception d'un Plan de Reprise d'Activité (PRA) robuste est donc primordiale.

Sur mon infrastructure, j'applique la norme industrielle de la Règle du 3-2-1 (3 copies des données, sur 2 supports différents, dont 1 hors site/hors ligne). Les sauvegardes sont automatisées la nuit via des tâches CRON, chiffrées, dédupliquées via BorgBackup, puis externalisées.

Cliquez pour zoomer
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#f8fafc', 'edgeLabelBackground':'#ffffff', 'tertiaryColor': '#fff'}}}%%
graph TD
    %% --- SOURCES ---
    S3[("Nuage Wasabi S3
")] VPS_APP["Serveur VPS
(Nextcloud + Mails)"] %% --- SCRIPTS ET TIMING --- subgraph Ordonnanceur_CRON T1["02h00 : Nextcloud AIO
(DB & Config)"] T2["02h15 : Script S3
(Les 800 Go)"] T3["05h00 : Script Borg
(Mailcow & /opt)"] T4["06h00 : Sync USB
(3-2-1 Offline)"] end %% --- FLUX DE DONNEES --- T1 -->|Interne AIO| NAS_AIO T2 -->|Rclone Sync| NAS_TEMP NAS_TEMP -->|Archivage Borg| NAS_S3 S3 -.-> T2 T3 -->|Dump Natif| NAS_MAIL T3 -->|Borg Create| NAS_OPT VPS_APP -.-> T3 %% Sauvegarde finale vers USB NAS_11_TO ==>|HyperBackup| USB T4 -.-> USB %% --- DESTINATIONS --- subgraph NAS_11_TO [NAS SYNOLOGY - 11 To] direction TB NAS_AIO[("📦 Repo Borg : AIO")] NAS_S3[("📦 Repo Borg : S3")] NAS_OPT[("📦 Repo Borg : /opt")] NAS_MAIL["📂 Dossier : Mails Bruts"] NAS_TEMP["📂 Dossier : Miroir S3"] end USB[("💾 Disque USB Externe
(Copie Locale)")] %% --- STYLES --- style S3 fill:#bbdefb,stroke:#1976d2 style NAS_11_TO fill:#f5f5f5,stroke:#333 style Ordonnanceur_CRON fill:#fff9c4,stroke:#fbc02d style NAS_AIO fill:#c8e6c9,stroke:#2e7d32 style NAS_S3 fill:#c8e6c9,stroke:#2e7d32 style NAS_OPT fill:#c8e6c9,stroke:#2e7d32 style USB fill:#ffccbc,stroke:#e64a19,stroke-width:2px

6. Écosystème Logiciel (Self-Hosting)

L'hébergement de mes propres services (Self-Hosting) via des fichiers docker-compose.yml m'assure une souveraineté totale sur mes données. L'approche "Infrastructure as Code" (IaC) me permet de recréer ce serveur sur n'importe quel hyperviseur en quelques minutes.

Directus & BDDs

Data / API

Transformation de bases SQL (Postgres, MariaDB) en API REST dynamiques. Gestion des relations et webhooks complexes.

Wazuh & CrowdSec

SecOps / SIEM

Plateforme unifiée de détection des menaces (XDR), analyse d'intégrité des fichiers système et bannissement dynamique (IPS).

Nextcloud AIO

Productivité

Suite collaborative souveraine, partage de fichiers volumineux. Sauvegardes chiffrées quotidiennes vers un Object Storage (Wasabi S3).

Vaultwarden

Sécurité Critique

Gestionnaire de mots de passe chiffré de bout en bout, hébergé derrière le réseau virtuel Tailscale.

Stack Observabilité

Monitoring

Surveillance des ressources avec Uptime-Kuma, Prometheus, VictoriaMetrics et tableaux de bord Grafana temps réel.

N8N

Automatisation

Outil d'automatisation de workflows (équivalent Zapier). Connexion d'APIs et routage d'alertes vers des messageries (NTFY, Slack).