Part-DB部署
本文写的是基于Docker
部署Part-DB
,参考官方文档。本来是想部署InvenTree,鼓捣几天后差不多行了,后又发现Part-DB,好像也挺符合管理电子物料的需求的,而且还轻量,又和kicad之类的软件有联系,就部署了。具体参考自该官方文档:使用 Docker 安装 Part-DB,配置文件中变量详细信息:https://docs.part-db.de/configuration.html。
部署流程
-
Docker安装流程不赘述,毕竟每个服务器系统安装的方式可能都不同。可以通过下述命令来查看docker是否安装了,安装成功了就能显示版本号,反之失败。
docker -v
-
MySQL数据库版的配置文件
所有注释均已翻译,且为MySQL数据库版本的,默认是SQLite数据库。
version: '3.3' services: partdb: container_name: partdb # 默认情况下,Part-DB将在端口 8080 下运行,您可以在这里更改它 ports: - '8080:80' volumes: # 默认情况下 - ./uploads:/var/www/html/uploads - ./public_media:/var/www/html/public/media - ./db:/var/www/html/var/db restart: unless-stopped image: jbtronics/part-db1:latest depends_on: - database environment: # 将 SECRET_USER_PASSWORD 替换为下面的 MYSQL_PASSWORD 值 - DATABASE_URL=mysql://partdb:SECRET_USER_PASSWORD@database:3306/partdb # 在 docker 中,日志将被重定向到stderr - APP_ENV=docker # 您可以使用环境变量配置零件数据 # 下面您可以找到预定义的最基本的环境变量 # 但是,您可以在此处添加任何其他所需的环境配 # 有关所有可用选项,请参阅.env文件或https://docs.Part-DB.de/configuration.html # 服务器范围内默认使用的语言(en、de、ru等) - DEFAULT_LANG=en # 服务器范围使用的默认时区(例如欧洲/柏林) - DEFAULT_TIMEZONE=Europe/Berlin # 数据库中使用的货币(在没有设置货币时假定)。这是以后无法更改的,所以请务必将其设置为您所在国家使用的货币 - BASE_CURRENCY=EUR # 此安装的名称。这将在浏览器和网站的标题中显示 - INSTANCE_NAME=Part-DB # 允许用户通过提供URL下载附件到服务器 # 这可能是一个潜在的安全问题,因为用户可以检索服务器(通过互联网)访问的任何文件 - ALLOW_ATTACHMENT_DOWNLOADS=0 # 当用户未定义自己的头像时,使用Gravatar作为用户头像 - USE_GRAVATAR=0 # 如果你想在主页上显示给定的文本,则覆盖该值 # 当此为空时,config/banner 的内容.md被用作横幅 #- BANNER=这是一个带有换行符的测试横幅<br> database: container_name: partdb_database image: mysql:8.0 restart: unless-stopped command: --default-authentication-plugin=mysql_native_password --log-bin-trust-function-creators=1 environment: # 修改密码 MYSQL_ROOT_PASSWORD: SECRET_ROOT_PASSWORD MYSQL_DATABASE: partdb MYSQL_USER: partdb MYSQL_PASSWORD: SECRET_USER_PASSWORD # 如果您需要从 Docker 容器外部访问 MySQL 数据库(例如用于调试),请取消以下行的注释,通常情况下应保持禁用状态。 #ports: # - '4306:3306' volumes: - ./mysql:/var/lib/mysql
-
针对自身需求,修改上述文件。
version: '3.3' services: partdb: container_name: partdb # 默认情况下,Part-DB将在端口 8080 下运行,您可以在这里更改它 ports: - '8080:80' volumes: # 默认情况下 - ./uploads:/var/www/html/uploads - ./public_media:/var/www/html/public/media - ./db:/var/www/html/var/db restart: unless-stopped image: jbtronics/part-db1:latest depends_on: - database environment: # 将 SECRET_USER_PASSWORD 替换为下面的 MYSQL_PASSWORD 值 - DATABASE_URL=mysql://partdb:MySQLPasswordXXX@database:3306/partdb # 在 docker 中,日志将被重定向到stderr - APP_ENV=docker # 您可以使用环境变量配置零件数据 # 下面您可以找到预定义的最基本的环境变量 # 但是,您可以在此处添加任何其他所需的环境配 # 有关所有可用选项,请参阅.env文件或https://docs.Part-DB.de/configuration.html # 服务器范围内默认使用的语言(en、de、ru等) - DEFAULT_LANG=zh # 服务器范围使用的默认时区(例如 中国标准时间CST ) - DEFAULT_TIMEZONE=Asia/Shanghai # 数据库中使用的货币(在没有设置货币时假定)。这是以后无法更改的,所以请务必将其设置为您所在国家使用的货币 - BASE_CURRENCY=CNY # 此安装的名称。这将在浏览器和网站的标题中显示 - INSTANCE_NAME=Part-DB # 允许用户通过提供URL下载附件到服务器 # 这可能是一个潜在的安全问题,因为用户可以检索服务器(通过互联网)访问的任何文件 - ALLOW_ATTACHMENT_DOWNLOADS=0 # 当用户未定义自己的头像时,使用Gravatar作为用户头像 - USE_GRAVATAR=0 # 如果你想在主页上显示给定的文本,则覆盖该值 # 当此为空时,config/banner 的内容.md被用作横幅 #- BANNER=这是一个带有换行符的测试横幅<br> database: container_name: partdb_database image: mysql:8.0 restart: unless-stopped command: --default-authentication-plugin=mysql_native_password --log-bin-trust-function-creators=1 environment: # 修改密码 MYSQL_ROOT_PASSWORD: 123456789 MYSQL_DATABASE: partdb MYSQL_USER: partdb MYSQL_PASSWORD: MySQLPasswordXXX # 如果您需要从 Docker 容器外部访问 MySQL 数据库(例如用于调试),请取消以下行的注释,通常情况下应保持禁用状态。 #ports: # - '4306:3306' volumes: - ./mysql:/var/lib/mysql
-
默认使用的语言修改成中文
DEFAULT_LANG=zh
-
服务器范围使用的默认时区(例如 中国标准时间CST )
DEFAULT_TIMEZONE=Asia/Shanghai
-
设定为人民币
BASE_CURRENCY=CNY
-
官方要求的三处修改数据库路径、root用户密码、数据库。取值(仅供参考演示,切勿带入实际生成环境中)
DATABASE_URL=mysql://partdb:MySQLPasswordXXX@database:3306/partdb MYSQL_ROOT_PASSWORD: 123456789 MYSQL_PASSWORD: MySQLPasswordXXX
-
-
修改并准备号配置文件后,运行拉取配置
# 在文件夹内,运行 docker-compose up -d # 使用 创建初始数据库(该命令运行完后,不要急着关闭,要管理员账号和密码打印出来) docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate
新版更新
如果有新的版本,可以按照下述流程,更新 Part-DB,您可以通过拉取最新镜像并重启容器来更新 Part-DB。然后,您必须再次运行数据库迁移。
docker-compose pull
docker-compose up -d
docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate
其它问题
- 在docker拉取镜像或资源时,报
artdb Error Get "https://registry-1.docker.io/v2/"
错误。这种情况,就是现有加速源可能拉取不到,或者速度慢,在上网多搜索几个加速源配置就好了。 - Part-DB的界面,匿名者(没登录的用户)是可以默认有大部分权限的,要是不想让匿名者进入Part-DB物料界面查看物料信息,请及时关闭。