Finance & ERP
Choosing an ERP for Your SME: Dynamics 365, Business Central or ERPNext?
When an SME really needs an ERP, what Business Central, ERPNext and Dynamics 365 F&O actually cost to run, and how to pick the partner who implements it.
The current official install route, step by step — plus the honest section most tutorials skip: what self-hosting actually costs you afterwards.
The current official self-hosted route (verified August 2026) is Docker-based: for evaluation, clone frappe/frappe_docker and run the pwd.yml compose file; for production, run the easy-install script from the frappe/bench repository, which installs Docker, deploys ERPNext with MariaDB, Redis and HTTPS, and schedules backups. You need a fresh Ubuntu 22.04/24.04 server with at least 2GB RAM (4GB is comfortable) and a domain pointed at it. Self-hosting is genuinely free in licences but not in responsibility — if nobody on the team can own updates and backups, Frappe Cloud from $5/month is the smarter buy.
ERPNext is the rare ERP you can genuinely install yourself in an afternoon — the entire product, free, on a modest server. This guide is the current official route, verified against the Frappe repositories in August 2026, because most ERPNext tutorials on the internet describe methods that no longer exist. Two things changed recently that older guides miss: the recommended production path is the easy-install script, which now lives in the frappe/bench repository (not frappe_docker, where older articles point), and the quick-demo compose file is explicitly not for production.
erp.yourcompany.com) with an A record pointing at the server's IP before you start — the script issues a free HTTPS certificate during install, and that fails if DNS is not ready.If you only want to see ERPNext before committing, the official demo compose file is the fastest route:
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
docker compose -f pwd.yml up -d
Wait a few minutes for the containers to settle, then open port 8080 on the server and log in as Administrator with password admin. Two warnings, straight from the README: this setup is for short-lived evaluation only, and you cannot install custom apps into it. Do not talk yourself into running a business on it.
This is the current official path for a single-server production deployment — it installs Docker if missing, clones frappe_docker for you, and deploys a full compose project: ERPNext, MariaDB, Redis, an HTTPS proxy with a Let's Encrypt certificate, and a scheduled backup container.
wget https://raw.githubusercontent.com/frappe/bench/develop/easy-install.py
python3 easy-install.py deploy \
--project=erp \
--email=you@yourcompany.com \
--sitename=erp.yourcompany.com \
--app=erpnext
The flags that matter: --email is required (it registers the SSL certificate), --sitename must match the DNS record you created, --app=erpnext installs ERPNext on top of the Frappe framework, and --project names the Docker compose project (keep it short — it prefixes every container). Useful extras: --version pins an ERPNext version rather than latest stable, --no-ssl skips HTTPS for an internal-network install, and --backup-schedule changes the backup cron from its default of every six hours.
The script runs for several minutes. When it finishes, it writes two files to your home directory that you must save somewhere safe immediately: ~/erp-passwords.txt (the Administrator and database passwords) and ~/erp.env (the deployment configuration). Check everything is up with:
docker compose -p erp ps
Every container should show as running or healthy. Then open https://erp.yourcompany.com and log in as Administrator with the password from the passwords file.
First login starts a one-time wizard. Three of its answers are hard to change later, so decide them before clicking: country (it drives the chart of accounts, currency and tax templates), chart of accounts (accept the standard one for your country unless your accountant says otherwise), and fiscal year dates. Company name and abbreviation follow — the abbreviation prefixes every account and warehouse, so keep it to three or four letters. Everything else in the wizard is comfortably changeable afterwards.
This is the section most tutorials skip. The licence is free; the responsibility is not — this is the same trade we describe in our ERP selection guide, and it is why our three-way ERP comparison does not simply declare the free option the winner.
Updates. Minor updates are the same script with a different verb: python3 easy-install.py upgrade -n erp pulls current images and restarts the stack. Major version upgrades deserve respect: read the release notes, take a manual backup first, and if the system matters to your business, test the upgrade on a copy before touching production.
Backups. The deploy sets up automatic backups every six hours, but automatic backups on the same server are half a backup. Take a manual one before anything risky:
docker compose -p erp exec backend \
bench --site erp.yourcompany.com backup --with-files
Then copy the backup files off the server on a schedule — object storage or even a nightly rsync to another machine. A backup you have never restored is a hope, not a backup: rehearse a restore once.
The alternative that removes all of this. Frappe Cloud — the vendor's own hosting — runs the same product with site plans from $5/month (verified Aug 2026), and updates, backups and monitoring are their problem. Our honest rule from running ERPNext ourselves: self-host when you have a person who will genuinely own the ops (or when data-residency demands it); buy Frappe Cloud when you do not. The $5–50/month is cheaper than the first weekend you lose to a failed upgrade.
pwd.yml.docker compose -p erp logs db; if it is memory pressure, upgrade the VPS. Re-running the deploy after fixing the cause is safe.linux/amd64 platform (slow, emulated) or use an x86 server. Cheap x86 VPSes remove the whole problem.An afternoon's install is not an implementation — chart of accounts, opening balances, stock, permissions and training are where the real project lives, self-hosted or not.
The open-source ERP whose free tier is the entire product
Best for: Cost-conscious SMEs with in-house technical capability — or a good implementation partner — that want full ERP breadth without per-user licence costs.
If you are still deciding whether ERPNext, Business Central or something bigger fits your business — or you want an honest view before committing implementation weeks — that assessment is exactly what we do.
Treat 2GB as the practical floor and 4GB as comfortable for a small team. ERPNext will install on 2GB, but upgrades and background jobs run close to the limit, and memory pressure is the commonest cause of failed site creation on budget VPSes. The price difference between a 2GB and 4GB server is usually a few dollars a month — pay it.
The software is — the full product, every module, under the GPL, with no user limits. What you pay is the server (roughly $5–20/month for a suitable VPS) and, more significantly, your own time: updates, backups, monitoring and the occasional failed-upgrade evening. Free in licences, honest in total cost — which can still be the lowest in the ERP category by far.
With the easy-install deployment, run the same script with the upgrade command: python3 easy-install.py upgrade -n
Self-host when someone on your team will genuinely own the operations — updates, backups, monitoring — or when data residency requires it. Choose Frappe Cloud (site plans from $5/month, verified Aug 2026) when nobody will: it runs the same product with the ops handled by the vendor, and it is cheaper than the first weekend lost to a failed upgrade. Both paths keep your data exportable.
Finance & ERP
When an SME really needs an ERP, what Business Central, ERPNext and Dynamics 365 F&O actually cost to run, and how to pick the partner who implements it.
Finance & ERP
QuickBooks Online raised prices again in August 2026: the new plan costs, who should stay, when Xero or Zoho Books fits — and when it is really an ERP problem.