Snipe-IT Docker部署指南:三步跑通IT资产管理系统
【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it
想把开源的 IT 资产/许可证管理系统 Snipe-IT 跑起来,不用再手工折腾 PHP 和 Apache。用 Docker Compose 把应用和数据库一起拉起,几分钟后在浏览器里打开一个可登录、可管资产的实例。
环境自检:能不能上
动手前先确认三件事:
- 装了 Docker Engine 20.10+ 和 Compose v2 插件
- 宿主机 8000 端口空闲(compose 里映射的是
${APP_PORT:-8000}:80) - 有足够磁盘放镜像和数据卷
一条命令确认工具链:docker compose version。为什么先查这个:旧版 Compose 不认service_healthy这种健康检查条件,数据库没就绪时应用会抢先启动然后报错。
最短路径:三步跑通部署
克隆、复制配置、启动,就三步:
git clone https://gitcode.com/GitHub_Trending/sn/snipe-it cd snipe-it cp docker/docker.env .env为什么用这个模板:docker/docker.env 里数据库主机、端口都靠容器网络自动填充,你只需要补数据库名、账号和密码。然后启动:
docker compose up -d首次启动,startup.sh 会自动做几件事:
- 在
/var/lib/snipeit下建好上传、备份等数据目录 - 跑数据库迁移
php artisan migrate --force并生成配置缓存 - 拉起 supervisord 接管 Apache 进程
首次访问与默认登录
浏览器打开http://服务器IP:8000,端口可在 .env 里改APP_PORT。系统起来后,首次访问会引导你创建初始管理员账号——这一步就是默认登录,记好账号密码,后面所有管理操作都靠它。
此时用docker compose logs -f app看日志:迁移命令跑完、Apache 进程正常拉起且没有报错滚动,说明服务稳定了。
必须改的4个配置项
| 参数 | 作用 | 不改会怎样 |
|---|---|---|
| APP_KEY | 应用级密钥,会话签名靠它 | 容器启动时直接退出并提示重新运行 |
| APP_URL | 系统访问地址 | 邮件通知和资产标签里的链接指向错误地址 |
| DB_DATABASE / DB_USERNAME / DB_PASSWORD | 数据库连接三件套 | 应用连不上库,页面直接报连接错误 |
| MAIL_HOST 等 MAIL_* | SMTP 发信配置 | 借出、归还、验收提醒这些邮件发不出去 |
时区、缓存驱动、会话这类可选项,模板里都有默认值,按需再改。
数据存在哪,怎么备份
数据去哪了?看 docker-compose.yml:两个命名卷,db_data存 MariaDB 数据,storage挂到容器的/var/lib/snipeit,装用户上传和备份文件。Snipe-IT Docker 部署中只要不删卷,容器重建数据也还在。
怎么备份?进容器执行内置命令:
docker compose exec app php artisan snipeit:backup生成的 zip 落在 storage 卷的 dumps 目录;保留天数由ALL_BACKUP_KEEP_DAYS等环境变量控制,规则写在 config/backup.php。
高频踩坑清单
- 症状:日志提示 "re-run with APP_KEY"、页面打不开 →原因:密钥没配 → 处理:
docker compose run --rm app php artisan key:generate --show生成后写进 .env。 - 症状:app 容器反复重启 →原因:db 未通过健康检查或凭据不对 → 处理:
docker compose ps db看状态,核对 .env 里三个 DB_ 项。 - 症状:传大文件被拒 →原因:PHP 上传上限小 → 处理:.env 加
PHP_UPLOAD_LIMIT=100,启动脚本会改写 php.ini 生效。 - 症状:写存储目录报 Permission denied →原因:目录属主不是容器内用户 → 处理:
docker compose exec app chown -R docker:root /var/lib/snipeit。
从测试到生产:三件事
上 HTTPS:把snipeit-ssl.crt、snipeit-ssl.key放进容器的/var/lib/snipeit/ssl,启动脚本会自动开启 Apache 的 SSL 模块,再按 001-default-ssl.conf 调整 vhost。
缓存与扩展:把 .env 里的CACHE_DRIVER、SESSION_DRIVER从 file 换成 redis 或 database,多人使用时文件缓存容易成为瓶颈。
版本升级:git pull后docker compose pull && docker compose up -d即可,迁移会在启动时自动执行,不用额外记命令。
一句话收尾:先自检环境、再改四个配置项、盯一次日志、安排上备份,Snipe-IT Docker 部署就稳了。细节可查 docker/README.md 与环境变量模板 docker/docker.env。
【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考