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 integrated.ee nameservers are forwarded to digitalocean, which means I can do this in DO:
Or you want to set it to some subdomain, i.e erp.integrated.ee
Step 3: Install ERPNext
For installing ERPNext i’m going to follow their easy install script.
-
SSH to your server with root user
-
Add new user with
adduser frappeUser
and enter password and other details if you wish -
Give the newly created user sudo rights with
usermod -aG sudo yourcreatedusername
-
Switch to the new user with
su yourcratedusername
-
Download the easy install script
wget https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.py
-
Run the script
sudo python3 install.py
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. -
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 erp.integrated.ee --site site1.local
where you replace the erp.integrated.ee part with your sub domain of where you want your ERPNext installation to runbench 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
-
Create new Droplet for Metabase on DigitalOcean. Same as for the ERPNext.
-
Configure the dns to point at bi.integrated.ee where its actually your domain.
For installing Metabase i’m going to use their Docker image.
- Install docker on your server by running
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(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.
- 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.
-
Install Nginx following instructions from here
-
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/bi.integrated.ee
where bi.integrated.ee is replaced with your domain or subdomain. -
Edit the configuration file with
sudo nano /etc/nginx/sites-available/bi.integrated.ee
and enter the following: `server { listen 80; server_name bi.example.com;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/bi.integrated.ee /etc/nginx/sites-enabled/
- Reload nginx
sudo systemctl restart nginx
-
And its done. Metabase is running:
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