【Snipe-IT】开源 IT 资产管理系统 — 一套系统管好企业所有IT设备
免费开源,GitHub 13.8k Star,22年持续迭代,全球数 万企业正在使用的 IT 资产管理神器。
一、引言:痛点与场景
做 IT 运营的同学们,有没有遇到过这些烦恼?
新员工入职要配笔记本,结果仓库里哪台电脑空闲、哪台该报废了,一概不知。买了一堆软件许可证,结果谁用了多少 Key、还剩多少可用,根本追踪不到。设备借出去容易,收回来难——设备现在在谁手上、去了哪里,根本查不到。
这些问题,几乎是每个 IT 部门的共同痛点。尤其是设备数量上了百台以后,纯靠 Excel 管理根本扛不住:
- 设备序列号、资产编号、使用人、位置…信息散落在各个表格里
- 借还全靠口头说,找不到就是"丢了"
- 每次审计盘点要耗费大量人力,还容易出错
- 软件许可证究竟用了多少套、哪套快要到期了,根本没有感知
Snipe-IT 就是为了解决这些问题而生的。它是一套免费、开源(AGPL-3.0)、基于 Laravel 12 的 IT 资产管理系统,可以帮助你:
从设备采购到报废,完整追踪每一件 IT 资产的全生命周期。
二、项目简介
Snipe-IT 由美国 San Diego 的 Grokability 公司开发和维护,GitHub 地址:
https://github.com/grokability/snipe-it
核心数据(截至 2026 年 5 月):
| 指标 | 数值 |
|---|---|
| GitHub Star | 13.8k |
| Fork | 3.8k |
| Commits | 22,687+ |
| 版本 | v8.5.0 |
| License | AGPL-3.0 |
| 首次提交 | 2013 年 |
项目官方提供了在线演示,无需安装即可体验(账号:admin,密码:password):
https://demo.snipeitapp.com
典型应用场景:
- 🏢 50~5000 人规模中小企业 IT 部门
- 💻 需要管理大量笔记本、显示器等固定设备的团队
- 🔑 需要追踪软件许可证使用的场景
- 🔗 已有 Jamf / Kandji / UniFi 等 MDM 系统的企业(与 Snipe-IT 联动)
三、系统架构
3.1 系统架构图

▲ 图1:Snipe-IT 系统架构全景图
Snipe-IT 采用经典的分层架构,从上到下分为四层:
用户层 — 支持浏览器访问 Web 管理后台、第三方系统通过 REST API 集成、以及扫码枪/PDA 等移动端设备访问。
前端层 — 基于 AdminLTE 2 + Bootstrap 3 构建管理界面,使用 Blade 模板引擎渲染视图,jQuery + AJAX 实现交互,Chart.js v2.9 负责图表可视化,bacon-qr-code 生成二维码,Select2 实现下拉搜索,Laravel Mix(Webpack)管理前端构建。
后端层 — 基于 Laravel 12(PHP 8.2+),核心组件包括:Laravel Passport 提供 OAuth2 认证、Redis 处理队列和缓存、Intervention/Image 处理图片上传和缩略图生成、TCPDF 生成资产标签 PDF、Slack/Teams 通知集成、Socialite 支持第三方登录。
数据层 — MySQL 5.7+ 作为主数据库,Redis 做缓存层,支持本地存储或 S3 云存储,Session 可以存在 Redis 或数据库中。
3.2 双控制器架构
Snipe-IT 的一个重要架构特点是双控制器并行:
app/Http/Controllers/ → Web 控制器(Blade 视图)
├── AssetsController.php → 返回 HTML 页面
└── LicensesController.php
app/Http/Controllers/Api/ → REST API 控制器(JSON)
├── AssetsController.php → 返回 JSON,供 Select2 AJAX 调用
└── LicensesController.php
所有 API 响应统一通过 Transformer 格式化:
return (new AssetsTransformer)->transformAssets($assets, $count);
授权统一通过 Laravel Policy 管理,核心是 CheckoutablePermissionsPolicy。
3.3 资产生命周期工作流

▲ 图2:Snipe-IT 资产生命周期工作流
资产从入库到报废,经历六个阶段:采购 → 登记 → 分配 → 跟踪 → 维护 → 报废,每一步在系统中都有记录,支持随时回退和变更。
四、核心特性解析
4.1 仪表盘 — 全局数据一目了然

▲ 图3:Snipe-IT 仪表盘(Demo 环境)
登录后首先看到仪表盘,所有关键数据一览无余:
- 六大统计卡片:Assets(2,608)、Licenses(300)、Accessories(4)、Consumables(3)、Components(4)、People(2,088)
- 资产状态饼图:Ready to Deploy(待部署)/ Deployed(已借出)/ Archived(已报废)/ Pending(待处理)
- 位置分布表:各办公室/楼层资产分布
- 最近活动日志:谁在什么时间借出了什么设备
4.2 资产管理 — 完整生命周期

