# Dolibarr ERP/CRM: a PHP suite for invoices, stock and accounting

> Dolibarr is a GPL-3.0 PHP web application that bundles CRM, invoicing, stock and accounting modules into one install, and it upgrades from any version after 2.8. Here is how the install works, where it stops being the right tool, and how it compares with Odoo and ERPNext.

**Dolibarr/dolibarr** — Dolibarr ERP CRM is a modern software package to manage your company or foundation's activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). it's an open source Web application (written in PHP) designed for businesses of any sizes, foundations and freelancers.

- Repository: https://github.com/Dolibarr/dolibarr
- Website: https://www.dolibarr.org
- Stars: 7,674 · Forks: 3,547
- Language: PHP
- License: GPL-3.0
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/dolibarr-dolibarr

## What Dolibarr replaces in a small company's stack

The problem Dolibarr addresses is fragmentation. A small company typically runs one tool for contacts, another for quotes, a spreadsheet for stock, and an accountant's software for invoices. Dolibarr puts those into a single PHP application with a shared database, so a customer record created for a quote is the same record used for the order, the invoice and the payment. The README describes it as "a modern software package that helps manage your organization's activities (contacts, quotes, invoices, orders, stocks, agenda, human resources, ecm, manufacturing…)".

The intended audience is explicit: small, medium or large companies, foundations and freelancers. That breadth is real but uneven. A freelancer needs third parties, proposals and invoices. A foundation also needs the members and membership module. A manufacturer needs Bill of Materials, Manufacturing Orders and Workstations, which the README lists under product management. You are not buying a vertical product; you are enabling modules from a catalogue.

That is the first design decision worth understanding. The README labels the main application modules "all optional". Nothing forces accounting on a user who only wants a ticket system, and nothing forces the point of sale on a services firm. The cost is that a fresh install is close to empty, and someone has to decide which modules to switch on before the system is useful.

## How the PHP application and its modules fit together

Dolibarr is a server-rendered PHP application with JavaScript enhancements, backed by MariaDB, MySQL or PostgreSQL. The repository layout reflects this: the application lives under htdocs/, with development tooling in dev/, tests in test/ and documentation in doc/. There is no separate frontend build to deploy.

Installation is a two-part affair. Files go into a web server root, and the database schema is created by a browser-driven installer. The README instructs you to create an empty htdocs/conf/conf.php file and give the web server user write permission on it, noting that the write permission is removed once the install finishes. That file is the seam between the code and the database.

The upgrade path is the most unusual claim in the README. It states that Dolibarr supports upgrading "all the way from any version after 2.8 without breakage", and calls this unique in the ERP ecosystem. For a self-hosted application that is the difference between a system you keep for a decade and one you abandon after three years. The mechanism is file replacement plus a rerun of the installer: you overwrite the old dolibarr directory with the new package, and the next access redirects to install/. If an install.lock file exists, the application refuses to proceed until you delete it, and the README points to the documents directory as the usual location.

One repository detail is easy to misread. The top level contains composer.json.disabled rather than an active composer.json, so the PHP dependency workflow is not the composer install step you might expect from a modern PHP project. The README does not describe a composer-based deployment.

## Installing Dolibarr on a PHP web server and reaching the setup page

The README offers packaged installers for people who do not want to touch a server: DoliWamp for Windows, DoliDeb for Debian and Ubuntu, DoliRpm for Red Hat, Fedora, openSUSE, Mandriva or Mageia, plus a Docker image. The generic route below is the one the README recommends for IT users.

Start by getting the files. The README gives this git command, with x.y standing for the main version such as 9.0 or 19.0.

```bash
git clone https://github.com/dolibarr/dolibarr -b x.y
```

Point your web server at the dolibarr/htdocs directory as its root. Then create an empty htdocs/conf/conf.php file and set write permissions for your web server user, as the README requires; the README notes that the write permission will be removed once install is finished. Next, open the installer in a browser. The exact URL depends on your web server configuration; the README gives these examples.

```bash
http://localhost/dolibarr/htdocs/install/
```

```bash
http://localhost/dolibarr/install/
```

```bash
http://yourdolibarrvirtualhost/install/
```

What you should see is the Dolibarr setup wizard, which asks for database details and creates the schema. If the page does not load, the web server root is the first thing to check, because the installer lives under htdocs/install/, not at the repository root.

If you prefer containers, the README points to the dolibarr/dolibarr image on Docker Hub and to the dolibarr-docker repository for instructions. Easypanel, a self-hosted Docker deployment platform, also carries a one-click Dolibarr template. The README does not document the environment variables those images accept, so read the docker repository before assuming a configuration key.

## The upgrade procedure and the install.lock trap

Upgrading is where a self-hosted ERP either earns trust or loses it. The README's sequence is short: back up the files, check that your PHP version is supported by the new release, overwrite the old dolibarr directory with the new package, and let the next page access redirect you to install/ to run the upgrade.

