Facebooktwittergoogle_plusredditpinterestlinkedin

Hi Everyone,

The purpose of this post is to make installing and maintaining a stable instance of iDempiere as easy as possible. This script does three things to help make it easier to learn, configure and deploy open source ERP:

  1. Enables you to install iDempiere by copying and pasting a single line.
  2. Enables you to better understand how the iDempiere components are installed.
  3. Installs the tools needed to support iDempiere in production for hundreds of concurrent users (db admin, offsite backup, load balancing, development environment, etc…)

The script is hosted on github, and is available for the community to use.

Before You Install

Before you install, I recommend you read this article first. This information can make the installation and hosting of iDempiere easier, more usable and more stable for you and your team. Please be quick to let me know if you experience any issues.

Please be aware of the following system minimums:

  • 64-bit Ubuntu server 22.04 operating system
  • 2GB RAM
  • 20GB Storage

Single Line Summary

To use the script, install a fresh copy of Ubuntu Linux 22.04 LTS on AWS (AWS Ubuntu server list) or a local server. Copy the following commands and paste them together in your Ubuntu terminal. iDempiere will be available on port 80 after about 10 minutes (depending on your internet speed). Username: SuperUser and Password: System.

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

The above commands download the script from the source code repository, makes the script executable, launches the idempiere_isntall_script_master_linux.sh script, and writes all feedback to a file called output.txt.

Here is the all in-one-installation for LogiliteERP (an iDempiere distribution).

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -a chuboe.properties.logilite9 -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Be aware: please change the database password (-p flag) from “Silly” to something more appropriate.

Be aware: this script attempts to initialize the database. If you run this against an existing database, the script will drop your existing data.

Better Understanding

I went out of my way to create comments in the script so that the average IT person could easily understand how iDempiere is installed under various circumstances. I created this script as a teaching tool for others and as a tool to help me from making the same mistakes twice. You can use this script in a couple of different ways:

  1. Single Server: You can install all components on a single server using the command (partial – see full command below): idempiere_install_script_master_linux.sh -P silly -l. -P sets the db password and -l launches iDempiere.
  2. Single Server with Dedicated Drive: You can install all components on a single server but move the PostgreSQL database files to a remote or EBS drive using the command (partial – see full command below): idempiere_install_script_master_linux.sh -P silly -l -e xvdb. Where, -e sets the name of the remote or EBS drive.
  3. Database Server Only: You can install the database on one server using the command (partial – see full command below): idempiere_install_script_master_linux.sh -P silly -i -e xvdb. Where, -i specifies to NOT install iDempiere.
  4. iDempiere Server Only: Next, you can install iDempiere on a different server using the command (partial – see full command below): idempiere_install_script_master_linux.sh -P silly -p url.todb.com -l. Where, -p specifies to NOT install PostgreSQL, and url.todb.com is the url where the database exists.
  5. Read Replica: You can even use this script to create a hot-standby or read replica instance of PostgreSQL. The details are in the ERP Academy.

More than Just Installation – Production Quality iDempiere

It is important to note that the script goes way beyond just installing iDempiere. It installs the tools needed to support a 200+ concurrent-user iDempiere system. Here are examples of the script’s features and capabilities:

  • Quickly creates a single instance (all-in-one) system for learning and prototyping in any environment (cloud or local)
  • Installs and configures database admin like phppgadmin and psql for easy db administration
  • Moves your database installation to a dedicated drive to support Amazon AWS EBS
  • Installs tools for offsite backups (both database and iDempiere binaries)
  • Installs scripts to move iDempiere (binaries, plugins and db) from a Production server any number of test servers (UAT, Test, Dev, etc…) and updates these servers with non-production credentials, logos, data
  • Installs scripts to replicate iDempiere to server farm behind a load balancer
  • Installs scripts to obfuscate production data for distribution to outside development resources
  • Installs script to create a free ssl certificate (https) and encrypt traffic
  • Installs tools and configuration for iDempiere and database monitoring
  • Installs tools to create a poor man’s firewall that authenticates against iDempiere’s user list – prevents unwanted users from knowing what is installed on the server (demonstrated in ERP Academy)
  • Installs scripts to automate disaster recovery
  • Installs scripts to automate plugin jar deployment
  • Supports complex, high-availability installations consisting of multiple balanced webui servers, dedicated services servers, dedicated database server, live database read replica (demonstrated in the ERP Academy)
  • Script to turn GardenWorld into a custom-named demo environment
  • Performance tunes both the iDempiere server and PostgreSQL when installed on dedicated servers.
  • Supports Amazon’s AWS RDS (high-availability posgresql database) without modification
  • Allows you to change the adempiere username and password as part of the installation
  • Script to automate a production data push to a test server upon request or on a schedule
  • Script to create and configure an iDempiere development environment
  • Allows you to install from and upgrade from any iDempiere jenkins build server or Amazon S3 website
  • Single script to upgrade both the iDempiere server and the database
  • Script to delete transactional data from a test server
  • Script and instructions to install a Jenkins build server (demonstrated in the ERP Academy)
  • Installs from historical build numbers (previous Jenkins builds)
  • Script to install and run pgbadger log analyzer
  • Cron tasks to automate server maintenance like delete old backups and log files
  • All the plugins listed here to support advanced project and multi-currency accounting
  • Basically – it includes the tools I have come to rely on over the last 19 years of iDempiere support and development

