Share your development setup. Here is mine

I use an iMac:

  • Vagrant + Generated Vagrant Box from Official Dev Virtual Box Image.
  • Vagrant Box Mapped port 8000 to 8080 and shared Vagrant volume
  • ITerm2
  • VIM(Always available on any server I setup, no fuzz)
  • I use github with our apps so installing into fresh dev vms is quick.
  • Chrome/Firefox for debugging
  • Dockerized Jenkins Server on Linode
  • ERPNext Dev Jenkins Slave on Linode as well

Cloud everything:

  • 2gb ram Digitalocean droplet - 14.04 Ubuntu for production
  • 1gb ram Digitalocean droplet - 14.04 Ubuntu for development
  • SSH with free account

Usually find me on a Windows 10 machine running Firefox


I am new to both erp and ErpNext and use Centos 7 VMM (not VirtualBox manager) to run ErpNext VM. Two setup notes that may help:

  1. To convert VirtualBox .ova to run on qemu-kvm
    [clarkej@tango ERP]$ tar xvf ERPNext-190416.ova
    $ qemu-img convert -O qcow2 ERPNext-190416-disk1.vmdk ERPNext-190416.qcow2

inspect .ovf for machine config for eg. mem + cpu

  1. Bridged Network aka ‘shared physical device’ and not NAT-based virtual network default
    see adamw’s notes Bridged networking for libvirt with NetworkManager: 2014 / Fedora 21 | AdamW on Linux and more
1 Like

I am on an Ubuntu 16.04 machine - (could be a desktop or a server)

  1. I use LXD/LXC containers, and they work well for me
  2. I copy my tempate container (called Xenial) to a new instance - it already has webmin and a standard user setup, patches, ssh installed etc
    2a) I ssh to the container using the IP address, and do most things from the command line, but I also have webmin on there in case I need it for some admin things
  3. I run the easy setup script as per the Erpnext/frappe documentation - (I wasn’t able to get the development one to work - it gives me a message about too many hosts), so I use the production install, and it works for what I need to do - mostly testing. (I see there are instructions to convert the production to a dev environment, but I havn’t had to do that for what I need
  4. I have abridged instructions in Evernote, which I copy and paste from (I love that tool)
  5. I find LXD/LXC a lot easier than docker, and a lot faster than a VM, but maybe this is a topic for another discussion thread. Anyways, I can share those instructions if anyone wants them
  6. I download and restore the latest version of my database from the Erpnext SAAS site, which is alreasy populated with sample data, that I use for demos, testing etc.
1 Like

Hey all:

Using 16.04 LTS:

2 benches - 1 for development, 1 for production
Ubuntu VM - reached trough secure VPN + second one on local again with VM
Firefox (with Firebug) for debugging


1 Like

Because I am a nut job,

I use Ubuntu desktop, dual boot with my windows 10 ofcourse, PHPStorm

1 Like

I am new to development of erpnext, i am using windows what is the best way to start of??

@Adeel_Rizvi: the easiest jump-start option for ERP Next development on a Windows machine is to use Virtual Box and an image with Development configuration of ERP Next (available to download at

1 Like

I’ve been having trouble syncing the erpnext code to a local folder.
I’m new to erpnext and it seems that the install script saves everything in the home folder of the user?
are you using vagrant?

I use Debian8 for my first try and see a lot of issues during installation probably due to my very heavy python installation. The most puzzling stuffs are error messages. Sometimes they are just misleading… I install through the standard bench flow while not easy setup.
I use chrome to visit the demo site.
I don’t use other tools for now.

I’m wondering if any could suggest what would be the best way to deploy the server for someone like me who is not well-versed in programming but wanna deploy ERPNEXT for a small manufacturing business?

So far, the easiest way I found is to use VirtualBox running the VM created by ERPNEXT awesome team.

Will I face any scalability issues in the future if I use VM?

Hey @Ratanak !

If you can please make a new post, it will increase the chances of getting replies rather than this comment on 2 year old post.

Thanks for your suggestion. I will do that.

Hi all,

as development system, I use

  • Windows or Debian GNU/Linux as host machine (can be really anything)
  • Oracle VirtualBox to contain the dev images
  • Debian Stretch amd64 with LXDE as a virtual guest (I have a fresh install with Geany and MySQL Workbench which I clone to do new stuff; each guest should have 2 vCPUs, 2-4 GB RAM, 16 GB disk; guest connected using NAT, mapped to localhost:8080)
  • Install ERPNext from the Easy Install: GitHub - frappe/bench: CLI to manage Multi-tenant deployments for Frappe apps

The good thing is that when things are really messed up you can simply go back to a previous snapshot, or take a fresh clone from the original image.

1 Like

Yes what relief and assurance that spells - when at an impasse and all else fails, to be able to simply backout to an old snapshot/checkpoint working state, and resume from there once more with your changes - that is the cat’s meow!


Can someone make a video of this setting up and show making a few changes to testing and deploying.

An Acer ChromeBook network connected to a 1GB VPS. My local Acer Chromebook, converted to Ubuntu laptop by using MrChromeBox and GalliumOS, is network connected to a Digital Ocean 1GB Debian server. Easy Install production onto Debian, configure the username “frappe” for sudo privileges and Public Key ssh login, and now on Debian:

>sudo service nginx stop
>sudo service supervisor stop
>bench (create new sites, like in the Frappe tutorial)

On the laptop, also edit the file “/etc/hosts” to add site_names like from the Frappe tutorial: site_name_1

Finally, execute this bash script on the laptop:

# Save this file to, and then "chmod 755"

ssh -f -q -N -M -S /tmp/session1 -L 8000:$2:8000 frappe@$1
ssh -f -q -N -M -S /tmp/session2 -L 9000:$2:9000 frappe@$1
(sleep 5; firefox http://$2:8000) &
ssh frappe@$1  -t 'cd frappe-bench && bench start && exec $SHELL -l'
ssh -S /tmp/session1 -O exit $1
ssh -S /tmp/session2 -O exit $1

chmod 755, then execute, using your own server domain name and development site name

>./ site_name_1

In summary, “etc/hosts” on both machines resolve the site_name, and SSH tunnels ports 8000 and 9000. This script opens the tunnels, starts your test server, and opens firefox to your test site. When you control-C the test server, the tunnels close.

To restart production, SSH into Debian and:

>sudo service nginx start
>sudo service supervisor start

For editor, I’m using VSCode with Remote-SSH


I have installed ERPNext on VirtualBox, installed apps and made changes. Can anybody tell me how I publish virtual image code and on which server I need to choose for deployment?


I have a ubuntu workstation and I setup docker on it.

I then forked the docker images here GitHub - frappe/frappe_docker: Docker images for production and development setups of the Frappe framework and ERPNext

Then I setup my pycharm to remote debug the docker containers this allows me to do code stepping making debugging so so much easier.

Then I just open ports on my workstation if I need to access it remotely.

1 Like

I have a custom version of the frappe_docker development setup.
I edited the bench image just to use bench 5.8.1 and Python 3.8.10.
If it is the first time you open the container, frappe and erpnext will be installed (v13), along with some other cool tools: Zsh, Oh My Zsh, Powerlevel10k, diff-so-fancy and localtunnel.

In the terminal (inside the container), I have 4 commands that I use very often:

  • newsite issue_X: Create a new site called issue_X. It also completes the wizard and loads the erp with some payload data.
  • usesite issue_Y: Change the current site to issue_Y.
  • dropsite issue_Z: Delete the site issue_Z.
  • loca: Executes localtunnel and expose the currently running site to the web.