Skip to main content

erp-sandbox

Build a containerized ERPNext development environment from a single config.toml. Install the tool once, run erp-sandbox init, edit one file, run one command, and get a working bench with all source editable from the host.

Linux only, podman or Docker, no root required. The command is erp-sandbox, or sandbox for short.


Start here

Setting one up for the first time docs/setup.md — ~30 min, 11 of it unattended
Working in one day to day docs/using.md
Something is broken docs/troubleshooting.md
Running environments on a shared VPS docs/vps.md
Working on erp-sandbox itself docs/contributing.md

The short version, if you have done this before:

uv tool install erp-sandbox
erp-sandbox init acme-dev && cd ~/erp-sandboxes/acme-dev
$EDITOR config.toml .erp-sandbox/secrets.env   # both inside ~/erp-sandboxes/acme-dev/
erp-sandbox build

Then open http://localhost:<ports.http> and log in as Administrator with the ADMIN_PASSWORD you set.

Already installed? uv tool upgrade erp-sandbox — one tool serves every environment on the machine (upgrading).


What you get

Four containers, one HTTP port:

Service What it does Reachable from the host
nginx the only entry point — / to web, /socket.io to realtime yes, ports.http
bench honcho running the Procfile: web, socketio, scheduler, workers no
mariadb the site database yes, ports.mariadb, on 127.0.0.1
redis cache, queue and socketio as logical DBs 0/1/2 no

Everything is bind-mounted from your project directory — bench/apps/ the cloned source, bench/env/ the virtualenv, data/mariadb/ the database. So:

  • Edit a .py on the host and the reloader picks it up.
  • git status works in every app.
  • No docker cp, no rebuild to change a line.

You can run several client environments side by side, each with its own ports.


What you need

Linux, Python 3.11+ on the host, podman (rootless) or Docker Engine with its compose plugin, git, and ~20 GB free. The container images bring their own Python, Node and wkhtmltopdf.

The full list, with a command to check each one, is step 1 of setup.md.


Two roots — understand this first

Almost every confusing moment with this tool comes from mixing these up.

The package A project
What erp-sandbox itself one client's environment
Holds templates, compose file, bench Dockerfile config.toml, .erp-sandbox/, bench/, data/
Installed once per machine, shared created by you, as many as you like
Upgrades replaced wholesale never touched

Every verb except init acts on the environment containing your working directory, found by walking up for .erp-sandbox/ — the same way bench finds its bench. So erp-sandbox bench console works anywhere inside a project. Use --project DIR to act on one from outside.


Documentation

Using the tool

First run, end to end docs/setup.md
Day-to-day work, editor, debugging, teardown docs/using.md
Symptom → cause → fix docs/troubleshooting.md

Working on the tool

Setup, commands, rules docs/contributing.md
What is decided, and why docs/decisions.md
What the tool does, from the developer's side docs/functional.md
Architecture, config.toml schema, credentials, seeding docs/technical.md
Requirements and non-goals docs/requirements.md
Acceptance checklist and the test suite docs/testing.md
What changed and when CHANGELOG.md

License

MIT — see LICENSE. Copyright Datahenge LLC.

erp-sandbox is an independent project, built for ERPNext. It is not affiliated with or endorsed by Frappe Technologies. ERPNext and Frappe are trademarks of Frappe Technologies Pvt. Ltd.

Metadata

Release files for erp-sandbox 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for erp-sandbox 0.4.2
File Size Uploaded Provenance Actions
erp_sandbox-0.4.2.tar.gz 135.3 kB Without provenance Details for erp_sandbox-0.4.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for erp-sandbox 0.4.2
File Interpreter ABI Platform Actions
erp_sandbox-0.4.2-py3-none-any.whl Python 3 none any Details for erp_sandbox-0.4.2-py3-none-any.whl

Total release size: 283.6 kB

Release files / erp_sandbox-0.4.2.tar.gz

Download URL erp_sandbox-0.4.2.tar.gz
Size 135.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b84092225bb820b66f1bfe1a0f9e6b44a892b765da50a6dd2ef69aa87821111b
BLAKE2b-256 checksum
How to use checksums
72f28a1a9442a2fe78fbb08195040363b697faaeec4fdd0d22b89e083f753201
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / erp_sandbox-0.4.2-py3-none-any.whl

Download URL erp_sandbox-0.4.2-py3-none-any.whl
Size 148.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a82f06469d1b5eb843790a63cea341ec2aa9d060cbd3d11be575151eb435dc80
BLAKE2b-256 checksum
How to use checksums
929040cbc47282918c3a104bd34b168891d8ec88294806a34cb67b2336b05aa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for erp-sandbox 0.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page