FRAPPE & ERPNEXT

Every bench, site and app under one console.

Bench environments, site lifecycle and custom apps managed as tracked jobs instead of a terminal and a runbook. Built for the case Talos started from: an agency running ERPNext for a lot of clients at once.

Install itSee the install guide
Frappe·ERPNext·bench·MariaDB·Supervisor

THE MANUAL WAY

Where running Frappe at scale goes wrong.

MIGRATION DAY

Forty client sites need the same app update. You SSH into each bench in turn, and by site nineteen you have lost track of which ones already ran and which failed halfway.

THE RESTORE REQUEST

A client deleted something on Tuesday and wants it back. You have nightly backups somewhere, and no quick way to confirm any of them restore before you promise anything.

THE VERSION DRIFT

Nobody can say which client is on which app version, because the answer lives in eleven separate benches and nowhere else.

WHAT TALOS DOES

The bench workflow, without the bench.

Environment setup

Provision a bench with its Python version, Node, Redis and Supervisor configuration as one idempotent job rather than a page of commands.

Site lifecycle

Create, backup, restore, migrate and drop sites. Each is a job with live output, so a migration that fails tells you where.

App install and rollback

Install, update or roll back custom apps across benches, with the previous revision recorded so reverting is one action.

Fleet-wide version view

Every site, its bench, its app set and its versions in one table. Drift is visible instead of discovered.

Scheduled site backups

Per-site schedules with retention, uploaded off-box, and verified rather than assumed.

Gated destructive actions

Dropping a site or restoring over a live one needs a second person. The gate names the site explicitly.

talos.internal/frappe/sites
Servers
Kubernetes
Frappe
Docker
Databases
Pipelines
Monitoring
Sites41 sites · 6 benches
acme.erpHEALTHY
v15.42 · erpnext, hrms
northwind.erpHEALTHY
v15.42 · erpnext
globex.erpDRIFT
v15.38 · behind by 4
initech.erpRUNNING
migrating · 2 of 3 apps
$ site migrate initech.erp
→ backup taken before migrate · 1.8 GB
→ erpnext 15.38 → 15.42
→ patching 214 doctypes
✓ migrate complete · job #8812

HOW IT RUNS

Every action is a tracked job.

Requestyou, API or schedule
Queuegated if required
the Sentinelbackground worker
AdapterSSH · Ansible · Terraform · API
Your infrastructurelogs stream back live

WHAT MAKES THIS DIFFERENT

One action, forty sites, one place to watch it.

The thing that actually breaks an agency is not any single bench command — it is doing the same command forty times and keeping track. Talos fans a site operation across every bench you select and reports each one independently: which succeeded, which failed, and where. A failure on site nineteen does not stop sites twenty through forty, and it does not disappear into scrollback.

Every site takes a backup before a migration, and the migration will not start if the backup fails.
Per-site results are individually retryable — you rerun the three that failed, not all forty.
The whole batch is one audit entry with forty attributable children.
batch · update erpnext to 15.42
acme.erp
backed up · migrated · 4m 02s
DONE
northwind.erp
backed up · migrated · 3m 41s
DONE
initech.erp
patching doctypes …
RUNNING
globex.erp
custom app conflict · retryable
FAILED

RELATED CAPABILITIES

Servers

The hosts the benches run on.

explore →

Databases

Verified backups and point-in-time recovery underneath the sites.

explore →

Pipelines & Gates

Require approval before a migration touches production.

explore →

Start with one bench.

Import an existing bench read-only and see the whole site list before you change anything.

Install in one commandSee every capability →