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

52 lines
2.9 KiB
Markdown

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