Open source is great and there’s so many good stuff out there. I’m going to explore ERPNext and Metabase which are two great open source software’s.

ERPNext is Enterprise Resource Planning software which has lots of functionality and they advertise it as Open Source Alternative For SAP, Oracle etc.

Metabase is Business Intelligence software to analyze data.

I’m going to install both of them on a 5 USD DigitalOcean droplet.

Step 1: Create Droplet in DO for ERPNext

I’m going to create droplet with 1GB of memory and running Ubuntu 18.04.3

Step 2: Create A record pointing to your server

For examply my domain nameservers are forwarded to digitalocean, which means I can do this in DO:

Name servers

Or you want to set it to some subdomain, i.e

Step 3: Install ERPNext

For installing ERPNext i’m going to follow their easy install script.

  1. SSH to your server with root user

  2. Add new user with adduser frappeUser and enter password and other details if you wish

  3. Give the newly created user sudo rights with usermod -aG sudo yourcreatedusername

  4. Switch to the new user with su yourcratedusername

  5. Download the easy install script wget

  6. Run the script sudo python3 and wait for it to install. It will ask you for SQL and Admin passwords. Write them down. P.S installation will take about 15-20 minutes.

  7. Make ERPNext to start and run in production mode:

    • cd ~/frappe-bench
    • sudo bench setup production [yourfrappeuser]

    Now we only need to add domain.

    Be sure that you are still in ~/frappe-bench directory and run:

    • bench setup add-domain --site site1.local where you replace the part with your sub domain of where you want your ERPNext installation to run
    • bench setup nginx
    • sudo service nginx restart

And its done. If everything went well you should have erpNext running on your domain:


You can log in and setup the system with user administrator and the password you set for the user during the installation.

Step 4: Install Metabase

  1. Create new Droplet for Metabase on DigitalOcean. Same as for the ERPNext.

  2. Configure the dns to point at where its actually your domain.

For installing Metabase i’m going to use their Docker image.

  1. Install docker on your server by running
    • curl -fsSL | sudo apt-key add -
    • sudo add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable"
    • sudo apt-get update
    • sudo apt-get install -y docker-ce

Run sudo systemctl status docker to see if all look ok.

  1. Install Metabase from docker hub and run it as a daemon.
    • sudo docker run -d -p 3000:3000 \ -v ~/metabase-data:/metabase-data \ -e "MB_DB_FILE=/metabase-data/metabase.db" \ --name metabase metabase/metabase

This command will run Metabase on port 3000 inside the Docker and expose it on port 3000 on the host. It will also mount the metabase db on ~/metabase-data/metabase.db so it will not be lost in case of server restart.

  1. Install Nginx following instructions from here

  2. Update Nginx reverse proxy configuration to forward port 3000 of Metabase to some (sub) domain:

    • Create new configuration for Metabase by running sudo touch /etc/nginx/sites-available/ where is replaced with your domain or subdomain.

    • Edit the configuration file with sudo nano /etc/nginx/sites-available/ and enter the following: `server { listen 80; server_name;

            location / {
                proxy_pass http://localhost:3000;

    Replace the domain with you own.

    • Link the the new configuration to sites-enabled by sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
    • Reload nginx sudo systemctl restart nginx

And its done. Metabase is running:

Metabase Welcome

So now you have ERP and Business Analytics systems running for 10$ per month. Ofcourse this is not the optimal production setup - you would want to separate the DB for both ERP and Metabase and to secure the servers etc but for starters it will do.

Next I’m going to create some data in ERPNext and Connect it to Metabase to analyze the data.

Load Data to ERPnext via its API and visualize it in Metabase