Two resources, whole platform
A FrappeBench describes the shared infrastructure — image, apps, NGINX, workers, scheduler. A FrappeSite describes one tenant. The operator reconciles everything else.
Hybrid Cloud
Kubernetes-native Frappe
Frappe Operator turns Frappe and ERPNext into first-class Kubernetes citizens. Declare a FrappeBench and a FrappeSite, and the operator provisions the database, workers, scheduler, NGINX and certificates — then keeps them running through upgrades, failures and traffic spikes.
# Install via Operator Lifecycle Managerkubectl create -f https://operatorhub.io/install/frappe-operator.yaml # Watch the controller come upkubectl get pods -n operators -w# Add the chart repositoryhelm repo add frappe-operator https://vyogotech.github.io/frappe-operator/helm-repo helm install frappe-operator frappe-operator/frappe-operator \ --namespace frappe-operator-system \ --create-namespace# 1. Shared MariaDB instancekubectl apply -f https://raw.githubusercontent.com/vyogotech/frappe-operator/release/examples/mariadb-shared-instance.yaml # 2. A bench and a sitekubectl apply -f https://raw.githubusercontent.com/vyogotech/frappe-operator/release/examples/basic-bench.yamlkubectl apply -f https://raw.githubusercontent.com/vyogotech/frappe-operator/release/examples/basic-site.yaml # 3. Watch it reconcilekubectl get frappebench,frappesite -w # 4. Grab the admin passwordkubectl get secret basic-site-admin -o jsonpath='{.data.password}' | base64 -dA FrappeBench describes the shared infrastructure — image, apps, NGINX, workers, scheduler. A FrappeSite describes one tenant. The operator reconciles everything else.
Run hundreds of sites on shared benches with per-site database isolation and auto-generated credentials, or give a customer their own dedicated bench.
KEDA or plain HPA scales background workers against real queue depth, so long-running jobs get capacity without over-provisioning idle clusters.
Install a different app set per site with graceful degradation — one site's missing app never takes down the bench it shares.
Bump the image, annotate the site, and the operator re-runs initialisation against the new build while the old pods keep serving.
Fully compatible with OpenShift restricted-v2 SCCs, with automated backups and secure-by-default credential handling.
A Go controller-runtime operator built around two CRDs in the vyogo.tech/v1 API group. It owns database provisioning, secret generation, certificate issuing and bench-init jobs, so a site upgrade is an annotation rather than a runbook.
Compose gives you one host and a manual restart policy. The operator gives you a control loop: it watches desired state, reschedules failed pods, scales workers against queue depth, rotates credentials, and re-runs site initialisation when the image changes — across as many nodes as your cluster has.
Releases from v4.2.0 onward are under the Elastic License 2.0, a source-available license. It is free to use, self-host, modify and redistribute — including in production for your own organisation or your own dedicated customer instances. Offering it to third parties as a hosted or managed Frappe/ERPNext service requires a commercial license. Releases up to v4.1.x remain Apache 2.0.
Yes. The operator and the workloads it creates run under OpenShift's restricted-v2 security context constraints, and it can be installed through OperatorHub via the Operator Lifecycle Manager.
Yes. A single FrappeBench can back hundreds of FrappeSite resources, each with its own database and credentials. You can also give a customer a dedicated bench when isolation requirements demand it.
Multi-tenancy on a single site
A Frappe app that lets one site serve many tenants, isolated by row instead of by database.
ExploreDomain-driven Frappe services
A Python framework for carving secure, multi-tenant services out of the Frappe monolith.
ExploreZero-config Frappe images
Pre-built, single-node Frappe and ERPNext container images that boot with a working site.
ExploreWe build and maintain these tools, and we help teams adopt them. Tell us what you are trying to ship and we will tell you honestly whether this is the right piece.
Talk to the team