Dev Tooling

Vybench

Frappe v16 as a native package

Vybench packages Frappe v16, ERPNext v16, Python 3.14, Node.js 24, Redis 7, MariaDB, Nginx and wkhtmltopdf into a single artefact you install the way you install anything else on your machine. One command on Ubuntu, Debian, Fedora, Arch, RHEL or macOS — and the services are already running when it finishes.

Language
Shell · Snapcraft · Homebrew
License
Source-available (no derivatives)
Stack
Frappe v16 · Python 3.14 · Node 24
Platforms
Linux · macOS
Arch
amd64 · arm64
QUICKSTART
macOS (brew)
brew tap vyogotech/tapbrew install vybench # Datastores, then the Frappe application tierbrew services start mariadbbrew services start redisbrew services start vybench vybench bench new-site mysite.localhost --admin-password adminecho "127.0.0.1 mysite.localhost" | sudo tee -a /etc/hosts
Linux (snap)
sudo snap install vybench # Call it "bench" like everywhere elsesudo snap alias vybench.bench bench # Run bench without sudosudo usermod -aG snap_daemon $USER && newgrp snap_daemon vybench.bench new-site site1.localhost --admin-password admin
Debian / Ubuntu
# One "stable" suite serves both Debian and Ubuntu, amd64 and arm64echo "deb [trusted=yes] https://apt.vyogo.tech stable main" \  | sudo tee /etc/apt/sources.list.d/vybench.list sudo apt update && sudo apt install -y vybench # Installing does not start anything; setting up is a separate decisionsudo vybench-setup --site mysite.localhost --admin-password admin
Fedora / RHEL
# Packages are built per distribution releasesudo dnf install ./vybench-16.0.0-1.rockylinux9.el9.x86_64.rpm sudo vybench-setup --site dev.localhost --admin-password admin # Reach itecho "127.0.0.1 dev.localhost" | sudo tee -a /etc/hosts
PostgreSQL
sudo snap install vypgbenchsudo snap alias vypgbench.bench bench cd /var/snap/vypgbench/common/benchvypgbench.bench new-site mysite.localhost --admin-password admin # Client tools come wrapped invypgbench.psql -U postgres -h 127.0.0.1

What Vybench gives you

Nothing taken from the host

The snap is strictly confined and bundles its own Python, MariaDB, Redis, Node and Nginx, so there is no library or OpenSSL conflict to resolve between distributions.

Python 3.14, solved

Frappe v16 requires exactly Python 3.14 and no distribution ships it — Ubuntu 24.04 has 3.12, Debian 12 has 3.11, RHEL 9 has 3.9. Vybench brings its own, so the version question never comes up.

Production and developer modes

Production runs the six services as an unprivileged account with a read-only codebase. Flip to developer mode and apps/ and env/ become real writable directories, so get-app, pip install and bench build all work.

Native packages, native services

The .deb and .rpm builds integrate with your distribution's own systemd, nginx and MariaDB. vybench-setup is idempotent — re-run it after adding a site or changing the port.

PostgreSQL, for real

vypgbench is the same stack backed by native PostgreSQL rather than MariaDB, with psql, pg-dump and pg-restore wrapped in, tracking Frappe and ERPNext develop.

Bare-metal speed

No container filesystem layer between the bench and the disk — which is the difference you feel most on a macOS workstation, where Docker I/O is the usual bottleneck.

Under the hood

One artefact that runs anywhere (the snap, bundling everything) and one artefact per distribution release (the .deb and .rpm, using the host's MariaDB, Redis and nginx). Both carry their own Python 3.14, because no distribution ships the version Frappe v16 requires.

Read the source

Frequently asked questions

Snap, native package, or Homebrew — which should I use?

On macOS, Homebrew is the only option. On Linux, take the snap if you want one artefact that behaves identically on every distribution; take the .deb or .rpm if you would rather Frappe used your distribution's own MariaDB, Redis and nginx. Each native package is built against one distribution release and is not portable between them.

Which APT suite do I point at?

stable — a single suite serves both Debian and Ubuntu, for amd64 and arm64, rather than one per distribution codename. The line is: deb [trusted=yes] https://apt.vyogo.tech stable main.

Can I edit app code with the snap installed?

Yes — switch it with sudo snap set vybench mode=developer. That disables the managed services and materialises apps/ and env/ as real writable directories, so git pull, pip install, bench get-app, bench new-app and bench build all behave normally. sudo snap set vybench mode=production puts it back.

Do I need sudo for every bench command?

No. Add yourself to the snap_daemon group once — sudo usermod -aG snap_daemon $USER && newgrp snap_daemon — and vybench.bench runs as your normal user.

What is vypgbench?

The same stack backed by native PostgreSQL instead of MariaDB, tracking Frappe and ERPNext develop rather than the stable v16 branch. Every service and config command mirrors vybench with the prefix swapped, and psql, pg-dump and pg-restore are wrapped in. On macOS, Homebrew currently ships the MariaDB build only.

How does this compare to running ERPNext in Docker?

There is no container filesystem in the way, which mostly matters on developer workstations where Docker I/O is the bottleneck. You also get ordinary systemd management, crash recovery and journald logging rather than a container supervisor. For clusters rather than single machines, use Frappe Operator instead.

What is the license?

The Vybench packaging and orchestration tooling is source-available under a no-derivatives license: you can read and evaluate it, but redistributing modified forks needs written authorisation. Frappe (MIT) and ERPNext (GPL-3.0) are shipped as unmodified upstream source inside the package.

Running Vybench in production?

We 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