Ce setup multi-client est orienté développement et n'utilise pas l'image Docker Hub frappe/erpnext.
Principe:
- image locale buildée depuis ce repo (
Dockerfile) - code
frappe/erpnextcloné en Git dansclients/<client>/data/apps - stack compose explicite (backend, websocket, workers, scheduler, db, redis)
./client: CLI Bash./Dockerfile: image dev locale Frappe (bench)clients/<nom>/: environnement client (.env,docker-compose.yml,data/*)templates/docker-compose.client.yml: template compose
- Docker + plugin Docker Compose (
docker compose) - Git
- Bash
# 1) Créer un client (branche Frappe/ERPNext)
# -> clone apps, build, up, mapping hosts, create site automatiquement
./client create acme version-15 8080 acme.local
# 2) URL
./client url acme./client list
./client ui [port]
./client create <client> [frappe_branch] [http_port] [site_name]
./client host-map <client>
./client up <client>
./client down <client>
./client delete <client>
./client restart <client>
./client status [client]
./client logs <client> [service]
./client shell <client>
./client site-create <client>
./client restore <client> <backup_sql_gz> [site_name]
./client app-list <client>
./client app-get <client> <repo_url> [branch]
./client app-install <client> <app_name>
./client app-get-install <client> <repo_url> [branch] [app_name]
./client bench-update <client> [bench_update_args...]
./client fix-perms <client>
./client url <client>./client uiPuis ouvrir http://127.0.0.1:8099.
La première version permet de:
- lister les clients et leur état Docker
- ouvrir rapidement une instance
- créer un client
- lancer les actions courantes (
up,down,restart,site-create,host-map,fix-perms) - suivre les logs d'exécution des commandes déclenchées depuis l'interface
version-15/v15/15sont normalisés versversion-15pour le clone Git../client createdémarre automatiquement la stack et initialise le site ERPNext../client up <client>fait le build/démarrage sans recréer le site (utilisersite-createsi besoin)../client bench-update <client>force par défaut--reset --no-backup(sauf si déjà fournis).- Le script attend la disponibilité du backend et affiche la progression pendant le démarrage.
- Le backend est exposé directement sur
http://localhost:<port>.