The install.lock file is the part people miss. The README states that if this file exists, it locks any other upgrade process and the application will ask you to remove it manually, and it says the file is usually found in the directory used to store generated and uploaded documents, in most cases the directory called documents. That directory is not inside the code tree you just overwrote, which is exactly why the lock survives a file replacement and blocks the upgrade.

Two things the README does not document deserve a flag. It does not describe a rollback procedure if an upgrade fails, and it does not state how long a given PHP version stays supported, only that you should check the wiki Releases page. The README also warns that upgrades are usually possible without commercial support "depending on if you use any commercial extensions", which is the honest caveat: third-party modules are outside the promise.

## Where Dolibarr is the wrong tool

Dolibarr is a web application you host. If your requirement is a desktop application that works offline on a laptop in a warehouse with no network, the README's own framing works against you: it presents Dolibarr as usable standalone or as a web application reachable from the Internet or a LAN, which still assumes a server somewhere.

The module catalogue is also a trap for the wrong expectations. Modules are optional, which means a new install does not behave like a finished product. Somebody has to enable third parties, products, invoices and accounting, and configure numbering, tax rates and currencies before the first real invoice. If you want an ERP that arrives preconfigured for your industry, this is not it.

Support is the sharpest limitation. The README points to free forums and to "preferred partners ready to offer commercial support should you need it", which is a marketplace of independent partners rather than a vendor with a service-level agreement. An organisation that needs a contractual response time is looking at the wrong project. And because the licence is GPL-3.0, anyone distributing a modified Dolibarr carries obligations that come with that licence; the README refers to the COPYING file for the full text and to COPYRIGHT for the licences of included dependencies, and those two files are the ones to read before embedding Dolibarr in something you ship.

## Dolibarr against Odoo and ERPNext

The comparison people search for is Dolibarr versus Odoo, and the difference is not the feature list, which overlaps heavily across CRM, sales, purchasing, stock and accounting. It is the deployment shape. Odoo is a Python application with its own module ecosystem and a large commercial publisher behind it. Dolibarr is PHP, installs on any web server that supports PHP with MariaDB, MySQL or PostgreSQL, and has no single commercial owner. If your team already runs PHP and your hosting is a standard LAMP stack, Dolibarr asks for far less new infrastructure than a Python deployment does. If you want a vendor to call, Odoo's model is the one that provides it.

ERPNext is the other frequent comparison, and it is a Python and Frappe framework application, so adopting it means adopting that framework's conventions for customisation and doctypes. Dolibarr's extension model is PHP modules inside the same tree. Neither is better in the abstract; the question is which runtime your team can maintain at 2am.

A fair summary: Odoo and ERPNext are platforms with a commercial centre of gravity, while Dolibarr is a GPL-3.0 application whose continuity depends on its community and on the upgrade promise in its README. That promise, upgrading from any version after 2.8, is the strongest technical argument Dolibarr has in this comparison, and it is the thing to verify on your own data before you commit.

## Conclusion

Adopt Dolibarr if you run a small or mid-sized business, a foundation or a freelance practice, you have a PHP web server with MariaDB, MySQL or PostgreSQL, and you want invoicing, stock and accounting modules in one GPL-3.0 application that upgrades from any version after 2.8. Do not adopt it if you need vendor support with a contractual response time, or if you expect a REST API to drive the whole system: the README documents the web installer, not an API contract. Before committing, install a current release on a test server, enable only the modules you need in the setup area, and confirm that your PHP version appears in the supported list on the wiki Releases page, because that page is what decides whether an upgrade path exists for you.

## FAQ

### Is Dolibarr completely free?

The README states that Dolibarr is released under the GNU General Public License version 3 or later, so you can use, study, modify and distribute it under those terms. The README also notes that commercial ready-to-use cloud offerings exist at saas.dolibarr.org and that this third option comes with associated costs.

### What is Dolibarr used for?

The README describes it as a software package to manage an organization's activities, listing contacts, quotes, invoices, orders, stocks, agenda, human resources, ECM and manufacturing. It is designed for small, medium or large companies, foundations and freelancers.

### Is Dolibarr a CRM?

Yes, CRM is part of what the project covers. The README lists third-parties management for customers, prospects and suppliers, plus opportunities or leads management and commercial proposals with online signing.

### How do I install Dolibarr?

The README recommends either a packaged installer such as DoliWamp, DoliDeb or DoliRpm, the Docker image, or the generic setup: clone the branch, point your web server at htdocs, create htdocs/conf/conf.php with write permission, then open the install/ page in a browser and follow the wizard.

### How do I set up Dolibarr?

Setup happens through the browser installer reached at the install/ URL after the files are in place and htdocs/conf/conf.php exists and is writable. After that, the main application modules are optional, so you enable the ones you need from within the application.

## Sources

- [Dolibarr/dolibarr on GitHub](https://github.com/Dolibarr/dolibarr)
- [License: GPL-3.0](https://github.com/Dolibarr/dolibarr/blob/develop/LICENSE)
- [Project website](https://www.dolibarr.org)
- [README](https://github.com/Dolibarr/dolibarr/blob/develop/README.md)
- [Releases](https://github.com/Dolibarr/dolibarr/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dolibarr-dolibarr
