ERPNext Africa
ERPNext Africa · hosting

Where should your ERPNext run?

Four honest routes — Frappe Cloud, your own cloud account, your own data centre, or self-hosting — and the questions that pick between them. The same build runs on all four; the difference is whose name is on the account, who holds the keys, and who gets the 3 a.m. call.

Prices are ZAR ex-VAT at ≈ R18.4 to the dollar, September 2026, from environments we run today. Infrastructure is always passed through at cost; we do not mark up hosting.

01 · The decision we put to every customer: rent or own

OwnRent
Whose cloud accountYours — Google, AWS, Hetzner, or your own Frappe Cloud team, in your name, on your cardOurs. We provide a built, running environment
Whose codeYours — a git repository you control: configuration-as-code, custom apps, deployment scripts, runbooksSame code, same discipline — hosted on our account until you take it
Whose IPEntirely yours. No licence, no lock-in, no dependency on usYours on transfer, whenever you choose
Infrastructure costPaid direct to the provider, at costBilled monthly inside the environment fee, at cost
Who operates itYou do — see §06You still do — see §06
SuitsControl, a long horizon, existing or intended internal capabilityStarting without standing up infrastructure, or deferring the ownership decision
Both options are the same build.Conversion from rent to own is a migration we design for from day one: everything is config-as-code in a repository, so code and data are portable by construction. What we rent you is a building — hosting, backups, upgrades, the platform kept healthy. We do not move in as the caretaker.

02 · The decision tree

Answer top to bottom. The first question that gives a definite answer usually decides it.

1 · Does anything in your stack need a fixed outbound IP address?
Yes — a payment provider locks its live key to one IP (Paystack does), a bank feed, a supplier EDI→ You need a machine with a static IP: a Frappe Cloud dedicated server, your own cloud VM, or your data centre. A shared Frappe Cloud site will not do.
No→ continue
2 · Do you need custom apps, a patched connector, or code we ship as an app?
Yes — most Shopify builds, anything with a weighbridge, MES or bespoke portal→ Frappe Cloud is still fine but on a private bench (+$25/mo) or a dedicated server; or your own cloud / data centre where we control the bench outright.
No — configuration, custom fields and server scripts only→ A Frappe Cloud Standard site at $25/mo is the default. Zero ops for anyone, data in Johannesburg or Cape Town.
3 · Must the data stay on hardware you physically control, or does a group IT policy require your own data centre?
YesYour data centre: a clean Debian server, Docker, our container stack, published through an outbound-only Cloudflare tunnel. You own hardware, patching and the backup destination; we own everything above the OS. See §05.
No, but it must stay in South Africa→ Frappe Cloud Johannesburg / Cape Town, or a cloud region in Johannesburg (Google africa-south1, AWS af-south-1).
4 · Do you already run a cloud account with people who look after it?
Yes — GCP, AWS or Azure is already how you workYour own cloud VM, in your project, built from our scripted image. Co-locate BI, connectors and portals next to the ERP. ≈ R2,200/mo for a 4 vCPU / 16 GB box at list.
No→ Frappe Cloud. Backups, monitoring, upgrades and first-party support are included; nobody has to learn to run a server.
5 · Do you have — or want to build — a technical team that can run the whole stack, including upgrades, backups and restores, unaided?
YesSelf-hosting is legitimate: the code is yours, the playbooks are on this site, and we hand over runbooks. Expect one person to spend a day a month on it and to have tested a restore.
Not yet→ Rent a built environment from us on Frappe Cloud or your cloud, take ownership when the team exists. Same build, no migration tax.

03 · The four routes, costed

RouteWhat it isMonthly, ex-VATIncludedYou must provideChoose when
A · Frappe Cloud site
Johannesburg or Cape Town
Frappe hosts a site on a shared or private bench, in a Frappe Cloud team and on a card that are yours$25 Standard (≈R460) · $50 Enterprise (≈R920) · +$25 for a private bench with custom appsDaily and off-site backups, monitoring, upgrades, TLS, custom domain, SSH, first-party supportA System Owner. Nothing technical2–10 users, no custom apps or a modest one, nobody wants to run a server. The default.
B · Frappe Cloud dedicated serverA VM only yours, still managed by Frappe; unlimited sites and benches; static IP; SSH to the benchfrom ~$40 + Frappe's fee (≈R1,100–1,500); Hetzner variants cheaper than AWSAs A, plus isolation, a fixed IP and room for UAT beside productionA System Owner. Nothing technicalPayment providers that whitelist an IP; several sites; heavier compute; a patched connector you want to run yourself
C · Your own cloud VM
GCP africa-south1 or AWS af-south-1
Our scripted image on a VM in your project; Cloudflare tunnel; full bench access; we maintain it under the managed service≈ R2,200 for 4 vCPU / 16 GB at list (shared server across several sites ≈ R1,200)Root. Whatever you put next to it: BI stack, connectors, portalsThe cloud account and its billing; backups and monitoring are ours to build and yours to pay forCustom apps beyond Frappe Cloud limits, heavy integrations, BI co-located, or you already run that cloud
D · Your data centreA clean Debian server you own; Docker; our container stack; published through an outbound-only tunnel; we install and run everything above the OSYour hardware — no cloud line. Our managed service on topControl. No public listener, no inbound firewall ruleThe server, network, a static outbound IP, OS patching, a backup destination, physical availabilityGroup IT policy, data that must stay on your metal, or you already run a data centre
E · Self-hostingAny of B–D, run by your own team with our runbooks; we are a phone call, not a line itemInfrastructure onlyIndependenceA technical maintainer who has tested a restoreYou have the team, or intend to build it. Legitimate and supported
What Frappe Cloud site plans cannot doThey are metered by CPU-hours per day and return an error at the ceiling; they have no fixed outbound IP; TLS terminates at Frappe on a DNS-only CNAME, so you cannot put your own access gate (Cloudflare Access, a corporate SSO proxy) in front; and Frappe's email delivery app must be removed before your own SMTP account sends. None of these is a problem for most businesses; all of them are for some. That is what the tree above is for.

