Sandbox/Development System Setup

I am new to ERPNext and wanting to setup a sandbox/development environment for my system. I have looked over the internet as well as this forum. Anyone is kind enough to point me to the correct path would be very, very much appreciate.

Thanks in advance!

1 Like

I also just started looking at ERPNext, and I simply setup a virtual machine on VirtualBox.

After I finished the setup and had it up and running, I powered down the machine and copied the image. Once I feel I have a proper setup, I will simply use that image to power up another instance as the production server. This way, I can have multiple instances running independently, yet it is easy to copy a whole setup. If at a later stage, I want to have a training system with “real” data, I can simply take a snapshot of the production machine, and use that for training/further development, etc.

I also have a reverse proxy in front of the virtual machines, so I can easily just fire up another domain (dev.erpnext.domain, prod.erpnext.domain, training.erpnext.domain, etc.) to have them all easily accessed.

Unfortunately, ERPNext doesn’t have the comfortable transport system to transfer setup data from one instance to the other, but I feel it is possible with data export/import without too much work.

Though I’m curious how others handle this.

Hi Matt,

Thanks for sharing your experience, I truly appreciate that. However may I know how does this image ‘transfer’ works? I mean, I have only done that with local windows, not with server, hence I am pretty newbie on this. Thanks in advance!

Warm regards,
Zharif

For setting up a development environment, the official docker setup is excellent. I spent years insisting on manual installs, but I wish I’d moved to docker sooner. Everything just works, immediately and without fuss.

For migrating from dev to production, I’d recommend a simple restore from backup. Under most circumstances, it’s quick and easy.

https://www.frappeframework.com/docs/user/en/bench/reference/restore

1 Like

The setup is actually pretty simple. It runs on a small NUC with Windows 10 (although Linux would be a better choice. My PC was already setup, and I was too lazy to wipe it).

Install Oracle’s VirtualBox, which is free software. It is a virtualization software, so you can run one or multiple machines on it. For each machine you create a file that Virtualbox translates into a hard disk for the virtual machine.

Above you see what that looks like to run a single server. You could just add more, attach a copy of another server and start it up. You can copy that file, and then use the copy to start up another virtual machine on the same PC. You allocate the resources as required to a virtual machine (RAM, processors, disk space, etc.). It works with a normal PC, but if you run many virtual machines, you might need more RAM, or faster/more CPUs.

I gave my server 8GB of RAM and 2 Processors and created a 20GB disk (from 16GB, 4 Processors) that my NUC currently has.

It works a bit like docker, but a virtual machine includes everything, a full Operating System etc. Just like a “normal” server, so you have all the benefits and flexibility of a full system, but it takes more resources.

Docker is stripping down everything that is not strictly necessary, and is a “lighter” approach, but it limits you to a certain extent what you can do with it.

If interested, I could possibly share my “clean” installation of ERPNext V13, and you can then use the image to just fire up your own server.

This is a generous offer, and I have absolutely zero reason to doubt your sincerity, but I hope nobody takes you up on this offer. Accepting precompiled binaries from untrusted sources on the internet is a very bad idea.

No offense intended, but I feel it needs to be said. :beers:

I know that, and I wanted to add that nobody should “trust” me with that.

On the other hand, who is not downloading some other apps or source code (without actually verifying it). And unless you compile a docker container yourself, and verify all the code in it beforehand, then you also face a risk.

I have always wanted to know how this process works and have struggled to find proper guidance.

Use case; setup Dev environment and do config and test. Testing generates some transactional data. Once happy, I would want to migrate the config only to Production without the transactional data.

For me I’d like to know if it is possible to migrate this configuration data only without transactional data. ERPNext often compares itself to SAP (thought they are vastly different) and SAP allows this through something they call transport requests.

There is a function to delete all transactions in ERPNext. So if you have all the config data setup, you can wipe the transactions.

https://docs.erpnext.com/docs/v13/user/manual/en/delete_company_transactions

I haven’t tried that yet, and obviously, if you want to test different configurations and then only choose the “best”, that’s not helping.

Yes, but that’s a crude way of doing things.