52 lines
2.9 KiB
Markdown
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.
|