Small businesses face unique challenges when managing their daily operations. One area where they often look for cost savings is in HR and CRM tools. Open-source solutions offer an alternative that can be tailored to specific needs, reducing costs without sacrificing functionality.
What is Dolibarr?
Dolibarr ERP & CRM is a comprehensive software solution that streamlines various aspects of your organization's operations, including contacts, quotes, invoices, orders, stocks, and more. This modern package offers a wide range of features to support small, medium, and large companies, foundations, and freelancers alike.

As an open-source software suite (developed in PHP with JavaScript enhancements), Dolibarr ERP & CRM allows users to freely use, study, modify, or distribute it according to its license. It can be used as a standalone application or accessed through the web, either directly from the internet or locally via a LAN, making it highly flexible and adaptable to different needs.
Install Dolibarr using Docker
Since the image doesn't include a database, it needs to be linked with a MariaDB container using Docker Compose. Alternatively, MySQL can also be used. To achieve persistent database storage and Dolibarr data files across reboots or upgrades, create three directories on your host: /home/dolibarr_mariadb for the database, /home/dolibarr_documents for Dolibarr document files, and /home/dolibarr_custom for external modules.
mkdir -p /home/dolibarr_mariadb /home/dolibarr_documents /home/dolibarr_customThen, create a docker-compose.yml file as following:
# Edit this file then run
# docker-compose up -d
# docker-compose logs
services:
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
MYSQL_DATABASE: ${MYSQL_DATABASE:-dolidb}
MYSQL_USER: ${MYSQL_USER:-dolidbuser}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-dolidbpass}
volumes:
- /home/dolibarr_mariadb:/var/lib/mysql
web:
image: dolibarr/dolibarr:latest
environment:
WWW_USER_ID: ${WWW_USER_ID:-1000}
WWW_GROUP_ID: ${WWW_GROUP_ID:-1000}
DOLI_DB_HOST: ${DOLI_DB_HOST:-mariadb}
DOLI_DB_NAME: ${DOLI_DB_NAME:-dolidb}
DOLI_DB_USER: ${DOLI_DB_USER:-dolidbuser}
DOLI_DB_PASSWORD: ${DOLI_DB_PASSWORD:-dolidbpass}
DOLI_URL_ROOT: "${DOLI_URL_ROOT:-http://0.0.0.0}"
DOLI_ADMIN_LOGIN: "${DOLI_ADMIN_LOGIN:-admin}"
DOLI_ADMIN_PASSWORD: "${DOLI_ADMIN_PASSWORD:-admin}"
DOLI_CRON: ${DOLI_CRON:-0}
DOLI_INIT_DEMO: ${DOLI_INIT_DEMO:-0}
DOLI_COMPANY_NAME: ${DOLI_COMPANY_NAME:-MyBigCompany}
ports:
- "80:80"
links:
- mariadb
volumes:
- /home/dolibarr_documents:/var/www/documents
- /home/dolibarr_custom:/var/www/html/customTo bring up all services, including running them in the background, use the following command:
sudo docker-compose up -dIf you encounter issues with docker-compose, you can also use docker compose as an alternative.
To verify that the web and mariadb containers are up and running, check their status with:
sudo docker-compose psViewing the logs for each container to ensure everything started successfully:
sudo docker-compose logsOnce you see a log indicating that Dolibarr has started and is ready, access your new installation at http://0.0.0.0. For security reasons, the first admin login is still set to admin with no password, but this value can be changed in the original Docker Compose configuration file (docker-compose.yml).
If your host's port 80 is already taken by another application, you may need to redirect Dolibarr to a free available port (e.g., xx) during startup. Then access the new installation at http://0.0.0.0:xx.
Final Notes and Thoughts
I've found that Dolibarr can be a bit sluggish at times, especially when handling large datasets or running multiple reports simultaneously. However, overall it's a reliable and functional CRM system that should meet the needs of most small businesses looking for an open-source solution.
Dolibarr has good documentation on their wiki, which is a great resource to turn to if you need help. The company also maintains a plugin store where you can find useful add-ons at reasonable prices.
Discussion