Shortcuts

Single Server with all components:

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Database Only with dedicated drive (-i for no iDempiere and -e DriveName):

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -P Silly -i -e xvdb |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Database Only (-i for no iDempiere):

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -P Silly -i |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

iDempiere Only (-p db.url):

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -P Silly -p DB.URL -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Install from a different properties file (-a name of properties file). The path to the property file is relative to the directory where you executed this script. The script will look in the script => utils folder if it cannot find the file using the relative path:

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -a chuboe.properties.logilite9 -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Here is a list of all the properties files:

  • chuboe.properties.core71
  • chuboe.properties.logilite62
  • chuboe.properties.logilite71
  • chuboe.properties.logilite9

Install the bleeding edge 7.1 version:

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -a chuboe.properties.core71 -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Install from a different jenkins server (-J name of jenkins server and -j name of jenkins project):

sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -j logiliteID_5_1 -J http://jenkins.logilite.com -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt

Install from a different version of the script (example: Ubuntu 16.04 stable).

sudo apt -y update; sudo apt -y install git; git clone -b id5.1ubuntu1804Rel20191129 https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt
  • id7.1ubuntu1804Rel20200608
  • id5.1ubuntu1804Rel20191129
  • id5.1ubuntu1604Rel20181231
  • id4.1ubuntu1604Rel20170530
  • id4.1ubuntu1604Rel20170113

AWS Shortcut – User Data

There are times when you wish to create a new iDempiere instance as quickly as possible. One way to accomplish goal is to includes the above installation script commands directly into the AWS Console => Launch New Instance => Step 3 Configure Instance Details => User Data field (located at the bottom of the Configure Instance Details page). Here is the format:

#!/bin/bash
# paste install command from above here.....
chown -R ubuntu:ubuntu /opt/chuboe/

You can use any of the above examples. Here is an example using the ‘Single Server with all components and LogiliteERP 7.1’:

#!/bin/bash
sudo apt -y update; sudo apt -y install git; git clone https://github.com/chuboe/idempiere-installation-script; chmod 766 idempiere-installation-script/*.sh; ./idempiere-installation-script/idempiere_install_script_master_linux.sh -a chuboe.properties.logilite9 -P Silly -l |& tee output.txt; nano /opt/chuboe/idempiere_installer_feedback.txt
chown -R ubuntu:ubuntu /opt/chuboe/

After the installation is complete, you can see the user data supplied to a server using the following command:

sudo cat /var/lib/cloud/instance/user-data.txt

Additional Information

Here are some additional notes and comments:

  • -D option installs desktop components, downloads Eclipse, checks out the iDempiere code, and more.. Learn more about the -D option.
  • -u option is no longer used and will soon be removed from the script.

Troubleshooting Tips

