Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Install ERPNext by first pinning a compatible Frappe/ERPNext release, then preparing a supported Ubuntu VPS with MariaDB, Python, Node.js, Redis or Valkey, Yarn, pip, cron, Git and the release-appropriate PDF tooling. Use Bench to create a bench, create a site and install ERPNext. For a persistent production service, generate Supervisor and Nginx configuration, verify every process, map DNS, add TLS and establish backups and monitoring before handing the system to users.

The commands below follow Frappe’s documented Bench workflow. Dependency versions are tied to the framework branch, so do not copy an older ERPNext tutorial’s package list into a newer installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the ERPNext and Frappe release first

ERPNext runs on the Frappe Framework, and the two projects must remain on compatible major branches. Decide the branch before installing operating-system packages; that choice determines the supported database, Python, Node.js, package-manager and PDF versions. Record the selected branches in your deployment notes so an update does not accidentally move only one half of the stack.

Frappe’s current installation guidance officially supports Debian 13 or newer and Ubuntu 24.04 or newer. It warns that older distributions can produce package problems. Older ERPNext guides may target different operating systems, but they should not override the current support statement without a deliberate compatibility decision.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Dependency Frappe v14/v15 Frappe v16/develop
MariaDB 10.6.6 or newer 11.8
Python 3.10 or newer 3.14
Node.js 18 or newer 24
Redis or Valkey 6 6 or newer
Yarn 1.12 or newer 1.22 or newer
pip 20 or newer 25.3 or newer

These are the versions listed by Frappe’s installation documentation. They are compatibility floors or targets for the named branches, not a universal recommendation to install the newest package available from an unrelated repository. Check the branch’s installation page immediately before deployment, because a developing branch can change its requirements.

PDF generation changed after version 16

wkhtmltopdf is required through Frappe version 16. Starting with version 17, PDFs use Chromium downloaded by Bench instead. Installing wkhtmltopdf on a version-17-or-newer deployment is therefore not a substitute for allowing Bench to obtain its Chromium runtime.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Size the VPS from workload, not a copied minimum

No authoritative source establishes a single CPU, RAM, disk or installation-time minimum that fits every ERPNext deployment. Estimate capacity from the number of users, concurrent background workers, report and email volume, database growth, file attachments and the number of sites in the bench. Leave room for MariaDB indexes, build artifacts, logs, backups and temporary files. A small evaluation site and a busy multi-company installation are different capacity problems.

Prepare the Ubuntu VPS

Use an administrative account and a real hostname

Log in over SSH with a normal administrative account that can use sudo, rather than doing the entire installation as root. Apply operating-system updates, set a stable hostname and make sure the VPS clock is correct. If the site will use a domain, create the DNS record that will eventually point to the VPS address; you can test with the address first and switch to the hostname before enabling HTTPS.

  • Keep SSH keys and recovery access outside the VPS so a firewall or account mistake does not lock you out.
  • Allow only the network services you actually need, and restrict database and Redis access to the local machine unless a documented topology requires otherwise.
  • Decide where off-server backups will live before creating production data.

Update the package index

Start with the standard package refresh:

sudo apt update

Apply available Ubuntu updates according to your change policy, then reboot if the kernel or core services were updated. Do not begin Bench initialization while an interrupted package transaction is still pending.

Install the system components

Install Git, MariaDB server and client packages, the MariaDB development libraries, Redis or Valkey, cron and the build tools required by the selected branch. A typical base command is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

sudo apt install git mariadb-server mariadb-client libmariadb-dev redis-server cron build-essential

Package names can differ between Ubuntu releases and between Redis and Valkey deployments. Add the Python, Node.js, compiler and browser/PDF packages specified for the exact Frappe branch rather than blindly copying a list from a v14 or v15 article. Confirm each runtime after installation:

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
  • python3 --version and pip --version
  • node --version and yarn --version
  • mariadb --version
  • redis-server --version when Redis is used

Frappe’s current sequence installs Node.js through nvm. Use nvm to select the Node major required by the branch, then install the matching Yarn release. Keep the nvm-managed Node available to the account that will run Bench; installing Node only for a different account is a common cause of a later node: command not found error.

Secure MariaDB

If the Ubuntu package did not complete database hardening, run:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

sudo mariadb-secure-installation

Follow the prompts to remove unsafe defaults and verify that the database service is running. Bench will create the ERPNext site’s database and credentials during bench new-site; do not expose MariaDB’s listening port to the public internet just to make that step work.

Install the release-specific PDF support

For Frappe through version 16, install a wkhtmltopdf build compatible with the chosen Ubuntu release and framework branch. For version 17 and later, leave PDF runtime acquisition to Bench’s Chromium download and make sure the deployment user can write the required Bench directories. Test a representative invoice or print format before production handoff.

Install and initialize Bench

Bench is the command-line control plane for Frappe deployments. It creates the Python environment, stores sites and apps, builds assets and coordinates updates. Frappe’s current installation sequence installs it with uv:

uv tool install frappe-bench

