forgium-website/Idées/02_ARCHITECTURE_ET_MEMOIRE_TECHNIQUE.md

80 lines
4 KiB
Markdown

# 📖 Carnet d'Architecture & Mémoire Technique Forgium
*Document vivant consignant les choix techniques, configurations d'infrastructures, mots de passe de référence, commandes clés et structure des services.*
---
## 1. Topologie Réseau & Identifiants
- **Réseau Local** : `192.168.1.0/24` (Passerelle Bbox : `192.168.1.254`)
- **IP Publique** : `31.37.87.78` (Bouygues Fibre 8 Gbps down / 1 Gbps up)
- **Pare-feu Bbox** : Mode standard, IPv6 bloqué en entrée, Ping WAN masqué.
- **Port-Forwarding (NAT) Bbox** :
- `80` (HTTP) $\rightarrow$ `192.168.1.50:80` (CT 100 - Caddy)
- `443` (HTTPS) $\rightarrow$ `192.168.1.50:443` (CT 100 - Caddy)
---
## 2. Inventaire des Nœuds & Conteneurs LXC
### Nœud Physique : `PC-FIXE` (`192.168.1.45:8006`)
- **CPU** : AMD Ryzen 7 3700X (8C / 16T)
- **RAM** : ~19 Go DDR4
- **Cartographie & Rôles des Disques Physiques** :
- `sda` (1 To SSD Fanxiang NVMe/SATA - `local-lvm`) : **Stockage Chaud Haute Performance**. Héberge l'OS Proxmox, les rootfs de tous les conteneurs LXC (100, 101, 102, 104) et les données actives des serveurs de jeux pour un chargement instantané sans lag.
- `sdd` (500 Go HDD USB Seagate - `/mnt/backup-usb` $\rightarrow$ `backup-externe`) : **Sauvegardes Système VZDump**. Réservé aux snapshots quotidiens des conteneurs complets chaque nuit à 02h00 (rétention 7 jours).
- `sdb` (500 Go HDD SATA WD Black - `/mnt/hdd-data-1` $\rightarrow$ `hdd-stockage-1`) : **Stockage Froid Backups Clients**. Dédié aux archives lourdes `.tar.gz` de sauvegardes des serveurs de jeux Pterodactyl (mondes Minecraft, bots) pour préserver le SSD principal.
- `sdc` (500 Go HDD SATA WD Black - `/mnt/hdd-data-2` $\rightarrow$ `hdd-stockage-2`) : **Réserve Archivage & Miroir SQL**. Dédié aux dumps SQL MariaDB automatiques, aux images ISO / templates, et prêt pour une future offre de stockage cloud souverain (Nextcloud/S3).
### CT 100 : `reverse-proxy` (`192.168.1.50`)
- **Ressources** : 1 vCPU, 512 Mo RAM, 8 Go SSD
- **Rôle** : Point d'entrée HTTP/HTTPS unique, gestionnaire de certificats SSL Let's Encrypt automatique.
- **Service** : `caddy.service`
- **Fichier de config** : `/etc/caddy/Caddyfile`
### CT 101 : `ptero-panel` (`192.168.1.51`)
- **Ressources** : 2 vCPU, 2048 Mo RAM, 20 Go SSD, `features: nesting=1,keyctl=1`
- **Rôle** : Interface Web de gestion, API d'orchestration, base de données centrale.
- **Services** :
- `mariadb.service` (DB: `pterodactyl`, User: `pterodactyl`, Pass: `ForgiumPtero2026Secure`)
- `redis-server.service` (Sessions & Cache)
- `php8.2-fpm.service` + `nginx.service`
- `pteroq.service` (Worker de files de tâches Redis)
- Cron : `* * * * * php /var/www/pterodactyl/artisan schedule:run`
- **Accès Web Local** : `http://192.168.1.51`
- **Compte SuperAdmin** : Mathias Zajonz
### CT 102 : `wings-node-01` (`192.168.1.52`)
- **Ressources** : 4 vCPU, 4096 Mo RAM, 40 Go SSD, `features: nesting=1,keyctl=1`
- **Rôle** : Exécuteur Docker pour les serveurs de jeux et bots.
- **Services** :
- `docker.service` (Docker Engine 29.8)
- `wings.service` (Wings v1.13.3)
- **Fichier de config** : `/etc/pterodactyl/config.yml`
- **Ports de communication interne** : Daemon `8080`, SFTP `2022`
- **Allocations de ports clients** : `25565-25585` (alias public `31.37.87.78`)
- **Serveur de test validé** : `Forgium-Test-01` (Minecraft PaperMC)
### CT 104 : `monitoring-stack` (`192.168.1.54`)
- **Ressources** : 1 vCPU, 1024 Mo RAM, 10 Go SSD
- **Rôle** : Supervision de santé des conteneurs, alertes et métriques.
- **Services** :
- Node.js 20 LTS
- `uptime-kuma.service` (`/opt/uptime-kuma`, port `3001`)
---
## 3. Commandes d'Urgence & Diagnostics Rapides
```bash
# Vérifier l'état de tous les conteneurs
pct list
# Redémarrer les services critiques
pct exec 101 -- systemctl restart pteroq nginx php8.2-fpm mariadb redis-server
pct exec 102 -- systemctl restart docker wings
pct exec 100 -- systemctl restart caddy
# Consulter les logs de Wings en cas de souci serveur de jeu
pct exec 102 -- journalctl -u wings -n 50 --no-pager
```