On a system too old to read TODO, install.sh ran the install without asking, and the install DELETES an existing .venv.erplibre. It now runs only on a yes typed in a terminal: o, oui, y or yes, any case. Enter alone means no, and with no terminal no question is asked and nothing is installed. « aucun python3 » finally shows when the probe is silent: the || fallback never fired behind a pipe. Checked: 16 tests, each answer on a pseudo-terminal; install.sh run in an isolated copy exits 1 on « n » and installs on « o ». --- FR --- [IMP] install.sh : demander o/N avant d'installer le venv d'outillage Sur un système trop ancien pour lire TODO, install.sh lançait l'installation sans rien demander, et celle-ci SUPPRIME un .venv.erplibre existant. Elle ne part plus que sur un oui tapé au terminal : o, oui, y ou yes, toute casse. Entrée seule vaut non, et sans terminal aucune question n'est posée ni installation lancée. « aucun python3 » s'affiche enfin quand la sonde est muette : le repli par || ne se déclenchait jamais derrière un tube. Vérifié : 16 tests, dont chaque réponse sur un pseudo-terminal ; install.sh lancé dans une copie isolée sort en 1 sur « n » et installe sur « o ». Assisted-by: Claude Opus 5.5
245 lines
7.7 KiB
Markdown
245 lines
7.7 KiB
Markdown
|
|
|
|
# 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.
|
|
|
|
The Python in that table is the one of the Odoo virtual environment. The
|
|
tooling virtual environment `.venv.erplibre` (TODO, `repo`, formatters) runs
|
|
its own interpreter, **3.14.7**, set by `conf/python-erplibre-version`. Where a
|
|
distribution does not carry it, pyenv compiles it.
|
|
|
|
|
|
# Supported platforms
|
|
|
|
- **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
|
|
- **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
|
|
- **macOS** : through mise or pyenv
|
|
- **Windows** : through WSL or Docker
|
|
- **Architectures** : amd64, arm64 and s390x (IBM Z mainframe)
|
|
|
|
|
|
# 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:<BR>
|
|
`sudo apt install docker.io docker-compose-v2 nginx`
|
|
1. Get the latest ERPLibre Docker compose file:<BR>
|
|
`wget https://raw.githubusercontent.com/ERPLibre/ERPLibre/master/docker-compose.yml`
|
|
1. Install and run ERPLibre with Docker running as a daemon (web server):<BR>
|
|
`sudo docker compose up -d`
|
|
1. Open the final installation step at this web page :<BR>
|
|
`http://[server IP]:8069/web/database/manager`<BR>
|
|

|
|
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.
|
|
1. Next, the web page will reload itself, and you should see the Applications list in ERPLibre:<BR>
|
|

|
|
|
|
You can now personalize your ERPLibre installation.
|
|
|
|
|
|
For more information, read [Docker guide](./docker/README.md).
|
|
|
|
## Install from source code
|
|
|
|
### Automated installation
|
|
|
|
|
|
For Debian/Ubuntu
|
|
|
|
|
|
```bash
|
|
sudo apt install make python3
|
|
```
|
|
|
|
|
|
Clone the project:
|
|
|
|
|
|
```bash
|
|
git clone https://github.com/ERPLibre/ERPLibre.git
|
|
cd ERPLibre
|
|
```
|
|
|
|
|
|
Follow the instruction on the following script, it will try to detect your environment.
|
|
|
|
|
|
```bash
|
|
make
|
|
```
|
|
|
|
|
|
`make` and `./install.sh` start TODO through the interpreter that can read it:
|
|
`.venv.erplibre` when it carries the right version, otherwise the system
|
|
`python3` when it is recent enough, otherwise the install itself — a system
|
|
older than `conf/python-erplibre-version` cannot parse the code, so it offers
|
|
the install rather than stopping on a syntax error. The install runs only on a
|
|
yes typed in a terminal (`o`, `oui`, `y` or `yes`); Enter alone, or no
|
|
terminal, means no. When the
|
|
environment is missing but the system Python suffices, TODO offers to run
|
|
`./script/install/install_erplibre.sh` (in a terminal) or prints that command. The install builds the environment
|
|
through `EL_PYTHON_PROVIDER` (mise or pyenv); an existing `.venv.erplibre` on
|
|
another Python version is DELETED and rebuilt, and whatever was installed in it
|
|
by hand goes with it.
|
|
|
|
|
|
### Manually
|
|
|
|
Into Ubuntu, minimal dependency:
|
|
|
|
|
|
```bash
|
|
sudo apt install make git curl
|
|
```
|
|
|
|
|
|
Into Ubuntu, developer dependency:
|
|
|
|
|
|
```bash
|
|
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:
|
|
|
|
|
|
```bash
|
|
git clone https://github.com/ERPLibre/ERPLibre.git
|
|
cd ERPLibre
|
|
```
|
|
|
|
|
|
`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.
|
|
|
|
|
|
```bash
|
|
make install_os
|
|
make install_odoo_18
|
|
```
|
|
|
|
|
|
Install a specific Odoo version:
|
|
|
|
|
|
```bash
|
|
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 :
|
|
|
|
|
|
```bash
|
|
make version
|
|
```
|
|
|
|
|
|
Ready to execute:
|
|
|
|
|
|
```bash
|
|
make run
|
|
```
|
|
|
|
|
|
# Test
|
|
|
|
Execute ERPLibre test with his code generator.
|
|
|
|
|
|
```bash
|
|
time make test_full_fast
|
|
```
|
|
|
|
|
|
# Documentation
|
|
|
|
| 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 |
|
|
|
|
|
|
# Contributing
|
|
|
|
See [CONTRIBUTION.md](doc/CONTRIBUTION.md) for guidelines.
|
|
|
|
|
|
# License
|
|
|
|
This project is licensed under the [GNU Affero General Public License v3.0](LICENSE).
|