Create a dedicated working directory, initialize the bench and verify the executable:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. mkdir ~/frappe
  2. cd ~/frappe
  3. bench init my-bench
  4. bench --version

When the selected ERPNext release requires a named branch, supply that branch using the release-specific option documented for that version during bench init. Pinning the branch at this point is safer than initializing the default branch and trying to repair dependencies later. Keep the bench directory owned by the account that runs Bench; mixing root-owned files with a user-owned bench produces permission errors during builds and updates.

What a successful initialization means

A completed bench init proves that Bench could create its environment and fetch the framework. It does not create an ERPNext site, configure a web server, enable reboot persistence or provide backups. Those are separate deployment stages.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Create a site and install ERPNext

Run the following from the bench directory. Replace the example hostname with the site name you intend to use:

  1. cd ~/frappe/my-bench
  2. bench new-site example.com
  3. bench get-app erpnext
  4. bench --site example.com install-app erpnext

bench new-site asks for database credentials and sets the site administrator password. Use a long, unique password and store it in an approved password manager. The site name becomes significant when you later map a domain, generate Nginx configuration and run site-specific maintenance commands.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

bench get-app erpnext downloads the ERPNext app. If you selected a particular Frappe branch, fetch the ERPNext branch that is compatible with it instead of accepting an unrelated default. The final command installs the app into the named site; a successful download alone does not make ERPNext available in the browser.

Run migrations whenever the selected release’s upgrade instructions require them. Do not treat a clean install as permission to skip migration notes: schema changes, patches and asset builds are part of the framework’s release process.

Run a controlled pre-production check

Before exposing the site to users, confirm that the site can authenticate, load its desk, create a test document and render a representative print format. Check that background jobs complete, scheduled tasks execute and uploaded files persist after a new login. This catches database, Redis, asset and PDF problems while recovery is still simple.

Use the VPS address or a temporary hosts-file entry if DNS is not ready. Once the intended DNS record points to the VPS, test the site over ordinary HTTP first. The production documentation expects the site to be live on the mapped domain before HTTPS is enabled.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure production services and automatic startup

A development bench is not a production service. Frappe documents Supervisor for keeping web, Socket.IO, queue and scheduler processes running, and Nginx for serving static files and proxying dynamic requests to Frappe.

Generate Supervisor and Nginx configuration

From the bench directory, generate both configurations:

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  1. bench setup supervisor
  2. Link the generated config/supervisor.conf into Supervisor’s enabled configuration directory using the method appropriate for your Ubuntu release.
  3. bench setup nginx
  4. Link the generated config/nginx.conf into Nginx’s enabled configuration directory, then validate and reload Nginx.

The generated files contain the bench-specific paths, site routing and process definitions. Do not hand-edit them before understanding which settings Bench will regenerate during an update.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the one-step production helper carefully

Frappe also documents an easier path using sudo bench setup production and an install script invoked with the --production flag. Review what the helper will change on your Ubuntu image, which account it will configure and where it writes service files before running it on a shared VPS.

Frappe’s setup-production documentation explicitly warns that it does not recommend installing on bare-metal servers and recommends Docker images for production. A host-based Bench deployment is nevertheless documented in the production guide. Treat that as a choice with operational responsibility: you own package compatibility, service files, upgrades, restores, TLS and monitoring.

Verify reboot persistence

Supervisor is the component that restarts Frappe processes after crashes and starts them again when the service manager brings the system back after a reboot. Check the generated configuration and then run:

sudo supervisorctl status

Confirm that the web, Socket.IO, queue, scheduler and Redis-related processes are running. A process marked stopped, exited or repeatedly restarting is not a successful production handoff. Inspect the relevant Supervisor and Nginx logs, correct the underlying package, path or permission problem, and run the status check again.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Finish DNS, HTTP and TLS configuration

  1. Create an A or AAAA record for the production hostname and wait for it to resolve to the VPS.
  2. Load the hostname over HTTP and confirm that Nginx reaches the intended ERPNext site rather than a default virtual host.
  3. Verify login, static assets, file uploads, background jobs and a PDF print format through the hostname.
  4. Only after HTTP works, obtain a TLS certificate using your chosen certificate automation and configure renewal.
  5. Test both certificate renewal and an expired-session redirect before announcing the site.

Keep DNS, certificate renewal and firewall ownership in the deployment runbook. A certificate that works on installation day but is never renewed is an operational failure, not a completed deployment.

Updates, backups and day-two operations

Use the documented Bench update flow

Frappe documents bench update as the normal update workflow. It pulls app changes, runs patches, builds assets and restarts Supervisor. Read the release and migration notes first, verify that the framework and ERPNext branches remain compatible, and schedule a maintenance window for changes that can affect users.

Back up before every risky change

Take a tested backup before upgrades, configuration changes and database maintenance. Keep at least one copy outside the VPS and periodically perform a restore drill on an isolated system. A backup that has never been restored is an assumption, not a recovery plan. Include both database data and the site’s file storage in the backup design.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Monitor the parts Bench cannot protect

  • Disk usage, especially database growth, file attachments, logs and build artifacts.
  • MariaDB health, slow queries and failed migrations.
  • Queue depth, scheduler activity and repeated worker restarts.
  • Certificate expiry, DNS resolution and HTTP error rates.
  • Backup completion and the age of the most recent successful restore test.

