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