Snipe-IT 入门教程:从部署到资产出库的 4 步实操指南
【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it
Snipe-IT 是一款基于 Laravel 12 构建的开源 IT 资产管理系统,核心职责是回答三个问题:设备在谁手上、何时购买、何时到期。它覆盖硬件、软件许可证、配件与消耗品的全生命周期记录,支持 MySQL 数据库和 REST API,适合 IT 运维、学校机房和中小企业的设备管理场景。
一、环境搭建与首次运行
当你要在一台 Linux 服务器上跑起第一版资产台账时,最短路径是:克隆仓库、配好.env、生成密钥、迁移数据库。
前置条件:PHP 8.2 及以上(composer.json 声明)、Composer、Node.js、MySQL 8。
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/sn/snipe-it,进入目录。 - 将
.env.example复制为.env,按下表调整 4 个关键项:
| 配置项 | 说明 |
|---|---|
| APP_URL | 对外访问地址,影响邮件链接与二维码内容 |
| APP_KEY | 加密密钥,由 key:generate 生成 |
| DB_CONNECTION / DB_HOST | 数据库驱动与地址,默认 mysql |
| DB_DATABASE / DB_USERNAME / DB_PASSWORD | 库名、账号与密码 |
- 安装依赖、构建前端资源并完成迁移:
composer install npm install && npm run production php artisan key:generate php artisan migrate --seed- 用 Web 服务器将站点根目录指向
public/,浏览器访问APP_URL配置的主机地址,出现登录页且能创建管理员账号,即首次运行成功。--seed会写入默认配置与初始数据,省去手工建库的多数工作。
二、核心使用流程
1. 资产录入的三种方式
| 方式 | 适用场景 | 入口 |
|---|---|---|
| Web 界面逐条创建 | 单台设备、少量新增 | 资产菜单下的新建表单 |
| CSV 批量导入 | 存量设备一次性入库 | 导入页,可参照sample_csvs/assets-sample.csv的列头准备文件 |
| REST API | 与 HR、采购系统同步 | http://你的域名/api/v1/assets,使用个人访问令牌鉴权 |
批量导入支持厂商、分类、位置、采购日期、成本等约 20 个字段,列名需与模板一致,编码建议使用 UTF-8。
2. 资产的流转:checkout、checkin 与 request
录入之后,日常操作集中在两条链路上:
- checkout(借出):把资产分配给用户,可选配件、许可证、消耗品一并绑定,并设置预期归还日期。
- checkin(归还):收回资产,系统自动在 actionlog 中记录一条流转日志。
部分资产开启了"可自助申请"属性,此时流程变为"申请—管理员批准—借出":
3. 打印资产标签用于盘点
设置页(Labels 标签页)可选择显示条形码还是二维码,配置标签编号的前缀与自动填充规则。单台资产详情页提供标签预览与 PDF 输出,资产列表页支持勾选后批量打印,配合手持扫描设备即可完成现场盘点核对。
三、进阶配置
1. 自定义字段扩展资产表单
在自定义字段组页面为资产类型新增字段(如"购买渠道""保修截止日期"),字段支持文本、下拉、日期等类型,也可设置必填与正则校验。实现逻辑见 CustomField 模型。
2. 定时任务与自动告警
系统内置调度:开启告警开关后,库存低于阈值、资产临期、预期归还、审计提醒四类邮件每天发送;数据库备份每周执行,失效密码重置记录每 15 分钟清理一次。调度定义在 Console Kernel,命令实现位于 app/Console/Commands 目录。
3. 多公司数据隔离
在设置中打开FULL_MULTICOMPANY_SUPPORT后,资产、用户、位置等数据按公司维度隔离,管理员只能看到授权公司的记录。权限判定逻辑见 权限配置,公司范围过滤见 Company 模型。
四、常见问题
Q: 部署完成后打开页面提示 500,如何定位? A: 依次查看APP_KEY是否已由 key:generate 生成、.env中数据库三项是否可连通,再看storage/logs/laravel.log中的第一条异常栈。
Q: CSV 导入被整批拒绝? A: 对照sample_csvs/assets-sample.csv逐列核对列头名称与顺序,确认文件为 UTF-8 编码,资产标签列不能留空。
Q: 标签打印出来是空白或字符错位? A: 先确认打印机 PDF 驱动与纸张尺寸匹配;再核对标签页中前缀、自动填充数字位数等设置。
Q: API 返回 401 Unauthorized? A: 在个人资料页创建个人访问令牌并复制到请求头Authorization: Bearer中,同时确认令牌未被撤销。
Snipe-IT 的价值在于把"设备去向"从个人记忆变成可审计的数据库记录,部署一次即可长期复用。你在资产盘点中遇到过哪些难以人工核对的场景?欢迎留言交流你的处理办法。
【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考