Apply security updates to Ubuntu and the installed services under a change process. Keep a written record of the Frappe, ERPNext, Node, Python, MariaDB and PDF versions so an emergency rebuild reproduces the same dependency set.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choose a deployment model deliberately

There is no universal winner between a host-based Bench deployment, Docker images and managed ERPNext hosting. Compare the operational responsibilities before selecting one.

Decision area Host-based Bench Docker images Managed hosting
Release control You pin branches and system packages directly. You pin image tags and compose or orchestration definitions. The provider controls the platform schedule; confirm how branch selection works.
Upgrades and rollback You run Bench updates, migrations and restore procedures. You replace images and retain a rollback tag plus persistent data. The provider may operate upgrades; obtain its rollback and maintenance policy.
Backups and restore testing You own storage, retention and restore drills. You own or contract persistent-volume backups and test restores. Confirm who owns backups, retention, export access and restoration tests.
TLS and DNS You configure Nginx, certificates and DNS. You configure the ingress or proxy and certificate automation. The provider may manage them; verify domain and certificate responsibilities.
Monitoring You monitor Supervisor, Nginx, MariaDB, Redis, disk and jobs. You monitor containers, volumes, health checks and host capacity. Confirm what is monitored, which alerts you receive and who responds.
Resource isolation Processes share the VPS operating system. Services are separated into containers but still share host capacity. Isolation and scaling depend on the provider’s architecture.
Support responsibility You troubleshoot the complete stack. You troubleshoot the application and container platform unless support is contracted. The provider handles the agreed platform scope; ERPNext customization may remain yours.
Total cost VPS, storage, backups, administration and recovery time are your costs. VPS, image infrastructure, storage, backups and administration are your costs. Fees cover some operations, while custom work, storage and higher capacity may be separate.

Frappe’s current setup-production guidance favors Docker images for production, while its production guide still documents the host-based Bench path. Make the choice explicit in your runbook instead of assuming that bench init itself is a complete production architecture.

Troubleshoot the common failure points

Package or dependency errors during initialization

Stop and compare every installed runtime with the matrix for the pinned branch. The usual cause is a tutorial written for a different Ubuntu release or Frappe major version. Correct the package source or select a supported Ubuntu image; do not force Bench past a failed dependency check.

Node, Yarn, Python or pip is found for the wrong account

Check versions as the same non-root user who runs Bench. If nvm was installed only in an interactive shell or for another account, Supervisor and Bench will not see that Node installation. Install or expose the required runtime for the service account, then rebuild assets.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

MariaDB or Redis will not connect

Confirm the service is running, that the local socket or port is available and that the versions meet the selected branch’s requirements. Re-run MariaDB hardening only when you understand its effect on existing credentials. Do not open database ports publicly as a diagnostic shortcut.

The ERPNext app is downloaded but absent from the site

Downloading with bench get-app erpnext adds the app to the bench; it does not install it on a site. Run bench --site example.com install-app erpnext for the intended site and check the command’s output for migration or permission errors.

The domain shows a default page or cannot connect

Check DNS resolution, the Nginx configuration generated by bench setup nginx, the enabled-site link, the VPS firewall and the Nginx error log. Test the site over HTTP before troubleshooting certificates. Confirm that the hostname used in the browser matches the site created with bench new-site.

Processes stop after logout or reboot

A bench started from a shell is not a production service. Generate Supervisor configuration, enable it through the system’s service manager, reload Supervisor and inspect sudo supervisorctl status. Resolve any repeated restart before declaring automatic startup complete.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PDFs fail after an upgrade

Check the framework major version. Versions through 16 use wkhtmltopdf; version 17 and later rely on Chromium downloaded by Bench. Mixing the two approaches, or preventing the deployment user from writing the Chromium runtime, can leave browser-based PDF generation unavailable.

An update fails partway through

Do not immediately rerun updates repeatedly. Preserve the error output, check the release migration notes and verify that a recent database and file backup exists. Restore to an isolated copy if necessary, correct the dependency or branch mismatch, and then resume using the documented update procedure.

Production handoff checklist

  • The Ubuntu release is supported by the current Frappe installation guidance.
  • Frappe and ERPNext branches are pinned and compatible.
  • MariaDB, Python, Node.js, Redis or Valkey, Yarn and pip match the branch matrix.
  • MariaDB has been hardened and is not publicly exposed.
  • Bench initialization, site creation and ERPNext installation completed without ignored errors.
  • Supervisor and Nginx configurations are generated, enabled and tested.
  • Web, Socket.IO, queue, scheduler and Redis-related processes are healthy.
  • DNS resolves to the VPS and the site works over HTTP on its intended hostname.
  • TLS issuance and renewal are tested.
  • Database and file backups are off-server, and a restore has been rehearsed.
  • Update, rollback, monitoring, firewall and certificate-renewal procedures are documented.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.