Dolibarr is a free, open source, self hosted ERP (Enterprise Resource Planning) and CRM (Client Relationship Management) system.  I have covered ERPNext in the past, and people seem to be interested in it, so I wanted to provide information on how to install another ERP / CRM system.  

My caveat is this:  I do not know much about ERP or CRM as a software suite.  I am not an ERP or CRM expoert.  I am making this video, so those of you whoa re interested, can get Dolibarr ERP installed and running to test it out and see if you are interested.

Dolibarr has a lot of documentation out there if you have questions about how to do things.   They also have a support option and hosted options if you would prefer to pay Dolibarr to help you run the system, and take some of the load off of your infratstructure.

Installation

What you'll need:

  • Docker-CE installed and running
  • Docker-Compose installed and running
  • NGinX Proxy Manager installed and Running
  • About an Hour of time

Installing Docker-CE and Docker-Compose

I have several script sfor various Linux distros on my github page. If you'd like to use one of these scripts, I highly recommend it.

GitHub - bmcgonag/docker_installs: Docker and Docker-Compose install scripts for various linux distros and versions
Docker and Docker-Compose install scripts for various linux distros and versions - GitHub - bmcgonag/docker_installs: Docker and Docker-Compose install scripts for various linux distros and versions

Just do a git pull, or click on the version you want, and highlight the entire script code.

Now on your server where you'll run Dolibarr, create a new file called docker-install.sh.

nano docker-install.sh

Now pasted the contents into this file (for Linux you can use CTRL + Shift + V to paste).

Save the file with CTRL + O, then Enter, and exit nano with CTRL + X.

Now change the file permissions to make it executable.

chmod +x docker-install.sh

Now you can run the script with the command

./docker-install.sh

Allow the script to finish.  Once complete, you can log out and back in, or reboot the server.  This will allow your user to run docker commands without having to use the sudo keyword each time.

Install NGinX Proxy Manager

I have covered this on several other videos and posts, so I'll link the post here if you need to install this application.  

Putting it All Together
Putting it all together Using Docker, Docker-Compose, Port Forwarding, and NGinX Proxy Manager all together to host multiple servers. Almost all of my content covers installing a free, open source, self hosted server or service. Occasionally I cover an open source application or tool that isn’t ru…

Install Dolibarr using Docker-Compose

In your server create a new folder called 'dolibarr'.

mkdir dolibarr

Now cd into that directory.

cd dolibarr

In this directory, create a docker-compose.yml file.

nano docker-compose.yml

Inside this file, we need to paste the following yml code:

version: "3"

services:
    mariadb:
        image: mariadb:latest
        environment:
            MYSQL_USER: dolibarr
            MYSQL_PASSWORD: Sup3rS3cre7Pa55w0rd1
            MYSQL_ROOT_PASSWORD: Sup3rS3cre7Pa55w0rd1
            MYSQL_DATABASE: dolibarr
        restart: unless-stopped
        volumes:
            - ./data/db:/var/lib/mysql:rw

    web:
        image: tuxgasy/dolibarr
        restart: unless-stopped
        environment:
            DOLI_DB_HOST: mariadb
            DOLI_DB_USER: dolibarr
            DOLI_DB_PASSWORD: Sup3rS3cre7Pa55w0rd1
            DOLI_DB_NAME: dolibarr
            DOLI_ADMIN_LOGIN: "doli-admin"
            DOLI_ADMIN_PASSWORD: "doli-Admin-01"
            DOLI_URL_ROOT: 'http://doli.your-amazing-domain.com'
            PHP_INI_DATE_TIMEZONE: 'America/Chicago'
        ports:
            - "8819:80"
        links:
            - mariadb

Paste the code into the file with CTRL + Shift + V.  

Make sure to change the  "Sup3rS3cre7Pa55w0rd1" to a strong password tto protect your database and system.  Also make sure to change the domain / DOLI_URL_ROOT to the name and domain you want to run at.  change the DOLI_ADMIN_LOGIN and DOLI_ADMIN_PASSWORKD values to any values you want, but make the password a strong password as well.

Finally, you can change the port on the left side to any free port on your host machine.

Now, you can run the command

docker-compose up -d

to start pulling down Dolibarr and MariaDB and get it running.  

NOTE: Be patient, as this first run will take some time.  Even after it says "Done" in the terminal, wait another 10 to 15 minutes for the Instance to be fully ready.

At that time, you can navigate to your server host IP address and the port you set on the left side in the docker-compose file to make sure you get the login screen for Dolibarr.

I went to my domain name, and used an A record in my domains DNS to point the name doli.opensourceisawesome.com to that IP address.  If you have done the same feel free to use this method as well.  

In my case I went to http://doli.opensourceisaweomse.com:8819.

Setup a Reverse Proxy for NGinX Proxy Manager

If you followed the tutorialto setup NGinX Proxy Manager (NPM from here on) then we are ready to get our Dolibarr install setup to use LetsEncrypt SSL certificates so we have an encrypted ans secured connection to the ERP system.

In NPM go to the Hosts section and click the button to add a new host.

In the hostname field add the domain / subdomain you have chosen and setup an A record for.  In my case I setup doli.opensourceisawesome.com

Next, put the Docker Gateway IP into the IP address filed.  You can find this from the docker CLI with

docker network list

You should see a network with 'dolibarr' in the name.

Now use the command

docker network instpect <the name of your dolibarr network>

Find the gateway IP address, and make note of it or copy it.

Now put that into the IP address field.

Finally, put in the port you added on the left side of your entry in the docker-compose file.

Tick the options to enable Asset Caching, and Block Common Ex[ploits.

Now Save.  

You should see your new entry listed in NPM.  You can click the domian name, and it should opena newtab and navigate to your dolibarr login page.  

If you get the login page, Excellent!  Now we'll go and edit our entry by clicking the vertical 3 dot icon on the right end of the NPM line for our Dolibarr entry, and select 'Edit'.

In the pop-up window, select the SSL tab, and from the drop down select "Request a New Certifiate".

Enable 'Force SSL', then enter your email address if it's not already filled, and select the option to agree to the LetsEncryp Terms of Service.

Click Save.

As long as the pop-up closes with no errors after about 20 seconds to 1 minute, you should be set.

Click the URL in the list again, and you should see it open in a new tab or window.  You should now see the SSL lock icon in the address bar, and the site URL should have https.

Now you'll be able to log into Dolibarr, and start managing your ERP / CRM site with SSL encrypted connections.

You can keepe a backup fo the database, by copying the "dolibarr" directory we created to external media or servers.  You may need to use "sudo" in order to perform these copy functions.