Not an official Frappe project. Not affiliated with Frappe Technologies.
What it does
ffm manages Frappe benches as Docker Compose projects. One command creates a bench. Others start it, stop it, open a shell in it, back it up and update it. It is for developers who run several Frappe sites and for teams that host Frappe on their own VPS.
Features
- Lifecycle:
create,list,start,stop,shell. - Testing:
test <app>runs an app's tests inside the bench. - Data:
snapshotandbackup. - Production:
domainattaches a domain,proxymanages the reverse proxy,usermanages users. - Overview:
dashboardshows your benches. - Maintenance:
update. - Integrations:
ffcsets up the Foxmayn Frappe CLI for a bench, with API keys and its config.mcpstarts an MCP server with 13 tools. It is read-only by default. Write tools work only when you allow them.
Install
Linux and macOS:
curl -fsSL https://raw.githubusercontent.com/nasroykh/foxmayn_frappe_manager/main/install.sh | sh
Windows: run install.ps1 from the repository. On Debian or Ubuntu use the .deb package, on Fedora or similar the .rpm package, both from the releases page. With Go installed:
go install github.com/nasroykh/foxmayn_frappe_manager/cmd/ffm@latest
Then create a bench:
ffm create mysite
ffm list
Releases cover Linux, macOS and Windows (amd64 and arm64), plus deb and rpm packages. Checksums are signed, and the archives come with an SBOM. CI runs go vet, go test -race and govulncheck, with workflows for a backup round trip and an arm64 smoke test.
Why we built it
Every Frappe project starts with a bench, and setups drift. One developer has a working environment that nobody else can reproduce. Docker Compose makes a bench a file you can read, copy and rebuild.
We use ffm in our own development. The backup command and the round-trip workflow exist because a backup you have never restored is only a hope. That is the part of hosting we take most seriously. See how it fits into our hosting and upgrade work.
The tool is written in Go and released under the MIT license. Source, releases and issues are on GitHub.