04 · Frappe Cloud in detail

  • Regions: Johannesburg and Cape Town exist. Pick Johannesburg unless you are in the Cape.
  • Teams and roles: production lives in a team you own; make us Admin from day one. A Member cannot install apps or change plans.
  • Shared bench vs private bench: shared benches get Frappe's weekly updates and cannot carry custom apps — evaluation only. A private bench group is where a custom app from GitHub, version pinning and updates on your schedule live.
  • Two kinds of credential: the Frappe Cloud dashboard key and the ERPNext site key are different things; connectors and scripts use the site key.
  • Backups: daily plus off-site copies, restore from the dashboard. Still test one.
  • Migration in: a full backup from any ERPNext (database + files) restores into a Frappe Cloud site; a full backup out restores anywhere. That is the portability promise, and it works.

05 · A local data centre — the build sheet we hand your IT team

What we ask for when a customer's own infrastructure team provides the server. It is deliberately short: a clean minimal Debian with Docker is exactly the right hand-over point.

ItemRequirementWhy
Operating systemDebian stable, minimal install — no desktop, no control panelEverything above the OS is ours; control panels fight for ports 80/443/3306
CPU / memory / disk4 vCPU · 16 GB RAM · 100 GB SSD or betterComfortable for ERPNext + Docker with production and local backups
NetworkOutbound HTTPS only; no inbound rule at allThe site is published through a Cloudflare tunnel that dials out. No port forwarding, no public listener
Static outbound IPKnown early, before go-livePayment providers lock live keys to it; if it changes, settlements stop silently
TimeNTP, UTCWebhook signatures and financial timestamps depend on it
Access for usSSH, key-basedWe install and maintain the stack
Please do not installcPanel/Plesk, host-level MariaDB/MySQL, nginx, Apache or RedisAll of these run in containers
Your IT teamERPNext AfricaYou (the business)
Server, network, static IP, OS patching, backup destination and retention, physical availabilityDocker and the application stack, configuration, integrations, upgrades, database backups, monitoring and alerting, the tunnel and published accessA System Owner, process owners, users, permissions, month-end — the system is the business

Two things a data-centre server does not give you that a cloud does, so they must be built explicitly: there is no snapshot button — nightly dumps plus a weekly full copy held somewhere you can reach independently, and a restore tested before go-live; and there is no cloud monitoring — uptime, disk and memory alerts, and an alert if a nightly integration job fails, to a named person.

06 · The people you need, whatever the route

RoleMust it be internal?What it does
System OwnerYes — alwaysOwns the system, the process, user access and the decisions. Cannot be contracted out
Process owners per areaYesThe people who run stores, production, quality, sales, finance
Technical maintainerNo — in-house or contracted; on Frappe Cloud largely unnecessaryPatches, upgrades, backup verification, environment health
Developer for changesNo — contracted, or us on demandNew reports, doctypes, integrations as the business changes

These people exist and are affordable; ERPNext and Frappe skills are widely available and the platform is learnable. Where you have nobody, we help you hire, contract or train into the roles. What we will not do is quietly become those people — that is the arrangement that fails both sides eighteen months in.

07 · Moving between routes

From → toWhat it takesTypical effort
Rent (our account) → Own (your account)Transfer the Frappe Cloud site to your team, or restore the backup into your project; repoint DNS and connectorsHalf a day; designed for from day one
Own cloud VM → Frappe CloudPackage hand-applied patches into an app on a private bench (the real work); restore; repoint; retire the tunnel1–2 days once the app exists; the app is a day
Cloud → your data centreSame container image, pulled from a registry; tunnel re-created; static IP whitelisted; backups and monitoring rebuilt explicitlyHours for the stack; the checklist above is what takes the time
Anything → self-hostingRunbooks handed over; a restore test run by your team; we step back to on-callA week of shadowing
Ask us which route fits See the commercial model

Sources

Frappe Cloud pricing and regions (frappe.io/cloud/pricing) and what we learned running a v16 site in Johannesburg, September 2026 · Google Cloud Billing Catalog list prices for africa-south1, 19 September 2026 · our production server build sheet for a customer's data centre, September 2026 · the ERPNext Africa operating model: we build, we don't operate.