This tutorial was originally designed for use on Amazon’s AWS. Therefore, I probably made some assumptions that may not be true on a local machine. Most of the issues to date stem from this fact. Here is how you troubleshoot:

  1. The single most common issue where the installation fails is caused by poor internet quality when trying to install to a local server. The iDempiere installation is big. If the file download process fails, the installation will fail. Look in your home folder for a file called output.txt (~/output.txt). In this file, look for the section where the script downloads the various files. They are visually easy to identify. If you see many broken attempts, this issue is likely to be the reason for your failed installation.
  2. This script is for 64-bit only. For example, the version of iDempiere it downloads is 64-bit. If you are using 32-bit Linux, you can use this script as a guide, or you can update the script’s variables to point to the 32-bit files.
  3. The script assume Ubuntu server (not desktop).
  4. You can only run this script once. If it fails, you need to start over with a fresh Ubuntu server. If you are using virtualization, be sure to create a snapshot after Ubuntu is installed. Do the same after iDempiere is first successfully installed.
  5. Read the output.txt file. It is long; however, it tells you exactly what is going on with the installation.
    1. Search on the phrase “HERE:” to see the major steps of the script.
    2. Search on the phrase “error”, and see if anything obvious stands out.
    3. You can use the linux command “tail -f output.txt” to see what is happening real time. Please note that you will need to create another connection to use this command, This is because the first connection will be busy performing the installation.
  6. If you are using VirtualBox, be sure to install an ssh server “sudo apt install openssh-server”. The VirtualBox terminal does not allow you to copy/paste. Many issues come from typing mistakes. By installing an ssh server, you can connect via a terminal like Putty (for Windows) that allows you to copy/paste the installation command all at once.
  7. Read the script. I worked hard to make the script readable by the average IT person.
  8. If you cannot figure out the situation, send me the output.txt file.
  9. The script assumes a user of ‘ubuntu’.  You can override the user with the -u option. The -u option assumes you have a group with the same name as your user. This is important to know if you are installing iDempiere locally or virtually using VMWare/ESXi or VirtualBox.
  10. Some people get errors related to locale settings. Specifically “perl: warning: Please check that your locale settings” If you get this, try adding executing the following statements before you run the above scripts on a new instance:
    1. export LANGUAGE=en_US.UTF-8
    2. export LANG=en_US.UTF-8
    3. export LC_ALL=en_US.UTF-8
    4. locale-gen en_US.UTF-8
    5. More Details
  11. Sudo Password: when installing on a fresh local (not AWS) installation, your default user has access to sudo so long as you specify the password. Once you enter a password, the sudo will work for x hours. I have seen situations where sudo password timed out during installation, and the installation seemed to stall. Here is an article to help you configure your user so that it does not require a password to execute sudo commands.
  12. If you see that the script is in an endless circle trying to specify the parameters for iDempiere (mail server, username, etc…), this is because the script has already been run once. The second time console-setup.sh is executed, it asks different questions. This fact causes the script to fail.
  13. If your script seems to stall with no error, this is probably because you are on a non-aws server and the user is required to enter a password for sudo. There are times when the sudo password time has expired during the middle of the script, and the system is prompting the script for the sudo password.
  14. If you cannot get the above to work. There is a more simple installation script available here.

I hope this helps!!

Why consider Open Source ERP

Open source ERP gives you every opportunity to prove or disprove its ability to support your company’s ERP needs on a timeline that satisfies your organizational needs. With open source ERP, you do not face the same financial constraints nor do you face the same conflicts of interest as with commercial ERP. Instead, you invest in the appropriate skills and knowledge for your people and processes. Best of all – if open source ERP cannot solve your company’s needs, you can safely justify spending the additional $2K to $5K per person per year for life of your commercial ERP to help drive your organization’s success.

ADempiere vs iDempiere vs Openbravo vs Compiere

Please note that ADempiere, iDempiere and Openbravo are forks or copies from Compiere. Therefore, they have similar abilities mentioned above. The biggest difference is that ADempiere and iDempiere are pure open source. There are no features held behind a commercial or paid license.

What is the best way to Learn iDempiere and ADempiere?

teach an on-line class that covers how to learn, configure and audit open source ERP. It uses iDempiere as the reference ERP.  Here are the course frequently asked questions. I have learned much over the last fourteen years, and I have much to share. I look forward to seeing you there!!

Why consider Open Source ERP?

Open source ERP gives you every opportunity to prove or disprove its ability to support your company’s ERP needs on a timeline that satisfies your organizational needs. With open source ERP, you do not face the same financial constraints nor do you face the same conflicts of interest as with commercial ERP. Instead, you invest in the appropriate skills and knowledge for your people and processes. Best of all – if open source ERP cannot solve your company’s needs, you can safely justify spending the additional $2K to $5K per person per year for life of your commercial ERP to help drive your organization’s success.

Open Source ERP Round Rug Effect

