forgium-website/Idées/01_INFRASTRUCTURE_SYSTEME/decoupage_conteneurs.md

2.9 KiB

ARCHITECTURE CONTENEURS & TOPOLOGIE DES SERVICES

1. Modèle d'Isolation (LXC vs VM)

Pour tirer le maximum de nos 20 Go de RAM, la quasi-totalité des services tournera dans des conteneurs LXC non privilégiés (consommation mémoire minimale, partage du noyau Linux de l'hôte, overhead quasi-nul par rapport à des VMs KVM complètes).

[ Nœud Physique Proxmox VE - Ryzen 3700X - 20 Go RAM ]
   │
   ├── CT 100 : Reverse Proxy & Pare-Feu (Caddy / CrowdSec) [512 Mo RAM]
   │
   ├── CT 101 : Pterodactyl Panel + Portail Client (Paymenter) [1 Go RAM]
   │
   ├── CT 102 : Base de Données Commune (MariaDB + Redis) [1.5 Go RAM]
   │
   ├── CT 103 : Télémétrie CPL & Monitoring (Uptime Kuma + Prometheus + Grafana) [1 Go RAM]
   │
   └── VM ou CT 200 : Pterodactyl Wings (Démon Docker d'exécution) [14 Go RAM dynamique]
         ├── Conteneur Client 1 (Bot Discord Node.js) [512 Mo]
         ├── Conteneur Client 2 (Bot Discord Python) [512 Mo]
         ├── Conteneur Client 3 (Site Web / API Flask) [512 Mo]
         └── ... (jusqu'à saturation)

2. Rôles et Configuration des Briques

CT 100 — Front-End Web, Sécurité & Certificats

  • OS : Alpine Linux ou Debian 12 minimal.
  • Serveur Web : Caddy Server (gestion HTTPS 100% automatique via Let's Encrypt, configuration en 5 lignes).
  • Protection : CrowdSec installé pour analyser les logs d'accès Caddy et bannir les IP malveillantes via iptables directement sur la machine physique.
  • Routage des noms d'hôtes :
    • client.forgium.fr -> reverse-proxy vers CT 101 port 80/443 (Portail Paymenter).
    • panel.forgium.fr -> reverse-proxy vers CT 101 port 8080 (Pterodactyl Panel).
    • node1.forgium.fr -> reverse-proxy vers VM 200 port 8080 (Wings API).
    • status.forgium.fr -> reverse-proxy vers CT 103 port 3001 (Uptime Kuma public).

CT 101 — Gestion & Portail Utilisateur

  • Pterodactyl Panel : Gestionnaire des serveurs, consoles Web, gestion des fichiers clients, gestionnaire de sauvegardes.
  • Paymenter : Espace d'inscription public. L'utilisateur crée son compte, choisit l'offre "Bot Bêta Gratuit", et Paymenter déclenche automatiquement la création du serveur sur Pterodactyl via API.

CT 102 — Socle Données

  • MariaDB 10.11 : Stocke les bases de données du Panel Pterodactyl, de Paymenter, et des bases de données mises à disposition des utilisateurs bêta.
  • Redis : Cache ultra-rapide pour les files d'attente de tâches d'arrière-plan de Pterodactyl.

VM / CT 200 — Pterodactyl Wings (Le Moteur d'Exécution)

  • Contient le démon Docker qui fait tourner chaque bot dans une sandbox isolée.
  • Quotas stricts imposés à chaque client :
    • Limite CPU (ex: 50% d'un cœur).
    • Limite RAM (ex: 512 Mo avec swap désactivé ou minime).
    • Limite disque (ex: 2 Go sur le SSD 1 To).
    • Limite bande passante réseau si nécessaire.