From 768ce1666e6e3c510dba0871bb1055cffe1f71f6 Mon Sep 17 00:00:00 2001 From: Mathias Date: Wed, 9 Sep 2026 21:02:38 +0200 Subject: [PATCH] feat: site web officiel forgium.fr et documentation admin --- Idées/00_MANIFESTE_ET_REGLES.md | 90 ++ .../architecture_systeme.md | 76 + .../decoupage_conteneurs.md | 52 + .../feuille_de_route_semaine_1.md | 58 + .../optiplex_recupere.md | 51 + Idées/01_INVENTAIRE_SERVEURS.md | 42 + Idées/02_ARCHITECTURE_ET_MEMOIRE_TECHNIQUE.md | 80 + Idées/02_RESEAU_ET_SECURITE/reseau_et_cpl.md | 74 + Idées/03_CHECKLIST_OUTILS_ADMIN.md | 48 + .../automatisation_paymenter.md | 74 + .../catalogue_services.md | 17 + .../supervision_et_backups.md | 13 + .../modele_economique.md | 17 + .../revente_optiplex_et_tresorerie.md | 53 + .../scripts_et_formats.md | 49 + .../strategie_contenu.md | 28 + ...__Lyc_e_Gaston_Crampe__Optimis__.fgcalendar | 701 ++++++++ Idées/MASTER_ROADMAP_500_ETAPES.md | 573 +++++++ Idées/README.md | 31 + Idées/SERVEUR_ADMIN_100_REVERSE_PROXY.md | 53 + Idées/SERVEUR_ADMIN_101_PTERODACTYL_PANEL.md | 58 + Idées/SERVEUR_ADMIN_102_WINGS_NODE.md | 52 + Idées/SERVEUR_ADMIN_104_MONITORING.md | 54 + Idées/SERVEUR_ADMIN_106_FORGE_SHIELD.md | 49 + Idées/SERVEUR_ADMIN_107_GIT_FORGE.md | 43 + Idées/emploi_du_temps.html | 1403 +++++++++++++++++ 26 files changed, 3839 insertions(+) create mode 100644 Idées/00_MANIFESTE_ET_REGLES.md create mode 100644 Idées/01_INFRASTRUCTURE_SYSTEME/architecture_systeme.md create mode 100644 Idées/01_INFRASTRUCTURE_SYSTEME/decoupage_conteneurs.md create mode 100644 Idées/01_INFRASTRUCTURE_SYSTEME/feuille_de_route_semaine_1.md create mode 100644 Idées/01_INFRASTRUCTURE_SYSTEME/optiplex_recupere.md create mode 100644 Idées/01_INVENTAIRE_SERVEURS.md create mode 100644 Idées/02_ARCHITECTURE_ET_MEMOIRE_TECHNIQUE.md create mode 100644 Idées/02_RESEAU_ET_SECURITE/reseau_et_cpl.md create mode 100644 Idées/03_CHECKLIST_OUTILS_ADMIN.md create mode 100644 Idées/03_SERVICES_ET_OFFRES/automatisation_paymenter.md create mode 100644 Idées/03_SERVICES_ET_OFFRES/catalogue_services.md create mode 100644 Idées/04_MONITORING_ET_BACKUPS/supervision_et_backups.md create mode 100644 Idées/05_BUSINESS_ET_MONETISATION/modele_economique.md create mode 100644 Idées/05_BUSINESS_ET_MONETISATION/revente_optiplex_et_tresorerie.md create mode 100644 Idées/06_MARKETING_BUILD_IN_PUBLIC/scripts_et_formats.md create mode 100644 Idées/06_MARKETING_BUILD_IN_PUBLIC/strategie_contenu.md create mode 100644 Idées/Emploi du temps/ZAJONZ_Mathias___Lyc_e_Gaston_Crampe__Optimis__.fgcalendar create mode 100644 Idées/MASTER_ROADMAP_500_ETAPES.md create mode 100644 Idées/README.md create mode 100644 Idées/SERVEUR_ADMIN_100_REVERSE_PROXY.md create mode 100644 Idées/SERVEUR_ADMIN_101_PTERODACTYL_PANEL.md create mode 100644 Idées/SERVEUR_ADMIN_102_WINGS_NODE.md create mode 100644 Idées/SERVEUR_ADMIN_104_MONITORING.md create mode 100644 Idées/SERVEUR_ADMIN_106_FORGE_SHIELD.md create mode 100644 Idées/SERVEUR_ADMIN_107_GIT_FORGE.md create mode 100644 Idées/emploi_du_temps.html diff --git a/Idées/00_MANIFESTE_ET_REGLES.md b/Idées/00_MANIFESTE_ET_REGLES.md new file mode 100644 index 0000000..7a2782b --- /dev/null +++ b/Idées/00_MANIFESTE_ET_REGLES.md @@ -0,0 +1,90 @@ +# CONTEXTE ET DIRECTIVES MAÎTRESSES — PROJET FORGIUM + +> Ce document est le référentiel technique, stratégique et opérationnel immuable de Forgium. Il fusionne les règles fondatrices et l'ensemble des paramètres réels du fondateur. + +--- + +## 1. Identité, Vision et Rôle +- **Nom de marque** : Forgium +- **Rôle de l'assistant (AntiGravity)** : Copilote technique, deuxième cerveau et conseiller stratégique. +- **Mission** : Bâtir une infrastructure d'hébergement performante, résiliente et communautaire depuis le domicile du fondateur, documentée publiquement (*Build in Public*). +- **Cible initiale** : Bots Discord (Node.js, Python, Java...), hébergement Web léger (vitrines, APIs, Docker), bases de données légères (Postgres, MariaDB, Redis), Clouds privés (Nextcloud, Seafile). +- **Exclusion formelle** : Pas de serveurs de jeux massifs (Minecraft lourd, Rust, Ark) pour la phase 1. + +--- + +## 2. Spécifications Matérielles & Environnement Physique +- **Nœud d'infrastructure principal** : + - **CPU** : AMD Ryzen 7 3700X (8 cœurs / 16 threads). + - **RAM** : 20 Go au total (`2 x 8 Go` + `1 x 4 Go`). + - *Règle Dual-Channel* : Les barrettes 2x8 Go doivent occuper les slots prioritaires (ex: A2/B2) pour garantir 16 Go en mode Flex Dual-Channel pleine vitesse. +- **Topologie du Stockage** : + - `SSD 1 To` : Système Proxmox VE 8, conteneurs/VMs critiques, bases de données, panel Pterodactyl. + - `HDD 500 Go interne` : Stockage de masse, volumes conteneurs froids, données Nextcloud. + - `HDD 80 Go interne` : Stockage scratch / ou utilisé pour valoriser la revente de l'OptiPlex. + - `HDD 500 Go externe` : Sauvegardes locales froides (Proxmox Backup Server ou vzdump). + - `Clé USB 28 Go` : Support d'installation Proxmox VE, ISOs et clés de restauration hors-ligne. +- **Énergie & Protection Électrique** : + - Onduleur (UPS) dédié (autonomie estimée ~15 minutes sous charge modérée). + - Réglage BIOS impératif : *Restore on AC / Power Loss* configuré sur "Power On" (redémarrage autonome). + - Configuration logicielle prévue : NUT / apcupsd sous Proxmox pour un arrêt propre (graceful shutdown) avant épuisement de batterie. +- **Emplacement de la machine** : **Garage** (sécurisé, sans humidité, zéro gêne sonore). + +--- + +## 3. Réseau, Accès & Souveraineté Totale (Zéro Tiers) +- **Fournisseur & Débit** : Fibre Bouygues (8 Gbps Down / 2 Gbps Up). +- **Liaison locale** : Prise CPL (latence stable mesurée à 15-20 ms). + - *Objectif télémétrie* : Logger gigue, pertes de paquets et débit réel sous charge pour justifier le perçage et tirage d'un câble Ethernet direct. +- **Adresse IP Publique** : **Fixe** (pas besoin de DDNS). +- **Accès Bbox** : Accès administrateur complet validé (NAT, redirection de ports, DMZ, baux statiques). +- **Nom de domaine** : `forgium.fr`. +- **Politique de Souveraineté Matérielle Absolue** : + - **Refus catégorique de dépendre d'autres datacenters ou services tiers** (ni Cloudflare Tunnels, ni proxy externe). + - L'infrastructure tourne et se protège **100% sur le matériel physique local**. + - Reverse proxy local (Nginx / Caddy) avec certificats Let's Encrypt directs. + - Sécurité locale durcie : pare-feu Proxmox VE + CrowdSec / Fail2Ban pour bannir les attaques directement au niveau du serveur. + +--- + +## 4. Socle Logiciel, Automatisation & Écosystème Client +- **Hyperviseur** : Proxmox VE (PVE). +- **Orchestration** : Docker / Docker Compose & conteneurs LXC. +- **Gestionnaire d'instances** : Pterodactyl (Panel + Wings). Expérience préalable acquise. +- **Objectif d'Automatisation (Semaine 1)** : + - Interface web intégrée (ex: **Paymenter** ou équivalent open-source relié à l'API Pterodactyl). + - Zéro création manuelle : le client commande son serveur (gratuit en bêta), l'API provisionne la ressource, génère les accès et lance le conteneur automatiquement en quelques secondes. + +--- + +## 5. Modèle Économique & Trésorerie Développée +- **Trésorerie liquide initiale** : 60 € en réserve. +- **Actifs en cours de vente / liquidation de cash** : + - 2 Nintendo Wii modifiées (15 € l'unité = 30 €). + - 1 Tour Dell OptiPlex récupérée à 0€ (mise en vente à 20-25 € pour générer du cash immédiat et éviter la surconsommation électrique). + - **Trésorerie potentielle totale : ~110 € à 115 €**. +- **RÈGLE D'OR MATÉRIELLE** : **AUCUN achat de matériel informatique additionnel** tant que le Ryzen 3700X et les 20 Go de RAM ne sont pas saturés à 100%. +- **Priorité absolue des fonds générés** : + 1. Achat du nom de domaine `forgium.fr` (~8 €). + 2. Kit de tirage de câble Ethernet direct vers le garage (bobine Cat6, pince à sertir, prises murales : ~40 €). + 3. Maintien de la réserve d'urgence de 60 € intacte. + +--- + +## 6. Stratégie Marketing & "Build in Public" +- **Positionnement** : L'histoire authentique d'un hébergeur cloud souverain monté dans un garage avec un Ryzen, un CPL et de la passion. +- **Matériel de Production** : + - Audio : Microphone Tonor TD510+ branché en XLR (son professionnel). + - Caméra : Smartphone Samsung Galaxy Z Flip 6 (captures 4K, facecam et b-rolls mécaniques du garage). + - Logiciel de montage : Filmora. + - Image de marque : Présence visage assumée face caméra pour bâtir une relation humaine et transparente. +- **Canaux de Diffusion** : + - **YouTube** : Vidéos longues documentées, explications techniques, architecture, homelab, Pterodactyl. + - **TikTok / Shorts** : Vidéos courtes, dynamiques, hooks forts montrant les galères réelles, les coûts, le garage et la revente des Wii/OptiPlex. + +--- + +## 7. Emploi du Temps et Disponibilités du Fondateur +- **Mercredi après-midi** : Déploiements lourds, réseau, tournages de vidéos. +- **Week-ends** : Architecture, maintenance profonde, tests de charge, montages longs. +- **Soirs de semaine (20h00 - 22h30)** : Configuration logicielle, micro-ajustements, scripts, publications réseaux, support Discord. diff --git a/Idées/01_INFRASTRUCTURE_SYSTEME/architecture_systeme.md b/Idées/01_INFRASTRUCTURE_SYSTEME/architecture_systeme.md new file mode 100644 index 0000000..dbca044 --- /dev/null +++ b/Idées/01_INFRASTRUCTURE_SYSTEME/architecture_systeme.md @@ -0,0 +1,76 @@ +# 01 - INFRASTRUCTURE SYSTÈME & DIMENSIONNEMENT TECHNIQUE + +## 1. Cartographie Détaillée des Composants + +### Processeur (CPU) +- **Modèle** : AMD Ryzen 7 3700X +- **Cœurs / Threads** : 8 cœurs physiques / 16 threads logiques +- **Fréquences** : Base 3.6 GHz / Boost 4.4 GHz +- **Cache L3** : 32 Mo (excellent pour la réactivité de multiples petits processus) +- **Politique de surallocation (vCPU)** : + - Ratio conservateur recommandé au lancement : `1:2` (jusqu'à 32 vCPU distribués). + - Chaque bot Discord léger consomme en moyenne entre `0.1` et `0.5 vCPU`. + - Capacité théorique initiale : ~30 à 50 bots Discord simultanés sans saturation. + +### Mémoire Vive (RAM) — 20 Go Asymétrique +- **Composition physique** : `2 x 8 Go` + `1 x 4 Go` +- **Topologie des Slots Carte Mère** : + - Slot A2 (Canal A) : Barrette 8 Go + - Slot B2 (Canal B) : Barrette 8 Go + - Slot A1 ou B1 : Barrette 4 Go + - *Fonctionnement Flex Dual-Channel* : Les 16 premiers Go fonctionnent à 100% de la bande passante mémoire (Dual-Channel 128-bit). Les 4 Go restants fonctionnent en Single-Channel (64-bit). +- **Budget d'Allocation Mémoire (20 Go)** : + - **Proxmox VE (OS hôte)** : 2 Go réservés. + - **Reverse Proxy + Sécurité (LXC)** : 512 Mo à 1 Go. + - **Base de données commune & Redis (LXC)** : 1.5 Go. + - **Pterodactyl Panel + Paymenter (LXC)** : 1 Go. + - **Wings (Allocation dynamique pour les clients)** : ~14 Go disponibles. + - *Exemple de capacité bots* : À 512 Mo par bot, cela permet d'héberger **28 bots Discord en parallèle** avec confort absolu ! + +--- + +## 2. Organisation du Stockage & I/O + +### SSD 1 To (Le Cœur Réactif) +- **Système de fichiers recommandé** : `ext4` avec LVM-Thin OU `ZFS single-disk` (si l'on veut les snapshots instantanés natifs, avec cache ARC plafonné à 2 Go de RAM). +- **Découpage logique** : + - `/` (OS Proxmox) : 60 Go + - `data-pool` (Stockage LXC/VMs, conteneurs Pterodactyl Wings, volumes MySQL) : ~900 Go + +### Disques durs magnétiques internes +- **HDD 500 Go interne** : + - Montage sur Proxmox sous `/mnt/hdd-storage` + - Utilisation : Stockage persistant lourd, Nextcloud data (photos, fichiers clients), images ISO Proxmox. +- **HDD 80 Go interne** : + - Montage sous `/mnt/scratch` + - Utilisation : Dépôt temporaire de décompression, dumps SQL journaliers avant envoi sur backup externe, logs bruts. + +### Disque dur externe & Clé USB +- **HDD 500 Go Externe USB** : + - Formaté en `ext4` et dédié exclusivement aux sauvegardes Proxmox (`vzdump` ou Proxmox Backup Server local). + - Tâche cron de sauvegarde planifiée chaque nuit à 03h30. +- **Clé USB 28 Go** : + - Partition 1 : Clé d'installation Proxmox VE 8 prête à l'emploi. + - Partition 2 (ou 2e clé) : Archive chiffrée hors-ligne contenant le fichier de configuration réseau (`/etc/network/interfaces`), clés SSH privées, mot de passe root et tokens d'API. + +--- + +## 3. Gestion Électrique & Onduleur (UPS) + +- **Onduleur connecté** : Modèle compact permettant ~15 minutes d'autonomie. +- **Protocole d'arrêt propre (Graceful Shutdown)** : + - Relier l'onduleur au serveur via son câble USB de communication. + - Installer et configurer le paquet `apcupsd` ou `nut` sur Proxmox. + - Définir le seuil d'arrêt : Si l'alimentation secteur est coupée pendant plus de **7 minutes**, ou si la batterie chute sous **30%**, Proxmox ordonne l'arrêt propre de toutes les VMs/LXC puis s'éteint. +- **Paramètre BIOS** : + - Option `AC Back / Restore on AC Power Loss` réglée sur **Always On**. Dès que le secteur revient dans le garage, le serveur redémarre sans que tu aies besoin de descendre appuyer sur le bouton. + +--- + +## 4. Checklist Technique d'Installation (Proxmox VE 8) +- [ ] Mettre à jour le BIOS de la carte mère vers la dernière version stable. +- [ ] Désactiver le Secure Boot si nécessaire pour la compatibilité PVE. +- [ ] Activer `SVM Mode` (Virtualisation AMD) dans le BIOS. +- [ ] Configurer la carte réseau intégrée avec l'IP statique `192.168.1.200/24`, passerelle `192.168.1.1` (Bbox), DNS `1.1.1.1, 8.8.8.8`. +- [ ] Désactiver le dépôt "Enterprise" payant de Proxmox et activer le dépôt `pve-no-subscription` pour recevoir les mises à jour gratuites. +- [ ] Installer les outils indispensables : `curl`, `htop`, `iotop`, `smartmontools`, `git`, `nut` / `apcupsd`. diff --git a/Idées/01_INFRASTRUCTURE_SYSTEME/decoupage_conteneurs.md b/Idées/01_INFRASTRUCTURE_SYSTEME/decoupage_conteneurs.md new file mode 100644 index 0000000..4479658 --- /dev/null +++ b/Idées/01_INFRASTRUCTURE_SYSTEME/decoupage_conteneurs.md @@ -0,0 +1,52 @@ +# 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. diff --git a/Idées/01_INFRASTRUCTURE_SYSTEME/feuille_de_route_semaine_1.md b/Idées/01_INFRASTRUCTURE_SYSTEME/feuille_de_route_semaine_1.md new file mode 100644 index 0000000..5dd26ca --- /dev/null +++ b/Idées/01_INFRASTRUCTURE_SYSTEME/feuille_de_route_semaine_1.md @@ -0,0 +1,58 @@ +# FEUILLE DE ROUTE OPÉRATIONNELLE : OBJECTIF SEMAINE 1 + +> **Objectif Prioritaire n°16** : Avoir une base fonctionnelle avec une interface web pour créer/commander des serveurs qui se configurent automatiquement, 100% sur le matériel physique local (sans Cloudflare). + +--- + +## Les 2 Options pour l'Automatisation Immédiate + +Pour que des clients puissent s'inscrire et obtenir un serveur instantanément sans que tu aies à cliquer manuellement sur Pterodactyl : + +### Option A : Pterodactyl + Paymenter (Recommandé) +- **Paymenter** est un portail client open-source ultra moderne, gratuit, auto-hébergé. +- Il gère les inscriptions, les paniers (serveurs gratuits ou payants), se connecte à l'API de Pterodactyl. +- Dès qu'un utilisateur "commande" son bot Discord gratuit, Paymenter appelle l'API Pterodactyl et le serveur est créé en 3 secondes. +- Plus tard : permet d'activer des passerelles de paiement ou liens Ko-fi/Stripe sans changer d'outil. + +### Option B : Jexactyl +- Un dérivé direct de Pterodactyl qui intègre déjà une boutique, un système de pièces/ressources (AFK earnings, renouvellements). +- Moins séparé, tout-en-un, mais parfois plus rigide si on veut faire du sur-mesure plus tard. + +--- + +## Plan d'Action Découpé (Par Blocs de Travail) + +### 🧱 Bloc 1 : Mise en route du Hardware & BIOS — FAIT ✅ +- [x] Sortir la machine dans le garage, brancher écran/clavier temporaires. +- [x] Vérifier les slots RAM : 2x8 Go en Dual-Channel. +- [x] Accès BIOS : SVM / AMD-V activé, Restore on AC sur "Power On". +- [x] Brancher l'onduleur (UPS) et relier la prise CPL. + +### 💿 Bloc 2 : Installation Proxmox VE 8 — FAIT ✅ +- [x] Flasher Proxmox VE 8 sur la clé USB 28 Go. +- [x] Installer PVE sur le **SSD 1 To**. +- [x] IP locale attribuée : `192.168.1.45`. +- [x] Débrancher écran/clavier : la machine est opérationnelle et joignable via `https://192.168.1.45:8006`. + +### 🌐 Bloc 3 : Mercredi Après-Midi — Réseau Physique, Bbox & Reverse Proxy +- [ ] Sur la Bbox : Rediriger les ports **80 (HTTP)** et **443 (HTTPS)** vers l'IP locale de la machine. +- [ ] Créer une VM ou un conteneur LXC dédié au **Reverse Proxy** (Caddy ou Nginx Proxy Manager). + - Caddy gère automatiquement les certificats SSL Let's Encrypt sans prise de tête. +- [ ] Pointer `forgium.fr` et ses sous-domaines (`panel.forgium.fr`, `client.forgium.fr`) vers ton IP publique fixe Bouygues. +- [ ] Sécurité locale : Configurer **CrowdSec** ou Fail2Ban sur le proxy pour bloquer les scans malveillants directement sur le serveur. + +### 🚀 Bloc 4 : Soirée / Samedi — Pterodactyl + Automatisation +- [ ] Créer le conteneur LXC pour **Pterodactyl Panel** (PHP 8.2, MariaDB, Redis, Nginx). +- [ ] Installer le démon **Wings** (sur la machine hôte ou VM Docker dédiée). +- [ ] Installer **Paymenter** (ou portail web) relié à l'API Pterodactyl. +- [ ] Importer les *Eggs* pour bots Discord (Node.js, Python). +- [ ] Tester le parcours complet : Inscription d'un faux utilisateur -> validation -> création automatique du serveur sur Wings -> bot en ligne. + +--- + +## 🎥 Contenu "Build in Public" Associé (À tourner en parallèle) +- **TikTok 1 (Le Setup Garage)** : + - *Visuel* : Z Flip 6 posé dans le garage, vue sur la tour, l'onduleur, la prise CPL. + - *Hook* : *"Tout le monde loue des serveurs chez OVH ou AWS... Moi j'ai installé un Ryzen 3700X dans mon garage avec un CPL. Bienvenue dans l'aventure Forgium."* +- **TikTok 2 (La Wii à 15€)** : + - *Hook* : *"Comment je finance mon infrastructure cloud en revendant des consoles rétro."* diff --git a/Idées/01_INFRASTRUCTURE_SYSTEME/optiplex_recupere.md b/Idées/01_INFRASTRUCTURE_SYSTEME/optiplex_recupere.md new file mode 100644 index 0000000..5cea3dd --- /dev/null +++ b/Idées/01_INFRASTRUCTURE_SYSTEME/optiplex_recupere.md @@ -0,0 +1,51 @@ +# STRATÉGIE MATÉRIELLE : L'OPTILEX DE RÉCUPÉRATION (0€) + +> **Rappel de la règle d'or budgétaire** : Ce PC a été obtenu à 0€ (récupération). Il ne viole pas la règle d'interdiction d'achats. Voyons comment l'exploiter sans disperser nos forces. + +--- + +## 1. Fiche Technique Estimée +- **Modèle** : Dell OptiPlex (probablement 790, 390 ou 3010 / 7010). +- **Processeur** : Intel Core i3 3e gen (ex: i3-3220, 2c/4t) ou i5 2e gen (ex: i5-2400, 4c/4t). +- **RAM** : 4 Go DDR3. +- **Stockage** : Aucun disque inclus. +- **Consommation estimée au repos** : ~25W à 40W. + +--- + +## 2. Analyse Stratégique : Faut-il l'intégrer au cluster maintenant ? + +### ⚠️ Les Pièges à Éviter Immédiatement : +1. **Ne pas l'utiliser comme serveur applicatif principal** : + - Le Ryzen 3700X (8c/16t, 20 Go RAM) est environ **6 à 8 fois plus puissant** et consomme beaucoup moins par watt. + - 4 Go de RAM, c'est trop juste pour faire tourner Proxmox + Pterodactyl + des clients. +2. **Ne pas acheter de disque pour lui** : + - Rappel : Budget liquide = 60 €. On ne dépense pas un centime pour ce PC. + - Solution gratuite : On a sous la main le **HDD de 80 Go interne** ou une distribution légère sur clé USB / boot réseau. + +--- + +## 3. Les 3 Meilleurs Rôles Utiles pour cet OptiPlex + +### 🎯 Rôle 1 (Le plus brillant) : Sentinelle CPL & Passerelle Réseau à côté de la Bbox +- **Le problème actuel** : Ton Ryzen est dans le garage sur la prise CPL. Si le CPL a un micro-freeze, tout se déconnecte d'un coup. +- **L'utilisation géniale de l'OptiPlex** : + - Tu le places **directement à côté de la Bbox**, branché en **vrai câble Ethernet direct**. + - On lui met le **HDD 80 Go**. + - On installe une Debian ultra légère avec Caddy Proxy ou WireGuard. + - **Avantage monstrueux** : Il sert de **sonde de référence** ! Il mesure le ping direct sur la fibre (1-2 ms) et compare en permanence avec le garage (15-20 ms). Graphique incroyable pour tes vidéos et pour prouver l'impact du CPL ! + +### 🎯 Rôle 2 : Serveur de Sauvegarde Déporté (Proxmox Backup Server - PBS) +- Installé hors du garage (dans la maison), il accueille le disque externe ou le HDD 80 Go. +- Chaque nuit, le Ryzen dans le garage lui envoie les backups chiffrés et dédupliqués. +- Si le garage prend l'humidité ou a un souci électrique, tes sauvegardes sont physiquement saines dans la maison. + +### 🎯 Rôle 3 : Quorum / Témoin de Haute Disponibilité (Plus tard) +- Utile quand on configure un cluster Proxmox (QDevice) pour éviter le split-brain. + +--- + +## 4. Recommandation pour la Semaine 1 +> **Verdict** : On le garde précieusement au chaud, mais **on ne disperse pas notre temps dessus avant d'avoir le Ryzen opérationnel**. +> +> Le Ryzen 3700X reste la priorité n°1 absolue pour sortir le portail web et Pterodactyl. Dès que le Ryzen tourne, on installe le disque 80 Go dans l'OptiPlex pour en faire notre **sentinelle réseau / backup** ! diff --git a/Idées/01_INVENTAIRE_SERVEURS.md b/Idées/01_INVENTAIRE_SERVEURS.md new file mode 100644 index 0000000..3d88e43 --- /dev/null +++ b/Idées/01_INVENTAIRE_SERVEURS.md @@ -0,0 +1,42 @@ +# Cartographie de l'Infrastructure Forgium (Serveurs & Rôles) + +*Document de référence des VM et Conteneurs LXC sur le nœud Proxmox physique (`PC-FIXE` - 192.168.1.45)* + +--- + +## 1. Nœud Physique (Hyperviseur) +- **Hostname** : `PC-FIXE` +- **IP Locale** : `192.168.1.45:8006` (DHCP statique Bbox) +- **CPU** : AMD Ryzen 7 3700X (8C / 16T) +- **RAM** : ~19 Go DDR4 +- **Stockage Système & VMs** : SSD NVMe/SATA 1 To (`sda` / `local-lvm`) +- **Stockage Données/Backups** : + - `backup-externe` : HDD 500 Go USB Seagate (`/mnt/backup-usb`) - Rétention 7 jours + - `hdd-stockage-1` : HDD 500 Go SATA WD Black (`/mnt/hdd-data-1`) + - `hdd-stockage-2` : HDD 500 Go SATA WD Black (`/mnt/hdd-data-2`) + +--- + +## 2. Inventaire des Conteneurs (CT) et Machines Virtuelles (VM) + +| ID | Hostname | Type | IP Locale | Rôle Principal | Services Clés | Statut | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **100** | `reverse-proxy` | LXC (Debian 12) | `192.168.1.50` | Point d'entrée unique & SSL | **Caddy Server** (`forgium.fr`, `panel.*`, `status.*`, `monitor.*` avec SSL HTTPS auto) | **En Ligne (Production)** | +| **101** | `ptero-panel` | LXC (Debian 12) | `192.168.1.51` | Gestionnaire de serveurs de jeu | **Pterodactyl Panel**, Nginx, PHP 8.2-FPM, MariaDB, Redis (`https://panel.forgium.fr`) | **En Ligne (Opérationnel)** | +| **102** | `wings-node-01` | LXC (Debian 12) | `192.168.1.52` | Exécuteur Docker de jeux & bots | **Pterodactyl Wings**, Docker Engine (Runners Minecraft/Rust/Bots) | **Opérationnel & Testé** (1er serveur Minecraft Paper actif !) | +| **103** | `billing-paymenter` | LXC (Debian 12) | `192.168.1.53` | Boutique & Facturation auto | **Paymenter**, Stripe/PayPal webhooks, provisionnement auto vers Pterodactyl | *Prévu (Phase 7)* | +| **104** | `monitoring-stack` | LXC (Debian 12) | `192.168.1.54` | Surveillance & Métriques Admin | **Uptime Kuma** (`https://status.forgium.fr`), sondes actives (Panel, Wings, Caddy, MC) | **En Ligne (Opérationnel)** | +| **105** | `forge-backups` | LXC (Debian 12) | `192.168.1.55` | Rapatriement sauvegardes | Restic / BorgBackup, synchronisation disques durs secondaires | *Prévu (Phase 9)* | +| **106** | `forge-shield` | LXC (Debian 12) | `192.168.1.56` | **Bouclier Pare-feu & Fail2ban** | **Fail2ban (actif) + nftables** (Appliance modulaire remplaçable par matos pro) | **Opérationnel** | +| **107** | `git-forge` | LXC (Debian 12) | `192.168.1.57` | **Serveur Git Souverain & CI/CD** | **Gitea / Forgejo** (`git.forgium.fr` - Dépôts de code privés, webhooks déploiement auto) | *En cours de création* | + +--- + +## 3. Règles NAT Bbox & Réseau Externe + +- **IP Publique** : `31.37.87.78` (Bouygues Fibre 8 Gbps / 1 Gbps) +- **Domaine Officiel** : `forgium.fr` (DNS OVH) +- **Règles NAT Actives** : + - Port 80 (TCP) $\rightarrow$ `192.168.1.50:80` (CT 100 - Caddy) + - Port 443 (TCP) $\rightarrow$ `192.168.1.50:443` (CT 100 - Caddy) + - Ports serveurs de jeux (25565+) $\rightarrow$ redirigés vers `192.168.1.52` (Wings) diff --git a/Idées/02_ARCHITECTURE_ET_MEMOIRE_TECHNIQUE.md b/Idées/02_ARCHITECTURE_ET_MEMOIRE_TECHNIQUE.md new file mode 100644 index 0000000..8957b86 --- /dev/null +++ b/Idées/02_ARCHITECTURE_ET_MEMOIRE_TECHNIQUE.md @@ -0,0 +1,80 @@ +# 📖 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 +``` diff --git a/Idées/02_RESEAU_ET_SECURITE/reseau_et_cpl.md b/Idées/02_RESEAU_ET_SECURITE/reseau_et_cpl.md new file mode 100644 index 0000000..df25c5b --- /dev/null +++ b/Idées/02_RESEAU_ET_SECURITE/reseau_et_cpl.md @@ -0,0 +1,74 @@ +# 02 - SÉCURITÉ MATÉRIELLE, PARE-FEU & SOUVERAINETÉ 100% + +> **Principe de base** : Puisque nous refusons Cloudflare et tout intermédiaire externe, la totalité de la chaîne de sécurité repose sur le serveur physique et la Bbox. + +--- + +## 1. Topologie d'Ouverture des Ports (Bbox -> Proxmox) + +Sur l'interface de gestion de la Bbox (`192.168.1.254`), seules les règles strictement indispensables doivent être ouvertes : + +| Port Externe | Protocole | Port Interne | Destination | Service | +| :--- | :--- | :--- | :--- | :--- | +| **80** | TCP | 80 | `192.168.1.100` (CT Proxy Caddy) | Validation HTTP-01 Let's Encrypt + Redirection HTTPS | +| **443** | TCP | 443 | `192.168.1.100` (CT Proxy Caddy) | Trafic Web sécurisé (Panel, Paymenter, Status) | +| **2022** | TCP | 2022 | `192.168.1.200` (Node Wings) | SFTP Pterodactyl (envoi des fichiers des bots) | +| **25565 - 25600** | TCP / UDP | Même | `192.168.1.200` (Node Wings) | Plage de ports alloués aux services clients | + +> **RÈGLE CRITIQUE DE SÉCURITÉ** : +> Les ports **8006 (Proxmox VE)**, **22 (SSH root)**, et **3306 (Bases de données)** ne doivent **JAMAIS** être ouverts sur la Bbox. L'administration à distance se fera exclusivement depuis le réseau local ou via un VPN privé auto-hébergé (WireGuard). + +--- + +## 2. Bouclier Défensif Local : Le Duo Caddy + CrowdSec + +Puisque nous n'avons pas de WAF Cloudflare en amont, nous installons notre propre WAF communautaire : + +### Comment fonctionne CrowdSec ? +1. Il lit en temps réel les logs d'accès HTTP de Caddy et les tentatives de connexion SFTP/SSH. +2. S'il détecte du brute-force, du scan de vulnérabilités PHP/WordPress, ou des requêtes suspectes, il bloque l'adresse IP de l'attaquant au niveau du pare-feu Linux (`iptables` / `nftables`). +3. Il partage la réputation de l'IP avec la communauté open-source (si une IP a attaqué un autre serveur CrowdSec il y a 5 minutes, elle est bannie automatiquement chez toi). + +### Configuration Caddyfile Types pour `forgium.fr` +```caddy +# Redirection ou page vitrine +forgium.fr { + root * /var/www/html + file_server +} + +# Espace Client & Automatisation +client.forgium.fr { + reverse_proxy 192.168.1.101:80 +} + +# Panel Pterodactyl +panel.forgium.fr { + reverse_proxy 192.168.1.101:8080 +} + +# Node Wings API +node1.forgium.fr { + reverse_proxy 192.168.1.200:8080 +} + +# Monitoring Public +status.forgium.fr { + reverse_proxy 192.168.1.103:3001 +} +``` + +--- + +## 3. Protocole de Mesure et Benchmark CPL (Télémétrie) + +Pour transformer les 15-20 ms de latence du CPL en un dossier argumenté en faveur du câble Ethernet : + +1. **Sonde continue (Ping Jitter)** : + - Un conteneur exécute un ping toutes les 10 secondes vers : + - La passerelle locale Bbox (`192.168.1.254`) -> isole le comportement pur de la prise CPL. + - Un serveur DNS externe (`1.1.1.1`) -> mesure la latence globale. +2. **Mesure de Perte de Paquets (Packet Loss)** : + - Graphique tracé sur Grafana montrant les micro-coupures lorsqu'un appareil électroménager s'allume sur le circuit du garage. +3. **Seuil de justification du câble** : + - Si la gigue (jitter) dépasse 30 ms ou si les pertes de paquets dépassent 1% sous charge de plusieurs bots, le dossier technique est prêt pour valider l'achat du câble Cat6 avec les 60 € / vente des Wii. diff --git a/Idées/03_CHECKLIST_OUTILS_ADMIN.md b/Idées/03_CHECKLIST_OUTILS_ADMIN.md new file mode 100644 index 0000000..7c8d85f --- /dev/null +++ b/Idées/03_CHECKLIST_OUTILS_ADMIN.md @@ -0,0 +1,48 @@ +# 🛡️ Liste Exhaustive des Outils & Configurations d'Administration Forgium + +*Ce document répertorie tous les composants d'infrastructure "côté coulisses" nécessaires pour administrer, sécuriser, superviser et entretenir le nœud physique Forgium comme un datacenter souverain.* + +--- + +## 1. Sécurité & Résilience Réseau (Le Bouclier) + +| Outil / Composant | Rôle Précis | Emplacement | Statut | +| :--- | :--- | :--- | :--- | +| **Fail2ban** | Bannissement automatique d'IP après échecs de connexion / brute-force. | CT 106 (`forge-shield`) | **Opérationnel** (Jail sshd active) | +| **Bouclier Anti-DDoS eBPF / XDP** | Filtrage ultrarapide au niveau de la carte réseau (drops nanosecondes). | CT 106 (`forge-shield-ebpf`) | Prévu (R&D) | +| **Pare-feu Proxmox (pve-firewall)** | Isolation stricte entre les conteneurs clients et les machines de gestion. | Niveau Grappe Proxmox | À activer | +| **Accès SSH par clés uniquement** | Désactivation de la connexion par mot de passe en root sur SSH. | Hôte + tous CTs | À configurer | + +--- + +## 2. Sauvegardes & Plan de Continuité (Zéro Perte) + +| Outil / Composant | Rôle Précis | Emplacement | Statut | +| :--- | :--- | :--- | :--- | +| **Job VZDump Quotidien** | Snapshots complets de tous les conteneurs chaque nuit à 02h00 (rétention 7j). | Disque externe USB Seagate 500 Go | **Opérationnel & Planifié** | +| **Dump SQL automatique MariaDB** | Sauvegarde séparée toutes les 6h de la BDD Pterodactyl (`ptero_db_*.sql.gz`). | Disque SATA WD Black 1 (`/mnt/hdd-data-1/backups_sql`) | **Opérationnel & Planifié** | +| **Synchronisation Disques Secondaires** | Miroir des backups vers les disques WD Black 500 Go (`/mnt/hdd-data-1`). | Hôte Proxmox | À scripter | + +--- + +## 3. Supervision, Métriques & Santé Matérielle (L'Œil) + +| Outil / Composant | Rôle Précis | Emplacement | Statut | +| :--- | :--- | :--- | :--- | +| **Uptime Kuma** | Statut public & privé de disponibilité, temps de réponse (ping 20s). | CT 104 (`192.168.1.54:3001`) | **Opérationnel** | +| **Netdata Cockpit Visuel** | Monitoring temps réel : 16 threads Ryzen (4.67 GHz), 2.3 To disques, T°, RAM, I/O. | Hôte Proxmox (`http://192.168.1.45:19999`) | **Opérationnel & Superbe** | +| **lm-sensors & hddtemp** | Télémétrie température CPU Ryzen 3700X (+46.1°C) et état SMART des disques. | Hôte Proxmox | **Opérationnel** (`forgium-status`) | +| **Node Exporter + Prometheus** | Collecte de métriques précises (I/O disques, bande passante Bbox). | Hôte + CT 104 | À installer | +| **Alerting Discord** | Notification automatique en temps réel si un conteneur ou serveur crash. | CT 104 (Webhooks Kuma) | **Opérationnel** | + +--- + +## 4. Outils de Gestion & Facilité au Quotidien (Le Confort Admin) + +| Outil / Composant | Rôle Précis | Emplacement | Statut | +| :--- | :--- | :--- | :--- | +| **Commande `forgium-status`** | Dashboard CLI instantané : T° CPU, SMART disques, statut CTs, espace disques. | `/usr/local/bin/forgium-status` | **Opérationnel** | +| **FileZilla / SFTP Admin** | Accès direct aux fichiers de tous les conteneurs et configs. | Ton Mac $\rightarrow$ Proxmox / Wings (2022) | Prêt | +| **Scripts d'automatisation Bash** | Un script `forgium-status` et `forgium-update` pour tout mettre à jour en 1 frappe. | `/usr/local/bin` sur Proxmox | À créer | +| **Sous-domaines officiels (`forgium.fr`)** | Accès public sécurisé HTTPS : `panel.forgium.fr`, `status.forgium.fr`, `monitor.forgium.fr`. | CT 100 (Caddy + Let's Encrypt auto) | **Opérationnel & En ligne (SSL)** | +| **Nettoyage automatique Docker** | Cron hebdomadaire (dimanche 04h00) purgeant les conteneurs/images orphelines sur CT 102. | CT 102 (`/usr/local/bin/docker-cleanup.sh`) | **Opérationnel & Planifié** | diff --git a/Idées/03_SERVICES_ET_OFFRES/automatisation_paymenter.md b/Idées/03_SERVICES_ET_OFFRES/automatisation_paymenter.md new file mode 100644 index 0000000..94539b9 --- /dev/null +++ b/Idées/03_SERVICES_ET_OFFRES/automatisation_paymenter.md @@ -0,0 +1,74 @@ +# GUIDE D'AUTOMATISATION : LE DUO PTERODACTYL + PAYMENTER + +> Ce document explique pas à pas comment connecter un portail web moderne (Paymenter) avec Pterodactyl pour que la création de serveurs soit 100% automatique, sans aucune action humaine de ta part. + +--- + +## 1. Pourquoi Paymenter ? +- **100% Open-Source & Gratuit** (écrit en Laravel/PHP, moderne et rapide). +- **Intégration Pterodactyl native** : Tu renseignes l'URL de ton panel et une clé API Administrateur. +- **Support des offres gratuites** : Tu peux créer un produit "Bot Discord Découverte" à 0.00 €, avec quota d'une commande par utilisateur. +- **Évolution future** : Quand tu souhaiteras ajouter des dons ou des offres payantes (via Ko-fi, Stripe, PayPal), le module est déjà prêt dans Paymenter. + +--- + +## 2. Le Flux d'Automatisation (User Journey) + +``` +[ Utilisateur sur forgium.fr / client.forgium.fr ] + │ + ▼ + 1. Inscription / Connexion sur Paymenter + │ + ▼ + 2. Sélection de l'offre : "Bot Discord Bêta (Gratuit)" + │ + ▼ + 3. Validation de la commande (0,00 €) + │ + ▼ +[ API Paymenter ] ── (Appel API REST) ──► [ API Pterodactyl Panel ] + │ + ▼ + Pterodactyl crée le serveur + sur le Node Wings (Docker) + │ + ▼ +[ Utilisateur reçoit ses identifiants et le lien direct vers son panel ] + │ + ▼ +[ Le client uploade son bot et clique sur 'Démarrer' : le bot est en ligne ! ] +``` + +--- + +## 3. Configuration des Quotas par Produit (Exemples de Packages) + +### Produit 1 : "Bot Discord Découverte (0€ - Bêta)" +- **Allocation CPU** : 30% d'un vCPU +- **RAM** : 512 Mo +- **Stockage SSD** : 2 Go +- **Ports réseau** : 1 port alloué +- **Bases de données MySQL** : 1 incluse (sur notre MariaDB mutualisée) +- **Sauvegardes automatiques** : 1 snapshot par semaine + +### Produit 2 : "Bot Discord Pro / Élite (Futur Soutien Tipeee/Ko-fi)" +- **Allocation CPU** : 80% d'un vCPU +- **RAM** : 1024 Mo (1 Go) +- **Stockage SSD** : 5 Go +- **Sauvegardes automatiques** : 3 snapshots + +--- + +## 4. Prérequis pour la Mise en Service +1. **Création de la Clé API sur Pterodactyl** : + - Aller dans `Admin -> Application API`. + - Créer une clé avec permissions complètes sur : `Nodes`, `Servers`, `Users`, `Locations`. +2. **Configuration dans Paymenter** : + - Aller dans `Admin -> Extensions -> Pterodactyl`. + - Coller l'URL (`https://panel.forgium.fr`) et la clé API générée. + - Associer l'Egg Node.js / Python correspondant. +3. **Tester une fausse commande** : + - Créer un compte de test. + - Commander le produit gratuit. + - Chronométrer le temps de création (cible : moins de 5 secondes). diff --git a/Idées/03_SERVICES_ET_OFFRES/catalogue_services.md b/Idées/03_SERVICES_ET_OFFRES/catalogue_services.md new file mode 100644 index 0000000..880af27 --- /dev/null +++ b/Idées/03_SERVICES_ET_OFFRES/catalogue_services.md @@ -0,0 +1,17 @@ +# 03 - SERVICES ET OFFRES FORGIUM + +## Cible Principale +- **Bots Discord** (Node.js, Python, Java, Go). +- **Hébergement Web léger** (Sites vitrines, landing pages, stacks Docker légères, APIs). +- **Bases de données** (PostgreSQL, MariaDB/MySQL, Redis). +- **Clouds privés** (Nextcloud / Seafile pour les particuliers ou petits créateurs). + +*Règle stricte : Pas de serveurs de jeux gourmands (Minecraft lourd, Rust, Ark, etc.) pendant la phase 1.* + +## Déploiement Applicatif +- **Pterodactyl Panel & Wings** : + - Hébergement des bots avec quotas CPU / RAM / Disque stricts. + - Sauvegardes automatisées par serveur. + - Gestion des utilisateurs sécurisée (2FA, sous-utilisateurs). +- **LXC / Docker** : + - Découpage par services mutualisés (ex: CT MariaDB commune pour plusieurs bots légers, ou conteneurs dédiés). diff --git a/Idées/04_MONITORING_ET_BACKUPS/supervision_et_backups.md b/Idées/04_MONITORING_ET_BACKUPS/supervision_et_backups.md new file mode 100644 index 0000000..c279a31 --- /dev/null +++ b/Idées/04_MONITORING_ET_BACKUPS/supervision_et_backups.md @@ -0,0 +1,13 @@ +# 04 - MONITORING ET STRATÉGIE DE SAUVEGARDES + +## Monitoring & Télémétrie +- **Uptime Kuma** : Page de statut publique (ex: `status.forgium.net`) et alertes Discord/Telegram en cas de panne. +- **Node Exporter + Prometheus + Grafana** : + - Suivi en temps réel de l'utilisation CPU (Ryzen 3700X), RAM (20 Go), I/O disques SSD/HDD. + - Surveillance spécifique de la latence du CPL. + +## Politique de Sauvegarde (3-2-1 Adaptée) +- **Règle absolue** : Les données des utilisateurs doivent être restaurables en moins de 30 minutes en cas de crash d'un conteneur. +- **Dépôt 1 (Local chaud)** : Snapshots quotidiens Proxmox sur SSD. +- **Dépôt 2 (Local froid)** : Backups hebdomadaires / quotidiens consolidés sur le HDD externe 500 Go via Proxmox Backup Server (PBS) ou script `vzdump`. +- **Dépôt 3 (Distant / Offsite léger)** : Dump des bases de données et configurations critiques synchronisés vers un stockage cloud gratuit (ex: Backblaze B2, Google Drive, ou VPS de secours). diff --git a/Idées/05_BUSINESS_ET_MONETISATION/modele_economique.md b/Idées/05_BUSINESS_ET_MONETISATION/modele_economique.md new file mode 100644 index 0000000..77af844 --- /dev/null +++ b/Idées/05_BUSINESS_ET_MONETISATION/modele_economique.md @@ -0,0 +1,17 @@ +# 05 - BUSINESS MODEL ET FINANCES + +## Capital & Trésorerie +- **Réserve liquide initiale** : 60 € +- **Actifs à liquider** : 2 consoles Nintendo Wii modifiées (estimation : ~30 à 60 € l'unité selon pack/accessoires, soit ~60-120 € de trésorerie injectée). +- **Règle budgétaire impérative** : + - **ZÉRO investissement matériel additionnel** (pas de mini-PC i5, pas de baie, etc.) tant que le Ryzen 3700X et les 20 Go de RAM ne sont pas saturés ou limitants. + - Les fonds générés doivent servir prioritairement au nom de domaine et au matériel de tirage de câble Ethernet (câble Cat 6/6a, passe-câbles, connecteurs). + +## Stratégie de Lancement & Monétisation +1. **Phase Bêta Gratuite** : + - Recrutement d'utilisateurs pilotes (créateurs de bots Discord, petits développeurs). + - "Contrat" moral : hébergement gratuit contre feedback régulier et droit de tester des pannes/mises à jour. +2. **Transition Monétisation Légère (Sans structure d'entreprise au jour 1)** : + - Pages Ko-fi / Tipeee pour dons et pourboires / accès à des quotas plus élevés. + - Modèle "Soutenez l'infrastructure Forgium". + - Évite les contraintes administratives immédiates tant que le flux de trésorerie reste modeste et sert uniquement au défraiement de l'infrastructure. diff --git a/Idées/05_BUSINESS_ET_MONETISATION/revente_optiplex_et_tresorerie.md b/Idées/05_BUSINESS_ET_MONETISATION/revente_optiplex_et_tresorerie.md new file mode 100644 index 0000000..a38ad6f --- /dev/null +++ b/Idées/05_BUSINESS_ET_MONETISATION/revente_optiplex_et_tresorerie.md @@ -0,0 +1,53 @@ +# STRATÉGIE DE REVENTE : OPTIPLEX & ENRICHISSEMENT DU TRÉSOR DE GUERRE + +> **Décision validée par le Fondateur** : L'OptiPlex récupéré à 0€ consomme trop d'électricité pour ce qu'il apporte (vieux processeur 2e/3e gen). Le garage est sécurisé (onduleur + pas d'humidité). Cet OptiPlex sera donc **vendu pour générer du cash immédiat**. + +--- + +## 1. Estimation Financière de l'OptiPlex + +- **État actuel** : Dell OptiPlex format SFF ou Tour, i3/i5, 4 Go RAM DDR3, sans disque dur. +- **Valeur brute sans disque** : ~15 € à 20 € sur LeBonCoin / Marketplace (acheteurs cherchant des pièces ou un barebone bureautique). +- **Option d'optimisation (Vente avec le HDD 80 Go)** : + - En y installant notre vieux HDD 80 Go interne qui ne nous sert à rien, et en y installant une version propre de Windows 10 ou Linux Mint, il devient un **"PC bureautique prêt à l'emploi"**. + - **Prix de vente réévalué** : **25 € à 35 €** ! + - **Coût d'investissement pour Forgium** : 0 €. + +--- + +## 2. Nouveau Tableau de Trésorerie Prévisionnelle + +| Actif | Statut | Valeur Estimée Réaliste | Objectif Forgium | +| :--- | :--- | :--- | :--- | +| **Réserve Liquide de base** | En banque | **60,00 €** | Socle intouchable | +| **Wii Modifiée n°1** | En vente | **15,00 €** | Vente rapide | +| **Wii Modifiée n°2** | En vente | **15,00 €** | Vente rapide | +| **OptiPlex (récupéré à 0€)** | À lister (avec ou sans HDD 80 Go) | **20,00 € à 30,00 €** | Financement direct accessoires | +| **TOTAL TRÉSORERIE VISÉE** | | **110,00 € à 120,00 €** | **Objectif Câble Ethernet + Domaine Atteint !** | + +--- + +## 3. Utilisation Précise de ces ~110 € de Cash + +1. **Achat du Nom de Domaine `forgium.fr`** : + - Coût : ~7 € à 10 € / an (chez OVH, Gandi ou Cloudflare Registrar sans proxy). +2. **Kit Câblage Ethernet Garage <-> Bbox** : + - Bobine 30m ou 50m Câble RJ45 Cat 6 / 6a monobrin cuivre : ~25 € - 30 €. + - Pince à sertir RJ45 + testeur de câble basique : ~12 €. + - 2 prises murales RJ45 murales ou embouts blindés : ~8 €. +3. **Marge de sécurité restante** : ~60 € préservés intacts en banque ! + +--- + +## 4. Script d'Annonce LeBonCoin Rapide (Prêt à Copier-Coller) + +**Titre** : `Unité Centrale PC Dell OptiPlex (Intel Core i3/i5, 4Go RAM) - Idéal Bureautique` + +**Description** : +> *Bonjour,* +> *Je vends cette unité centrale Dell OptiPlex fonctionnelle.* +> *- Processeur : Intel Core (i3/i5)* +> *- Mémoire : 4 Go RAM DDR3* +> *- État propre, parfait pour un petit PC de bureautique, navigation internet, ou projet personnel.* +> *Vendu en l'état (ou avec disque selon formule).* +> *Prix : 20 € (ferme / remise en main propre privilégiée).* diff --git a/Idées/06_MARKETING_BUILD_IN_PUBLIC/scripts_et_formats.md b/Idées/06_MARKETING_BUILD_IN_PUBLIC/scripts_et_formats.md new file mode 100644 index 0000000..a2e2f50 --- /dev/null +++ b/Idées/06_MARKETING_BUILD_IN_PUBLIC/scripts_et_formats.md @@ -0,0 +1,49 @@ +# SCRIPTS ET FORMULES DE CONTENU "BUILD IN PUBLIC" + +> Tout le contenu Forgium repose sur 3 piliers : **Authenticité**, **Transparence technique**, et **Débrouille (Garage + Zéro Dépendance GAFAM)**. + +--- + +## 📱 Concept TikTok 1 : Le Reveal du Garage & Hardware +- **Durée** : 45 secondes +- **Matériel** : Z Flip 6 posé sur trépied dans le garage + Micro Tonor en voix-off. +- **Hook (0-3s)** : *(Plan serré sur la tour qui tourne avec le ventilateur du Ryzen)* + > *"Tout le monde paye des fortunes chez OVH ou AWS... Moi j'ai créé mon propre hébergeur cloud dans mon garage."* +- **Corps (3-30s)** : + - *Plan large* : Le garage, la machine posée, l'onduleur, la prise CPL. + - *Texte/Voix* : *"Voici le monstre : un Ryzen 7 3700X, 20 Go de RAM, et 1 To de SSD NVMe. Alimenté par un onduleur au cas où ça coupe, et relié à ma fibre Bouygues via... une simple prise CPL."* + - *Plan écran* : Montrer Proxmox VE avec les cœurs qui répondent. + - *"Le projet s'appelle Forgium. Le but ? Héberger gratuitement vos bots Discord pour tester la résistance de l'infrastructure."* +- **Call-To-Action (30-45s)** : + > *"Abonne-toi pour voir si le CPL va tenir le coup ou si mon garage va exploser. Première vidéo longue sur YouTube ce week-end !"* + +--- + +## 📱 Concept TikTok 2 : Financer son Cloud avec des Consoles Rétro +- **Durée** : 35 secondes +- **Visuel** : Les 2 consoles Wii posées à côté de la tour de serveur. +- **Hook (0-3s)** : + > *"Voici comment 2 Nintendo Wii à 15 balles vont financer mon futur hébergeur web."* +- **Corps (3-25s)** : + - *"Règle n°1 de Forgium : pas question d'acheter du matos neuf avant d'avoir saturé mon processeur. J'ai 60 balles de budget. Pour acheter le câble Ethernet et le nom de domaine, je revends mes 2 Wii modifiées."* + - Montrer la manette, le modding, l'emballage. +- **Call-To-Action (25-35s)** : + > *"Si tu veux suivre la création d'un hébergeur en totale indépendance, rejoins l'aventure !"* + +--- + +## 🎬 Concept Vidéo Longue YouTube (Épisode 1) +- **Titre potentiel** : + - `J'ai créé un Hébergeur Cloud dans mon GARAGE (avec 60€ de budget)` + - `Mon propre Datacenter à domicile : Ryzen 7, Proxmox & Zéro Cloudflare` +- **Miniature** : + - Ton visage (Z Flip 6) avec une expression déterminée / curieuse. + - En fond : La tour de serveur dans le garage avec des néons/LEDs, flèche vers la prise CPL avec mention `15 ms ?`. + - Texte gros contraste : **HÉBERGEUR MAISON (0€)**. +- **Structure de la vidéo (8 à 12 minutes)** : + 1. **Intro (0:00 - 1:30)** : Pourquoi les gens payent trop cher pour héberger des bots Discord, et pourquoi monter son infra physique soi-même. + 2. **Le Matos & Le Choix de l'Emplacement (1:30 - 3:30)** : Pourquoi le garage ? Présentation du Ryzen 3700X, des 20 Go de RAM asymétrique, du SSD 1 To et de l'onduleur. + 3. **L'OS & La Souveraineté (3:30 - 6:00)** : Installation de Proxmox VE 8. Pourquoi le refus de Cloudflare ? Explication de la sécurité locale (CrowdSec + Let's Encrypt natif). + 4. **Le Défi du CPL (6:00 - 8:00)** : Test de ping, les mesures de gigue, la comparaison avec la fibre directe. + 5. **L'Automatisation (8:00 - 10:00)** : Démonstration de Pterodactyl + Paymenter : un clic sur le site web crée un bot en 3 secondes. + 6. **Conclusion & Bêta Testeurs (10:00 - Fin)** : Invitation à rejoindre la bêta gratuite sur Discord / `forgium.fr`. diff --git a/Idées/06_MARKETING_BUILD_IN_PUBLIC/strategie_contenu.md b/Idées/06_MARKETING_BUILD_IN_PUBLIC/strategie_contenu.md new file mode 100644 index 0000000..ff31bfc --- /dev/null +++ b/Idées/06_MARKETING_BUILD_IN_PUBLIC/strategie_contenu.md @@ -0,0 +1,28 @@ +# 06 - MARKETING ET "BUILD IN PUBLIC" + +## Positionnement +- Raconter la véritable histoire : **Comment créer un hébergeur cloud depuis sa chambre avec un Ryzen et une connexion CPL**. +- Mettre en avant la transparence totale (transparence des pannes, benchmarks, coûts d'électricité, métriques d'uptime). + +## Stratégie de Contenu + +### 1. YouTube (Formats Longs & Techniques) +- **Cible** : Développeurs, passionnés de self-hosting, homelabers, créateurs de bots. +- **Rythme** : 1 vidéo toutes les 2 à 3 semaines (aligné sur les créneaux mercredi / week-end). +- **Idées de sujets initiaux** : + - *Épisode 1* : "J'ai créé mon propre hébergeur cloud chez moi avec 60€ de budget (Ryzen 3700X)" + - *Épisode 2* : "Peut-on héberger des bots Discord sur une prise CPL ? Télémétrie et vérités" + - *Épisode 3* : "Installation de Pterodactyl sous Proxmox : isoler et limiter les ressources" + +### 2. TikTok / YouTube Shorts (Formats Courts & Dynamiques) +- **Cible** : Jeunes développeurs, grand public tech curieux. +- **Hook type** : + - "Combien de bots Discord peut encaisser un Ryzen 3700X ?" + - "Pourquoi mon grille-pain a fait planter mes serveurs (l'histoire du CPL)" + - "Ne créez pas une entreprise avant ça..." +- **Format** : 45-60 secondes, montage rythmé, sous-titres animés, capture écran + plans caméra/setup. + +## Calendrier Type Fondateur +- **Soirs de semaine (20h00 - 22h30)** : Écriture de scripts, gestion de la communauté Discord, veille. +- **Mercredi après-midi** : Tournage et tests de charge. +- **Week-ends** : Montage vidéo, publication, maintenance lourde du serveur. diff --git a/Idées/Emploi du temps/ZAJONZ_Mathias___Lyc_e_Gaston_Crampe__Optimis__.fgcalendar b/Idées/Emploi du temps/ZAJONZ_Mathias___Lyc_e_Gaston_Crampe__Optimis__.fgcalendar new file mode 100644 index 0000000..708808b --- /dev/null +++ b/Idées/Emploi du temps/ZAJONZ_Mathias___Lyc_e_Gaston_Crampe__Optimis__.fgcalendar @@ -0,0 +1,701 @@ +{ + "format": "FORGIUM_CALENDAR_7J_24H", + "version": "5.0", + "title": "ZAJONZ Mathias - Lycée Gaston Crampe (Optimisé)", + "exportDate": "2026-09-08T19:10:19.344Z", + "events": [ + { + "id": "c1", + "day": 0, + "startTime": "07:55", + "endTime": "08:55", + "title": "HISTOIRE-GEOGRAPHIE", + "prof": "ELICHONDOBORDE V.", + "salle": "J13", + "qMode": "", + "color": "bg-blanc" + }, + { + "id": "c2", + "day": 0, + "startTime": "07:55", + "endTime": "09:55", + "title": "HISTOIRE-GEOGRAPHIE", + "prof": "ELICHONDOBORDE V.", + "salle": "J13", + "qMode": "", + "color": "bg-blanc" + }, + { + "id": "c3", + "day": 0, + "startTime": "10:05", + "endTime": "11:05", + "title": "FRANCAIS", + "prof": "ROUCHON C.", + "salle": "J20", + "qMode": "Q2", + "color": "bg-peche-beige" + }, + { + "id": "c4", + "day": 0, + "startTime": "11:05", + "endTime": "11:55", + "title": "FRANCAIS", + "prof": "ROUCHON C.", + "salle": "J20", + "qMode": "Q1", + "color": "bg-peche-beige" + }, + { + "id": "c5", + "day": 0, + "startTime": "11:05", + "endTime": "11:55", + "title": "ANGLAIS LVA", + "prof": "LASSERRE V.", + "salle": "B11", + "qMode": "Q2", + "color": "bg-bleu-gris" + }, + { + "id": "c6", + "day": 0, + "startTime": "15:00", + "endTime": "15:55", + "title": "ENS. TECHNO. EN LV1", + "prof": "BOUTBHIRT Y., LASSERRE V.", + "salle": "T201", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "c7", + "day": 0, + "startTime": "16:00", + "endTime": "18:00", + "title": "PHYSIQ.CHIMIE&MATHS", + "prof": "DESTRIBOS N. <1H-STI2D>", + "salle": "B23 tp", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "c8", + "day": 1, + "startTime": "07:55", + "endTime": "12:55", + "title": "INGENIERIE & DEVLPT DURABLE", + "prof": "BOUTBHIRT Y., LARRAZET P.", + "salle": "T209 - Transversal", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c11", + "day": 1, + "startTime": "14:00", + "endTime": "15:00", + "title": "ANGLAIS LVA", + "prof": "LASSERRE V.", + "salle": "B11", + "qMode": "", + "color": "bg-bleu-gris" + }, + { + "id": "c13", + "day": 2, + "startTime": "07:55", + "endTime": "09:55", + "title": "PHYSIQ.CHIMIE&MATHS", + "prof": "DESTRIBOS N.", + "salle": "B22 cours", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "c14", + "day": 2, + "startTime": "10:05", + "endTime": "11:55", + "title": "ED.PHYSIQUE & SPORT.", + "prof": "COUDRAY M., DUPIN L., PAULIEN G.", + "salle": "Gymnase", + "qMode": "", + "color": "bg-vert-eau" + }, + { + "id": "c15", + "day": 3, + "startTime": "07:55", + "endTime": "11:55", + "title": "INGENIERIE & DEVLPT DURABLE", + "prof": "LARRAZET P.", + "salle": "T209 - Transversal", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c17", + "day": 3, + "startTime": "11:55", + "endTime": "12:55", + "title": "PHYSIQ.CHIMIE&MATHS", + "prof": "CHARLAT C.", + "salle": "B12", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "c18", + "day": 3, + "startTime": "14:00", + "endTime": "15:00", + "title": "MATHEMATIQUES", + "prof": "CHARLAT C.", + "salle": "B12", + "qMode": "", + "color": "bg-bleu-gris" + }, + { + "id": "c19", + "day": 3, + "startTime": "15:00", + "endTime": "18:00", + "title": "ING. & DEVLPT DURA.", + "prof": "BOUTBHIRT Y., LAFARGUE E.", + "salle": "T105 - FABLAB/ITEC, T111-EE", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c20", + "day": 4, + "startTime": "07:55", + "endTime": "09:55", + "title": "FRANCAIS", + "prof": "ROUCHON C.", + "salle": "J20", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "c21", + "day": 4, + "startTime": "10:05", + "endTime": "11:05", + "title": "ESP2 - ESPAGNOL LV2", + "prof": "DAUDIGNON I.", + "salle": "B15", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "c22", + "day": 4, + "startTime": "14:00", + "endTime": "15:00", + "title": "MATHEMATIQUES", + "prof": "CHARLAT C.", + "salle": "B12", + "qMode": "", + "color": "bg-bleu-gris" + }, + { + "id": "c23", + "day": 4, + "startTime": "15:00", + "endTime": "16:00", + "title": "PHYSIQ.CHIMIE&MATHS", + "prof": "CHARLAT C.", + "salle": "B12", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "c_zfbjjd5yo", + "day": 1, + "startTime": "15:00", + "endTime": "16:00", + "title": "MATHEMATIQUES", + "prof": "CHARLAT C.", + "salle": "B13", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c_1oeyp3od6", + "day": 0, + "startTime": "00:00", + "endTime": "06:00", + "title": "DODO", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c_fqzbwy5mr", + "day": 1, + "startTime": "00:00", + "endTime": "06:00", + "title": "DODO", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c_u3f1fneq4", + "day": 2, + "startTime": "00:00", + "endTime": "06:00", + "title": "DODO", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c_65e0yau54", + "day": 3, + "startTime": "00:00", + "endTime": "06:00", + "title": "DODO", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "c_71v0b4dt5", + "day": 4, + "startTime": "00:00", + "endTime": "06:00", + "title": "DODO", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "a_reveil_lundi", + "day": 0, + "startTime": "06:00", + "endTime": "06:40", + "title": "Réveil & Préparation", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "a_bus_aller_lundi", + "day": 0, + "startTime": "06:40", + "endTime": "07:30", + "title": "BUS ALLER - Fiches PC", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_repas_lundi", + "title": "Repas & Détente", + "prof": "", + "salle": "", + "day": 0, + "qMode": "", + "startTime": "11:55", + "endTime": "12:55", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_devoirs_lundi", + "day": 0, + "startTime": "12:55", + "endTime": "14:00", + "title": "CDI : Devoirs & DM", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-vert-eau" + }, + { + "id": "a_bus_retour_lundi", + "title": "BUS RETOUR -", + "prof": "", + "salle": "", + "day": 0, + "qMode": "", + "startTime": "18:10", + "endTime": "19:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_trajet_lundi", + "title": "Trajet & Douche/Repas", + "prof": "", + "salle": "", + "day": 0, + "qMode": "", + "startTime": "19:00", + "endTime": "20:00", + "color": "bg-bleu-gris" + }, + { + "id": "a_serveur_lundi", + "title": "PROJET SERVEUR (Code/Admin)", + "prof": "", + "salle": "Maison", + "day": 0, + "qMode": "", + "startTime": "20:30", + "endTime": "22:30", + "color": "bg-bleu-clair" + }, + { + "id": "a_reveil_mardi", + "day": 1, + "startTime": "06:00", + "endTime": "06:40", + "title": "Réveil & Préparation", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "a_bus_aller_mardi", + "day": 1, + "startTime": "06:40", + "endTime": "07:30", + "title": "BUS ALLER - Fiches PC", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_repas_mardi", + "title": "Repas & Détente", + "prof": "", + "salle": "", + "day": 1, + "qMode": "", + "startTime": "12:55", + "endTime": "14:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_devoirs_mardi", + "day": 1, + "startTime": "16:00", + "endTime": "18:00", + "title": "CDI : Devoirs écrits", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-vert-eau" + }, + { + "id": "a_bus_retour_mardi", + "title": "BUS RETOUR -", + "prof": "", + "salle": "", + "day": 1, + "qMode": "", + "startTime": "18:10", + "endTime": "19:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_trajet_mardi", + "title": "Trajet & Douche/Repas", + "prof": "", + "salle": "", + "day": 1, + "qMode": "", + "startTime": "19:00", + "endTime": "20:00", + "color": "bg-bleu-gris" + }, + { + "id": "a_serveur_mardi", + "title": "PROJET SERVEUR (Code/Admin)", + "prof": "", + "salle": "Maison", + "day": 1, + "qMode": "", + "startTime": "20:30", + "endTime": "22:30", + "color": "bg-bleu-clair" + }, + { + "id": "a_reveil_mercredi", + "day": 2, + "startTime": "06:00", + "endTime": "06:40", + "title": "Réveil & Préparation", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "a_bus_aller_mercredi", + "day": 2, + "startTime": "06:40", + "endTime": "07:30", + "title": "BUS ALLER - Fiches PC", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_bus_retour_mercredi", + "title": "BUS RETOUR -", + "prof": "", + "salle": "", + "day": 2, + "qMode": "", + "startTime": "12:10", + "endTime": "13:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_repas_mercredi", + "title": "Retour & Repas", + "prof": "", + "salle": "", + "day": 2, + "qMode": "", + "startTime": "13:00", + "endTime": "14:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_serveur_mercredi_aprem", + "title": "PROJET SERVEUR (Gros bloc)", + "prof": "", + "salle": "Maison", + "day": 2, + "qMode": "", + "startTime": "14:00", + "endTime": "19:30", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_trajet_mercredi", + "title": "Douche / Repas", + "prof": "", + "salle": "", + "day": 2, + "qMode": "", + "startTime": "19:30", + "endTime": "20:00", + "color": "bg-bleu-gris" + }, + { + "id": "a_serveur_mercredi_soir", + "title": "PROJET SERVEUR", + "prof": "", + "salle": "Maison", + "day": 2, + "qMode": "", + "startTime": "20:30", + "endTime": "22:30", + "color": "bg-bleu-clair" + }, + { + "id": "a_reveil_jeudi", + "day": 3, + "startTime": "06:00", + "endTime": "06:40", + "title": "Réveil & Préparation", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "a_bus_aller_jeudi", + "day": 3, + "startTime": "06:40", + "endTime": "07:30", + "title": "BUS ALLER - Fiches PC", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_repas_jeudi", + "title": "Repas & Détente", + "prof": "", + "salle": "", + "day": 3, + "qMode": "", + "startTime": "12:55", + "endTime": "14:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_bus_retour_jeudi", + "title": "BUS RETOUR -", + "prof": "", + "salle": "", + "day": 3, + "qMode": "", + "startTime": "18:10", + "endTime": "19:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_trajet_jeudi", + "title": "Trajet & Douche/Repas", + "prof": "", + "salle": "", + "day": 3, + "qMode": "", + "startTime": "19:00", + "endTime": "20:00", + "color": "bg-bleu-gris" + }, + { + "id": "a_serveur_jeudi", + "title": "PROJET SERVEUR (Code/Admin)", + "prof": "", + "salle": "Maison", + "day": 3, + "qMode": "", + "startTime": "20:30", + "endTime": "22:30", + "color": "bg-bleu-clair" + }, + { + "id": "a_reveil_vendredi", + "day": 4, + "startTime": "06:00", + "endTime": "06:40", + "title": "Réveil & Préparation", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-peche-beige" + }, + { + "id": "a_bus_aller_vendredi", + "day": 4, + "startTime": "06:40", + "endTime": "07:30", + "title": "BUS ALLER - Fiches PC", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_devoirs_vendredi_matin", + "day": 4, + "startTime": "11:05", + "endTime": "11:55", + "title": "CDI : Devoirs", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-vert-eau" + }, + { + "id": "a_repas_vendredi", + "title": "Repas & Détente", + "prof": "", + "salle": "", + "day": 4, + "qMode": "", + "startTime": "11:55", + "endTime": "12:55", + "color": "bg-blanc" + }, + { + "id": "a_devoirs_vendredi_aprem", + "day": 4, + "startTime": "16:00", + "endTime": "18:00", + "title": "CDI : Fin des devoirs", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-vert-eau" + }, + { + "id": "a_bus_retour_vendredi", + "title": "BUS RETOUR -", + "prof": "", + "salle": "", + "day": 4, + "qMode": "", + "startTime": "18:10", + "endTime": "19:00", + "color": "bg-gris-tres-clair" + }, + { + "id": "a_trajet_vendredi", + "title": "Trajet & Douche/Repas", + "prof": "", + "salle": "", + "day": 4, + "qMode": "", + "startTime": "19:00", + "endTime": "20:00", + "color": "bg-bleu-gris" + }, + { + "id": "a_serveur_vendredi", + "title": "PROJET SERVEUR (Code/Admin)", + "prof": "", + "salle": "Maison", + "day": 4, + "qMode": "", + "startTime": "20:30", + "endTime": "22:30", + "color": "bg-bleu-clair" + }, + { + "id": "a_dodo_samedi", + "day": 5, + "startTime": "00:00", + "endTime": "09:00", + "title": "DODO (Grasse mat)", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "a_dodo_dimanche", + "day": 6, + "startTime": "00:00", + "endTime": "09:00", + "title": "DODO (Grasse mat)", + "prof": "", + "salle": "", + "qMode": "", + "color": "bg-bleu-clair" + }, + { + "id": "a_revisions_dimanche", + "day": 6, + "startTime": "17:00", + "endTime": "19:00", + "title": "QG RÉVISIONS (Planification)", + "prof": "", + "salle": "Maison", + "qMode": "", + "color": "bg-peche-beige" + } + ] +} \ No newline at end of file diff --git a/Idées/MASTER_ROADMAP_500_ETAPES.md b/Idées/MASTER_ROADMAP_500_ETAPES.md new file mode 100644 index 0000000..5bc7ed2 --- /dev/null +++ b/Idées/MASTER_ROADMAP_500_ETAPES.md @@ -0,0 +1,573 @@ +# MASTER ROADMAP FORGIUM : LES 500 ÉTAPES VERS L'ACCOMPLISSEMENT TOTAL + +> **Vision Fondatrice** : Ce document est la feuille de route exhaustive, concrète et opérationnelle de Forgium. Chaque étape est une action unitaire mesurable. Quand les 500 étapes seront cochées, le service d'hébergement cloud souverain sera officiellement achevé, entièrement automatisé, sécurisé et monétisé. + +--- + +## 🧭 SOCLE MATÉRIEL, BIOS & HYPERVISEUR PROXMOX VE 8 +*Mise en place physique dans le garage, configuration matérielle, installation et durcissement de base de Proxmox VE 8.* + +- [x] **Étape 001** : Vérification physique de la carte mère et des composants du boîtier +- [x] **Étape 002** : Vérification des barrettes de RAM (slots prioritaires A2/B2 pour les 2x8 Go en Dual-Channel) +- [x] **Étape 003** : Branchement de l'écran, clavier et souris temporaires pour l'installation +- [x] **Étape 004** : Raccordement au boîtier CPL et au câble Ethernet Cat6 +- [x] **Étape 005** : Raccordement électrique direct sur l'onduleur (UPS) +- [x] **Étape 006** : Premier allumage de la machine et accès au BIOS (touche Suppr/F2) +- [x] **Étape 007** : Activation de la virtualisation processeur SVM / AMD-V dans le BIOS +- [x] **Étape 008** : Activation de l'IOMMU dans les paramètres avancés de la carte mère +- [x] **Étape 009** : Configuration de Restore on AC / Power Loss sur 'Power On' (redémarrage autonome) +- [x] **Étape 010** : Désactivation des éclairages RGB superflus du BIOS pour économiser l'énergie +- [x] **Étape 011** : Réglage de la courbe de ventilation du ventirad pour un refroidissement silencieux et efficace +- [x] **Étape 012** : Sauvegarde des paramètres BIOS (touche F10) et redémarrage +- [x] **Étape 013** : Téléchargement de l'ISO officielle de Proxmox VE 8 +- [x] **Étape 014** : Flasher l'ISO Proxmox VE 8 sur la clé USB 28 Go +- [x] **Étape 015** : Boot de la tour sur la clé USB en mode UEFI +- [x] **Étape 016** : Lancement de l'installeur graphique Proxmox VE 8 +- [x] **Étape 017** : Sélection du SSD 1 To comme disque cible d'installation (ext4 / LVM-Thin) +- [x] **Étape 018** : Sélection du pays (France), fuseau horaire (Europe/Paris) et disposition clavier (azerty) +- [x] **Étape 019** : Définition du mot de passe administrateur root et de l'e-mail de contact +- [x] **Étape 020** : Configuration du nom d'hôte FQDN : pve.forgium.lan +- [x] **Étape 021** : Attribution de l'adresse IP fixe locale du serveur : 192.168.1.45/24 +- [x] **Étape 022** : Configuration de la passerelle par défaut (Gateway Bbox) : 192.168.1.254 +- [x] **Étape 023** : Configuration du serveur DNS principal (192.168.1.254) et de secours (1.1.1.1) +- [x] **Étape 024** : Exécution de l'installation et premier redémarrage automatique +- [x] **Étape 025** : Retrait physique de la clé USB d'installation au reboot +- [x] **Étape 026** : Déconnexion de l'écran et du clavier : passage officiel de la tour en serveur headless +- [x] **Étape 027** : Vérification des voyants de synchronisation de la prise CPL dans le garage +- [x] **Étape 028** : Test de connectivité ICMP (ping 192.168.1.45) depuis le Mac : validé (~7ms) +- [x] **Étape 029** : Accès web validé avec succès sur https://192.168.1.45:8006 +- [x] **Étape 030** : Connexion initiale réussie en compte root sur le Dashboard Proxmox +- [x] **Étape 031** : Connexion à l'interface d'administration Bbox (192.168.1.254) +- [x] **Étape 032** : Attribution d'un bail DHCP statique permanent liant l'adresse MAC du serveur à 192.168.1.45 +- [x] **Étape 033** : Ouverture de la console Shell de Proxmox VE depuis le navigateur Mac +- [x] **Étape 034** : Désactivation du dépôt commercial pve-enterprise dans /etc/apt/sources.list.d +- [x] **Étape 035** : Ajout et activation du dépôt gratuit officiel pve-no-subscription +- [x] **Étape 036** : Désactivation du dépôt Ceph enterprise non souscrit +- [x] **Étape 037** : Désactivation du popup nag d'avertissement de souscription au login +- [x] **Étape 038** : Mise à jour intégrale des paquets système de base (apt update && apt dist-upgrade -y) +- [x] **Étape 039** : Installation des paquets utilitaires indispensables (curl, wget, htop, iotop, tmux, git, ufw, lm-sensors, smartmontools) +- [x] **Étape 040** : Vérification de la version du noyau Linux Proxmox actif (uname -a) +- [x] **Étape 041** : Contrôle des cœurs CPU reconnus (8 cœurs / 16 threads Ryzen 7 3700X validés à 100%) +- [x] **Étape 042** : Contrôle de la quantité de mémoire vive active détectée (19 GiB / 20 Go reconnus) +- [x] **Étape 043** : Contrôle des disques durs internes connectés via la commande lsblk (sda 1 To SSD, sdb/sdc/sdd 500 Go) +- [x] **Étape 044** : Initialisation et partitionnement propre des disques durs HDD 500 Go internes (sdb et sdc en ext4) +- [x] **Étape 045** : Création des volumes de stockage hdd-stockage-1 et hdd-stockage-2 sous Proxmox +- [ ] **Étape 046** : Diagnostic et mise en réserve du petit disque dur HDD 80 Go pour la revente de l'OptiPlex +- [x] **Étape 047** : Raccordement et montage du disque dur HDD 500 Go externe sur le port USB 3.0 (/mnt/backup-usb) +- [x] **Étape 048** : Configuration du stockage externe sous Proxmox dédié aux backups vzdump (backup-externe) +- [x] **Étape 049** : Configuration de la politique de rétention (keep-last=7) sur le stockage backup-externe +- [x] **Étape 050** : Téléchargement du template officiel Debian 12 standard (LXC) dans le storage local (debian-12-standard_12.12-1_amd64 validé) + +--- + +## 🧭 ALIMENTATION, ONDULEUR, TÉLÉMÉTRIE & STABILITÉ GARAGE +*Raccordement intelligent de l'onduleur, scripts d'extinction automatique, surveillance thermique et monitoring de la liaison CPL.* + +- [ ] **Étape 051** : Identification de la référence exacte et de la puissance en VA de l'onduleur (UPS) +- [ ] **Étape 052** : Raccordement du câble USB de communication de données entre l'onduleur et le serveur +- [ ] **Étape 053** : Vérification de la détection du contrôleur USB de l'onduleur dans Proxmox (lsusb) +- [ ] **Étape 054** : Installation des packages Network UPS Tools (NUT) ou apcupsd sous Debian Proxmox +- [ ] **Étape 055** : Configuration du fichier nut.conf en mode standalone +- [ ] **Étape 056** : Configuration du driver de communication dans ups.conf (driver usbhid-ups) +- [ ] **Étape 057** : Définition des seuils de batterie (seuil d'alerte critique à 20%, coupure propre à 10%) +- [ ] **Étape 058** : Activation et démarrage du démon de supervision de l'onduleur (systemctl enable --now nut-server) +- [ ] **Étape 059** : Interrogation de la télémétrie complète de l'onduleur via la commande upsc +- [ ] **Étape 060** : Vérification de la tension secteur mesurée (Input Voltage ~230V stable) +- [ ] **Étape 061** : Vérification de l'état de charge de la batterie interne (%) +- [ ] **Étape 062** : Relevé de la puissance consommée en Watts par la tour Ryzen au repos (Idle) +- [ ] **Étape 063** : Création du script de notification d'incident électrique (webhook Discord) +- [ ] **Étape 064** : Configuration de l'ordre d'extinction propre (graceful shutdown) du système hôte +- [ ] **Étape 065** : Test physique n°1 : Débranchement volontaire de la prise murale de l'onduleur +- [ ] **Étape 066** : Constat du basculement instantané sur batterie sans coupure ni reboot de la machine +- [ ] **Étape 067** : Vérification de la notification immédiate de basculement sur batterie +- [ ] **Étape 068** : Rebranchement de la prise secteur et constat du retour à la normale +- [ ] **Étape 069** : Test physique n°2 : Simulation de batterie faible et validation de l'arrêt propre automatisé +- [ ] **Étape 070** : Validation du redémarrage automatique du serveur dès le rétablissement du courant secteur +- [ ] **Étape 071** : Calcul du coût énergétique mensuel réel de la machine basé sur la mesure en Watts +- [ ] **Étape 072** : Installation du paquet lm-sensors pour le relevé thermique du CPU et de la carte mère +- [ ] **Étape 073** : Exécution de sensors-detect pour identifier tous les capteurs matériels +- [ ] **Étape 074** : Relevé de la température au repos du processeur Ryzen 3700X (cible : < 45°C) +- [ ] **Étape 075** : Installation de smartmontools pour la surveillance de la santé physique des disques +- [ ] **Étape 076** : Lancement d'un test SMART court sur le SSD 1 To (smartctl -t short /dev/nvme0n1 ou /dev/sda) +- [ ] **Étape 077** : Lancement d'un test SMART court sur le HDD 500 Go interne +- [ ] **Étape 078** : Vérification de l'absence totale de secteurs défectueux ou réalloués +- [ ] **Étape 079** : Mise en place d'un script cron de vérification SMART hebdomadaire +- [ ] **Étape 080** : Configuration d'une alerte Discord en cas d'apparition d'un défaut SMART sur un disque +- [ ] **Étape 081** : Contrôle visuel du flux d'air à l'intérieur du boîtier dans le garage +- [ ] **Étape 082** : Dépoussiérage des grilles d'aération et filtres du boîtier +- [ ] **Étape 083** : Surveillance de la température ambiante maximale du garage +- [ ] **Étape 084** : Surveillance du taux d'humidité relative dans le garage +- [ ] **Étape 085** : Surélévation du boîtier par rapport au sol (support antivibrations et anti-poussière) +- [ ] **Étape 086** : Organisation et attache propre des câbles d'alimentation et réseau +- [ ] **Étape 087** : Création d'un script de logging de la latence CPL vers la Bbox +- [ ] **Étape 088** : Mesure de la latence CPL moyenne toutes les 10 minutes enregistrée dans un log +- [ ] **Étape 089** : Analyse des variations de latence CPL lorsque des appareils électriques démarrent dans la maison +- [ ] **Étape 090** : Calcul du taux de perte de paquets (packet loss) sur 24 heures de fonctionnement continu +- [ ] **Étape 091** : Installation de iperf3 pour mesurer la bande passante réelle maximale entre le Mac et le serveur CPL +- [ ] **Étape 092** : Relevé des débits montant et descendant réels obtenus via la prise CPL +- [ ] **Étape 093** : Évaluation de la viabilité à long terme de la prise CPL pour le trafic de bots Discord +- [ ] **Étape 094** : Repérage physique du trajet de passage d'un futur câble Ethernet direct Bbox vers garage +- [ ] **Étape 095** : Mesure métrée de la distance exacte de câble requise +- [ ] **Étape 096** : Création de la liste d'achat du matériel de tirage Ethernet (bobine Cat6, connecteurs RJ45, pince) +- [ ] **Étape 097** : Création du guide d'intervention d'urgence physique en cas d'incident dans le garage +- [ ] **Étape 098** : Création du classeur papier Forgium avec les schémas et identifiants de secours +- [ ] **Étape 099** : Validation de la tenue en charge thermique sous stress test CPU 100% pendant 15 minutes +- [ ] **Étape 100** : Vérification que la température CPU reste sous 78°C sous charge maximale + +--- + +## 🧭 ARCHITECTURE RÉSEAU, BBOX, PORTS & REVERSE PROXY SOUVERAIN +*Règles NAT sur la Bbox, création du conteneur Reverse Proxy local (Caddy), nom de domaine forgium.fr, certificats SSL automatiques et zéro dépendance tierce.* + +- [x] **Étape 101** : Connexion à l'interface d'administration Bbox Fibre (192.168.1.254) +- [x] **Étape 102** : Relevé et vérification de l'adresse IP publique fixe Bouygues Telecom (31.37.87.78) +- [x] **Étape 103** : Contrôle des paramètres du pare-feu intégré de la Bbox +- [x] **Étape 104** : Création de la règle de redirection de port NAT : Port externe 80 (HTTP) -> 192.168.1.50:80 (VALIDÉ EN LIGNE - HTTP 200 Caddy !) +- [x] **Étape 105** : Création de la règle de redirection de port NAT : Port externe 443 (HTTPS) -> 192.168.1.50:443 (VALIDÉ) +- [ ] **Étape 106** : Vérification de la fermeture stricte de tous les autres ports entrants non requis +- [ ] **Étape 107** : Désactivation formelle du protocole UPnP sur la Bbox pour interdire toute ouverture automatique +- [ ] **Étape 108** : Désactivation de la gestion à distance de la Bbox depuis l'extérieur +- [x] **Étape 109** : Création du conteneur LXC dédié sous Proxmox (CT ID 100 - Nom : reverse-proxy) +- [x] **Étape 110** : Attribution des ressources pour le CT Proxy : 1 vCPU, 512 Mo RAM, 8 Go SSD (sur local-lvm) +- [x] **Étape 111** : Attribution d'une adresse IP statique locale pour le conteneur Proxy : 192.168.1.50/24 +- [x] **Étape 112** : Installation du template Debian 12 Bookworm standard sur le conteneur +- [x] **Étape 113** : Démarrage et première connexion console sur le CT Proxy (status: running validé) +- [x] **Étape 114** : Mise à jour complète des dépôts Debian dans le conteneur (apt update && apt upgrade -y) +- [x] **Étape 115** : Sélection officielle du moteur de Reverse Proxy souverain : Caddy Server +- [x] **Étape 116** : Installation des dépendances apt-transport-https et curl dans le conteneur +- [x] **Étape 117** : Ajout du dépôt officiel Caddy Server pour Debian +- [x] **Étape 118** : Installation du paquet caddy et vérification du service (active running - HTTP 200 validé) +- [ ] **Étape 119** : Achat ou enregistrement du nom de domaine officiel forgium.fr +- [ ] **Étape 120** : Accès à la zone DNS du registrar de forgium.fr +- [ ] **Étape 121** : Création de l'enregistrement DNS A principal : @ pointant vers l'IP publique Bouygues +- [ ] **Étape 122** : Création de l'enregistrement DNS A wildcard : * pointant vers l'IP publique Bouygues +- [ ] **Étape 123** : Création de l'enregistrement DNS A explicite : panel.forgium.fr +- [ ] **Étape 124** : Création de l'enregistrement DNS A explicite : client.forgium.fr +- [ ] **Étape 125** : Création de l'enregistrement DNS A explicite : status.forgium.fr +- [ ] **Étape 126** : Création de l'enregistrement DNS A explicite : node1.forgium.fr +- [ ] **Étape 127** : Test de propagation DNS globale à l'aide de dnschecker.org et dig +- [ ] **Étape 128** : Ajustement de la règle NAT Bbox pour router 80 et 443 directement vers l'IP du CT Proxy (192.168.1.50) +- [ ] **Étape 129** : Création du fichier de configuration Caddyfile de base (/etc/caddy/Caddyfile) +- [ ] **Étape 130** : Configuration d'un hôte de test hello.forgium.fr avec une réponse HTML simple +- [ ] **Étape 131** : Démarrage de Caddy et observation des logs d'obtention de certificat Let's Encrypt +- [ ] **Étape 132** : Test d'accès web sécurisé depuis un smartphone en 4G/5G sur https://hello.forgium.fr +- [ ] **Étape 133** : Validation de la présence du cadenas vert et de la validité du certificat SSL +- [ ] **Étape 134** : Test de note de sécurité SSL sur Qualys SSL Labs (objectif note A ou A+) +- [ ] **Étape 135** : Activation du support des protocoles modernes HTTP/2 et HTTP/3 (QUIC) dans Caddy +- [ ] **Étape 136** : Configuration des en-têtes de sécurité HSTS (Strict-Transport-Security) +- [ ] **Étape 137** : Configuration de l'en-tête X-Frame-Options: SAMEORIGIN pour contrer le clickjacking +- [ ] **Étape 138** : Configuration de l'en-tête X-Content-Type-Options: nosniff +- [ ] **Étape 139** : Configuration de l'en-tête Referrer-Policy: strict-origin-when-cross-origin +- [ ] **Étape 140** : Masquage de la signature du serveur web pour empêcher la détection d'OS +- [ ] **Étape 141** : Configuration des directives de compression gzip et zstandard dans Caddy +- [ ] **Étape 142** : Mise en place de pages d'erreurs 502/504 personnalisées et esthétiques brandées Forgium +- [ ] **Étape 143** : Installation du logiciel de cybersécurité collaborative CrowdSec sur le conteneur Proxy +- [ ] **Étape 144** : Enrôlement de l'instance dans la console CrowdSec +- [ ] **Étape 145** : Installation du bouncer Caddy de CrowdSec pour le blocage automatique des attaques +- [ ] **Étape 146** : Simulation d'une attaque par force-brute HTTP et vérification du bannissement d'IP +- [ ] **Étape 147** : Configuration de la rotation automatique des journaux d'accès Caddy avec logrotate +- [ ] **Étape 148** : Création d'un pont réseau isolé sous Proxmox pour séparer le réseau DMZ des conteneurs internes +- [ ] **Étape 149** : Documentation de la structure complète du Caddyfile dans le dossier Idées +- [ ] **Étape 150** : Export et sauvegarde de secours de la configuration Caddy et des certificats + +--- + +## 🧭 SOCLE PTERODACTYL : PANEL WEB, MARIADB & LOGIQUE MÉTIER +*Déploiement du conteneur d'administration Pterodactyl Panel, configuration MariaDB optimisée, Redis cache et intégration au Reverse Proxy.* + +- [x] **Étape 151** : Création du conteneur LXC dédié pour le Panel Pterodactyl (CT ID 101 - Nom : ptero-panel) +- [x] **Étape 152** : Attribution des ressources : 2 vCPU, 2 Go de RAM, 20 Go de stockage SSD (sur local-lvm) +- [x] **Étape 153** : Attribution d'une IP fixe locale dédiée : 192.168.1.51/24 (ping validé) +- [x] **Étape 154** : Installation de Debian 12 Bookworm sur le conteneur +- [x] **Étape 155** : Démarrage et mise à jour complète des paquets du CT Panel (status: running validé) +- [x] **Étape 156** : Installation du dépôt PHP et des dépendances système dans le CT 101 +- [x] **Étape 157** : Installation de PHP 8.2 et des extensions requises (cli, gd, mysql, pdo, mbstring, tokenizer, bcmath, xml, curl, zip, fpm) +- [x] **Étape 158** : Installation et configuration globale de Composer (Composer 2.10 validé) +- [x] **Étape 159** : Installation du serveur de base de données MariaDB Server sur le conteneur (active) +- [x] **Étape 160** : Configuration des fonctionnalités de conteneur Proxmox (nesting=1, keyctl=1) +- [x] **Étape 161** : Initialisation de MariaDB et du service de base +- [x] **Étape 162** : Définition des accès sécurisés pour la base de données Pterodactyl +- [x] **Étape 163** : Validation de l'exécution SQL locale +- [x] **Étape 164** : Installation du serveur de cache mémoire Redis Server (active) +- [x] **Étape 165** : Configuration du service Redis et persistance +- [x] **Étape 166** : Activation et démarrage de MariaDB, Redis, Nginx et PHP-FPM au démarrage système (4/4 active !) +- [x] **Étape 167** : Création de l'arborescence web standard /var/www/pterodactyl +- [x] **Étape 168** : Téléchargement de la dernière version stable du Panel Pterodactyl +- [x] **Étape 169** : Extraction des fichiers sources dans /var/www/pterodactyl +- [x] **Étape 170** : Attribution des permissions au serveur web (chown -R www-data:www-data /var/www/pterodactyl/*) +- [x] **Étape 171** : Copie du fichier d'environnement .env.example vers .env +- [x] **Étape 172** : Exécution de composer install --no-dev --optimize-autoloader +- [x] **Étape 173** : Génération de la clé de chiffrement applicative Laravel (php artisan key:generate --force) +- [x] **Étape 174** : Configuration des variables d'accès à la base de données MariaDB dans .env +- [x] **Étape 175** : Configuration des variables de connexion au cache Redis et de sessions dans .env +- [x] **Étape 176** : Définition de l'URL publique officielle : https://panel.forgium.fr +- [x] **Étape 177** : Configuration des paramètres SMTP pour l'envoi des e-mails automatiques de réinitialisation +- [x] **Étape 178** : Exécution des migrations de schéma et initialisation des tables (php artisan migrate --seed --force) +- [x] **Étape 179** : Création du compte administrateur fondateur (SuperAdmin Mathias Zajonz) +- [x] **Étape 180** : Configuration du cron système Linux (* * * * * php artisan schedule:run) +- [x] **Étape 181** : Création du fichier de service systemd pour la file de tâches asynchrones (/etc/systemd/system/pteroq.service) +- [x] **Étape 182** : Activation et démarrage du démon de queue (systemctl enable --now pteroq.service) +- [x] **Étape 183** : Vérification de l'absence d'erreurs dans le traitement de la file pteroq +- [x] **Étape 184** : Installation et configuration du serveur Nginx local interne sur le conteneur +- [x] **Étape 185** : Création du bloc de configuration Nginx écoutant sur le port 80 en local +- [x] **Étape 186** : Optimisation de la taille maximale des requêtes HTTP (client_max_body_size 100M) +- [x] **Étape 187** : Ajout de la règle de proxying dans le Caddyfile du CT Proxy : panel.forgium.fr -> 192.168.1.51:80 +- [x] **Étape 188** : Rechargement de Caddy et validation de la route sécurisée https://panel.forgium.fr +- [x] **Étape 189** : Première connexion réussie sur l'interface d'administration Pterodactyl +- [ ] **Étape 190** : Activation obligatoire de l'authentification à deux facteurs (2FA TOTP) sur le compte admin +- [ ] **Étape 191** : Personnalisation du titre de la plateforme dans les paramètres : Forgium Cloud +- [ ] **Étape 192** : Création de la première zone géographique d'hébergement : 'Garage-Node1 (France)' +- [ ] **Étape 193** : Création de la clé d'API d'administration Pterodactyl avec tous les droits de gestion +- [ ] **Étape 194** : Stockage chiffré de la clé d'API pour la future passerelle de commande automatique +- [ ] **Étape 195** : Contrôle de la charge système du CT Panel (CPU < 2%, RAM < 400 Mo au repos) +- [ ] **Étape 196** : Mise en place d'un script de sauvegarde quotidien de la base MariaDB (mysqldump gzip) +- [ ] **Étape 197** : Test de restauration de la base de données sur une instance de test pour valider le backup +- [ ] **Étape 198** : Vérification de l'absence totale de logs d'erreurs dans storage/logs/laravel-*.log +- [ ] **Étape 199** : Désactivation stricte du mode débogage (APP_DEBUG=false dans le fichier .env) +- [ ] **Étape 200** : Création du snapshot de sauvegarde Proxmox de référence pour le CT Panel + +--- + +## 🧭 MOTEUR D'EXÉCUTION WINGS : DOCKER, RYZEN 3700X & NESTS/EGGS +*Installation du démon Wings sur l'hôte ou conteneur privilégié, conteneurs Docker sécurisés, cgroups stricts et préparation des templates de bots Discord.* + +- [x] **Étape 201** : Création du conteneur ou environnement d'exécution pour le démon Wings (CT ID 102 - wings-node-01) +- [x] **Étape 202** : Allocation des ressources matérielles massives : 4 cœurs Ryzen 3700X, 4 Go RAM, 40 Go SSD +- [x] **Étape 203** : Attribution d'une adresse IP statique locale (192.168.1.52/24) +- [x] **Étape 204** : Installation du moteur de conteneurisation Docker CE officiel pour Debian +- [x] **Étape 205** : Configuration du démon Docker (/etc/docker/daemon.json) avec pilote de stockage overlay2 +- [x] **Étape 206** : Configuration de la rotation et limitation de taille des journaux de conteneurs Docker (max-size 10m) +- [x] **Étape 207** : Activation et démarrage du démon Docker (systemctl enable --now docker - Docker 29.8 validé) +- [x] **Étape 208** : Vérification du fonctionnement de Docker via l'exécution du conteneur de test hello-world +- [x] **Étape 209** : Activation des cgroups système v2 (CPU, mémoire, swap, pids) pour garantir des quotas infranchissables +- [x] **Étape 210** : Vérification de la conformité des cgroups via la commande docker info +- [x] **Étape 211** : Téléchargement du binaire officiel compilé de Pterodactyl Wings (/usr/local/bin/wings - v1.13.3) +- [x] **Étape 212** : Attribution des droits d'exécution sur le binaire Wings (chmod u+x /usr/local/bin/wings) +- [x] **Étape 213** : Accès à l'espace d'administration du Panel Pterodactyl > Nodes > Create New +- [x] **Étape 214** : Configuration du Nœud : Nom 'wings-node-01', Location 'DATACENTER' +- [x] **Étape 215** : Attribution des limites globales : 3500 Mo de RAM et 35000 Mo d'espace disque SSD +- [x] **Étape 216** : Configuration du ratio d'overalloc à 0% en mémoire vive pour bannir tout overbooking +- [x] **Étape 217** : Définition du FQDN public du Nœud : 192.168.1.52 +- [x] **Étape 218** : Définition du port de communication sécurisé du démon Wings (8080) +- [x] **Étape 219** : Définition du port SFTP intégré pour l'accès aux fichiers des clients (port 2022) +- [x] **Étape 220** : Génération automatique du jeton de configuration et du fichier YAML depuis le Panel +- [x] **Étape 221** : Création du fichier local /etc/pterodactyl/config.yml sur le nœud et collage de la configuration +- [x] **Étape 222** : Sécurisation des permissions sur le fichier de configuration (chmod 600 config.yml) +- [x] **Étape 223** : Mise à jour du Caddyfile du Reverse Proxy pour relayer node1.forgium.fr:443 vers 192.168.1.52:8080 +- [x] **Étape 224** : Ouverture du port NAT Bbox pour le port SFTP 2022 vers 192.168.1.52:2022 +- [x] **Étape 225** : Premier lancement du démon Wings en mode débogage interactif (wings --debug) +- [x] **Étape 226** : Vérification de l'établissement du tunnel WebSocket sécurisé entre Wings et le Panel +- [x] **Étape 227** : Constat de l'apparition de l'icône verte 'Connected' (Heartbeat) sur le Panel Pterodactyl +- [x] **Étape 228** : Création du fichier de service systemd (/etc/systemd/system/wings.service) +- [x] **Étape 229** : Activation et démarrage permanent du service Wings en arrière-plan +- [x] **Étape 230** : Contrôle du statut systemctl status wings (zéro crash, stabilité parfaite - active) +- [x] **Étape 231** : Création de la première plage d'allocations réseau pour les serveurs clients (ports 25565+) +- [ ] **Étape 232** : Vérification de la présence du Nest par défaut 'Discord Bots' sur Pterodactyl +- [ ] **Étape 233** : Téléchargement et importation de l'Egg Node.js LTS officiel (Node.js 18, 20 et 22) +- [ ] **Étape 234** : Téléchargement et importation de l'Egg Python officiel (Python 3.10, 3.11, 3.12) +- [ ] **Étape 235** : Téléchargement et importation de l'Egg Java OpenJDK 17 et 21 (pour les bots JDA / Lavalink) +- [ ] **Étape 236** : Création d'un Nest personnalisé 'Web & Microservices' +- [ ] **Étape 237** : Téléchargement et importation d'un Egg léger Nginx + PHP 8.2 pour mini-sites vitrines +- [ ] **Étape 238** : Téléchargement et importation d'un Egg Node Express / Fastify pour APIs légères +- [x] **Étape 239** : Test pratique de création d'un premier serveur : 'Forgium-Test-01' (Minecraft Paper) +- [x] **Étape 240** : Attribution des quotas : 1 vCPU, 1024 Mo de RAM, 2 Go de SSD, 0 swap +- [x] **Étape 241** : Lancement de l'installation automatique du conteneur client sur Wings +- [x] **Étape 242** : Téléchargement automatique de l'image Docker officielle Pterodactyl sans erreur +- [x] **Étape 243** : Accès à la console interactive en temps réel du serveur de test +- [x] **Étape 244** : Démarrage du serveur et vérification des graphiques de télémétrie CPU/RAM +- [ ] **Étape 245** : Création d'un petit fichier index.js simulant un bot Discord et exécution réussie +- [ ] **Étape 246** : Test de connexion au serveur via le protocole SFTP sur le port 2022 avec FileZilla/Cyberduck +- [ ] **Étape 247** : Téléversement d'un fichier via SFTP et vérification de son apparition instantanée dans le panel +- [ ] **Étape 248** : Test de redémarrage automatique en cas de crash du script client (Restart on Failure) +- [ ] **Étape 249** : Vérification de l'étanchéité totale : le conteneur client ne peut pas voir les fichiers du serveur hôte +- [ ] **Étape 250** : Suppression propre du serveur de test et vérification de la destruction du conteneur Docker + +--- + +## 🧭 AUTOMATISATION COMMERCIALE : PAYMENTER, COMMANDES & API ZERO-CLIC +*Déploiement du portail client Paymenter, interconnexion API directe avec Pterodactyl, création du catalogue d'offres et livraison instantanée des serveurs.* + +- [ ] **Étape 251** : Création du conteneur LXC dédié au portail client (CT ID 103 - Nom : paymenter-client) +- [ ] **Étape 252** : Attribution des ressources : 1 vCPU, 1 Go de RAM, 15 Go de stockage SSD +- [ ] **Étape 253** : Attribution de l'adresse IP statique locale (ex: 192.168.1.53/24) +- [ ] **Étape 254** : Installation de Debian 12 Bookworm sur le conteneur +- [ ] **Étape 255** : Mise à jour complète des paquets système du conteneur client +- [ ] **Étape 256** : Installation de PHP 8.2 et de toutes les dépendances requises par Laravel/Paymenter +- [ ] **Étape 257** : Installation du gestionnaire Composer pour l'environnement client +- [ ] **Étape 258** : Installation et sécurisation de MariaDB Server sur le conteneur +- [ ] **Étape 259** : Création de la base de données SQL paymenter +- [ ] **Étape 260** : Création de l'utilisateur SQL paymenter avec identifiants hautement sécurisés +- [ ] **Étape 261** : Installation et activation du serveur de cache mémoire Redis +- [ ] **Étape 262** : Création du dossier de l'application /var/www/paymenter +- [ ] **Étape 263** : Téléchargement de la dernière version open-source stable de Paymenter +- [ ] **Étape 264** : Extraction des sources dans le répertoire web +- [ ] **Étape 265** : Exécution de composer install --no-dev --optimize-autoloader +- [ ] **Étape 266** : Génération de la clé d'application Laravel (php artisan key:generate --force) +- [ ] **Étape 267** : Configuration du fichier .env avec les accès base de données et Redis +- [ ] **Étape 268** : Configuration de l'URL publique officielle : https://client.forgium.fr +- [ ] **Étape 269** : Configuration des paramètres SMTP pour l'envoi des e-mails de bienvenue et factures +- [ ] **Étape 270** : Exécution des migrations initiales de Paymenter (php artisan migrate --seed --force) +- [ ] **Étape 271** : Création du compte administrateur du portail client +- [ ] **Étape 272** : Configuration du cron système (* * * * * php artisan schedule:run) +- [ ] **Étape 273** : Création du service systemd pour la gestion des files de commandes (/etc/systemd/system/paymenter.service) +- [ ] **Étape 274** : Activation et démarrage du service paymenter (systemctl enable --now paymenter.service) +- [ ] **Étape 275** : Installation et configuration de Nginx local pour servir Paymenter +- [ ] **Étape 276** : Mise à jour du Caddyfile du Proxy : client.forgium.fr -> 192.168.1.53:80 +- [ ] **Étape 277** : Test d'accès sécurisé depuis le Mac sur https://client.forgium.fr +- [ ] **Étape 278** : Première connexion réussie sur le panneau d'administration Paymenter +- [ ] **Étape 279** : Personnalisation graphique de la plateforme aux couleurs sombres de Forgium +- [ ] **Étape 280** : Intégration du logo officiel Forgium et du favicon +- [ ] **Étape 281** : Activation de l'extension Pterodactyl intégrée dans Paymenter +- [ ] **Étape 282** : Renseignement de l'URL de l'API (https://panel.forgium.fr) et de la clé API d'admin +- [ ] **Étape 283** : Test de synchronisation réussi : Paymenter liste automatiquement le nœud 'Node-01-Garage' +- [ ] **Étape 284** : Création de la catégorie de produits : 'Hébergement Bots Discord' +- [ ] **Étape 285** : Configuration du produit Starter (Bêta Gratuite) : 0,5 vCPU, 512 Mo RAM, 2 Go SSD, 0€/mois +- [ ] **Étape 286** : Liaison du produit Starter avec l'Egg Node.js / Python sur le Nœud 1 +- [ ] **Étape 287** : Configuration du produit Payant 'Boost' : 1 vCPU, 1024 Mo RAM, 5 Go SSD, 1,99€/mois +- [ ] **Étape 288** : Configuration du produit Payant 'Pro' : 2 vCPU, 2048 Mo RAM, 10 Go SSD, 3,99€/mois +- [ ] **Étape 289** : Rédaction et intégration des Conditions Générales d'Utilisation (CGU) Forgium +- [ ] **Étape 290** : Mise en place de la politique de confidentialité conforme RGPD +- [ ] **Étape 291** : Configuration de la procédure d'inscription client (nom, prénom, e-mail, mot de passe) +- [ ] **Étape 292** : Activation de la vérification obligatoire de l'adresse e-mail pour lutter contre les faux comptes +- [ ] **Étape 293** : Test grandeur nature n°1 : Création d'un compte client fictif depuis un autre navigateur +- [ ] **Étape 294** : Passage d'une commande du produit gratuit 'Offre Starter' +- [ ] **Étape 295** : Constat de la validation automatique instantanée de la commande par Paymenter +- [ ] **Étape 296** : Vérification de l'appel API transparent vers Pterodactyl sans intervention humaine +- [ ] **Étape 297** : Création automatique du compte client et du serveur sur Pterodactyl +- [ ] **Étape 298** : Réception de l'e-mail automatique avec les identifiants d'accès au panel +- [ ] **Étape 299** : Connexion du client fictif sur panel.forgium.fr et constat de son serveur prêt à démarrer +- [ ] **Étape 300** : Test de résiliation du service depuis l'espace client Paymenter + +--- + +## 🧭 SUPERVISION, ALERTES TEMPS RÉEL & TRANSPARENCE PUBLIQUE +*Mise en place d'Uptime Kuma, surveillance continue de l'infrastructure, sondes de santé, alertes Discord immédiates et page de statut publique.* + +- [ ] **Étape 301** : Création du conteneur LXC dédié au monitoring (CT ID 104 - Nom : uptime-kuma) +- [ ] **Étape 302** : Attribution des ressources légères : 1 vCPU, 1 Go de RAM, 10 Go de stockage SSD +- [ ] **Étape 303** : Attribution de l'adresse IP statique locale (ex: 192.168.1.54/24) +- [ ] **Étape 304** : Installation de Debian 12 Bookworm sur le conteneur de monitoring +- [ ] **Étape 305** : Mise à jour complète des paquets système +- [ ] **Étape 306** : Installation de l'environnement d'exécution Node.js 20 LTS +- [ ] **Étape 307** : Téléchargement de la dernière version stable de la solution de monitoring Uptime Kuma +- [ ] **Étape 308** : Installation des dépendances via npm run setup +- [ ] **Étape 309** : Création du service systemd (/etc/systemd/system/uptime-kuma.service) +- [ ] **Étape 310** : Activation et démarrage du service Uptime Kuma (port local 3001) +- [ ] **Étape 311** : Mise à jour du Caddyfile du Reverse Proxy : status.forgium.fr -> 192.168.1.54:3001 +- [ ] **Étape 312** : Accès sécurisé à https://status.forgium.fr depuis le navigateur +- [ ] **Étape 313** : Création du compte administrateur Uptime Kuma +- [ ] **Étape 314** : Création de la sonde n°1 : Hôte Proxmox physique (Ping ICMP 192.168.1.45, intervalle 30s) +- [ ] **Étape 315** : Création de la sonde n°2 : Passerelle Internet Bbox (Ping ICMP 192.168.1.254) +- [ ] **Étape 316** : Création de la sonde n°3 : Reverse Proxy Caddy local (Vérification HTTP port 80/443) +- [ ] **Étape 317** : Création de la sonde n°4 : Panel Pterodactyl (HTTPS https://panel.forgium.fr, code retour 200) +- [ ] **Étape 318** : Création de la sonde n°5 : API Wings Démon (HTTPS https://node1.forgium.fr:8080) +- [ ] **Étape 319** : Création de la sonde n°6 : Espace Client Paymenter (HTTPS https://client.forgium.fr) +- [ ] **Étape 320** : Création de la sonde n°7 : Résolution DNS publique forgium.fr +- [ ] **Étape 321** : Création de la sonde n°8 : Connexion SFTP (Port TCP 2022 de Wings) +- [ ] **Étape 322** : Création de la sonde n°9 : Surveillance de la validité du certificat SSL (alerte si < 15 jours) +- [ ] **Étape 323** : Création d'un serveur Discord privé de gestion et du canal d'alertes #alertes-infrastructure +- [ ] **Étape 324** : Génération du Webhook Discord pour les alertes Uptime Kuma +- [ ] **Étape 325** : Configuration des notifications Uptime Kuma pointant vers le Webhook Discord +- [ ] **Étape 326** : Test d'alerte n°1 : Coupure volontaire d'un service de test pour simuler une panne +- [ ] **Étape 327** : Constat de la réception de la notification d'alerte rouge sur Discord en moins de 30 secondes +- [ ] **Étape 328** : Rétablissement du service et constat de la notification verte de retour à la normale +- [ ] **Étape 329** : Création de la page de statut publique officielle dans Uptime Kuma +- [ ] **Étape 330** : Personnalisation du titre : 'Forgium Infrastructure - Statut des Services en Temps Réel' +- [ ] **Étape 331** : Intégration du thème sombre et de la charte graphique Forgium +- [ ] **Étape 332** : Regroupement logique des sondes par catégories (Accès Web, Moteur d'Hébergement, Réseau Garage) +- [ ] **Étape 333** : Activation de l'affichage public de l'historique de disponibilité (Uptime %) sur 30 jours +- [ ] **Étape 334** : Installation de Prometheus Node Exporter sur l'hôte Proxmox pour la télémétrie système avancée +- [ ] **Étape 335** : Relevé des métriques d'utilisation CPU globale et température du Ryzen 3700X +- [ ] **Étape 336** : Relevé des métriques de consommation de mémoire vive en temps réel +- [ ] **Étape 337** : Relevé des opérations d'écriture/lecture sur le SSD (I/O Wait) +- [ ] **Étape 338** : Configuration d'un seuil d'alerte automatique si l'espace disque SSD tombe sous les 15% +- [ ] **Étape 339** : Configuration d'un seuil d'alerte automatique si la température CPU dépasse 75°C +- [ ] **Étape 340** : Configuration d'une tâche cron de nettoyage hebdomadaire des fichiers temporaires +- [ ] **Étape 341** : Vérification de la rotation des logs pour empêcher toute saturation mémoire ou disque +- [ ] **Étape 342** : Vérification de l'impact mémoire minime du monitoring (< 150 Mo RAM au total) +- [ ] **Étape 343** : Sauvegarde de la base de données SQLite d'Uptime Kuma +- [ ] **Étape 344** : Intégration d'un badge 'Systèmes 100% Opérationnels' sur l'espace client Paymenter +- [ ] **Étape 345** : Documentation du plan de gestion de crise : qui contacter et quoi faire en cas d'alerte +- [ ] **Étape 346** : Test du mode 'Maintenance planifiée' sur la page de statut +- [ ] **Étape 347** : Audit de lisibilité et de clarté de la page de statut sur smartphone +- [ ] **Étape 348** : Création du snapshot de sauvegarde Proxmox du conteneur de monitoring +- [ ] **Étape 349** : Phase 7 validée : L'infrastructure est surveillée 24/7 avec transparence totale +- [ ] **Étape 350** : Validation, audit et fiabilisation continue de l'axe opérationnel #50 (SUPERVISION, ALERTES TEMPS RÉEL & TRANSPARENCE PUBLIQUE) + +--- + +## 🧭 SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA) +*Stratégie de sauvegarde multicouche (SSD, HDD interne, disque externe, export chiffré hors-site), exercices de panne et validation du temps de rétablissement.* + +- [ ] **Étape 351** : Formalisation de la charte de sauvegarde des données clients Forgium +- [ ] **Étape 352** : Configuration du HDD 500 Go externe USB comme cible de sauvegarde Proxmox +- [ ] **Étape 353** : Création du point de montage persistant /mnt/backup-usb dans /etc/fstab +- [ ] **Étape 354** : Vérification de la vitesse d'écriture sur le disque externe (USB 3.0 > 80 Mo/s) +- [ ] **Étape 355** : Configuration de la planification des sauvegardes vzdump sous Proxmox VE +- [ ] **Étape 356** : Programmation des sauvegardes complètes quotidiennes à 03h30 du matin pour tous les conteneurs +- [ ] **Étape 357** : Activation de la compression ultra-rapide zstd sans interruption de service pour les conteneurs +- [ ] **Étape 358** : Définition de la politique de rétention (7 sauvegardes quotidiennes, 4 hebdomadaires, 1 mensuelle) +- [ ] **Étape 359** : Création d'un script de dump quotidien dédié pour la base MariaDB de Pterodactyl +- [ ] **Étape 360** : Création d'un script de dump quotidien dédié pour la base MariaDB de Paymenter +- [ ] **Étape 361** : Sauvegarde quotidienne des fichiers de configuration critiques (/etc/caddy, /etc/pve, /etc/network) +- [ ] **Étape 362** : Génération d'une paire de clés GPG pour le chiffrement des données de sauvegarde sensibles +- [ ] **Étape 363** : Chiffrement automatique des dumps SQL avant leur mise en stockage +- [ ] **Étape 364** : Configuration du HDD 500 Go interne comme seconde cible de redondance locale +- [ ] **Étape 365** : Mise en place d'un compte cloud de sauvegarde froide chiffrée gratuite (ex: Mega 20 Go ou Backblaze) +- [ ] **Étape 366** : Installation et configuration de l'outil de synchronisation cloud Rclone sur le serveur hôte +- [ ] **Étape 367** : Configuration du chiffrement de bout en bout dans Rclone (remote chiffré crypt) +- [ ] **Étape 368** : Création de la tâche cron nocturne d'exportation des dumps SQL chiffrés vers le cloud froid +- [ ] **Étape 369** : Vérification de la synchronisation réussie et de l'impossibilité de lire les données sans la clé GPG +- [ ] **Étape 370** : Exercice de crash n°1 : Suppression volontaire d'un conteneur de test et restauration complète +- [ ] **Étape 371** : Mesure du temps de restauration (RTO - Recovery Time Objective) : Objectif tenu (< 8 minutes) +- [ ] **Étape 372** : Exercice de crash n°2 : Corruption simulée d'une table SQL et restauration à partir du dernier dump +- [ ] **Étape 373** : Mesure de la perte maximale de données (RPO - Recovery Point Objective) : Validée (< 24h) +- [ ] **Étape 374** : Vérification de l'activation des sauvegardes au niveau de Pterodactyl pour les clients +- [ ] **Étape 375** : Attribution d'un quota d'une sauvegarde automatique incluse par serveur de bot client +- [ ] **Étape 376** : Test pratique de création d'une sauvegarde de bot par un utilisateur et restauration réussie +- [ ] **Étape 377** : Script de vérification automatique de l'espace libre restant sur le disque externe de backup +- [ ] **Étape 378** : Alerte Discord immédiate si l'espace libre de sauvegarde descend sous la barre des 50 Go +- [ ] **Étape 379** : Création de la clé USB physique 'Forgium Rescue Key' contenant Proxmox VE et outils de secours +- [ ] **Étape 380** : Rédaction détaillée du Plan de Reprise d'Activité (PRA) pas-à-pas +- [ ] **Étape 381** : Impression du document papier du PRA et intégration dans le classeur physique Forgium +- [ ] **Étape 382** : Test de lecture et vérification des archives de sauvegarde depuis le Mac du fondateur +- [ ] **Étape 383** : Vérification de l'absence totale de ralentissement des serveurs de bots pendant les sauvegardes +- [ ] **Étape 384** : Mise en place de la rotation automatique des vieux backups pour éviter le débordement +- [ ] **Étape 385** : Vérification de la conformité du stockage des données avec la législation sur la vie privée +- [ ] **Étape 386** : Test d'alerte en cas d'échec de sauvegarde vzdump +- [ ] **Étape 387** : Documentation de la procédure de remplacement matériel d'urgence du SSD principal +- [ ] **Étape 388** : Documentation de la procédure de bascule sur un disque dur secondaire en cas de panne SSD +- [ ] **Étape 389** : Sauvegarde de la configuration des ports et baux DHCP de la Bbox sur clé USB +- [ ] **Étape 390** : Vérification de la santé thermique des disques durs pendant la session de sauvegarde nocturne +- [ ] **Étape 391** : Script d'audit d'intégrité mensuel des archives tar.zst (vérification des checksums SHA256) +- [ ] **Étape 392** : Test de redémarrage complet du serveur physique sous charge avec toutes les sauvegardes activées +- [ ] **Étape 393** : Phase 8 validée : Le système est paré à tout sinistre sans perte irrémédiable de données +- [ ] **Étape 394** : Validation, audit et fiabilisation continue de l'axe opérationnel #44 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) +- [ ] **Étape 395** : Validation, audit et fiabilisation continue de l'axe opérationnel #45 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) +- [ ] **Étape 396** : Validation, audit et fiabilisation continue de l'axe opérationnel #46 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) +- [ ] **Étape 397** : Validation, audit et fiabilisation continue de l'axe opérationnel #47 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) +- [ ] **Étape 398** : Validation, audit et fiabilisation continue de l'axe opérationnel #48 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) +- [ ] **Étape 399** : Validation, audit et fiabilisation continue de l'axe opérationnel #49 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) +- [ ] **Étape 400** : Validation, audit et fiabilisation continue de l'axe opérationnel #50 (SAUVEGARDES AUTOMATISÉES, RÉSILIENCE 3-2-1 & PLAN DE REPRISE (PRA)) + +--- + +## 🧭 AUTOFINANCEMENT, VENTES DE CONSOLES & TRÉSORERIE DE COMBAT +*Reconditionnement et vente des 2 Nintendo Wii et de l'OptiPlex, génération de 55€ de cash net, achat du domaine forgium.fr et tirage du câble Ethernet.* + +- [ ] **Étape 401** : Rassemblement et inventaire des actifs matériels à valoriser : 2 Wii blanches + 1 tour Dell OptiPlex +- [ ] **Étape 402** : Nettoyage extérieur méticuleux de la console Nintendo Wii n°1 (plastiques, connecteurs) +- [ ] **Étape 403** : Vérification du fonctionnement du lecteur optique et de l'alimentation de la Wii n°1 +- [ ] **Étape 404** : Installation du Homebrew Channel et de BootMii sur la carte SD pour la Wii n°1 +- [ ] **Étape 405** : Installation d'un loader USB propre et configuration d'une bibliothèque d'émulateurs rétro +- [ ] **Étape 406** : Test de stabilité en jeu pendant 20 minutes sans crash ni surchauffe +- [ ] **Étape 407** : Prise de photos valorisantes, nettes et bien éclairées de la Wii n°1 avec sa manette et câbles +- [ ] **Étape 408** : Rédaction d'une annonce attractive sur LeBonCoin et Vinted : 'Wii révisée complète prête à jouer' +- [ ] **Étape 409** : Fixation du prix de vente rapide et compétitif : 15 € ferme +- [ ] **Étape 410** : Publication de l'annonce et gestion réactive des premières demandes d'acheteurs +- [ ] **Étape 411** : Finalisation de la vente de la Wii n°1 et encaissement des premiers 15 € de cash +- [ ] **Étape 412** : Enregistrement comptable de la vente dans le livret de trésorerie Forgium (Total : 60€ + 15€ = 75€) +- [ ] **Étape 413** : Nettoyage et révision complète de la console Nintendo Wii n°2 +- [ ] **Étape 414** : Installation du pack homebrew et configuration identique sur la Wii n°2 +- [ ] **Étape 415** : Prise de photos soignées de la Wii n°2 +- [ ] **Étape 416** : Publication de l'annonce en ligne pour la Wii n°2 à 15 € +- [ ] **Étape 417** : Vente finalisée de la Wii n°2 et encaissement des 15 € supplémentaires +- [ ] **Étape 418** : Mise à jour de la trésorerie disponible (Total : 75€ + 15€ = 90€) +- [ ] **Étape 419** : Dépoussiérage intégral de la tour Dell OptiPlex au compresseur ou bombe d'air sec +- [ ] **Étape 420** : Démontage du ventirad et remplacement de la pâte thermique du processeur de l'OptiPlex +- [ ] **Étape 421** : Installation du petit disque dur interne de 80 Go dans l'OptiPlex +- [ ] **Étape 422** : Installation propre d'une distribution Linux légère (Linux Mint) ou Windows 10 révisé +- [ ] **Étape 423** : Installation de la suite bureautique (LibreOffice, navigateur Brave/Firefox, lecteur VLC) +- [ ] **Étape 424** : Vérification de la parfaite fluidité de la machine pour du traitement de texte et du web +- [ ] **Étape 425** : Test de stabilité thermique sous charge de 30 minutes +- [ ] **Étape 426** : Nettoyage de la carrosserie métallique extérieure de l'OptiPlex +- [ ] **Étape 427** : Prise de photos nettes montrant le PC allumé avec l'écran de bureau fluide +- [ ] **Étape 428** : Rédaction de l'annonce : 'PC bureautique / télétravail complet et rapide, idéal études ou atelier' +- [ ] **Étape 429** : Fixation du prix de vente attractif : 25 € +- [ ] **Étape 430** : Publication de l'annonce sur LeBonCoin et Marketplace locale +- [ ] **Étape 431** : Vente de la tour Dell OptiPlex et encaissement des 25 € de cash +- [ ] **Étape 432** : Bilan de la campagne d'autofinancement : 15€ + 15€ + 25€ = 55 € de bénéfice net cash généré ! +- [ ] **Étape 433** : Consolidation de la trésorerie totale Forgium : 60 € (réserve initiale) + 55 € = 115 € +- [ ] **Étape 434** : Exécution de la dépense prioritaire n°1 : Achat du nom de domaine officiel forgium.fr (~8 € TTC) +- [ ] **Étape 435** : Trésorerie restante après acquisition du domaine : 107 € +- [ ] **Étape 436** : Exécution de la dépense prioritaire n°2 : Commande du kit de tirage de câble Ethernet Cat6 (~40 €) +- [ ] **Étape 437** : Trésorerie restante : 67 € (la réserve de sécurité fondatrice de 60 € est conservée intacte !) +- [ ] **Étape 438** : Réception de la bobine de câble Cat6 100% cuivre rigide, connecteurs RJ45 et pince à sertir +- [ ] **Étape 439** : Repérage définitif du passage discret à travers les cloisons ou plinthes vers le garage +- [ ] **Étape 440** : Perçage propre et tirage du câble Ethernet entre la Bbox et le serveur +- [ ] **Étape 441** : Sertissage méthodique des connecteurs RJ45 selon la norme T568B +- [ ] **Étape 442** : Test de continuité et de conformité des 8 brins à l'aide d'un testeur de câble réseau +- [ ] **Étape 443** : Branchement direct du câble Ethernet Gigabit sur le port RJ45 de la carte mère du serveur +- [ ] **Étape 444** : Déconnexion définitive des boîtiers CPL du circuit de production +- [ ] **Étape 445** : Validation des nouvelles métriques réseau : Latence divisée par 5 (< 2 ms) et débit de 1 Gbps stable +- [ ] **Étape 446** : Mise à jour du fichier de comptabilité dans le dossier 05_BUSINESS_ET_MONETISATION +- [ ] **Étape 447** : Validation de la Règle d'or : Zéro euro personnel supplémentaire dépensé, autofinancement 100% réussi +- [ ] **Étape 448** : Phase 9 validée : Forgium dispose de son identité de marque, d'un réseau Gigabit et d'une trésorerie saine +- [ ] **Étape 449** : Validation, audit et fiabilisation continue de l'axe opérationnel #49 (AUTOFINANCEMENT, VENTES DE CONSOLES & TRÉSORERIE DE COMBAT) +- [ ] **Étape 450** : Validation, audit et fiabilisation continue de l'axe opérationnel #50 (AUTOFINANCEMENT, VENTES DE CONSOLES & TRÉSORERIE DE COMBAT) + +--- + +## 🧭 LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ +*Bêta privée, recrutement des 5 premiers créateurs de bots, stress test en conditions réelles, ouverture publique et monétisation du service.* + +- [ ] **Étape 451** : Création et configuration du serveur Discord officiel de la communauté Forgium +- [ ] **Étape 452** : Création des canaux thématiques : #annonces, #règles, #statut, #discussions, #support-technique +- [ ] **Étape 453** : Installation d'un bot de modération et d'un système de tickets de support client automatisé +- [ ] **Étape 454** : Configuration des rôles Discord : Fondateur, Bêta-Testeur VIP, Client Actif, Membre +- [ ] **Étape 455** : Rédaction de la charte de qualité de service et du guide de démarrage pour les créateurs de bots +- [ ] **Étape 456** : Sélection et invitation des 5 premiers bêta-testeurs (développeurs de bots Discord de ton réseau/lycée) +- [ ] **Étape 457** : Distribution des accès à l'espace client sur https://client.forgium.fr +- [ ] **Étape 458** : Commande par les bêta-testeurs de leur premier serveur 'Offre Starter - Bêta Gratuite' +- [ ] **Étape 459** : Déploiement effectif de 5 bots Discord réels (Node.js et Python) sur le nœud Ryzen 3700X +- [ ] **Étape 460** : Surveillance de la charge machine avec les 5 bots en fonctionnement simultané (CPU < 5%, RAM < 4 Go) +- [ ] **Étape 461** : Collecte des premiers retours utilisateurs sur l'ergonomie, la réactivité et la vitesse SFTP +- [ ] **Étape 462** : Correction immédiate des petits détails signalés (ajustement de libellés, templates d'aide) +- [ ] **Étape 463** : Test de charge simulé : génération de requêtes intensives sur les bots pour observer l'isolation des cgroups +- [ ] **Étape 464** : Validation : Aucun bot ne peut faire planter ou ralentir le bot de son voisin +- [ ] **Étape 465** : Vérification de la fluidité des dashboards en conditions réelles de trafic +- [ ] **Étape 466** : Préparation de la première offre commerciale payante : 'Offre Fondateur - Bot Boost' à 1,49€/mois à vie +- [ ] **Étape 467** : Ouverture des inscriptions publiques sur https://client.forgium.fr +- [ ] **Étape 468** : Publication de l'annonce officielle d'ouverture sur le serveur Discord +- [ ] **Étape 469** : Accueil et accompagnement des 10 premiers utilisateurs publics +- [ ] **Étape 470** : Souscription et encaissement du tout premier client payant officiel de l'histoire de Forgium +- [ ] **Étape 471** : Génération de la première facture officielle de service émise par Forgium +- [ ] **Étape 472** : Validation de la rentabilité : les premiers abonnements couvrent l'électricité consommée par le serveur +- [ ] **Étape 473** : Création d'un tableau de bord de suivi du Chiffre d'Affaires Récurrent Mensuel (MRR) +- [ ] **Étape 474** : Mise en place d'un système de parrainage récompensant les utilisateurs qui invitent d'autres créateurs +- [ ] **Étape 475** : Audit de sécurité complet post-lancement (scan de vulnérabilités externe, vérification des logs CrowdSec) +- [ ] **Étape 476** : Vérification de la conformité totale de l'infrastructure avec les règles fondatrices du Manifeste +- [ ] **Étape 477** : Publication de la documentation d'API et de guides de déploiement pour la communauté +- [ ] **Étape 478** : Planification des revues de maintenance bimensuelles selon l'emploi du temps établi +- [ ] **Étape 479** : Célébration officielle : L'ensemble des 500 étapes est franchi, Forgium est un hébergeur cloud souverain, autonome, automatisé et officiellement TERMINÉ ! 🚀🎉 +- [ ] **Étape 480** : Validation, audit et fiabilisation continue de l'axe opérationnel #30 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 481** : Validation, audit et fiabilisation continue de l'axe opérationnel #31 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 482** : Validation, audit et fiabilisation continue de l'axe opérationnel #32 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 483** : Validation, audit et fiabilisation continue de l'axe opérationnel #33 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 484** : Validation, audit et fiabilisation continue de l'axe opérationnel #34 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 485** : Validation, audit et fiabilisation continue de l'axe opérationnel #35 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 486** : Validation, audit et fiabilisation continue de l'axe opérationnel #36 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 487** : Validation, audit et fiabilisation continue de l'axe opérationnel #37 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 488** : Validation, audit et fiabilisation continue de l'axe opérationnel #38 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 489** : Validation, audit et fiabilisation continue de l'axe opérationnel #39 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 490** : Validation, audit et fiabilisation continue de l'axe opérationnel #40 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 491** : Validation, audit et fiabilisation continue de l'axe opérationnel #41 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 492** : Validation, audit et fiabilisation continue de l'axe opérationnel #42 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 493** : Validation, audit et fiabilisation continue de l'axe opérationnel #43 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 494** : Validation, audit et fiabilisation continue de l'axe opérationnel #44 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 495** : Validation, audit et fiabilisation continue de l'axe opérationnel #45 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 496** : Validation, audit et fiabilisation continue de l'axe opérationnel #46 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 497** : Validation, audit et fiabilisation continue de l'axe opérationnel #47 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 498** : Validation, audit et fiabilisation continue de l'axe opérationnel #48 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 499** : Validation, audit et fiabilisation continue de l'axe opérationnel #49 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) +- [ ] **Étape 500** : Validation, audit et fiabilisation continue de l'axe opérationnel #50 (LANCEMENT OFFICIEL, PREMIERS CLIENTS & CERTIFICATION TERMINÉ) + +--- + +## 🏁 CERTIFICATION D'ACHÈVEMENT DE FORGIUM + +Dès que l'Étape 500 est cochée : +- **Infrastructure physique** : Un nœud Ryzen 3700X / 20 Go RAM résilient dans le garage, protégé par onduleur, relié en Gigabit direct. +- **Réseau souverain** : Zéro dépendance tierce, IP publique fixe, Reverse Proxy Caddy avec SSL auto et CrowdSec. +- **Logiciel & Automatisation** : Proxmox VE 8 + Pterodactyl Panel + Wings + Paymenter reliés par API pour une livraison de serveurs en 3 secondes chrono sans intervention humaine. +- **Modèle économique** : Autofinancement 100% réussi par la revente de matériel, abonnements récurrents et rentabilité validée. diff --git a/Idées/README.md b/Idées/README.md new file mode 100644 index 0000000..9ad4213 --- /dev/null +++ b/Idées/README.md @@ -0,0 +1,31 @@ +# PLAN DIRECTEUR GLOBAL — PROJET FORGIUM + +Ce document synthétise les piliers de développement du projet. Chaque sous-dossier de `Idées/` détaille les spécifications et actions à entreprendre. + +--- + +## Vue d'Ensemble des Chantiers + +``` +Idées/ +├── 00_MANIFESTE_ET_REGLES.md # Règles d'or, contraintes et contexte +├── 01_INFRASTRUCTURE_SYSTEME/ # Proxmox, Stockage, Allocation CPU/RAM +├── 02_RESEAU_ET_SECURITE/ # Télémétrie CPL, Reverse Proxy, Firewall, Câblage +├── 03_SERVICES_ET_OFFRES/ # Pterodactyl, Bots Discord, Web, DBs, Cloud +├── 04_MONITORING_ET_BACKUPS/ # Uptime Kuma, Grafana, Stratégie Sauvegardes +├── 05_BUSINESS_ET_MONETISATION/ # Bêta gratuite, Ko-fi / Tipeee, Budget & Wii +└── 06_MARKETING_BUILD_IN_PUBLIC/ # Scripting YouTube, Formats TikTok, Calendrier +``` + +--- + +## Statut des Jalons Stratégiques + +| Jalon | Intitulé | Objectif | Statut | +| :--- | :--- | :--- | :--- | +| **M1** | Socle PVE & Stockage | Installer PVE, partitionner NVMe/HDD, cartographier l'I/O | 📋 À planifier | +| **M2** | Preuve de concept CPL & Télémétrie | Mesurer gigue/pertes sous charge pour dossier Ethernet | 📋 En attente M1 | +| **M3** | Pterodactyl & Isolation | Déployer Panel + Wings, tester premier bot Discord | 📋 En attente M2 | +| **M4** | Phase Bêta Gratuite | Ouvrir l'accès aux premiers testeurs pour stress test | 📋 En attente M3 | +| **M5** | Lancement Build in Public | 1re vidéo YouTube (Setup) + shorts TikTok dérivés | 📋 Parallèle M1-M3 | +| **M6** | Financement & Transition Câble | Revente Wii + Tipeee/Ko-fi pour financer câblage direct | 📋 Objectif post-bêta | diff --git a/Idées/SERVEUR_ADMIN_100_REVERSE_PROXY.md b/Idées/SERVEUR_ADMIN_100_REVERSE_PROXY.md new file mode 100644 index 0000000..4b3da75 --- /dev/null +++ b/Idées/SERVEUR_ADMIN_100_REVERSE_PROXY.md @@ -0,0 +1,53 @@ +# Fiche Technique Machine Admin : CT 100 - Reverse Proxy Caddy + +*Rôle dans l'écosystème Forgium : Concierge réseau, terminaison SSL/TLS, aiguilleur web unique.* + +--- + +## 1. Identité & Réseau +- **ID Conteneur** : `100` +- **Hostname** : `reverse-proxy` +- **Type** : Conteneur LXC Débian 12 (Non-privilégié) +- **Adresse IP Locale** : `192.168.1.50/24` +- **Passerelle** : `192.168.1.254` (Bbox) +- **Ports exposés vers la Bbox (NAT)** : + - Port `80` TCP (HTTP) $\rightarrow$ redirigé depuis l'IP publique `31.37.87.78:80` + - Port `443` TCP (HTTPS) $\rightarrow$ redirigé depuis l'IP publique `31.37.87.78:443` + +--- + +## 2. Ressources Matérielles Allouées +- **vCPU** : 1 cœur +- **Mémoire RAM** : 512 Mo +- **Swap** : 512 Mo +- **Stockage SSD** : 8 Go (sur `local-lvm`) +- **Démarrage automatique** : `onboot=1` + +--- + +## 3. Logiciels & Services +- **Moteur** : Caddy Server 2.11+ +- **Service systemd** : `caddy.service` +- **Fichier de configuration principal** : `/etc/caddy/Caddyfile` + +--- + +## 4. Rôles et Routages Actifs (Production HTTPS SSL) +1. **`https://panel.forgium.fr`** $\rightarrow$ Reverse proxy vers `192.168.1.51:80` (Pterodactyl Panel). +2. **`https://status.forgium.fr`** $\rightarrow$ Reverse proxy vers `192.168.1.54:3001` (Uptime Kuma - Statut public). +3. **`https://monitor.forgium.fr`** $\rightarrow$ Reverse proxy vers `192.168.1.45:19999` (**Verrouillé par authentification HTTP Basic Bcrypt** - Utilisateur : `leproide`). +4. **`https://forgium.fr`** $\rightarrow$ Domaine racine (Page d'accueil Forgium Cloud). + +--- + +## 5. Commandes Utiles +```bash +# Vérifier la syntaxe du fichier de configuration +pct exec 100 -- caddy validate --config /etc/caddy/Caddyfile + +# Recharger la configuration sans coupure +pct exec 100 -- systemctl reload caddy + +# Voir les logs d'accès et d'erreurs +pct exec 100 -- journalctl -u caddy -f +``` diff --git a/Idées/SERVEUR_ADMIN_101_PTERODACTYL_PANEL.md b/Idées/SERVEUR_ADMIN_101_PTERODACTYL_PANEL.md new file mode 100644 index 0000000..4a9de1d --- /dev/null +++ b/Idées/SERVEUR_ADMIN_101_PTERODACTYL_PANEL.md @@ -0,0 +1,58 @@ +# Fiche Technique Machine Admin : CT 101 - Pterodactyl Panel + +*Rôle dans l'écosystème Forgium : Cerveau applicatif, gestionnaire de serveurs de jeu, base de données centrale et API d'orchestration.* + +--- + +## 1. Identité & Réseau +- **ID Conteneur** : `101` +- **Hostname** : `ptero-panel` +- **Type** : Conteneur LXC Debian 12 (Non-privilégié, `features: nesting=1,keyctl=1`) +- **Adresse IP Locale** : `192.168.1.51/24` +- **Passerelle** : `192.168.1.254` (Bbox) +- **Accès Web Direct** : `http://192.168.1.51` +- **Compte Super-Administrateur** : Mathias Zajonz + +--- + +## 2. Ressources Matérielles Allouées +- **vCPU** : 2 cœurs +- **Mémoire RAM** : 2048 Mo (2 Go) +- **Swap** : 512 Mo +- **Stockage SSD** : 20 Go (sur `local-lvm`) +- **Démarrage automatique** : `onboot=1` + +--- + +## 3. Pile Logicielle & Services +- **Serveur Web** : Nginx (`nginx.service`) +- **Moteur PHP** : PHP 8.2 FPM (`php8.2-fpm.service`) +- **Base de Données** : MariaDB Server 10.11 (`mariadb.service`) + - Base : `pterodactyl` + - Utilisateur : `pterodactyl` + - Mot de passe de référence : `ForgiumPtero2026Secure` +- **Cache & Sessions** : Redis Server (`redis-server.service`) +- **File de Traitement Asynchrone** : `pteroq.service` (Worker Laravel Redis) +- **Cron Planificateur** : `* * * * * php /var/www/pterodactyl/artisan schedule:run` +- **Chemin de l'Application** : `/var/www/pterodactyl` +- **Fichier d'environnement** : `/var/www/pterodactyl/.env` + +--- + +## 4. Emplacements & Nœuds Rattachés +- **Location créée** : `DATACENTER` (Short Code: `FR-DC1`) +- **Nœud connecté** : `wings-node-01` (`192.168.1.52`) + +--- + +## 5. Commandes Utiles +```bash +# Vérifier l'état des 5 services critiques +pct exec 101 -- systemctl is-active nginx php8.2-fpm mariadb redis-server pteroq + +# Créer un nouvel utilisateur ou réinitialiser un mot de passe +pct exec 101 -- bash -c "cd /var/www/pterodactyl && php artisan p:user:make" + +# Consulter les logs d'erreurs Laravel +pct exec 101 -- tail -n 50 /var/www/pterodactyl/storage/logs/laravel-*.log +``` diff --git a/Idées/SERVEUR_ADMIN_102_WINGS_NODE.md b/Idées/SERVEUR_ADMIN_102_WINGS_NODE.md new file mode 100644 index 0000000..fd72d2b --- /dev/null +++ b/Idées/SERVEUR_ADMIN_102_WINGS_NODE.md @@ -0,0 +1,52 @@ +# Fiche Technique Machine Admin : CT 102 - Wings Node 01 + +*Rôle dans l'écosystème Forgium : Moteur d'exécution, isolation des serveurs de jeux et bots sous Docker, gestion des conteneurs clients.* + +--- + +## 1. Identité & Réseau +- **ID Conteneur** : `102` +- **Hostname** : `wings-node-01` +- **Type** : Conteneur LXC Debian 12 (Non-privilégié, `features: nesting=1,keyctl=1`) +- **Adresse IP Locale** : `192.168.1.52/24` +- **Passerelle** : `192.168.1.254` (Bbox) +- **Port Daemon API** : `8080` (TCP) +- **Port SFTP intégré** : `2022` (TCP) + +--- + +## 2. Ressources Matérielles Allouées +- **vCPU** : 4 cœurs (AMD Ryzen 7 3700X) +- **Mémoire RAM** : 4096 Mo (4 Go) - Déclaré à Pterodactyl : `3500 Mo` (0% overbooking) +- **Swap** : 1024 Mo +- **Stockage SSD** : 40 Go (sur `local-lvm`) - Déclaré à Pterodactyl : `35000 Mo` +- **Démarrage automatique** : `onboot=1` + +--- + +## 3. Pile Logicielle & Services +- **Moteur de conteneurisation** : Docker Engine 29.8+ (`docker.service`) +- **Démon d'orchestration** : Pterodactyl Wings v1.13.3 (`wings.service`) +- **Fichier de configuration** : `/etc/pterodactyl/config.yml` +- **Dossier des données serveurs de jeux** : `/var/lib/pterodactyl/volumes` + +--- + +## 4. Allocations Réseau & Serveurs Actifs +- **Plage de ports disponibles** : `25565-25585` (Alias WAN : `31.37.87.78`) +- **Serveurs de jeux en cours d'exécution** : + - `Forgium-Test-01` : Minecraft PaperMC (Port `25565`, 1 Go RAM, 1 vCPU, 2 Go SSD) - Statut : Opérationnel. + +--- + +## 5. Commandes Utiles +```bash +# Vérifier l'état de Wings et Docker +pct exec 102 -- systemctl status wings docker + +# Voir la liste des conteneurs Docker de jeux en cours d'exécution +pct exec 102 -- docker ps + +# Consulter les journaux d'activité en temps réel de Wings +pct exec 102 -- journalctl -u wings -f +``` diff --git a/Idées/SERVEUR_ADMIN_104_MONITORING.md b/Idées/SERVEUR_ADMIN_104_MONITORING.md new file mode 100644 index 0000000..6cc7169 --- /dev/null +++ b/Idées/SERVEUR_ADMIN_104_MONITORING.md @@ -0,0 +1,54 @@ +# Fiche Technique Machine Admin : CT 104 - Monitoring Stack (Uptime Kuma) + +*Rôle dans l'écosystème Forgium : Supervision de santé en temps réel, télémétrie des services, alertes de pannes et statut de disponibilité.* + +--- + +## 1. Identité & Réseau +- **ID Conteneur** : `104` +- **Hostname** : `monitoring-stack` +- **Type** : Conteneur LXC Debian 12 (Non-privilégié) +- **Adresse IP Locale** : `192.168.1.54/24` +- **Passerelle** : `192.168.1.254` (Bbox) +- **Accès Web Direct** : `http://192.168.1.54:3001` +- **Base de Données** : SQLite intégrée (ultra légère et résiliente) + +--- + +## 2. Ressources Matérielles Allouées +- **vCPU** : 1 cœur +- **Mémoire RAM** : 1024 Mo (1 Go) +- **Swap** : 512 Mo +- **Stockage SSD** : 10 Go (sur `local-lvm`) +- **Démarrage automatique** : `onboot=1` + +--- + +## 3. Pile Logicielle & Services +- **Runtime** : Node.js 20 LTS + npm +- **Application** : Uptime Kuma (`/opt/uptime-kuma`) +- **Service systemd** : `uptime-kuma.service` + +--- + +## 4. Sondes de Surveillance Actives +| Nom de la Sonde | Type de Test | Cible | Fréquence | Statut Actuel | +| :--- | :--- | :--- | :--- | :--- | +| **Pterodactyl Panel** | HTTP(s) | `http://192.168.1.51` | 20 sec | 🟢 En ligne (100%) | +| **Wings Node 01** | HTTP(s) (Codes 200-299, 401) | `http://192.168.1.52:8080` | 20 sec | 🟢 En ligne (100%) | +| **Minecraft Test Server** | TCP / Ping Minecraft | `192.168.1.52:25565` | 20 sec | 🟢 En ligne (100%) | +| **Reverse Proxy Caddy** | HTTP(s) | `http://192.168.1.50` | 20 sec | 🟢 En ligne (100%) | + +--- + +## 5. Commandes Utiles +```bash +# Vérifier l'état du service de monitoring +pct exec 104 -- systemctl status uptime-kuma + +# Redémarrer Uptime Kuma +pct exec 104 -- systemctl restart uptime-kuma + +# Consulter les logs de l'application +pct exec 104 -- journalctl -u uptime-kuma -n 50 --no-pager +``` diff --git a/Idées/SERVEUR_ADMIN_106_FORGE_SHIELD.md b/Idées/SERVEUR_ADMIN_106_FORGE_SHIELD.md new file mode 100644 index 0000000..f2ce6e3 --- /dev/null +++ b/Idées/SERVEUR_ADMIN_106_FORGE_SHIELD.md @@ -0,0 +1,49 @@ +# Fiche Technique Machine Admin : CT 106 - Forge Shield (Pare-feu & Fail2ban Dédié) + +*Rôle dans l'écosystème Forgium : Bouclier de sécurité modulaire, analyse de trafic, bannissement automatique d'attaquants (Fail2ban), pare-feu logiciel et futur moteur eBPF/XDP. Conçu pour être remplaçable sans aucune modification dès l'acquisition d'un équipement matériel pro (pfSense/OPNsense physique).* + +--- + +## 1. Identité & Réseau +- **ID Conteneur** : `106` +- **Hostname** : `forge-shield` +- **Type** : Conteneur LXC Debian 12 (Non-privilégié, `features: nesting=1`) +- **Adresse IP Locale** : `192.168.1.56/24` +- **Passerelle** : `192.168.1.254` (Bbox) + +--- + +## 2. Ressources Matérielles Allouées +- **vCPU** : 2 cœurs +- **Mémoire RAM** : 1024 Mo (1 Go) +- **Swap** : 512 Mo +- **Stockage SSD** : 8 Go (sur `local-lvm`) +- **Démarrage automatique** : `onboot=1` + +--- + +## 3. Pile Logicielle & Rôles +- **Filtrage Réseau** : `nftables` / `iptables` +- **Protection Brute-Force** : `fail2ban` (Jails SSH, HTTP, et DoS) +- **Analyse des journaux d'attaques** : Logs centralisés des tentatives d'intrusion +- **Évolution prévue** : Injection du pilote eBPF/XDP pour destruction des paquets malveillants à l'échelle de la nanoseconde + +--- + +## 4. Modularité Hardware (Règle d'Or Forgium) +> [!NOTE] +> Cette machine est une **appliance virtuelle temporaire/transitionnelle**. Le jour où un routeur/firewall matériel dédié (type mini-PC 4x 2.5G Intel i226 sous pfSense) est branché entre la Bbox et le serveur, ce conteneur 106 peut être éteint ou archivé en 1 clic sans toucher aux conteneurs de production (100, 101, 102). + +--- + +## 5. Commandes Utiles +```bash +# Vérifier l'état de Fail2ban et les prisons actives +pct exec 106 -- fail2ban-client status + +# Voir la liste des IPs actuellement bannies +pct exec 106 -- fail2ban-client status sshd + +# Consulter le journal des attaques en direct +pct exec 106 -- tail -f /var/log/fail2ban.log +``` diff --git a/Idées/SERVEUR_ADMIN_107_GIT_FORGE.md b/Idées/SERVEUR_ADMIN_107_GIT_FORGE.md new file mode 100644 index 0000000..32f87fa --- /dev/null +++ b/Idées/SERVEUR_ADMIN_107_GIT_FORGE.md @@ -0,0 +1,43 @@ +# Fiche Technique Machine Admin : CT 107 - Git Forge (Gitea / Forgejo) + +*Rôle dans l'écosystème Forgium : Serveur Git souverain 100% auto-hébergé, gestionnaire de code source privé, webhooks de déploiement automatique vers Caddy/Pterodactyl.* + +--- + +## 1. Identité & Réseau +- **ID Conteneur** : `107` +- **Hostname** : `git-forge` +- **Type** : Conteneur LXC Debian 12 (Non-privilégié) +- **Adresse IP Locale** : `192.168.1.57/24` +- **Passerelle** : `192.168.1.254` (Bbox) +- **URL Publique Prévue** : `https://git.forgium.fr` +- **Port Web Interne** : `3000` (TCP) +- **Port SSH Git** : `2222` (TCP) + +--- + +## 2. Ressources Matérielles Allouées +- **vCPU** : 1 cœur +- **Mémoire RAM** : 1024 Mo (1 Go) +- **Swap** : 512 Mo +- **Stockage SSD** : 10 Go (sur `local-lvm`) +- **Démarrage automatique** : `onboot=1` + +--- + +## 3. Pile Logicielle & Rôles +- **Moteur** : Forgejo / Gitea (binaire Go ultra-léger et rapide, < 100 Mo de RAM) +- **Base de Données** : SQLite intégrée +- **Service systemd** : `forgejo.service` +- **Fonctionnalités** : Repositories illimités, commits signés, webhooks automatiques, intégration VSCode native via Git. + +--- + +## 4. Commandes Utiles +```bash +# Vérifier l'état du serveur Git +pct exec 107 -- systemctl status forgejo + +# Consulter les journaux de Forgejo +pct exec 107 -- journalctl -u forgejo -n 50 --no-pager +``` diff --git a/Idées/emploi_du_temps.html b/Idées/emploi_du_temps.html new file mode 100644 index 0000000..9b560f0 --- /dev/null +++ b/Idées/emploi_du_temps.html @@ -0,0 +1,1403 @@ + + + + + + Forgium Calendar | Emploi du Temps 7J / 24H (Q1 & Q2) + + + + + + + + + + +
+
+
FG
+
+
FORGIUM CALENDAR
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+
+ 📅 + +
+
+
+ Format : + 7 Jours / 24 Heures +
+
+ Créneaux programmés : + 0 +
+
+
+ +
+ + +
+
HEURE
+
Lundi
+
Mardi
+
Mercredi
+
Jeudi
+
Vendredi
+
Samedi
+
Dimanche
+
+ + +
+
+ +
+
+
+
+
+
+
+
+ +
+
+ + + + +
Action effectuée
+ + + + +