Actualiser README.md
Deploy Nexus Portal to HestiaCP (FTP) / build-and-deploy (push) Successful in 15s
Deploy Nexus Portal to HestiaCP (FTP) / build-and-deploy (push) Successful in 15s
This commit is contained in:
@@ -1,16 +1,74 @@
|
|||||||
# React + Vite
|
# 🛡️ GISE Nexus - Portail d'Infrastructure
|
||||||
|
|
||||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
> **Portail d'administration Headless et d'orchestration unifiée pour l'infrastructure GISE (Bunker).**
|
||||||
|
|
||||||
Currently, two official plugins are available:
|
Ce dépôt contient le code source Frontend (React/Vite) du portail central **Nexus** (`console.gise.be`). Il agit en tant qu'interface cliente et communique avec un orchestrateur backend (PHP) pour automatiser le déploiement des services clients sur une architecture "Bare-Metal" locale (HestiaCP).
|
||||||
|
|
||||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
|
---
|
||||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
|
|
||||||
|
|
||||||
## React Compiler
|
## 🏗️ Architecture du Bunker
|
||||||
|
|
||||||
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
L'application repose sur un modèle "Headless" et un provisionnement en cascade :
|
||||||
|
|
||||||
## Expanding the ESLint configuration
|
- **Frontend :** React + Vite (Interface utilisateur, formulaires d'inscription/connexion).
|
||||||
|
- **Orchestrateur (Backend) :** Script PHP personnalisé hébergé sur HestiaCP.
|
||||||
|
- **Services Connectés :**
|
||||||
|
- 💳 **FOSSBilling :** Gestion client, facturation et authentification principale.
|
||||||
|
- ⚙️ **HestiaCP :** Panneau de contrôle d'hébergement web (API Legacy via Access Keys).
|
||||||
|
- ☁️ **Nextcloud :** Stockage cloud et espace de travail collaboratif.
|
||||||
|
|
||||||
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
|
---
|
||||||
|
|
||||||
|
## ✨ Fonctionnalités Principales
|
||||||
|
|
||||||
|
* **Provisionnement Triple Unifié :** Création simultanée et transparente d'un compte utilisateur sur FOSSBilling, HestiaCP et Nextcloud depuis un seul formulaire.
|
||||||
|
* **Sécurité Anti-Spam :** Interfaçage avec le pare-feu applicatif de FOSSBilling (Rate Limiting).
|
||||||
|
* **Déploiement Continu (CI/CD) :** Automatisation complète via Gitea Actions et transfert FTP chrooté.
|
||||||
|
* **Design "Terminal" :** Interface utilisateur sombre, minimaliste et orientée SysAdmin.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Installation & Développement Local
|
||||||
|
|
||||||
|
### Prérequis
|
||||||
|
* Node.js (v20 ou supérieur)
|
||||||
|
* Accès au réseau local "Bunker" (`10.10.40.X`) pour la communication API.
|
||||||
|
|
||||||
|
### Démarrage
|
||||||
|
1. Cloner le dépôt :
|
||||||
|
```bash
|
||||||
|
git clone https://git.bunker.lan/gise/nexus-portal.git
|
||||||
|
cd nexus-portal
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Installer les dépendances :
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
3. Lancer le serveur de développement :
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Déploiement Automatisé (CI/CD)
|
||||||
|
Le projet intègre un pipeline de déploiement continu via Gitea Actions. À chaque `git push` sur la branche `master`, le runner Gitea compile le code source et le déploie directement sur le serveur HestiaCP de production.
|
||||||
|
|
||||||
|
### Variables secrètes requises (Gitea Secrets)
|
||||||
|
Pour que le workflow `.gitea/workflows/deploy.yml` fonctionne, les secrets suivants doivent être configurés dans les paramètres du dépôt :
|
||||||
|
|Secret|Description|Exemple|
|
||||||
|
|-|-|-|
|
||||||
|
|`FTP_USER`|Utilisateur FTP (chrooté dans `public_html`)|`admin_nexus`|
|
||||||
|
|`FTP_PASSWORD`|Mot de passe de l'utilisateur FTP|`********`|
|
||||||
|
|`FTP_SERVER`|IP locale du serveur HestiaCP cible|`10.10.40.12`|
|
||||||
|
|
||||||
|
⚠️ Note SysAdmin : L'utilisateur FTP sur HestiaCP doit être configuré avec un chemin (Path) personnalisé pointant explicitement sur `public_html` pour éviter que le script `lftp` ne tente d'écraser les dossiers système du serveur.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##🔒 Notes de Sécurité (SysAdmin)
|
||||||
|
1. Bypass CSRF FOSSBilling : En raison de l'architecture Headless (React sur le port 5173, API sur port 80/443), la protection stricte `CSRFPrevention` de FOSSBilling est désactivée. La sécurité repose intégralement sur les cookies de session (`credentials: 'include'`).
|
||||||
|
2. Clés API HestiaCP : L'orchestrateur PHP utilise le format Hash (`ACCESS_KEY_ID:SECRET_KEY`) pour s'authentifier auprès de l'API Hestia. La clé est verrouillée par liste blanche IP (`10.10.40.12`, `127.0.0.1`).
|
||||||
|
|
||||||
|
*Maintenu par l'équipe d'Ingénierie GISE - 2026*
|
||||||
Reference in New Issue
Block a user