Deploy is an installable Frappe app that adds a Desk control panel for managing Frappe applications on self-hosted benches.
It provides a graphical app marketplace workflow inside Frappe: browse apps, review compatibility and policy checks, select a deployment profile/site, start a guarded install, view progress logs, roll back, and keep an audit trail.
- Desk page titled Deploy at
/app/app-store - Marketplace-style app catalog
- Seeded catalog snapshot from the official Frappe Cloud Marketplace
- Deployment profiles for Bench, Docker Compose, Kubernetes, remote hosts, and custom adapters
- Site selector per deployment profile
- One-click guarded install/update request for apps with a configured source repository
- Real Bench execution for the local
Production Benchprofile: backup,bench get-app,bench install-app, asset build, migrate, and install verification - Compatibility and policy gating for blocked apps
- Persistent deployment records
- Persistent audit logs
- Progress and sanitized log display
- Rollback workflow placeholder
- Frappe Framework v15 or newer
- Bench
- A Frappe site where you have
System Manageraccess
From your bench directory:
bench get-app https://github.com/yahyaoudra/deploy.git
bench --site your-site.local install-app deploy
bench --site your-site.local migrate
bench restartFor local development from this checkout:
bench get-app /Users/yahya/Documents/frappeinstaller
bench --site your-site.local install-app deploy
bench --site your-site.local migrate
bench restartThen open Desk and search for Deploy, or go directly to:
/app/app-store
The bundled catalog seed is stored in deploy/marketplace_seed.json. It was generated from the official Frappe Cloud Marketplace search page and currently contains 342 apps. New marketplace apps default to Review compatibility so administrators can see them without bypassing local repository, version, hook, and policy checks.
Run syntax checks from the app repository:
python3 -m compileall deploy setup.py
node --check deploy/deploy/page/app_store/app_store.js
python3 setup.py --name --versionInside a bench, reinstall during development with:
bench --site your-site.local migrate
bench --site your-site.local clear-cache
bench restartDeploy only enables real shell execution for the seeded local Production Bench profile. Other demo profiles are disabled for real installs until explicitly wired to a trusted deployment adapter.
For apps with a configured source_repository, Deploy runs:
bench --site <site> backup
bench get-app [--branch <branch>] <repo>
bench --site <site> install-app <app>
bench build --app <app>
bench --site <site> migrate
bench --site <site> list-appsInstalling a new Frappe app changes Python import paths. Restart bench processes after a successful install so web, scheduler, and workers load the newly installed app.
MIT