
Snipe-IT 部署指南30 分钟搭好你自己的开源 IT 资产管理系统【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it这篇文章面向第一次自托管的运维和 IT 管理员讲如何用 Docker Compose 把 Snipe-IT 这套开源 IT 资产管理系统部署起来。整个过程只有两个容器应用 MariaDB和一份 .env 文件顺利的话 30 分钟内可以在浏览器里登录。它解决的是日常最烦的几个问题这台笔记本在谁手里、采购成本多少、软件许可证什么时候到期、维护记录找得到吗。 先划清边界Snipe-IT 是什么、不是什么它是一个 Web 端资产台账。核心模块包括资产登记与领用/归还、软件许可证席位管理、配件耗材库存、维护计划、EULA 签收以及 REST API。技术栈是 Laravel 12 MariaDB 11.4.7官方提供现成的 Docker 镜像核心运行配置见 config/app.php。它不是不是 MDM。它不往终端设备装 agent 抓库存数据靠手工录入、CSV 导入模板在 sample_csvs/或对接 Jamf、Intune 等第三方适配器同步不是财务系统。它记录采购成本用于折旧但没有采购审批流不是权限中台。它只管自己系统内的账号和角色不替代企业身份体系可配 LDAP/SAML/OIDC。想清楚这三点就不会拿它去干错事。✅ 动手前的 3 项确认确认项标准怎么查Docker 与 Compose 可用能运行 compose 编排见下方代码块资源与端口内存 ≥ 2GB磁盘 ≥ 10GB8000 端口空闲free -h、docker ps看端口占用网络服务器可拉取 Docker Hub 镜像能访问外网即可docker --version docker compose version模板环境变量文件在 docker/docker.env里面用注释分好了必填/可选两块。必填的只有应用设置APP_KEY、APP_URL、数据库四件套DB_DATABASE、DB_USERNAME、DB_PASSWORD、DB_HOST、SMTP 邮件设置。 从零到浏览器最短部署路径git clone https://gitcode.com/GitHub_Trending/sn/snipe-it cd snipe-itcp docker/docker.env .envAPP_KEYChange_this_key_or_snipe_will_get_ya APP_URLhttp://127.0.0.1:8000 DB_HOSTdb DB_DATABASEsnipeit DB_USERNAMEsnipeit DB_PASSWORD换个强密码APP_KEY 留默认也行首次启动会自动生成想换就填base64:加 32 字节随机串。然后启动docker compose up -ddocker compose ps docker compose logs -f app编排文件 docker-compose.yml 里 app 依赖 db 的service_healthy检查所以数据库没就绪时应用会自动等不用手动卡顺序。看到日志出现 HTTP 服务启动后浏览器访问http://服务器IP:8000用初始账号 adminexample.com / password 登录登录后第一件事是改密码。 登录后先做这 3 件事登记第一台资产。先建厂商Manufacturers和资产模型Asset Models再加资产填资产标签、序列号、采购日期、购买价格。这一步的意义在于之后的领用、维护、报废都挂在它上面。领用给一个人。在资产详情页做 checkout选用户后系统自动写操作日志Actionlog如果分类里开了 EULA 还会生成签收单发给对方——以后扯皮他到底签没签时有据可查。把许可证搬进来。给常用软件建 License录入席位总数和到期日然后按席位分发给设备。到期前系统会按 config/ 里配置的提醒规则发邮件告警不用人肉盯 Excel。 数据在哪、怎么备份、怎么迁移数据只落在两个 Docker 命名卷里db_data存 MySQL 数据storage存上传文件和备份包卷定义在 docker-compose.yml 顶部。备份用的是 spatie/laravel-backup^9.0备份范围由 config/backup.php 决定包含 uploads、private_uploads 和 OAuth 密钥在 .env 里加一行BACKUP_ENVtrue会把 .env 本身也打进去。常用命令docker compose exec app php artisan backup:run docker compose exec app php artisan backup:list跨机器迁移的最省事做法旧机器backup:run出备份包连同两个卷一起搬到新机器卷可以docker run --rm -v 旧卷:/old -v 新卷:/new alpine cp -r拷走或者只在新机器上用系统自带的恢复命令还原备份包见 app/Console/Commands/RestoreFromBackup.php。数据库连接参数本身在 config/database.php迁移后如果换了库名记得同步 .env。 常见异常排查现象 → 原因 → 解决现象可能原因解决浏览器 502 / 空白页app 崩了或 db 未就绪docker compose ps看状态docker compose logs app找报错启动时报数据库连接失败.env 里 DB_* 与容器内服务对不上对照 docker/docker.env 检查 DB_HOST、DB_USERNAME、DB_PASSWORD改完docker compose restart app图片/附件上传失败PHP 的upload_max_filesize太小调大 PHP 上传限制后docker compose restart app用docker compose exec app php -i \| grep upload_max_filesize验证领用、到期提醒邮件发不出去SMTP 未配或配错检查 .env 里 MAIL_HOST、MAIL_PORT、MAIL_USERNAME 五项用系统内邮件测试功能验证⚙️ 进阶性能与规模人少的时候不用动配置.env 里CACHE_DRIVERfile、SESSION_DRIVERfile就是默认值够用。数据量上来以后把缓存和会话换成 Redis再进容器执行php artisan route:cache、view:cache、config:cache三件套即可。要接外部系统CMDB、工单就用官方 REST API路由定义在 routes/api.php要跑多副本先把SESSION_DRIVER换成集中式存储否则会话会错乱。 一页纸运维清单每次部署后改掉初始密码确认 APP_URL 与实际域名一致每周看一次backup:list确认备份成功扫一眼docker compose logs有无异常每月拿最近一次备份包做一次恢复演练验证备份真的可用每季度更新 docker-compose.yml 里的APP_VERSION标签拉新版镜像升级前照常先备份。资产系统最大的风险不是装不上而是数据只有一份。备份验证这一步比任何性能优化都值钱。【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考