- 项目源码地址:
https://github.com/celaraze/chemex - 项目中文名称:咖啡壶
项目概述
Chemex,中文名称为“咖啡壶”,是一款完全免费、开源、高效且用户界面美观的IT资产管理平台。该平台提供完整的资产管理功能,包括资产全生命周期管理、归属和使用者追踪、库存盘点以及可靠的服务器状态监控面板。整个系统基于优雅的Laravel框架进行开发,确保了代码的可维护性和扩展性。
部署步骤详解
目前在整个互联网范围内,Chemex项目的部署方案尚未出现简单易用的标准化方法。网络上常见的部署方式都是将Chemex应用程序与MySQL数据库服务分开独立安装,由于Chemex对MySQL数据库的强依赖性,这种分离部署方式需要进行大量固化配置,额外增加了许多操作步骤,从而显著提升了整个项目的部署难度和复杂程度。
经过长时间的深入研究和实践测试,我终于成功实现了整个项目的Docker Compose容器化部署方案。有相关需求的用户可以直接使用以下配置进行快速部署。
Docker Compose配置文件:
services:
db:
image: docker.1ms.run/library/mariadb:11.1.2
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: unless-stopped
volumes:
- ./data/db:/var/lib/mysql # 请根据实际需求修改此路径
environment:
- TZ=Asia/Shanghai
- MARIADB_USER=chemex
- MARIADB_PASSWORD=chemex
- MARIADB_DATABASE=chemex
- MARIADB_ROOT_PASSWORD=jfzui666
redis:
image: redis:6.2-alpine
restart: unless-stopped
chemex:
image: docker.1ms.run/celaraze/chemex:latest
restart: unless-stopped
stdin_open: true # stdin_open和tty两个参数必须设置,否则容器启动后会立即退出
tty: true
ports:
- 8112:8000
volumes:
- ./data/.env:/var/www/html/laravel/.env # 请根据实际的.env文件路径进行修改
links:
- db
- redis
environment:
- TZ=Asia/Shanghai
- INSTALL=true
环境配置文件内容:
DB_CONNECTION=mysql
DB_HOST=db # 特别注意此处的配置值,必须与docker-compose文件中的服务名称保持一致
DB_PORT=3306
DB_DATABASE=chemex
DB_USERNAME=chemex
DB_PASSWORD=chemex
ADMIN_HTTPS=false
APP_NAME=chemex
APP_ENV=local
APP_URL=http://192.168.31.30:8112 # 请根据docker-compose文件中设置的端口映射进行相应修改
APP_KEY=base64:Hq8LO6cGmnK1jjgCvPxI/vWGIAkssR9bwkYEPo1YDhk=
APP_DEBUG=true # 此参数必须设置为true,否则无法正常访问系统
LOG_CHANNEL=stack
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
ADMIN_DEMO=false
JWT_SECRET=0ZlvqZweCor4ICyRQp14hcFsEeWiRIJYBDvJCs7HvWnogwvfX6LzXRJGD20cda66
完成上述配置文件设置后,执行容器启动命令:docker compose up -d。
首次安装并启动容器后,系统还不能立即通过浏览器访问,需要先完成数据库的初始化工作。执行命令:docker ps -f name=chemex-chemex查找正在运行的chemex容器名称,通常命名为chemex-chemex-1,接着执行命令:docker exec -it chemex-chemex-1 bash进入容器内部环境,在容器内部执行安装命令:php artisan chemex:install,此时会看到如下输出内容:
' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)
请特别注意图中红色框标注的位置,系统会要求手动输入yes并按回车键确认,安装流程将继续执行。当看到如下输出内容时:

表示系统安装已成功完成,此时输入exit命令退出容器内部环境。然后通过浏览器访问http://<nas-ip>:8112,正常情况下应该能够看到登录页面。如果出现异常情况,则可能会显示如下错误信息:

此时需要再次进入容器内部环境,执行命令:docker exec -it chemex-chemex-1 bash,然后运行命令:php artisan cache:clear清理系统缓存。缓存清理完成后,返回浏览器重新访问http://<nas-ip>:8112,现在应该能够正常显示登录页面:

使用默认账号admin和密码admin登录后,即可进入系统全局首页:

该系统完全中文化,用户界面布局简洁明了,功能分区清晰合理,相信用户能够快速掌握操作方法。
系统特点总结
- Chemex资产管理平台功能非常强大,涵盖了企业IT资产管理的各个方面,非常适合各类企业组织使用
- 本文主要目的是将Chemex项目的部署过程进行Docker Compose容器化改造,从而显著简化用户的安装配置流程