Hi guys
I am using ERPNext to manage data for my business and its working great. Actually I am not using the ERPNext functionality as such but instead I have developed my custom app to suite the business needs and its running smoothly.
One thing I have noticed is that Frappe and ERPNext lacks advanced data analytical tools in general. I know that since v12 steps are being taken in the right direction to get more data analytical and visualization tools (like dashboard charts) included as part of the core package but still it lacks the features of full-fledged data analytics and business intelligence tools like PowerBI, Metabase, etc.
I wanted to have a fully featured dashboard (like the images below) wherein I can visualize data and play around with it so as to make sense of it in a quick and visual way. After analyzing a lot of data analytics tool I finally zeroed in on Metabase as it goes well with the open-source nature of ERPNext & Frappe.
After a lot of tinkering around I finally managed to install and get Metabase running on the same server as ERPNext.
As my contribution to ERPNext’s wonderful community, I am sharing a step-by-step installation guide for Metabase to run along with ERPNext.
Before we start, I assume that you have already setup, installed and are running ERPNext on a Ubuntu server on cloud platforms like AWS, GCP, DO, etc.
Let’s start with the Metabase installation now:
Step 1: Login to your server’s SSH terminal and update available packages (if you log in as root, then switch to you admin user using “su [admin-username]” command)
sudo apt-get update
Step 2: Install Java JRE (select Yes for any installation prompts)
sudo apt-get install default-jre
Step 3: Check java version and installation path
sudo java -version # this will print the java version installed
sudo which java # this will print /usr/bin/java
Step 4: Create a directory for metabase installation
sudo mkdir -p /applications/metabase
cd /applications/metabase
Step 5: Download the Metabase application
wget http://downloads.metabase.com/v0.33.2/metabase.jar
# you can get the latest version download link from https://metabase.com/start/other.html
Step 6: Start the Metabase application
java -jar metabase.jar
Step 7: Create a new user and group and change ownership of the metabase directory to this new user
sudo groupadd -r metabasegrp
sudo useradd -r -s /bin/false -g metabasegrp metabaseusr
sudo chown -R metabaseusr:metabasegrp /applications/metabase
Step 8: Add a system service for Metabase application so that it can be managed like other services (nginx, bench, etc.)
Create a new file “metabase.service” at: /etc/systemd/system/
sudo vim sudo vim /etc/systemd/system/metabase.service
# in case you are new to the vim commands read below:
# hit "i" key to start inserting / typing into the file
# hit ":wq" to save and close the file (w=write, q=quit)
# you can also create a file using FTP tools like FileZilla, WinSCP, etc
Copy the following code into the newly created file
[Unit]
Description=Metabase Application
Documentation=https://www.metabase.com/docs/latest
[Service]
WorkingDirectory=/applications/metabase
ExecStart=/usr/bin/java -Xms128m -Xmx256m -jar metabase.jar
User=metabaseusr
Type=simple
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Step 9: Start and enable the metabase service and reload nginx
sudo systemctl daemon-reload
sudo systemctl start metabase.service
sudo systemctl enable metabase.service
sudo systemctl status metabase
sudo service nginx reload
Step 10: You are done! You can now access the freshly installed Metabase via your browser at
http://[your-server-ip]:3000
You will see the below welcome screen. Setup Metabase using the following:
Database Type: MySQL
Host: localhost
Port: 3306
Database Name: [name-of-your-erpnext-db]
Database Username: root
Database Password: [mysql-root-pass]
Notes:
- Allow some time (2-3 minutes) for the Metabase application to start on first load.
- You can find your ERPNext database details in the
/home/frappe/frappe-bench/[site-name]/site_config.json file
- To secure your database server you can create and login to Metabase using a non-root user
- You can test Metabase on a sample database that you download here: http://www.mysqltutorial.org/mysql-sample-database.aspx
I hope I was able to make this guide as easy as possible so that even first time users will be able to install Metabase with ERPNext without any issues.
Thanks
Shashank