No description
Find a file
Mathieu Benoit be93d3d90c [REF] claude: trim the always-loaded guidance, and fix what it got wrong
Every session paid ~4 000 tokens for CLAUDE.md and .claude/rules/, and part of
that content no longer described this repository:

  CLAUDE.md and 05-environments.md gave .venv.odoo18/bin/python — a path that
  does not exist. The real one carries BOTH versions,
  .venv.odoo18.0_python3.12.10. 02-project-structure.md announced addons/ and
  odoo12.0/, absent from the checkout.

That is the reason for the cuts, more than the token count: the files drifted
from the repository, while « ls » cannot. What a session can rebuild by
reading the code is now left to the code.

  02-project-structure.md   deleted — a tree that ls gives, and gives right
  05-environments.md        deleted — a venv list that was simply false
  04-code-conventions.md    reduced to a pointer at .flake8, .editorconfig and
                            pyproject.toml, which already hold every value it
                            repeated, plus the Git conventions, which they
                            do not
  01-versions.md            table dropped for the pointer at
                            conf/supported_version_erplibre.json, whose keys
                            already pair Odoo with Python

Two blocks move to lazy loading — their body costs nothing until invoked:

  03-commands.md      -> skill erplibre-commands (kept whole: there is no
                         « make help » target, and the per-module test recipes
                         carry flags nobody would guess)
  07-documentation.md -> skill erplibre-doc-i18n for the how-to, while the
                         prohibition « never edit a generated .md » STAYS in
                         the rules: a rule that must hold at all times cannot
                         live in a file loaded on demand

Resident guidance: ~3 997 -> ~1 939 est. tokens per session.

--- FR ---

Chaque session payait environ 4 000 jetons pour CLAUDE.md et .claude/rules/, et
une partie de ce contenu ne décrivait plus ce dépôt :

  CLAUDE.md et 05-environments.md donnaient .venv.odoo18/bin/python — un chemin
  qui n'existe pas. Le vrai porte les DEUX versions,
  .venv.odoo18.0_python3.12.10. 02-project-structure.md annonçait addons/ et
  odoo12.0/, absents du checkout.

C'est la raison des coupes, plus encore que le nombre de jetons : les fichiers
avaient dérivé par rapport au dépôt, ce que « ls » ne peut pas faire. Ce qu'une
session peut reconstruire en lisant le code est désormais laissé au code.

  02-project-structure.md   supprimé — une arborescence que ls donne, et donne
                            juste
  05-environments.md        supprimé — une liste de venvs simplement fausse
  04-code-conventions.md    réduit à un renvoi vers .flake8, .editorconfig et
                            pyproject.toml, qui portent déjà toutes les valeurs
                            qu'il répétait, plus les conventions Git, qu'ils ne
                            portent pas
  01-versions.md            tableau abandonné au profit du renvoi vers
                            conf/supported_version_erplibre.json, dont les clés
                            apparient déjà Odoo et Python

Deux blocs passent en chargement paresseux — leur corps ne coûte rien tant
qu'il n'est pas invoqué :

  03-commands.md      -> skill erplibre-commands, conservée entière : il
                         n'existe pas de cible « make help », et les recettes
                         de test par module portent des drapeaux que personne
                         ne devinerait
  07-documentation.md -> skill erplibre-doc-i18n pour le mode d'emploi, tandis
                         que l'interdiction « ne jamais éditer un .md généré »
                         RESTE dans les règles : une règle qui doit tenir en
                         permanence ne peut pas vivre dans un fichier chargé à
                         la demande

Consignes résidentes : environ 3 997 -> 1 939 jetons estimés par session.

