Outils pour utilisateurs

Outils du site


software:applications:inventree

InvenTree

InvenTree est un logiciel de gestion d'inventaire open source s'appuyant sur Python et le framework Django.

Installation

:TODO_DOCUPDATE:

Un script d'installation automatise toute la procédure pour les systèmes Debian 10, 11, 12 et Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS. Dans les autres cas, il faudra procéder à l' installation manuellement.

Installer les prérequis :

Il est fortement recommandé de ne pas exécuter le serveur InvenTree en tant que root. On crée un utilisateur avec des droits restreints pour l'installation et l'exécution de l'application

useradd -m -d /home/inventree -s /bin/bash inventree

Base de données PostgreSQL

Inventree peut s'appuyer indifféremment sur Postgresql ou Mariadb. Ici on a fait le choix d'utiliser PostgreSQL :

apt-get install -y postgresql postgresql-contrib libpq-dev

Vérifier que le serveur de base de données s'exécute bien

systemctl status postgresql.service

Créer une nouvelle base et un rôle : ils seront utilisés par l'application.

runuser -u postgres -- psql
CREATE DATABASE inventree;
CREATE USER itree WITH ENCRYPTED PASSWORD 'myPassW0RD';
GRANT ALL ON DATABASE inventree TO itree;
 
; WARN : Pour que toutes les requêtes puissent s'exécuter correctement,
;        faire de l'utilisateur le possesseur de la base;
ALTER DATABASE inventree OWNER TO itree;

Quitter le client psql. Depuis le compte root, vérifier que la base est accessible pour l'utilisateur inventree :

runuser -u inventree -- psql --user itree --password -h /var/run/postgresql inventree

Sur une installation par défaut, la commande précédente devrait retourner un message d'erreur du type :

psql: erreur : la connexion au serveur sur le socket « /var/run/postgresql/.s.PGSQL.5432 » a échoué : FATAL:  authentification peer échouée pour l'utilisateur « itree »

A l'installation, le serveur PostgreSQL est paramétré pour n'autoriser les utilisateurs locaux à se connecter à la socket qu' en mode “peer”.

Modifier le fichier d'autorisation /etc/postgresql/17/main/pg_hba.conf pour permettre une connexion par role/mot de passe sur la base inventree :

# ...
# Database administrative login by Unix domain socket
local   all             postgres                                peer
 
# TYPE  DATABASE        USER            ADDRESS                 METHOD
 
# "local" is for Unix domain socket connections only
local   inventree       itree                                   password
local   all             all                                     peer
# ...
Attention à la position de la ligne dans le fichier : placer les connexions rôle/mot de passe avant la ligne all all peer (évaluation séquentielle et sortie à la première correspondance).
systemctl reload postgresql.service
runuser -u inventree -- psql --user itree --password -h /var/run/postgresql inventree

Si tout est correctement paramétré, le client psql est connecté au serveur et affiche le nom de la base dans le prompt

psql (17.8 (Debian 17.8-0+deb13u1))
Saisissez « help » pour l'aide.

inventree=>

Application

Installer les paquetages prérequis :

apt-get update
apt-get install -y \
    python3 python3-dev python3-pip python3-invoke python3-venv \
    git gcc g++ gettext gnupg \
    poppler-utils libpango-1.0-0 libpangoft2-1.0-0 \
    libjpeg-dev webp
 
apt install -y weasyprint
# Création des répertoires nécessaires à l'application
mkdir -p /srv/inventree/data/{static,media,backup}
chown -R inventree: /srv/inventree
 
su - inventree
cd /srv/inventree

Récupérer le code source d'InvenTree :

# git clone https://github.com/inventree/inventree src
git clone https://github.com/inventree/inventree app

La branche master intègre les dernières fonctionnalités mais est en cours de développement. Utiliser la branche stable de préférence puis créer l'environnement virtuel Python :

cd app
git checkout stable
 
python3 -m venv env
source env/bin/activate
 
# Les paquets requis pour le serveur InvenTree doivent être installés dans l'environnement virtuel
pip install --upgrade --ignore-installed invoke
 
# Selon le SGDB choisit, installer paquets de liaison binding (ici PostgreSQL)
pip3 install psycopg pgcli
 
# Si MySQL
# pip3 install mysqlclient mariadb
 
# Installer
export INVENTREE_SITE_URL="http://inventree.kvm.internal"
export INVENTREE_STATIC_ROOT="/srv/inventree/data/static/"
export INVENTREE_MEDIA_ROOT="/srv/inventree/data/media/"
export INVENTREE_BACKUP_DIR="/srv/inventree/data/backup/"
export INVENTREE_DB_ENGINE=postgresql
export INVENTREE_DB_NAME=inventree INVENTREE_DB_USER=itree INVENTREE_DB_PASSWORD="myPassW0RD"
 
invoke install

Initialiser la base de données :

invoke update --skip-backup

Créer le compte d'administration

invoke superuser

Tester l'installation avec le serveur de développement :

invoke dev.server

Ouvrir le navigateur à l'adresse http://your-vm-ip:8000

Construire le frontend

apt install -y yarnpkg

Références

software/applications/inventree.txt · Dernière modification : 2026/03/10 21:29 de yoann