免费开源,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:新增资产

点击顶部导航 AssetsCreate 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召唤狮」整理发布,图片已添加版权水印,转载需授权。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