2026-02-15 01:07:25 -05:00
2024-10-20 02:52:20 -04:00
# ERPLibre
2026-02-15 01:07:25 -05:00
2024-10-20 02:52:20 -04:00
ERPLibre is a CRM/ERP platform including automated installation, maintenance, and development of open source modules of
2025-05-05 04:43:13 -04:00
the Odoo community version. It is a "soft-fork" of the Odoo Community Edition (OCE), meaning it aims at contributing
back upstream.
2024-11-05 14:33:32 -05:00
It is based on a set of production-ready modules, supported by the Odoo Community Association (OCA) and an
2024-10-20 02:52:20 -04:00
ecosystem of specialized companies. This solution ensures digital sovereignty in a local environment while integrating
pre-trained Generative Transformers (GPT), bringing an additional dimension to data management and automation.
2026-02-15 01:07:25 -05:00
2024-11-05 16:37:10 -05:00
Follow us on Mastodon : https://fosstodon.org/@erplibre
2026-02-15 01:07:25 -05:00
# Features
- **Multi-version Odoo support** : run Odoo 12.0, 13.0, 14.0, 15.0, 16.0, 17.0 and 18.0 in the same workspace, with independent Python virtual environments (`.venv.erplibre` and `.venv.odooXX` )
- **Interactive CLI (TODO.py)** : guided interactive tool for installation, execution, database management, code formatting, mobile compilation, and more. Launch it with `make`
- **Code generator** : generate Odoo modules automatically with support for views, portal, snippets, inheritance, i18n, and JavaScript
- **Selenium automation** : web testing and automation with Selenium Grid, video recording, and login automation
- **Mobile application** : ERPLibre Home Mobile (Owl + Capacitor), compiled and deployed via TODO.py
- **Docker deployment** : production-ready Docker images with PostgreSQL 18 and PostGIS
- **Deployment tools** : Nginx, Apache, Cloudflare DDNS, Certbot SSL, systemd services
- **Database tools** : backup, restore, clone, migration between versions, production-to-dev migration
- **Performance tools** : request-per-second measurement, parallel test execution, coverage analysis
# Supported Odoo versions
| Odoo version | Python | Status |
|--------------|---------|------------|
| 18.0 | 3.12.10 | Active |
| 17.0 | 3.10.18 | Inactive |
| 16.0 | 3.10.18 | Inactive |
| 15.0 | 3.8.20 | Deprecated |
| 14.0 | 3.8.20 | Deprecated |
| 13.0 | 3.7.17 | Deprecated |
| 12.0 | 3.7.17 | Deprecated |
Switch between versions with `make switch_odoo_18` , `make switch_odoo_16` , etc.
# Supported platforms
[UPD] readme: the platforms we actually support
The list named Ubuntu, Debian 12, AlmaLinux, Rocky and Arch. It has been
wrong for a while: install_dev.sh also dispatches Fedora, openSUSE and
Linux Mint, each with its own dependency script, and the Debian path
handles trixie as well as bookworm. Someone on Fedora reading this file
concludes ERPLibre is not for them.
Every line is now read from the code rather than remembered. Ubuntu is
checked strictly against 24.04, 25.10 and 26.04, and refuses anything
else; Mint against 22.3; the RHEL family arrives through ID_LIKE, hence
RHEL and CentOS Stream alongside Alma and Rocky; SUSE through zypper,
Leap 16.0 and Tumbleweed. Debian carries no version test, and its qpdf is
built from source when the distribution ships one below 12.2 -- the same
guard the three families share.
The second list, further down, repeated four platforms and forgot the
rest. It now says what make install_os does: detect the distribution and
pick its package manager.
--- FR ---
La liste nommait Ubuntu, Debian 12, AlmaLinux, Rocky et Arch. Elle est
fausse depuis un moment : install_dev.sh aiguille aussi Fedora, openSUSE
et Linux Mint, chacune vers son script de dépendances, et le chemin
Debian traite trixie autant que bookworm. Qui lit ce fichier sous Fedora
en conclut qu'ERPLibre n'est pas pour lui.
Chaque ligne est désormais lue dans le code plutôt que de mémoire. Ubuntu
est vérifiée strictement contre 24.04, 25.10 et 26.04, et refuse le
reste ; Mint contre 22.3 ; la famille RHEL arrive par ID_LIKE, d'où RHEL
et CentOS Stream aux côtés d'Alma et Rocky ; SUSE par zypper, Leap 16.0
et Tumbleweed. Debian ne porte aucun test de version, et son qpdf est
compilé depuis les sources quand la distribution en livre un sous 12.2 —
le même garde que partagent les trois familles.
La seconde liste, plus bas, répétait quatre plateformes et oubliait les
autres. Elle dit maintenant ce que fait make install_os : détecter la
distribution et choisir son gestionnaire de paquets.
Assisted-by: Claude Opus 5
2026-08-17 01:01:50 -04:00
- **Ubuntu** : 24.04, 25.10, 26.04 — 20.04 and 22.04 are dropped, pikepdf requiring a qpdf 12.2 built in C++20
- **Linux Mint** : 22.3
- **Debian** : 12 (bookworm) and 13 (trixie)
- **Fedora** : 41 and later
- **AlmaLinux, Rocky Linux** : 9 and 10 — RHEL and CentOS Stream take the same path
- **openSUSE** : Leap 16.0 and Tumbleweed
- **Arch Linux** : rolling release
2026-09-16 00:41:43 -04:00
- **NixOS** : 25.11 — the dependencies are DECLARED in `conf/nixos/erplibre.nix` and applied by `nixos-rebuild` , where the four other families install them one command at a time
[UPD] readme: the platforms we actually support
The list named Ubuntu, Debian 12, AlmaLinux, Rocky and Arch. It has been
wrong for a while: install_dev.sh also dispatches Fedora, openSUSE and
Linux Mint, each with its own dependency script, and the Debian path
handles trixie as well as bookworm. Someone on Fedora reading this file
concludes ERPLibre is not for them.
Every line is now read from the code rather than remembered. Ubuntu is
checked strictly against 24.04, 25.10 and 26.04, and refuses anything
else; Mint against 22.3; the RHEL family arrives through ID_LIKE, hence
RHEL and CentOS Stream alongside Alma and Rocky; SUSE through zypper,
Leap 16.0 and Tumbleweed. Debian carries no version test, and its qpdf is
built from source when the distribution ships one below 12.2 -- the same
guard the three families share.
The second list, further down, repeated four platforms and forgot the
rest. It now says what make install_os does: detect the distribution and
pick its package manager.
--- FR ---
La liste nommait Ubuntu, Debian 12, AlmaLinux, Rocky et Arch. Elle est
fausse depuis un moment : install_dev.sh aiguille aussi Fedora, openSUSE
et Linux Mint, chacune vers son script de dépendances, et le chemin
Debian traite trixie autant que bookworm. Qui lit ce fichier sous Fedora
en conclut qu'ERPLibre n'est pas pour lui.
Chaque ligne est désormais lue dans le code plutôt que de mémoire. Ubuntu
est vérifiée strictement contre 24.04, 25.10 et 26.04, et refuse le
reste ; Mint contre 22.3 ; la famille RHEL arrive par ID_LIKE, d'où RHEL
et CentOS Stream aux côtés d'Alma et Rocky ; SUSE par zypper, Leap 16.0
et Tumbleweed. Debian ne porte aucun test de version, et son qpdf est
compilé depuis les sources quand la distribution en livre un sous 12.2 —
le même garde que partagent les trois familles.
La seconde liste, plus bas, répétait quatre plateformes et oubliait les
autres. Elle dit maintenant ce que fait make install_os : détecter la
distribution et choisir son gestionnaire de paquets.
Assisted-by: Claude Opus 5
2026-08-17 01:01:50 -04:00
- **macOS** : through mise or pyenv
- **Windows** : through WSL or Docker
- **Architectures** : amd64, arm64 and s390x (IBM Z mainframe)
2026-02-15 01:07:25 -05:00
2026-03-07 00:06:40 -05:00
# Installation in production
2024-08-16 11:30:34 -04:00
2025-05-05 04:43:13 -04:00
## Easy installation on Ubuntu or Debian using Docker
2024-11-05 14:33:32 -05:00
This has been tested in Debian 12 and Ubuntu 24.04 LTS.
2025-05-05 04:43:13 -04:00
**Note** : This is meant for a test environment, on a local network or similar environment not directly exposed to the
Internet.
2024-11-05 14:33:32 -05:00
2026-02-15 01:07:25 -05:00
2024-11-05 14:33:32 -05:00
1. Make sure Docker and nginx web server are installed:< BR >
2026-03-07 00:06:40 -05:00
`sudo apt install docker.io docker-compose-v2 nginx`
2024-11-05 14:33:32 -05:00
1. Get the latest ERPLibre Docker compose file:< BR >
2026-03-07 00:06:40 -05:00
`wget https://raw.githubusercontent.com/ERPLibre/ERPLibre/master/docker-compose.yml`
2024-11-05 14:33:32 -05:00
1. Install and run ERPLibre with Docker running as a daemon (web server):< BR >
2026-03-07 00:06:40 -05:00
`sudo docker compose up -d`
2024-11-05 14:33:32 -05:00
1. Open the final installation step at this web page :< BR >
2026-03-07 00:06:40 -05:00
`http://[server IP]:8069/web/database/manager` < BR >
2025-05-05 04:43:13 -04:00

