How to Use ERPNext: The Beginner's Guide (First Docker Run, Your First Company, the Module Map, and the Backup Rule)
CodexFuse Team · 2026-11-01T09:27:04.200Z · 12 min read
Learn how to use ERPNext: first Docker deploy, your first company, the module map, your first invoice, and the backup rule in one beginner guide.
What Is ERPNext?
ERPNext is a free, open-source ERP system that runs your whole company from one web app: accounting, selling, purchasing, inventory, projects, assets, and support all share one database. It is built on the Frappe Framework (Python, JavaScript, MariaDB), licensed GPLv3 with no enterprise edition and no per-user fees, and it has gathered roughly 24,700 GitHub stars as a community-run alternative to proprietary ERPs. Learning how to use ERPNext means four things: deploying the Docker stack on a server with enough RAM, running the Setup Wizard to create your first company, learning the module map so you always know which screen a task lives in, and setting up backups from day one.
This ERPNext tutorial covers the complete beginner arc: the ERPNext install via Docker, first login, the Setup Wizard, your first company in ERPNext, the module map, your first invoice, and the ERPNext backup routine. If you are weighing an open source ERP, self hosted, against proprietary options — this is the full honest walkthrough, written for ERPNext for beginners. If you are new to containers, read this Docker beginner guide first — the deploy steps assume you can run Docker Compose on a Linux server.
How to Use ERPNext: The 10-Step First Run
- Rent a server with at least 2 vCPU and 4 GB of RAM — ERPNext is a multi-container stack, not a single container.
- Point a domain at the server and run the official Docker stack with the
frappe/erpnextimage. - Create your first site with
bench new-siteand the Administrator password you choose at creation. - Log in as Administrator and finish the Setup Wizard: country, currency, timezone, then your company name.
- Set up the company master, fiscal year, and chart of accounts before any transactions.
- Learn the module map: Selling, Buying, Stock, Accounts, Projects, and the rest — each job has one home.
- Create your first customer and your first item (a service item needs no warehouse).
- Make your first Sales Invoice and Submit it — only submitted documents post to the ledger.
- Wire up the separate HRMS app only if you need payroll — it is not in core since v14.
- Set a backup routine on day one: one command backs up the database and the uploaded files.
Step 1: Give ERPNext Enough Server
ERPNext ships as roughly eleven containers: Traefik, MariaDB, two Redis instances, a one-time configurator, a one-time site-creator, and the Frappe backend with its workers, websocket server, and frontend. That is the RAM reality — the widely used 2026 deploy recipe specs a minimum of 2 vCPU and 4 GB of RAM with 50 GB of SSD, and recommends 8 GB or more if you add the HRMS app or run twenty-plus users. Say it once: do not try this on a 1 GB nano instance and expect it to work.
You need a Linux VPS (Ubuntu 24.04 LTS is the current target for v16) and a domain pointed at it, because the stack terminates TLS through Traefik. If you have never sized a VPS before, this what is VPS hosting explainer covers the basics — plan on the 4 GB tier, not the cheapest one.
Step 2: ERPNext Install — Deploy with Docker
The 2026 path for a self hosted ERPNext install is the published single image frappe/erpnext with a version tag, not the old bench-install guides from the v12/Python-2 era. Say it once: those bench-era tutorials are stale — pin the image to a release tag like frappe/erpnext:v16.50.0 (the current v16 line; v16.0.0 shipped January 12, 2026) so you can roll back, instead of floating on latest.
The deploy flow is: prepare a mariadb-init folder holding a SQL script that creates the ERPNext database user, write your .env (domain, admin password, database password, version tag), then bring up the compose stack. Say it once: the old guides' MariaDB Barracuda and file-format settings are already handled inside the Docker image now — you no longer configure them by hand.
Once the stack is up, create your first site from inside the backend container:
docker compose exec backend bench new-site erp.example.com \
--db-host db --db-port 3306 \
--db-root-username root --db-root-password "YOUR_ROOT_PASSWORD" \
--admin-password "YOUR_ADMIN_PASSWORD" \
--install-app erpnext
Say it once: the first site needs its Administrator password at creation — this password is what you will log in with, and there is no emailed reset link on a fresh self-hosted install. A Docker Compose generator can help you lay out the file, and a Caddy beginner guide is worth reading if you ever want to front the stack with Caddy instead of Traefik.
Step 3: Log In and Finish the Setup Wizard
Open your domain and log in as Administrator with the admin password you set during site creation. The official docs confirm this convention: the default username is always Administrator, and the password is whatever you set when the site was created.
Your first login launches the Setup Wizard. It asks for your country, language, currency, timezone, and industry, then your company name. Choosing the country first is the important move: ERPNext auto-generates a regional chart of accounts and statutory tax templates for your country, so do not rush past it. Answer honestly and completely — fixing the wrong fiscal template later is more work than answering right now.
Step 4: Your First Company in ERPNext — Set It Up the Right Way
Your ERPNext first company needs three things before any transactions: the company master (legal name, abbreviation, country, default currency) plus the fiscal year, then a reviewed chart of accounts with your accounting defaults, and finally taxes, cost centers, and bank defaults. Order matters because ERPNext posts to one shared ledger — creating sales orders before your default receivable accounts exist produces posting errors.
For a services business the shortest sane path is: one company, one fiscal year matching the calendar year, the default chart of accounts for your country, one tax template for your standard rate, and one bank account. You can add multi-company, cost centers, and complex tax rules later; what you cannot do is transact sensibly without the company master and fiscal year in place.
The ERPNext Module Map
Every task in ERPNext lives in exactly one module, so learn the map before you click around. The in-core v16 modules are:
| Module | What lives there | A beginner should start here when… |
|---|---|---|
| Accounts | Chart of accounts, journal entries, payments, taxes, financial reports | You need the books, the ledger, or a report |
| Selling | Customers, quotations, sales orders, sales invoices | You need to quote, bill, or invoice a client |
| Buying | Suppliers, purchase orders, purchase invoices, requests for quotation | You buy goods or services from vendors |
| Stock | Items, warehouses, stock entries, delivery notes | You track physical inventory |
| Projects | Projects, tasks, timesheets, Gantt charts | You deliver billable work over time |
| Assets | Fixed assets, depreciation schedules | You own equipment or vehicles |
| Support | Issues, service-level agreements, warranties | You handle customer tickets |
| Manufacturing | Bills of materials, work orders, job cards | You make things |
| CRM | Leads, opportunities, the sales pipeline | You chase new business before it becomes a customer |
| Maintenance, Quality, Subcontracting | Equipment upkeep, quality inspections, outsourced work | Operations get complex enough to need them |
Say it once: HR and payroll are NOT in core anymore — HRMS has been a separate free app (frappe/hrms) since v14, and education, healthcare, and e-commerce were split out the same way. Install HRMS only if you actually run payroll; most small businesses never need it. And one promise we will not make: there is no CodexFuse ERPNext tool — this guide is about running the real open-source app on your own server.
Your First Invoice: Customer → Item → Sales Invoice → Submit
The first money-moment in ERPNext is one chain: create a customer, create an item, create a Sales Invoice, and submit it. Go to Selling → Customer → New, and add your client. Go to Stock → Item → New and add your product or service (a non-stock item skips the warehouse entirely — pick that for services). Then go to Selling → Sales Invoice → New, pick the customer and the item, check the totals, and Save.
Now the lesson that trips every beginner: a saved invoice is a draft and posts nothing. Only Submit moves money in the ledger — the docs state it plainly: ERPNext creates general-ledger entries when a transaction is submitted, and saving a draft does not affect the ledger. A Sales Order, by the same rule, is only a commitment and creates no ledger entry at all.
| When you submit a Sales Invoice | General ledger effect |
|---|---|
| Grand total owed by the customer | Debits the customer receivable account |
| Net amount of goods/services sold | Credits the income account |
| Tax collected (e.g. VAT/GST) | Credits the tax account |
After submitting, record the money arriving with a Payment Entry against that invoice — the receivable clears and your bank balance rises. For a service business the recommended full flow is Quotation → Sales Order → Sales Invoice → Payment Entry, skipping the Delivery Note, which exists only for physical goods.
ERPNext vs Odoo: Which Open-Source ERP Fits?
People comparing self-hosted ERPs almost always land on this question, so here is the honest split. ERPNext is 100% GPLv3: the entire product — accounting, inventory, manufacturing, CRM — ships as one open codebase with no paid tier and no per-user fees. Odoo is dual-edition: Community is LGPLv3 and free, while Enterprise is a proprietary per-user subscription that gates advanced features, support, and managed hosting. Structurally, Odoo keeps premium capabilities (Studio, mobile apps, AI features, official hosting) behind the commercial tier; ERPNext puts everything in the free product and keeps HR as a separate free app instead of a commercial module.
| ERPNext | Odoo | Akaunting | Dolibarr | |
|---|---|---|---|---|
| License | GPLv3, one edition | Community LGPLv3 + proprietary Enterprise | Free and open source (Laravel) | Open source (PHP) |
| Pricing shape | Free; you pay for your server | Free Community; per-user Enterprise | Free core | Free core |
| Scope | Full ERP: accounting, stock, manufacturing, CRM, projects | Full ERP, premium features in Enterprise | Accounting only: invoicing, expenses | ERP/CRM for small business and freelancers |
| Best for | Small businesses wanting one self-hosted system for everything | Teams that want the big ecosystem and will pay for Enterprise | Freelancers who need accounting software, not an ERP | Non-technical users wanting an easy auto-installed ERP |
Draw the line honestly: if you only need invoices and expense tracking for a household-scale operation, an ERP is overkill — even a simple personal-finance tool like the one in this Actual Budget beginner guide can be the right size. Pick ERPNext when the business needs inventory, purchasing, and accounting in one ledger; pick Akaunting or Dolibarr when accounting alone is the whole job.
The ERPNext Backup Rule
An ERPNext backup is one command, run from inside the backend container — set it up on day one, because an ERP without backups is a liability, not an asset:
docker compose exec backend bench --site erp.example.com backup --with-files
This writes timestamped files into sites/erp.example.com/private/backups/: a -database.sql.gz dump, a -files.tar archive of uploads, and a -private-files.tar archive. Copy them off the server on a schedule — a backup that lives only on the same disk as the database is not a backup. The stack also supports S3 offsite targets if you want pushes instead of pulls.
Two habits complete the rule: pin your image tag and read the release notes before upgrading (v16.50, from October 2026, refactored the Desk navigation to an Apps → Modules → Sidebar hierarchy, so upgrades can move the furniture), and reset a lost admin password with bench --site erp.example.com set-admin-password rather than reinstalling anything.
Sources
Every fact in this guide was verified from a source fetched on November 1, 2026. ERPNext v16 line, v16.50.0 release (October 15, 2026 Frappe Forum announcement), and v16.0.0 release date: frappe.io support-versions page and the official release page on github.com/frappe/erpnext. Star count (~24.7k) and open-source ERP ranking: owler.com star-ranking page. License (GPLv3 app, MIT Frappe framework), Python/JavaScript/MariaDB stack, and 2008/2010 origins: Wikipedia's ERPNext article and frappe.io blog. Docker image and tag convention: railway.com ERPNext v16 deploy page and github.com/frappe/frappe_docker. Eleven-container stack, site-creation command, and MariaDB init script: the dev.to Docker Compose deploy guide and the Vultr deployment PDF. Resource minimums (2 vCPU, 4 GB RAM, 50 GB SSD): Frappe Forum Docker guide, Vultr docs, and syncbricks.com. Bench site-creation flow and branch names: blog.radwebhosting.com deploy guide. Administrator username convention: docs.frappe.io framework bench manual-setup guide. Admin-password reset: blog.karmacomputing.co.uk ERPNext Docker guide. Setup Wizard sequence and company setup order: docs.frappe.io accounting-setup-checklist, company-setup, and fiscal-year pages; invento.com.bd setup guide. Module list: docs.frappe.io ERPNext modules pages and erp-information.com module list. HRMS as a separate app since v14: mith.tech blog and vectree.io. Submit-and-post ledger behavior and sales-invoice entries: docs.frappe.io selling-cycle-ledger-impact and sales-invoice pages. Service-business Quotation → Sales Order → Sales Invoice → Payment Entry flow: docs.frappe.io ERPNext-for-services-organization page. Backup commands and file names: deepwiki.com frappe_docker backups pages and syncbricks.com. Odoo Community/Enterprise licensing: auguria.fr, theledgerlabs.com, and opsily.com. Akaunting and Dolibarr positioning: sourceforge.net accounting directory. Version support windows (v15 patched, v14 EOL January 31, 2026) and v16.50 navigation refactor: frappe.io support-versions and the dev.to v16.50 piece.
Frequently Asked Questions
Is ERPNext really free to use?
Yes. ERPNext is GPLv3-licensed with a single edition — no enterprise tier, no per-user fees, no feature gates. That makes ERPNext self hosted the cheapest way to run a full ERP: your only cost is the server it runs on — realistically a VPS with 2 vCPU and 4 GB of RAM.
How much RAM does ERPNext need?
Plan on 4 GB of RAM and 2 vCPU as the minimum for a production self-hosted install, because the stack runs about eleven containers (web, workers, MariaDB, two Redis instances, websocket, frontend, Traefik, and one-time setup jobs). Add more — 8 GB and up — if you install HRMS or serve twenty-plus users.
What is the difference between ERPNext and Odoo?
ERPNext is one GPLv3 product with everything included and no paid tier. Odoo offers a free LGPLv3 Community edition plus a proprietary per-user Enterprise edition that gates premium features, support, and managed hosting. Choose ERPNext if you want a single free-and-open stack; choose Odoo if you want its ecosystem and are willing to pay for Enterprise.
Can a beginner install ERPNext with Docker?
Yes — the 2026 path is the official frappe/erpnext Docker image pinned to a version tag like v16.50.0, deployed with Docker Compose, followed by bench new-site run inside the backend container. The old bench-on-bare-metal tutorials from the v12 era are outdated; the Docker path is the current one.
How do I back up ERPNext?
An ERPNext backup covers two things: the database dump and the uploaded files. Run docker compose exec backend bench --site your-site backup --with-files from inside the backend container. It produces a timestamped database dump plus archives of uploaded files under the site's private backups folder — copy them off the server on a schedule, and consider the supported S3 offsite option.