Un serveur web minimaliste et extensible pour l'hébergement de sites statiques multiples avec une configuration simple en JSON.
Weblet est un serveur web léger et flexible conçu pour simplifier l'hébergement de plusieurs sites statiques. Que vous ayez des builds React, Vue, Nuxt ou de simples pages HTML, Weblet vous permet de les servir facilement, à la manière d'Apache ou Nginx, mais en utilisant le framework HTTP ultra-rapide Polka et une configuration intuitive basée sur un fichier JSON. Il est idéal pour le développement local, les démonstrations ou le déploiement de petits projets statiques avec une empreinte minimale.
- Minimaliste et Léger : Conçu pour être rapide et consommer peu de ressources.
- Hébergement Multi-sites : Gérez et servez plusieurs sites statiques à partir d'une seule instance de Weblet.
- Support des Builds de Frameworks : Compatible avec les dossiers de build générés par React, Vue, Nuxt, Svelte, Angular, et tout autre site statique.
- Configuration Simple : Définissez vos sites et leurs chemins via un fichier JSON clair et facile à modifier.
- Basé sur Polka : Profite de la performance et de la simplicité de Polka pour des requêtes HTTP rapides.
- Facile à Déployer : Pas de configuration complexe de serveur, juste un fichier JSON et une commande
npm start
.
Pour commencer avec Weblet, suivez ces étapes :
Assurez-vous d'avoir Node.js (version 14 ou supérieure recommandée) et npm
ou yarn
installés sur votre machine.
-
Clonez le dépôt :
git clone https://github.com/YuketsuSh/Weblet.git
-
Naviguez vers le répertoire du projet :
cd Weblet
-
Installez les dépendances :
npm install # ou yarn install
Le fichier server.js
lit le fichier cfg/sites.json
et démarre un serveur Polka pour chaque site configuré.
node server.js
✅ Site "velyorix" lancé sur http://localhost:9965
✅ Site "nexus" lancé sur http://localhost:9774
Lance l’outil de gestion de sites Weblet :
node manager.js
Tu entreras dans un shell personnalisé :
🌐 Webhost CLI – Gestionnaire de sites
webhost> create monsite sites/monsite 8080
webhost> list
webhost> update monsite 9090 sites/autre-dossier
webhost> health monsite
webhost> delete monsite
webhost> exit
[
{
"name": "velyorix",
"directory": "sites/velyorix",
"port": 9965
},
{
"name": "othersite",
"directory": "sites/othersite",
"port": 9774
}
]
Commande | Description |
---|---|
create <nom> <path> <port> |
Crée un nouveau site |
update <nom> <port?> <path?> |
Modifie le port ou le chemin du site |
delete <nom> |
Supprime un site |
list |
Affiche la liste des sites |
`ui <on | off>` |
adduser <nom> <motdepasse> |
Ajouter un utilisateur |
removeuser <nom> |
Supprimer un utilisateur |
health <nom> |
Vérifie si un site est en ligne |
health-all |
Vérifie tous les sites |
help |
Affiche l'aide |
exit ou quit |
Ferme le CLI |
Weblet est construit avec les technologies suivantes :
- Node.js : Environnement d'exécution JavaScript côté serveur.
- Polka : Un framework HTTP minimaliste et ultra-rapide pour Node.js.
- JavaScript : Langage de programmation principal.
- JSON : Format de fichier pour la configuration.
- File System (fs) : Module Node.js pour l'interaction avec le système de fichiers.
- Path : Module Node.js pour la manipulation des chemins de fichiers.
Voici un aperçu simplifié de la structure des fichiers et dossiers de Weblet :
.
├── src/ # Code source principal de Weblet
│ ├── index.js # Point d'entrée du serveur Weblet
│ └── utils/ # Fichiers utilitaires (e.g., gestion de la configuration, service de fichiers)
├── config.json # Exemple de fichier de configuration pour vos sites
├── sites/ # Dossier où vous pouvez placer vos dossiers de build de sites statiques
│ ├── mon-app-react/
│ │ └── build/ # Ex: le dossier de build de votre app React
│ ├── mon-blog-vue/
│ │ └── dist/ # Ex: le dossier de build de votre app Vue
│ └── bienvenue-par-defaut/ # Ex: un site par défaut pour les requêtes non-appariées
├── package.json # Métadonnées du projet et dépendances
├── package-lock.json # Dépendances verrouillées
├── README.md # Ce fichier
└── .gitignore # Fichiers et dossiers à ignorer par Git
Weblet est un serveur de fichiers statiques, il ne propose donc pas d'API REST au sens traditionnel. Son "API" réside dans sa capacité à mapper des requêtes HTTP (basées sur le domaine et le chemin) à des fichiers locaux.
- Chaque
domain
défini dansconfig.json
agit comme un point d'entrée pour servir les fichiers depuis sonpath
associé. - Les requêtes sur le chemin racine (
/
) pour un domaine donné serviront le fichierindex.html
(ou le fichierindex
spécifié) dupath
configuré. - Les requêtes pour des chemins spécifiques (
/images/logo.png
) serviront directement le fichier correspondant dans le répertoire du site. - Si aucun domaine ne correspond à la requête entrante, et qu'un
defaultSite
est configuré, Weblet servira le contenu de ce site par défaut.
Nous encourageons les contributions à Weblet ! Si vous souhaitez contribuer, veuillez suivre ces étapes :
- Fork le dépôt sur GitHub.
- Clonez votre fork localement :
git clone https://github.com/YuketsuSh/Weblet.git
- Créez une branche pour votre fonctionnalité ou votre correction de bug :
git checkout -b feature/ma-super-fonctionnalite
oubugfix/corriger-un-bug
- Effectuez vos modifications et assurez-vous que tout fonctionne correctement.
- Commitez vos changements avec un message clair et descriptif :
git commit -m "feat: Ajout de la fonctionnalité X"
- Poussez vos changements vers votre fork :
git push origin feature/ma-super-fonctionnalite
- Ouvrez une Pull Request sur le dépôt original de Weblet, en décrivant vos changements.
Veuillez également vous assurer de suivre les bonnes pratiques de codage et d'inclure des tests si vos modifications le justifient.
Ce projet est sous licence MIT. Vous pouvez trouver plus de détails dans le fichier LICENSE à la racine du dépôt.