Open Source ERP has what I call a “Round Rug Effect”. If you were to liken the ERP evaluation process to a 10′ x 10′ room, the story would go something like this:

  • Oracle, SAP, and Microsoft are a 10′ x 10′ ERP rug in a ten by ten foot room. They cover the room nicely. You will be hard pressed to find a feature or a use case that they do not cover.
  • Open Source ERP is like a 10′ round rug in a ten by ten foot room. It will cover the vast majority of the room; however, it will leave the corners bare. The questions are: “Do you live and operate in the corners?” or “Is open source ERP good enough?”. For most, the answers are “sometimes” and “yes”.

If you are in the ERP evaluation mode, you should ask yourself “Should I include open source ERP in my evaluation process?” If you are less than $300M USD revenue, your answer should probably be yes! This answer comes from these concepts:

  1. Pillars of Cost – Since open source ERP is free, that means that all the cost of proprietary ERP should be allocated to the corners. If you use height to illustrate this allocated cost, the corners turn into tall pillers of cost.
  2. Cost of Innovation – At first look, the price tag of free open source ERP is the most appealing benefit; however, this benefit soon becomes overshadowed by the flexibility of open source ERP. If organizational leaders take just some of the cost that would otherwise be spent on Oracle or SAP, and they invest it back into the organization’s skills and knowledge of how ERP works, operational efficiency will never look the same again. If you know how to change the system for the better, and you know it will work. Why would you not?
  3. Monday to Monday Cycle – Business leaders drive innovation in a company. This innovation is no more apparent than in the traditional Monday morning business meeting where a CEO comes in and paints a picture of the next greatest thing. His or her next comments are “Will it work?” and “Make it happen!”. Open source ERP helps your business and IT teams say yes more often. You are no longer completely dependent on a high-priced Oracle Integrators. You are no longer dependent on spending 18% every year to Oracle for software that you have little control over. Your team applies its knowledge of the system and the knowledge of its world-wide resources to create a proof of concept that paints the real picture the following Monday.
  4. Right Pay Grade – Open source ERP puts the right tools in the right person’s hands at the right pay-grade. there is little more wasteful that paying a $150/hr integrator for something a Jr IT professional should be doing. Open Source ERP removes the artificial barriers that exist in proprietary ERP.
  5. ERP for Everyone – User licenses/seats are no longer a consideration. This point cannot be stated strongly enough. At first look, you might think this point is about saving money. It is much more than that. You now have the freedom and flexibility of allowing everyone in your company to interact the system that drives your operations. You simply assign the right roles to the right people to give them access to the appropriate information.

ADempiere vs iDempiere vs Openbravo vs Compiere

The ADempiere, iDempiere, Openbravo and Compiere environments are amazingly similar. iDempiere came from ADempiere. ADempiere and Openbravo came from Compiere. Compiere came from Jorg Janke. Jorg came from Oracle. As a result, iDempiere and ADempiere have much in common with Oracle’s ERP in terms of the financial feature set.

This is both good and bad. Good because iDempiere and ADempiere are quite capable to help a company grow beyond $500M USD. Bad because they tend to be more complex in that they account for multiple languages, accounting schemas, currencies, calendars, costing types, costing methods, etc…. If you are a growing organization, and you need a system that will grow with you, and you have the right internal talent/resources, iDempiere or ADempiere will be a big asset for you.

The biggest difference between these products is that ADempiere and iDempiere are pure open source. ADempiere and iDempiere make all feature available for free. Compiere and Openbravo hold back features behind a commercial or paid license.

Here is an article that discusses the differences between iDempiere and ADempiere.

iDempiere and ADempiere vs Odoo

iDempiere/ADempiere (iD/AD) and Odoo (formerly OpenERP) approach ERP from two very different directions. Odoo comes out of the box with very simple options. If you are coming from QuickBooks, and you need a simple ERP system help you manage your business, Odoo will look and feel comfortable.

iD/AD comes out of the box with every feature installed and configured to run a $200M+ USD business. If your business is growing rapidly, and you are willing to invest the time to learn an enterprise accounting system, then iD/AD will give you confidence.

Which one is best for you depends on your internal talent, growth and business complexity. Here is a post to help you learn more.

Facebooktwittergoogle_plusredditpinterestlinkedin

15 thoughts on “iDempiere – Open Source ERP – Linux Installation Really Easy

Leave a Reply

Your email address will not be published. Required fields are marked *