▲ 图4:资产列表页(Demo 环境,2608 条记录)
资产列表页提供完整的数据表格,支持分页浏览(Demo 库有 2608 条记录)、全局搜索、高级筛选、自定义列显示。
每件资产记录的核心字段:
| 字段 | 说明 |
|---|---|
| Asset Tag | 系统唯一标识(如 #1680598928) |
| Serial | 硬件序列号 |
| Model | 设备型号(如 MacBook Pro 13") |
| Category | 类别(笔记本、显示器、手机…) |
| Status | 当前状态(待部署/已借出/已报废…) |
| Checked Out To | 当前使用人 |
| Location | 所在位置 |
| Purchase Cost | 采购成本 |
| Current Value | 当前价值(自动折旧) |
核心操作:
- Checkout:将设备借出给员工,自动记录借出时间
- Checkin:设备归还,自动更新状态
- 审计(Audit):实物盘点,确认设备仍在原位
- QR 码:每资产生成唯一二维码,扫码快速查询
- 批量操作:支持 Bulk Edit 批量修改
- 导入/导出:CSV 批量导入,Excel 导出
4.3 软件许可证管理
Snipe-IT 的许可证管理功能非常成熟:
- 记录许可证购买数量和已使用数量(Seats)
- 到期提醒设置
- 关联到具体资产或用户
- 支持多种许可证类型:永久、订阅、并发授权…
- 许可证与资产双向关联,可查看某设备上安装了哪些软件
4.4 其他资产类型
| 模块 | 典型物品 | 说明 |
|---|---|---|
| Accessories | 鼠标、键盘、耳机 | 非资产类配件 |
| Consumables | 打印纸、墨盒、硒鼓 | 一次性消耗品 |
| Components | 内存条、硬盘、显卡 | 可拆分的零件 |
| Kits | 预配置工作站套装 | 整机+配件组合 |
4.5 通知与集成
- Email 通知:借出/归还/到期自动提醒
- Slack / Microsoft Teams:集成即时通讯工具
- LDAP / Active Directory:企业目录服务集成
- REST API:完整的 OAuth2 API,支持第三方集成
五、快速上手
5.1 Docker 部署(推荐,最快 5 分钟上线)
# 1. 克隆官方仓库
git clone https://github.com/snipe/snipe-it.git
cd snipe-it
# 2. 启动所有服务(Snipe-IT + MySQL)
docker-compose up -d
# 3. 生成 APP_KEY
docker-compose run --rm app php artisan key:generate --show
# 4. 将生成的 APP_KEY 填入 .env 文件,然后重启
docker-compose restart
# 5. 访问 http://your-ip:8000 完成初始化配置
5.2 系统要求
| 组件 | 最低要求 |
|---|---|
| PHP | 8.2+ |
| 数据库 | MySQL 5.7+ / MariaDB 10.3+ |
| Web 服务器 | Nginx / Apache |
| PHP 扩展 | curl, fileinfo, iconv, json, mbstring, PDO, OpenSSL |
| 内存 | 推荐 2GB+ |
5.3 在线演示
无需安装,直接访问 Demo 体验完整功能:
https://demo.snipeitapp.com
账号:admin
密码:password
六、实战演示:资产管理全流程
以下演示如何在 Snipe-IT 中完成一次完整的资产借出流程。
Step 1:登录系统
访问 Demo 地址,使用管理员账号登录。
Step 2:新增资产
点击顶部导航 Assets → Create New,填写资产信息:
- Asset Tag:
TEST-001(自动生成或手动指定) - Name:
MacBook Pro 14寸 - Serial:
C02FN1ABCD01 - Model:选择
MacBook Pro 14" - Category:
Laptops - Status:
Ready to Deploy - Purchase Cost:
15999 - Purchase Date:当天日期
保存后系统自动生成资产记录。
Step 3:借出资产(Checkout)
在资产列表中找到 TEST-001,点击行末的 Checkout 按钮,选择借出对象(员工)和预计归还日期。
借出成功后,资产状态自动从 Ready to Deploy 变为 Deployed,活动日志中记录借出时间和操作人。
Step 4:归还资产(Checkin)
在资产详情页点击 Checkin,填写备注(如"设备正常"),系统自动更新状态为 Ready to Deploy。
Step 5:扫码查询
每件资产详情页显示 QR 码,打印出来贴在设备上。用手机扫码即可快速查看设备信息。
七、技术亮点深度解析
7.1 Laravel 12 + 双控制器设计
Snipe-IT 基于 Laravel 12 构建,充分利用了 Laravel 的成熟生态。Web 路由和 API 路由完全分离,前者返回 Blade 视图,后者返回 JSON 数据,两者通过统一的 Transformer 层保持数据格式一致。
7.2 Policy 授权体系
所有权限控制通过 Laravel Policy 实现,核心是 CheckoutablePermissionsPolicy:
// 控制器中简洁的授权调用
$this->authorize('checkout', Asset::class);
// 可以在没有实例的情况下检查权限
@can('checkout', \App\Models\Asset::class)
7.3 活跃的社区与生态
- 13.8k GitHub Star,2.2 万 commits,活跃度堪比一线开源项目
- 331 位 Contributors
- 完整的 i18n 支持(Crowdin 管理翻译)
- 丰富的第三方集成:Jamf、Kandji、UniFi、PowerShell、MCP Server
7.4 折旧计算
Snipe-IT 内置折旧计算逻辑,根据采购日期、采购成本和预设的折旧年限,自动计算资产当前价值,在仪表盘和报表中直观展示。
八、相关资源
| 资源 | 链接 |
|---|---|
| GitHub 仓库 | https://github.com/grokability/snipe-it |
| 官网 | https://snipeitapp.com |
| 在线演示 | https://demo.snipeitapp.com |
| 官方文档 | https://snipe-it.readme.io |
| API 文档 | https://snipe-it.readme.io/reference |
| Docker 部署 | https://snipe-it.readme.io/docs/docker |
| 官方文档(安装) | https://snipe-it.readme.io/docs/requirements |
| Discord 社区 | https://discord.gg/yZFtShAcKk |
本文由「IT召唤狮」整理发布,图片已添加版权水印,转载需授权。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)