136 lines
6.9 KiB
Markdown
136 lines
6.9 KiB
Markdown
---
|
|
title: Compose Craft
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, docker, docker-compose, editeur, partage, typescript, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/composecraft/composecraft]
|
|
---
|
|
|
|
# 🐳 Compose Craft
|
|
|
|
> **L'éditeur collaboratif de `docker-compose.yml`** : Compose Craft propose un éditeur visuel (drag & drop de services) et un mode texte avec validation, autocomplétion et templates prêts à l'emploi. Idéal pour les nouveaux venus à Docker Compose.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | (GitHub) |
|
|
| **GitHub** | [composecraft/composecraft](https://github.com/composecraft/composecraft) |
|
|
| **License** | MIT |
|
|
| **Langage** | TypeScript / Svelte |
|
|
| **Étoiles GitHub** | 1023 ⭐ |
|
|
| **Dernière MAJ** | 2026-05-15 |
|
|
| **Catégorie** | [[cat-docker\|Docker]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Compose Craft** est un **éditeur web de fichiers `docker-compose.yml`** avec deux modes complémentaires : un **mode texte** (Monaco Editor — le même que VS Code) avec validation YAML, autocomplétion des clés Compose, et un **mode visuel** où l'on drag & drop des services depuis un catalogue de templates. Le tout produit un `docker-compose.yml` valide, téléchargeable ou partageable via lien.
|
|
|
|
L'idée : combler le fossé entre « je ne connais rien à Compose, je copie-colle un template » et « je sais écrire un YAML à la main ». Compose Craft est **l'assistant qui aide à monter en compétence**, pas un outil de production.
|
|
|
|
- ✅ **Éditeur Monaco** : coloration syntaxique, validation, formatage (le même moteur que VS Code)
|
|
- ✅ **Mode visuel** : drag & drop de services depuis un catalogue, configuration par formulaires
|
|
- ✅ **Templates** : 200+ stacks prêts à l'emploi (Nextcloud, Jellyfin, Gitea, Vaultwarden, Immich…)
|
|
- ✅ **Validation** : indique en temps réel les erreurs de syntaxe, les champs requis manquants
|
|
- ✅ **Partage** : génère un lien partageable (encode le YAML en base64) — pratique pour demander de l'aide
|
|
- ✅ **Import** : colle un `docker-compose.yml` existant, l'UI le parse et le rend éditable
|
|
- ✅ **Export** : télécharge en `.yml`, en `.env` (variables d'env), ou copie dans le presse-papier
|
|
- ✅ **Schéma Compose à jour** : intègre la spécification Compose v2.x
|
|
|
|
**Compose Craft vs [[app-dockge|Dockge]]** : Dockge est un *gestionnaire de stacks* (déjà déployés) ; Compose Craft est un *éditeur de fichiers* (à déployer). Compose Craft vs **VS Code + extension Docker** : VS Code est plus puissant, mais demande d'installer une extension et de connaître la syntaxe. Compose Craft vs **composerize** (CLI) : composerize convertit une commande `docker run` en YAML ; Compose Craft fait le tour de propriétaire.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
compose-craft:
|
|
image: ghcr.io/composecraft/composecraft:latest
|
|
container_name: compose-craft
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3030:3000" # Web UI
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
- PUBLIC_URL=https://compose.example.com
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.compose-craft.rule=Host(`compose.example.com`)"
|
|
- "traefik.http.routers.compose-craft.entrypoints=websecure"
|
|
- "traefik.http.routers.compose-craft.tls.certresolver=letsencrypt"
|
|
```
|
|
|
|
> **Pas de socket Docker requis** : Compose Craft n'agit pas sur vos conteneurs, il *génère* des fichiers. C'est un outil de conception, pas d'exécution.
|
|
|
|
### Standalone (Node.js)
|
|
|
|
```bash
|
|
git clone https://github.com/composecraft/composecraft.git
|
|
cd composecraft && pnpm install && pnpm build
|
|
pnpm start
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Lancer Compose Craft** : `docker compose up -d`
|
|
2. **Accéder à l'UI** : `http://IP:3030` — aucune authentification par défaut, l'app ne touche pas au système
|
|
3. **Choisir un mode** : « Visual » pour les débutants, « Code » pour les confirmés
|
|
4. **Tester un template** : cliquer sur « Templates » > choisir « Nextcloud » > examiner le YAML généré
|
|
5. **Importer votre `docker-compose.yml` existant** : bouton « Import » > coller > l'UI le rend éditable
|
|
6. **Partager une stack** : cliquer sur « Share » > copier le lien > le destinataire ouvre la même stack dans son instance
|
|
7. **Exporter** : bouton « Download » > choisir `.yml` seul ou bundle complet avec `.env.example`
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- **composerize / decomposerize** (CLI) — conversion `docker run` ↔ `docker-compose.yml`
|
|
- **VS Code + extension Docker** — éditeur généraliste + extension
|
|
- [[app-dock-dploy|Dock-Dploy]] — éditeur visuel similaire
|
|
- **Portainer Stacks editor** — intégré à [[app-portainer|Portainer]]
|
|
- **Diagrams.net (draw.io) + plugin Docker** — schémas, pas de YAML
|
|
|
|
### Comparaison Compose Craft vs alternatives
|
|
|
|
| Critère | Compose Craft | composerize | VS Code | Dock-Dploy |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| Mode visuel | ✅ | ❌ | ❌ | ✅ |
|
|
| Mode code | ✅ (Monaco) | ❌ | ✅ | ❌ |
|
|
| Templates | 200+ | 0 (input only) | 0 | 50+ |
|
|
| Validation | ✅ | ❌ | ✅ (extension) | ✅ |
|
|
| Partage lien | ✅ | ❌ | ❌ (snippet) | ❌ |
|
|
| Setup | 2 min | 1 min | 10 min | 5 min |
|
|
|
|
**Verdict** : Compose Craft est **le meilleur outil pédagogique** pour apprendre Compose, et **un excellent partageur de stacks** (les liens partagés sont un killer feature). Pour de l'édition quotidienne en local, VS Code reste le must. Pour du « one-shot », Compose Craft est imbattable.
|
|
|
|
### Propriétaires (ce que Compose Craft remplace)
|
|
- **Cloud 66 Compose** (UI cloud, payant)
|
|
- **Portainer Business stack templates** (payant)
|
|
- **Divio Cloud** (orienté devs, payant)
|
|
- **AWS App Runner** (propriétaire, pas d'auto-hébergé)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- ✅ **Pas de socket Docker** : Compose Craft n'a **aucun accès** à votre système, c'est un outil isolé — c'est un gros avantage sécurité
|
|
- **Mode public** : si l'UI est exposée sur Internet, n'importe qui peut l'utiliser pour générer des stacks. Ce n'est pas un risque pour votre infra, mais cela consomme des ressources
|
|
- **Liens partagés** : le YAML est encodé en base64 dans l'URL, donc **non chiffré**. Ne partagez pas de stacks contenant des secrets (tokens, mots de passe)
|
|
- **Pas de persistance sensible** : Compose Craft ne stocke rien côté serveur (stateless)
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub composecraft/composecraft](https://github.com/composecraft/composecraft)
|
|
- [Démo en ligne](https://demo.composecraft.app/)
|
|
- [Galerie de templates](https://github.com/composecraft/composecraft/tree/main/templates)
|
|
|
|
## Pages Liées
|
|
- [[cat-docker]] — Catégorie Docker
|
|
- [[app-portainer]] / [[app-dockge]] / [[app-yacht]] — GUI Docker
|
|
- [[app-traefik]] — Reverse-proxy
|
|
- [[recettes-docker-compose]] — Compose files prêts à l'emploi
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|