- PHP 66.4%
- JavaScript 32.9%
- Dockerfile 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| api | ||
| assets | ||
| src | ||
| storage | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| compose.yaml | ||
| composer.json | ||
| composer.lock | ||
| Dockerfile | ||
| index.php | ||
| README.md | ||
ComposePilot
ComposePilot est un générateur visuel léger de fichiers Docker Compose. Il utilise PHP 8.2, Symfony YAML, du JavaScript vanilla et du CSS maison. Il ne se connecte pas au daemon Docker.
Développement
Prérequis : PHP 8.2+ et Composer.
composer install
php -S 127.0.0.1:8080
Ouvrez ensuite http://127.0.0.1:8080.
Docker
docker compose up -d --build
L’application est accessible sur http://localhost:8080. Aucun socket Docker n’est monté.
Tests
composer test
Les tests couvrent les réseaux Proxy, Database et Host, les labels Watchtower/KiwiNetwork, les chaînes d’environnement, la déduplication des réseaux globaux, le cas de référence ainsi que la conservation des propriétés importées inconnues.
Structure
index.php: page unique de l’application ;assets/: interface vanilla JS/CSS ;api/generate.phpetapi/import.php: endpoints JSON ;src/ComposeBuilder.php: construction du tableau Compose ;src/ComposeValidator.php: validation métier ;src/ComposeParser.php: import vers le modèle ComposePilot ;tests/run.php: tests autonomes, sans framework additionnel.
Le navigateur conserve automatiquement le projet et le thème dans localStorage. Les propriétés inconnues d’un service importé sont stockées dans extraProperties puis réexportées.
Les projets enregistrés depuis « Mes projets » sont conservés côté serveur dans storage/projects. En Docker, ce dossier utilise le volume persistant composepilot_data.
Déploiement SSH et Portainer
Copiez .env.example vers .env, renseignez les accès puis montez la clé SSH avec COMPOSEPILOT_SSH_KEY_HOST_PATH. Le bouton Déployer :
- valide à nouveau le projet côté serveur ;
- crée le dossier de la stack et les sources de volumes sous
COMPOSEPILOT_DEPLOY_ROOTvia SSH ; - sauvegarde l’ancien fichier sous
compose.YYYYMMDD-HHMMSS.yamlpuis écritcompose.yaml; - crée la stack Docker Standalone dans Portainer, ou la met à jour si elle existe déjà.
Les secrets restent dans .env, exclu de Git. Utilisez un utilisateur SSH et une clé API Portainer limités au strict nécessaire. Activez COMPOSEPILOT_PORTAINER_VERIFY_TLS=true dès que Portainer utilise un certificat reconnu.