1. Finish the installation by providing a database name, email and password. then click on **Create Database** .
Depending on your system resources **this may take more than 2 minutes without feedback !** Check your browser
loading indicator.
2025-04-13 12:50:14 -04:00
1. Next, the web page will reload itself, and you should see the Applications list in ERPLibre:< BR >
2025-05-05 04:43:13 -04:00

You can now personalize your ERPLibre installation.
2024-11-05 14:33:32 -05:00
2026-02-15 01:07:25 -05:00
2024-11-05 14:33:32 -05:00
For more information, read [Docker guide ](./docker/README.md ).
## Install from source code
2024-08-16 11:30:34 -04:00
2025-05-05 04:43:13 -04:00
### Automated installation
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
For Debian/Ubuntu
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
```bash
2026-03-07 00:06:40 -05:00
sudo apt install make python3
2025-05-05 04:43:13 -04:00
```
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
Clone the project:
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
```bash
git clone https://github.com/ERPLibre/ERPLibre.git
cd ERPLibre
```
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
Follow the instruction on the following script, it will try to detect your environment.
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
```bash
2026-02-14 05:10:54 -05:00
make
2025-05-05 04:43:13 -04:00
```
2026-02-15 01:07:25 -05:00
2025-05-05 04:43:13 -04:00
### Manually
2022-01-24 14:03:38 -05:00
Into Ubuntu, minimal dependency:
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2024-08-16 11:30:34 -04:00
```bash
sudo apt install make git curl
```
2026-02-15 01:07:25 -05:00
2024-08-25 15:54:24 -04:00
Into Ubuntu, developer dependency:
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2022-01-24 14:03:38 -05:00
```bash
2024-08-16 11:30:34 -04:00
sudo apt install make build-essential libssl-dev zlib1g-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev libbz2-dev libldap2-dev libsasl2-dev
2022-01-24 14:03:38 -05:00
```
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2021-07-20 16:19:01 -04:00
Clone the project:
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2020-07-14 02:42:27 -04:00
```bash
2020-11-20 23:22:28 -05:00
git clone https://github.com/ERPLibre/ERPLibre.git
2020-07-14 02:42:27 -04:00
cd ERPLibre
```
2024-08-16 11:30:34 -04:00
2026-03-07 00:06:40 -05:00
2026-09-16 00:41:43 -04:00
`make install_os` detects the distribution and picks the right dependency script: apt for Ubuntu, Linux Mint and Debian, dnf for Fedora and the RHEL family, zypper for openSUSE, pacman for Arch, and a declarative module for NixOS. See the supported platforms above.
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2020-07-14 02:42:27 -04:00
```bash
2024-11-23 23:32:11 -05:00
make install_os
2026-02-14 05:10:54 -05:00
make install_odoo_18
2020-07-14 02:42:27 -04:00
```
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
Install a specific Odoo version:
2026-03-07 00:06:40 -05:00
2026-02-15 01:07:25 -05:00
```bash
make install_odoo_16
2026-03-07 00:06:40 -05:00
make install_odoo_17
make install_odoo_18
2026-02-15 01:07:25 -05:00
```
2021-03-09 04:28:14 -05:00
Update your configuration if you need to run from another interface than 127.0.0.1, file `config.conf`
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2020-07-14 02:42:27 -04:00
```
2024-04-23 00:50:09 -04:00
xmlrpc_interface = 0.0.0.0
2020-07-14 02:42:27 -04:00
```
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2024-08-25 15:54:24 -04:00
Show version :
2026-02-15 01:07:25 -05:00
2024-08-25 15:54:24 -04:00
```bash
make version
```
2026-02-15 01:07:25 -05:00
2021-07-20 16:19:01 -04:00
Ready to execute:
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
2020-07-14 02:42:27 -04:00
```bash
2021-03-09 04:28:14 -05:00
make run
2020-07-14 02:42:27 -04:00
```
2021-07-20 20:37:40 -04:00
2026-02-15 01:07:25 -05:00
# Test
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
Execute ERPLibre test with his code generator.
2020-06-03 17:08:00 -04:00
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
```bash
time make test_full_fast
```
2020-06-03 17:08:00 -04:00
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
# Documentation
2020-04-13 00:06:13 -04:00
2026-02-15 01:07:25 -05:00
| Guide | Description |
|-------|-------------|
| [DISCOVER ](doc/DISCOVER.md ) | Learn and explore ERPLibre |
| [DEVELOPMENT ](doc/DEVELOPMENT.md ) | Development environment setup |
| [PRODUCTION ](doc/PRODUCTION.md ) | Production server deployment |
| [RUN ](doc/RUN.md ) | Execution modes and use cases |
| [CODE_GENERATOR ](doc/CODE_GENERATOR.md ) | Odoo module code generation |
| [MIGRATION ](doc/MIGRATION.md ) | Database migration between versions |
| [GIT_REPO ](doc/GIT_REPO.md ) | Git repository management |
| [POETRY ](doc/POETRY.md ) | Python dependency management |
| [FAQ ](doc/FAQ.md ) | Frequently asked questions |
| [HOWTO ](doc/HOWTO.md ) | How-to guides |
| [WINDOWS_INSTALLATION ](doc/WINDOWS_INSTALLATION.md ) | Windows installation |
2024-08-16 11:30:34 -04:00
2020-04-13 00:06:13 -04:00
2026-02-15 01:07:25 -05:00
# Contributing
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
See [CONTRIBUTION.md ](doc/CONTRIBUTION.md ) for guidelines.
2021-06-27 00:22:22 -04:00
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
# License
2024-08-16 11:30:34 -04:00
2026-02-15 01:07:25 -05:00
This project is licensed under the [GNU Affero General Public License v3.0 ](LICENSE ).