Snipe-IT 开源资产管理:10 步 Docker 部署实战,半小时搭好企业 IT 资产台账

Snipe-IT 开源资产管理:10 步 Docker 部署实战,半小时搭好企业 IT 资产台账

【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it

"张工的笔记本是几号买的?合同在哪?Windows 授权还剩几台?"——如果你常被这类问题问住,说明该给公司 IT 资产建台账了。Snipe-IT 就是干这个的开源系统:免费、自带 Web 界面、内置完整的资产领用/归还/维修/折旧流程,还能管软件许可证。今天这份实战指南,带你用 Docker 把它跑起来,从零到能用,全程可复制。

🗂️ 60 秒速览:它到底解决什么问题

先搞清楚"买它是为了什么"。Snipe-IT 是一款基于 Laravel 的 IT 资产与许可证管理系统,核心就三件事:

维度说明
管什么电脑、服务器、配件等硬件资产,以及软件许可证
解决什么谁在用、在哪、何时购买、是否折旧、何时到期
给谁用中小团队 IT 管理员、运维、行政负责资产的人员
怎么跑Web 应用,浏览器访问;推荐 Docker 部署
技术栈PHP / Laravel + MySQL(MariaDB)
亮点能力扫码领用、CSV 批量导入、审计追踪、邮件提醒、REST API

说白了:它是一张活的"公司资产户口本",每台设备从采购入库到报废全程留痕,告别 Excel 表格改来改去、版本混乱的旧日子。

✅ 小结:如果贵司有"设备常找不到、授权数不清、维修没记录"任一痛点,Snipe-IT 就值得一试。

📋 开工前检查单:逐项核对再动手

