{{tag>software application inventaire gestion}} ====== 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 ===== * [[https://docs.inventree.org/en/stable/|Documentation officielle InvenTree (docs.inventree.org) (en)]] * [[https://docs.inventree.org/en/stable/start/install/|Guides d'installation d'InvenTree (inventree.org) (en)]] * [[https://docs.inventree.org/en/stable/start/bare_prod/|Installer un serveur de production (docs.inventree.org) (en)]] * [[https://linuxcapable.com/how-to-install-yarn-on-debian-linux/|Installer yarn sur Debian (linuxcapable.com) (en)]]