InvenTree est un logiciel de gestion d'inventaire open source s'appuyant sur Python et le framework Django.
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
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 # ...
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=>
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
apt install -y yarnpkg