搭建InvenTree库存管理系统

本文最后更新于:2025年5月6日 下午

对于电子爱好者来说,随着购买的电子器件种类繁多,缺少整理会造成不必要的浪费,所以需要一款软件对各种器件进行记录与整理;市面上有面向企业的付费软件,但是对于个人使用而言,这无疑是负担不起的,在网上搜索了一些开源并且免费的软件,发现InvenTree开源仓储管理系统符合本人使用场景,并且搭建方式多种,对使用环境要求不高,本篇文章将指导如何在OpenMediaVault系统中使用Docker搭建InvenTree。[1]

Docker

对于Docker的操作详情请查看这篇文章:

安装所需软件

1
2
3
4
5
sudo apt-get install \
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 pipx

安装WeasyPrint

在某些系统上,需要安装此软件包及依赖,详细请查看官方说明:WeasyPrint Installation

Debian ≥ 11

1
sudo apt install weasyprint
1
sudo apt install python3-pip libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz-subset0 libjpeg-dev libopenjp2-7-dev libffi-dev

更换pip及pip3源

更换为阿里云的源。

1
sudo pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
1
sudo pip config set install.trusted-host mirrors.aliyun.com
1
sudo pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple
1
sudo pip3 config set install.trusted-host mirrors.aliyun.com

创建InvenTree文件夹

安装InvenTree的步骤可能会有所变化,详情请查看官方文档:Docker Production Server

此文件夹用于存放InvenTree Docker容器相关配置文件。

1
2
3
4
5
6
7
8
9
cd

mkdir docker

cd docker

mkdir inventree

cd inventree

下载InvenTree所需文件

1
wget https://raw.githubusercontent.com/inventree/inventree/e2a092ea0436f9f9805e0633b0addef5f10e6f35/contrib/container/docker-compose.yml
1
wget https://raw.githubusercontent.com/inventree/inventree/e2a092ea0436f9f9805e0633b0addef5f10e6f35/contrib/container/.env
1
wget https://raw.githubusercontent.com/inventree/inventree/e2a092ea0436f9f9805e0633b0addef5f10e6f35/contrib/container/Caddyfile

编辑配置文件

1
sudo nano .env

修改以下配置的值:

INVENTREE_SITE_URL="http://192.168.x.xxx":InvenTree网页地址。

INVENTREE_EXT_VOLUME=/srv/dev-disk-by-uuid-b218f1c8-9bea-4c13-998d-ec63acd03af2/Appdata/inventree-data:数据存放位置。

INVENTREE_ADMIN_USER=xxx:管理员账户名称。

INVENTREE_ADMIN_PASSWORD=xxx:管理员账户密码。

INVENTREE_ADMIN_EMAIL=1639945679@qq.com:管理员账户邮箱。

INVENTREE_DB_USER=xxx:数据库用户名称。

INVENTREE_DB_PASSWORD=xxx:数据库用户密码。

1
sudo nano docker-compose.yml

修改以下位置:

${INVENTREE_WEB_PORT:-80}:80-80为网页端口号,默认值会和OpenMediaVault冲突,请修改为其他端口!

初始化数据库

需在inventree文件夹中执行。

1
sudo docker compose run -e http_proxy=http://ip:port -e https_proxy=http://ip:port --rm inventree-server invoke update

由于网络环境复杂,该命令使用了代理,防止出现不必要的情况,此过程比较漫长,而且会伴有失败的情况,请解决相关报错并多次尝试。

在某些系统上,可能存在PostgreSQL版本不兼容而出现报错,可以添加官方源进行版本切换,详细安装说明请查看 PostgreSQL: Linux downloads (Debian)

  1. 安装PostgreSQL

    1
    sudo apt install postgresql
  2. 添加PostgreSQL官方源

    1
    sudo apt install -y postgresql-common
    1
    sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
    1
    sudo apt install -y postgresql-version

启动容器

1
docker compose up -d

登录查看InvenTree网页界面

在浏览器中输入IP地址及设置的端口,即可打开InvenTree网页界面,使用管理员账户登录即可。

InvenTree网页界面

特别鸣谢


搭建InvenTree库存管理系统
https://dongxunz.github.io/2025/05/05/仓储/搭建InvenTree库存管理系统/
作者
dongxunz
发布于
2025年5月5日
许可协议