https://github.com/julienhmmt/pvmss
PVMSS is a lightweight, self-service web portal for Proxmox Virtual Environment. It allows users to create and manage virtual machines without needing direct access to the Proxmox web UI.
https://github.com/julienhmmt/pvmss
docker docker-image kubernetes kubernetes-deployment proxmox proxmox-apis proxmox-ve
Last synced: 8 months ago
JSON representation
PVMSS is a lightweight, self-service web portal for Proxmox Virtual Environment. It allows users to create and manage virtual machines without needing direct access to the Proxmox web UI.
- Host: GitHub
- URL: https://github.com/julienhmmt/pvmss
- Owner: julienhmmt
- License: other
- Created: 2025-07-13T10:31:59.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-10-25T21:39:04.000Z (8 months ago)
- Last Synced: 2025-10-25T22:07:41.792Z (8 months ago)
- Topics: docker, docker-image, kubernetes, kubernetes-deployment, proxmox, proxmox-apis, proxmox-ve
- Language: JavaScript
- Homepage: https://j.hommet.net/pvmss
- Size: 186 MB
- Stars: 10
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.fr.md
Awesome Lists containing this project
README
# Proxmox VM Self-Service (PVMSS)
[](https://github.com/julienhmmt/pvmss/actions/workflows/lint.yml)
Version anglaise : [README.md](README.md)
PVMSS est un portail web léger et en libre-service pour Proxmox Virtual Environment (PVE). Il permet aux utilisateurs de créer et de gérer des machines virtuelles (VM) sans avoir besoin d'un accès direct à l'interface web de Proxmox. L'application est conçue pour être simple, rapide et facile à déployer en tant que conteneur Docker.
⚠️ L'application est actuellement en version de développement et présente des limites, listées en bas de page.
## Fonctionnalités
### Pour les utilisateurs
- **Créer une VM** : Créer une nouvelle machine virtuelle avec des ressources personnalisables (CPU, RAM, stockage).
- **Accès console VM** : Accès console noVNC direct aux machines virtuelles via un client VNC web intégré.
- **Gestion des VM** : Démarrer, arrêter, redémarrer et supprimer des machines virtuelles.
- **Recherche de VM** : Trouver des machines virtuelles par VMID ou son nom.
- **Détails des VM** : Afficher les informations complètes des VM incluant le statut, la description, l'uptime, CPU, mémoire, utilisation disque et configuration réseau.
- **Gestion du profil** : Consulter et gérer ses propres VM, réinitialiser son mot de passe.
- **Multi-langue** : L'interface est disponible en anglais et en français avec détection automatique de la langue.
### Pour les administrateurs
- **Gestion des nœuds** : Configurer et gérer les nœuds Proxmox disponibles pour le déploiement de VM.
- **Gestion du pool d'utilisateurs** : Ajouter ou supprimer des utilisateurs avec génération automatique de mots de passe.
- **Gestion des tags** : Créer et gérer des tags pour l'organisation des VM.
- **Gestion des ISO** : Configurer les images ISO disponibles pour l'installation de VM.
- **Configuration réseau** : Gérer les ponts réseau disponibles (VMBRs) pour le réseau des VM.
- **Gestion du stockage** : Configurer les emplacements de stockage pour les disques des VM.
- **Limites de ressources** : Définir les limites de CPU, RAM et disque pour la création de VM.
- **Documentation** : Documentation utilisateur intégrée accessible depuis le panneau d'administration.
## Démarrage
Suivez ces instructions pour lancer PVMSS localement avec Docker.
### Prérequis
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
### 1. Configurer les variables d'environnement
Vous pouvez utiliser le fichier d'exemple fourni `env.example` pour créer votre propre fichier `.env`. Ou vous pouvez modifier le fichier d'exemple directement.
**Configuration :**
- `ADMIN_PASSWORD_HASH` : Un hash bcrypt du mot de passe pour le panneau d'administration. Vous pouvez en générer un à l'aide d'un outil en ligne ou d'un script simple.
- `LOG_LEVEL` : Définir le niveau de log de l'application : `INFO` ou `DEBUG` (par défaut : `INFO`).
- `PROXMOX_API_TOKEN_NAME` : Le nom de votre token API Proxmox pour les opérations backend (ex : `user@pve!token`).
- `PROXMOX_API_TOKEN_VALUE` : La valeur secrète de votre token API.
- `PROXMOX_URL` : L'URL complète vers votre endpoint API Proxmox (ex : `https://proxmox.example.com:8006/api2/json`).
- `PROXMOX_VERIFY_SSL` : Définir à `false` si vous utilisez un certificat auto-signé sur Proxmox (par défaut : `false`).
- `PVMSS_OFFLINE` : Définir à `true` pour activer le mode déconnecté (désactive tous les appels API Proxmox). Utile pour le développement ou lorsque Proxmox n'est pas disponible (par défaut : `false`).
- `SESSION_SECRET` : Clé secrète pour le chiffrement des sessions (changez pour une chaîne aléatoire unique, par exemple `$ openssl rand -hex 32`).
### 2. Lancer le conteneur
Avec Docker en cours d'exécution, exécutez la commande suivante depuis la racine du projet :
```bash
# Démarrer le conteneur en mode détaché
docker compose up -d
```
Ou lancez le conteneur avec `docker run` :
```bash
docker run -d \
--name pvmss \
--restart unless-stopped \
-p 50000:50000 \
-v $(pwd)/backend/settings.json:/app/settings.json \
-e ADMIN_PASSWORD_HASH="$2y$10$Ppg7Wl3sNYrmxZmWgcq4reOyznt7AeqMrQucaH4HY.dBrzavhPP1e" \
-e LOG_LEVEL=INFO \
-e PROXMOX_API_TOKEN_NAME="tokenName@changeMe!value" \
-e PROXMOX_API_TOKEN_VALUE="aaaaaaaa-0000-44aa-1111-aaaaaaaaaaa" \
-e PROXMOX_URL=https://ip-or-name:8006/api2/json \
-e PROXMOX_VERIFY_SSL=false \
-e SESSION_SECRET="$(openssl rand -hex 32)" \
-e TZ=Europe/Paris \
jhmmt/pvmss:0.1
```
L'application sera disponible à l'adresse [http://localhost:50000](http://localhost:50000).
### 3. Consulter les logs
Pour voir les logs de l'application, exécutez :
```bash
docker compose logs -f pvmss
```
## Architecture
PVMSS suit une architecture client-serveur moderne avec des fonctionnalités avancées :
- **Backend** : Une application Go qui sert l'interface web et communique avec l'API Proxmox. Elle gère toute la logique métier, y compris l'authentification, les opérations VM, le rendu des templates et la fonctionnalité de proxy console.
- **Frontend** : HTML, CSS et JavaScript minimal standards. Utilise le [framework CSS Bulma](https://bulma.io/) pour un design propre et responsive avec noVNC intégré pour l'accès console.
- **Accès console** : Intégration noVNC intégrée avec proxy basé sur les sessions pour un accès console VM transparent, supportant les déploiements HTTP et HTTPS.
- **Gestion d'état** : Gestion d'état thread-safe avec injection de dépendances pour une opération robuste.
- **Conteneurisation** : L'application entière est empaquetée et déployée en tant que conteneur Docker unique.
## Limitations
- L'application est conçue pour être utilisée en tant que conteneur Docker unique.
- Seulement un seul hôte Proxmox est supporté (hors cluster).
- Il n'y a pas eu de tests rigoureux de sécurité, attention lors du déploiement.
- Pas de support de Cloud-Init.
## Licence
PVMSS © 2025 by Julien HOMMET is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International. To view a copy of this license, visit .