Dolibarr

Open-source ERP and CRM for small businesses

CRM & Business Apps ★ 7.6k stars Medium setup GPL-3.0

Dolibarr is an open-source ERP and CRM suite for small and medium businesses, covering invoicing, inventory, and contacts. It targets small companies wanting an easy all-in-one tool. It is deployed via Docker or a PHP stack.

Key features

  • Combined ERP and CRM
  • Invoicing and inventory
  • Module-based activation
  • Easy installation

Pros & cons

Strengths

  • Easy for small businesses
  • Modular features
  • Mature project

Trade-offs

  • Interface looks dated
  • Less polished than Odoo

Dolibarr replaces

Last reviewed Sep 13, 2026 · 855 words

Dolibarr is what a small business runs when Odoo turns out to be a platform and they wanted an application. One PHP container, one MariaDB, 1 GB of RAM, and a screen of checkboxes where you switch on invoicing, stock, contacts, and projects one at a time. It has been shipping since 2003 under GPL-3.0, has 7,570 GitHub stars, and looks every year of its age. That is a fair trade for a 5-person company; it is the wrong trade for a 50-person one, and I will say where the line is.

Modules off by default is the design, not a gap

A fresh Dolibarr install does almost nothing. You go to Setup, then Modules, and enable Third Parties, Invoices, Products, Stock, Projects, Agenda, Bank, and whatever else your business actually does. Each module adds its own menu, its own permissions, and its own tables, and nothing you did not enable is in your way. That is the practical difference from Odoo, where the community edition presents a storefront of apps and the useful ones keep drifting towards the paid tier. Dolibarr's core modules are all GPL, and the DoliStore marketplace sells third-party ones at fixed prices for the cases the core misses, like industry-specific compliance or a nicer point-of-sale.

A reasonable first set for a service business is Third Parties, Proposals, Orders, Invoices, Bank, and Agenda. For a business that holds inventory, add Products, Stock, and Suppliers. Do not enable Accounting on day one; it works, but it expects you to set up a chart of accounts and journals, and the invoice module alone covers the "who owes me money" question most owners are asking.

Docker install takes 10 minutes, the config takes an afternoon

The official image is dolibarr/dolibarr, and the pattern is the usual two-service compose:

services:
  db:
    image: mariadb:11
    environment:
      MARIADB_ROOT_PASSWORD: change-me
      MARIADB_DATABASE: dolibarr
      MARIADB_USER: dolibarr
      MARIADB_PASSWORD: change-me-too
    volumes:
      - ./db:/var/lib/mysql
  dolibarr:
    image: dolibarr/dolibarr:latest
    environment:
      DOLI_DB_HOST: db
      DOLI_DB_NAME: dolibarr
      DOLI_DB_USER: dolibarr
      DOLI_DB_PASSWORD: change-me-too
      DOLI_URL_ROOT: https://erp.example.com
      DOLI_ADMIN_LOGIN: admin
      DOLI_ADMIN_PASSWORD: pick-something
    volumes:
      - ./documents:/var/www/documents
    ports:
      - "8080:80"

The documents volume matters more than the database looks: generated PDFs, uploaded attachments, and the install.lock file all live there. Back up both directories together. Put Caddy in front for TLS and set DOLI_URL_ROOT to the real public URL, because generated links in emails and PDFs use it.

The afternoon goes on company details, invoice numbering masks, VAT rates, PDF templates, and bank accounts. None of it is hard, all of it is required before the first invoice looks professional, and the defaults are visibly French in places (date formats, the "Third Party" vocabulary).

Do not skip major versions when upgrading

Dolibarr releases a major version roughly yearly, and the upgrade tool migrates the database one step at a time. Jumping two versions in one go is the classic self-inflicted outage: the migration scripts assume the previous schema. The routine is to back up, remove documents/install.lock, pull the next major tag, open /install/ in the browser, run the upgrade, and put the lock file back. Pin the image tag rather than tracking latest so a routine docker compose pull cannot start a migration you did not plan. The general argument for pinning is in container updates without fires.

The interface is dated and it does not matter much

The layout is a 2010s left-menu web app, tables are dense, and the mobile experience is functional rather than pleasant. Owners who compare it to a Salesforce demo will wince. Staff who enter 30 invoices a day tend to prefer it, because every field is on one screen and nothing animates. If a modern-looking CRM is the actual requirement and ERP features are secondary, Twenty or EspoCRM are better fits; the CRM and ERP category lays out that split.

Where Odoo or ERPNext is the safer pick

Above roughly 20 users, or once manufacturing, multi-warehouse, multi-currency consolidation, or HR and payroll enter the picture, Dolibarr starts to feel like a set of modules rather than a system. ERPNext handles all of those in one coherent, if heavier, application and has a much larger implementation ecosystem. Odoo Community does too, with the caveat that the best-known features keep moving into Enterprise. Dolibarr's strength is the bottom of the market: the freelancer, the 3-person agency, the small shop, the association that needs member management and a bank ledger.

What I'd do

For a business under 20 people that needs quotes, invoices, contacts, and a basic stock count, deploy Dolibarr with the compose file above, enable 6 modules, spend one afternoon on numbering and PDF templates, and pin the version. Set a calendar reminder to upgrade one major version each year, never two. If the requirements list includes manufacturing, payroll, or more than one legal entity, start with ERPNext instead and accept the extra 2 GB of RAM.

Compare Dolibarr

22 head-to-head comparisons.

Similar crm & business apps apps