先别急着敲命令,把下面几条过一遍,能省掉后面 80% 的坑:

  • 服务器/电脑已装DockerDocker Composedocker --versiondocker compose version能输出版本号)
  • 机器内存 ≥ 2GB(Laravel + MariaDB 同时跑,1GB 会很吃力)
  • 放行计划使用的外部端口(默认8000
  • 准备好一个可用的邮箱 SMTP 账号(可以后配,但通知功能依赖它)
  • 想清楚域名或访问地址(APP_URL要填它,别用默认值糊弄)

⚠️ 注意:Snipe-IT 是 Web 系统,不是桌面软件,没有 exe,全靠浏览器访问,部署目标是"能打开网页"。

🚀 首次跑通:三行命令启动,五分钟见界面

下面是最短路径,跟着走就能看到登录页。

第一步:拉取代码与配置文件

# 克隆项目(仓库地址固定,直接用) git clone https://gitcode.com/GitHub_Trending/sn/snipe-it cd snipe-it # 复制环境模板 cp docker/docker.env .env

第二步:改三个必填项

打开.env,至少改这三处,否则容器起不来或登录报错:

# 应用密钥:必填。32 位随机串,可用下一条命令生成 APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 数据库:账号密码自己定,但要和后面 MariaDB 一致 DB_DATABASE=snipeit DB_USERNAME=snipeit_user DB_PASSWORD=你的强密码 MYSQL_ROOT_PASSWORD=另一个强密码 # 访问地址:换成你的服务器 IP 或域名,别留 localhost APP_URL=http://你的IP:8000 # 对外端口:默认 8000,想换就改 APP_PORT APP_PORT=8000

💡 提示:APP_KEY用下面的命令生成,base64:前缀要一起粘进.env这一步缺了容器会立刻退出

# 不启动容器,只生成密钥(Compose 会自动构建镜像,等待时间取决于网络) docker compose run --rm app php artisan key:generate --show

第三步:启动整套服务

# 后台拉起 app + db 两个容器 docker compose up -d # 看启动状态,等 db 变 healthy、app 不再重启 docker compose ps # 盯日志,看到 "Supervisord started successfully" 就绪 docker compose logs -f app

启动完成后浏览器访问http://你的IP:8000,用默认账号登录:

用户名admin@example.com
密码password

🔥 警告:登录后第一时间在右上角改掉管理员密码,这组默认凭据是公开的,等于家门没锁。

✅ 小结:最小路径 = 拉代码 → 改.env三个必填项 →up -d→ 登录改密。到此系统已经能用。

⚙️ 进阶定制:让它真正"好用"的六个配置

跑起来只是开始,下面这些配置决定它是"玩具"还是"生产工具"。

1. 数据持久化(默认就有,但要懂原理)

docker-compose.yml里声明了db_datastorage两个数据卷:数据库文件、上传的图片、备份全在里面。容器删了重建,数据还在——这正是 Docker 方案比裸装省心的原因。想映射到宿主机目录方便备份,把 volumes 改成:

volumes: - ./data/db:/var/lib/mysql - ./data/storage:/var/lib/snipeit

2. 放大上传限制(不配的后果:传大图/文档直接报错)

默认 PHP 上传上限很小,在.env追加一行再docker compose restart app

PHP_UPLOAD_LIMIT=100M

容器启动脚本会自动改写php.ini里的upload_max_filesizepost_max_size,不用进容器手改。

3. 邮件通知(不配的后果:领用确认、到期提醒全部哑火)

MAIL_MAILER=smtp MAIL_HOST=smtp.你的域名.com MAIL_PORT=587 MAIL_USERNAME=你的邮箱 MAIL_PASSWORD=你的邮箱密码 MAIL_FROM_ADDR=发件地址 MAIL_FROM_NAME=发件人名称

配完用内置命令自测,通了再上线:

docker compose exec app php artisan snipeit:test-email 收件人@example.com

4. 定时任务(不配的后果:到期提醒永远不会触发)

系统靠 cron 驱动"许可证到期、资产审计、库存预警"等扫描任务,容器镜像里已内置调度,确保容器以restart: unless-stopped常驻即可,不要手动docker stop后长期不拉起。

5. CSV 批量导入(新手上线最快路径)

手工录几百台设备会疯。用模板sample_csvs/assets-sample.csv参照表头(资产标签、型号、分类、供应商、位置、购买日期、价格……)整理数据,在"管理 → 导入"上传即可。要点:先建好分类/厂商/型号/用户,再导入资产,否则导入会因外键找不到而失败。

6. HTTPS(生产环境必须做)

把证书放到 storage 卷的ssl目录,重启容器后启动脚本会自动启用 Apache SSL:

# 证书放入持久化目录(容器内路径 /var/lib/snipeit/ssl/) docker compose exec app mkdir -p /var/lib/snipeit/ssl docker compose cp 你的证书.crt app:/var/lib/snipeit/ssl/snipeit-ssl.crt docker compose cp 你的私钥.key app:/var/lib/snipeit/ssl/snipeit-ssl.key docker compose restart app

✅ 小结:持久化、上传限制、邮件、定时、CSV、HTTPS 六件套,是"能用"到"好用"的分水岭。

🕳️ 高频坑位:四个常见问题的症状—原因—解法

坑 1:容器一启动就退出

  • 症状:docker compose ps里 app 一直在 Restarting。
  • 原因:八成是APP_KEY没填或格式不对,启动脚本检测不到密钥直接 exit。
  • 解法:docker compose run --rm app php artisan key:generate --show重新生成,粘回.envdocker compose up -d重启。

坑 2:页面能开,但报"数据库连接失败"

  • 症状:白屏或 500,日志提示SQLSTATE[HY000]
  • 原因:.env里的DB_*与 Compose 传给 MariaDB 的账号密码对不上,或 db 还没健康就启动 app。
  • 解法:核对四个DB_*变量与MYSQL_*一致;docker compose ps确认 db 为 healthy;必要时docker compose down后重新up -d

坑 3:登录提示密码错误,但明明没错

  • 症状:用刚导入的用户登录失败。
  • 原因:多半是 APP_KEY 变动导致旧密码哈希失效,或导入时用户名/邮箱字段没对上。
  • 解法:别在初始化后再随意换 APP_KEY;导入前检查 CSV 的用户名字段;实在不行用管理员在后台重置该用户密码。

坑 4:导入 CSV 后资产数量对不上

  • 症状:提示导入成功,但列表少几条。
  • 原因:表头字段名与模板不一致,或依赖的厂商/型号/位置尚未创建。
  • 解法:严格对照sample_csvs/assets-sample.csv的表头;先建基础数据再导入;用"下载导入结果"查看被跳过的行。

🔄 长期运营:升级、备份与日常三件事

备份——别等丢数据才后悔

备份分两半:数据库 + 上传文件。容器里可直接用内置备份:

# 生成完整备份(数据库+文件,存到 storage/dumps) docker compose exec app php artisan backup:run # 看备份清单 docker compose exec app php artisan backup:list

想自动化,把backup:run挂进宿主机 crontab,再定期把./data/storage/dumps拷走即可。恢复时把备份文件放回dumps目录,执行:

docker compose exec app php artisan snipeit:restore

升级——四步走,先备份再动手

# 1. 备份 docker compose exec app php artisan backup:run # 2. 拉最新代码(Docker 场景主要是更新镜像) docker compose pull # 3. 重启 docker compose up -d # 4. 数据库迁移(启动脚本会自动执行,失败时手动补跑) docker compose exec app php artisan migrate --force

💡 提示:升级后如果页面样式错乱,清一下缓存:

docker compose exec app php artisan config:clear docker compose exec app php artisan cache:clear

日常三件事

  1. 看日志docker compose logs -f app,报错先来这里翻,别瞎猜。
  2. 看资源docker stats,内存长期打满就考虑加配置。
  3. 定期盘点:用系统的"审计"功能抽查设备,核对"账实相符",这才是资产管理的本质。

🏁 收尾推动:从今天开始记账

Snipe-IT 的价值不在功能多,而在坚持用。建议你这样落地:

  1. 今天跑通 Docker 部署,登录改密;
  2. 本周内建好厂商、分类、状态标签和第一批用户;
  3. sample_csvs模板导入现有设备,完成首次盘点;
  4. 配好邮件,把"领用确认"跑起来;
  5. 每月做一次审计抽查,季度做一次备份演练。

图:Snipe-IT 的设备维护管理界面,故障记录、维修跟踪一目了然

图:维修流程管理,支持登记、跟踪与成本核算

资产管理的敌人从来不是工具,而是"下次再说"。项目代码就在手边,复制、配置、启动——半小时后,你就有了一张公司资产全景图。动起来,别再让资产在 Excel 里流浪。🚀

【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考