Assisted-by: Claude Opus 4.8
2026-08-07 01:15:33 -04:00
.claude [REF] claude: trim the always-loaded guidance, and fix what it got wrong 2026-08-07 01:15:33 -04:00
.github Update issue templates 2026-03-08 16:05:48 -04:00
conf [UPD] claude: drop the redundant « model » from the commit template 2026-08-07 01:05:41 -04:00
contracts [ADD] contracts: add Odoo sync API contract and note mapping 2026-08-07 01:05:37 -04:00
doc [FIX] doc agent translation 2026-03-08 17:39:20 -04:00
docker [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
manifest [UPD] manifest update with code_generator 2026-03-07 00:48:08 -05:00
mobile [ADD] mobile test script 2026-03-23 02:59:38 -04:00
private [IMP] hide kdbx from private directory 2025-12-20 03:15:51 -05:00
requirement [UPD] poetry odoo 18 security 2026-05-06 02:11:56 -04:00
script [FIX] todo upgrade wrong method get_odoo_version 2026-03-29 14:51:02 -04:00
test [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
.editorconfig [UPD] format with script format.sh 2023-12-02 14:14:23 -05:00
.erplibre-semver-version [IMP] support multi version odoo on same workspace 2025-10-31 01:36:26 -04:00
.flake8 [ADD] maintainer-tools to autopep8, flake8 and pylint-odoo 2021-06-27 00:36:52 -04:00
.gitignore [UPD] mobile rename repo for erplibre_home_mobile 2025-12-28 00:48:38 -05:00
.prettierignore [ADD] makefile: prettier format code_generator 2023-01-01 02:59:33 -05:00
CHANGELOG.base.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
CHANGELOG.fr.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
CHANGELOG.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
CLAUDE.md [REF] claude: trim the always-loaded guidance, and fix what it got wrong 2026-08-07 01:15:33 -04:00
coverage_run.sh [IMP] refactoring to support multiple version of Odoo 2025-10-31 01:32:11 -04:00
docker-compose-dev.yml [ADD] docker : new hierchical layout 2020-09-30 20:52:04 -04:00
docker-compose.yml [UPD] docker odoo 18 2026-02-05 02:07:47 -05:00
env_var.sh [IMP] i18n script todo 2026-03-08 16:09:44 -04:00
install.sh [IMP] refactoring .venv.erplibre 2025-10-31 01:34:26 -04:00
LICENSE Initial commit 2020-04-12 21:20:13 -04:00
Makefile [FIX] makefile: ignore odoo-version when not existing 2025-12-20 03:15:51 -05:00
odoo_bin.sh [IMP] refactoring .venv.erplibre 2025-10-31 01:34:26 -04:00
package-lock.json [UPD] change 1.5.0 to 1.6.0 2025-04-25 23:25:43 -04:00
package.json [UPD] change 1.5.0 to 1.6.0 2025-04-25 23:25:43 -04:00
poetry.toml [UPD] poetry: version 1.1.12 2022-01-24 17:56:10 -05:00
README.base.md [FIX] doc markdown french accent 2026-03-07 00:46:05 -05:00
README.fr.md [FIX] doc markdown french accent 2026-03-07 00:46:05 -05:00
README.md [FIX] readme support french and update documentation 2026-03-07 00:06:40 -05:00
run.sh [IMP] refactoring .venv.erplibre 2025-10-31 01:34:26 -04:00
source_repo_addons.csv [ADD] repo JayVora-SerpentCS SerpentCS_Contributions 2024-05-03 23:27:06 -04:00
test.sh [IMP] support multi version odoo on same workspace 2025-10-31 01:36:26 -04:00
TODO.base.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
TODO.fr.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00
TODO.md [ADD] Multilingual translation of all documentation (EN/FR) 2026-03-04 22:23:52 -05:00

ERPLibre

ERPLibre is a CRM/ERP platform including automated installation, maintenance, and development of open source modules of the Odoo community version. It is a "soft-fork" of the Odoo Community Edition (OCE), meaning it aims at contributing back upstream. It is based on a set of production-ready modules, supported by the Odoo Community Association (OCA) and an 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.

Follow us on Mastodon : https://fosstodon.org/@erplibre

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

  • Linux : Ubuntu 20.04, 22.04, 24.04, 25.04; Debian 12; Arch Linux
  • macOS : via pyenv
  • Windows : via WSL or Docker
  • Mainframe : 390x architecture

Installation in production

Easy installation on Ubuntu or Debian using Docker

This has been tested in Debian 12 and Ubuntu 24.04 LTS.

Note : This is meant for a test environment, on a local network or similar environment not directly exposed to the Internet.

  1. Make sure Docker and nginx web server are installed:
    sudo apt install docker.io docker-compose-v2 nginx

  2. Get the latest ERPLibre Docker compose file:
    wget https://raw.githubusercontent.com/ERPLibre/ERPLibre/master/docker-compose.yml

  3. Install and run ERPLibre with Docker running as a daemon (web server):
    sudo docker compose up -d

  4. Open the final installation step at this web page :
    http://[server IP]:8069/web/database/manager
    odoo_first_installation.png

  5. 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.

  6. Next, the web page will reload itself, and you should see the Applications list in ERPLibre:
    odoo_application_list.png

    You can now personalize your ERPLibre installation.

For more information, read Docker guide.

Install from source code

Automated installation

For Debian/Ubuntu

sudo apt install make python3

Clone the project:

git clone https://github.com/ERPLibre/ERPLibre.git
cd ERPLibre

Follow the instruction on the following script, it will try to detect your environment.

make

Manually

Into Ubuntu, minimal dependency:

sudo apt install make git curl

Into Ubuntu, developer dependency:

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

Clone the project:

git clone https://github.com/ERPLibre/ERPLibre.git
cd ERPLibre

Support Ubuntu 20.04, 22.04, 24.04, 25.04 and OSX.

make install_os
make install_odoo_18

Install a specific Odoo version:

make install_odoo_16
make install_odoo_17
make install_odoo_18

Update your configuration if you need to run from another interface than 127.0.0.1, file config.conf

xmlrpc_interface = 0.0.0.0

Show version :

make version

Ready to execute:

make run

Test

Execute ERPLibre test with his code generator.

time make test_full_fast

Documentation

Guide Description
DISCOVER Learn and explore ERPLibre
DEVELOPMENT Development environment setup
PRODUCTION Production server deployment
RUN Execution modes and use cases
CODE_GENERATOR Odoo module code generation
MIGRATION Database migration between versions
GIT_REPO Git repository management
POETRY Python dependency management
FAQ Frequently asked questions
HOWTO How-to guides
WINDOWS_INSTALLATION Windows installation

Contributing

See CONTRIBUTION.md for guidelines.

License

This project is licensed under the GNU Affero General Public License v3.0.