Snipe-IT IT 资产管理系统部署教程
Snipe-IT 是一款流行的开源 IT 资产管理系统,专为企业和团队设计,用于跟踪和管理硬件设备、软件许可证、配件和耗材。它提供了直观的 Web 界面,支持条形码/二维码扫描、审计日志、报表导出等功能。本文将介绍如何在搬瓦工 VPS 上通过 Docker 快速部署 Snipe-IT。
一、Snipe-IT 功能特点
- 硬件资产管理:跟踪笔记本、服务器、显示器等硬件设备的领用、归还、维修状态。
- 软件许可证管理:管理软件许可证的数量、到期时间和分配情况。
- 配件和耗材:跟踪鼠标、键盘、硒鼓等配件的库存和领用。
- 人员关联:将资产与员工关联,清晰记录每个人名下的设备。
- 条形码支持:自动生成资产标签,支持条形码和二维码扫描。
- 审计日志:完整记录所有资产变更操作,便于追溯。
- 报表功能:生成各类资产报表,支持 CSV 导出。
- REST API:提供完整的 API 接口,方便与其他系统集成。
二、环境准备
- 搬瓦工 VPS 一台,建议 1GB 以上内存(使用优惠码 NODESEEK2026 享受 6.77% 折扣)。
- 已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。
- 域名一个(推荐)。
2.1 创建项目目录
mkdir -p /opt/snipeit
cd /opt/snipeit
三、Docker Compose 部署
cat > /opt/snipeit/docker-compose.yml <<'EOF'
version: '3.8'
services:
mysql:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password_here
MYSQL_DATABASE: snipeit
MYSQL_USER: snipeit
MYSQL_PASSWORD: snipeit_db_password
volumes:
- mysql_data:/var/lib/mysql
snipeit:
image: snipe/snipe-it:latest
restart: always
depends_on:
- mysql
ports:
- "8080:80"
environment:
APP_KEY: base64:your_generated_app_key_here
APP_URL: https://assets.yourdomain.com
APP_TIMEZONE: Asia/Shanghai
APP_LOCALE: zh-CN
DB_CONNECTION: mysql
DB_HOST: mysql
DB_DATABASE: snipeit
DB_USERNAME: snipeit
DB_PASSWORD: snipeit_db_password
MAIL_DRIVER: smtp
MAIL_HOST: smtp.yourdomain.com
MAIL_PORT: 587
MAIL_USERNAME: noreply@yourdomain.com
MAIL_PASSWORD: mail_password
MAIL_ENCRYPTION: tls
MAIL_FROM_ADDR: noreply@yourdomain.com
MAIL_FROM_NAME: Snipe-IT
volumes:
- snipeit_data:/var/lib/snipeit
volumes:
mysql_data:
snipeit_data:
EOF
3.1 生成 APP_KEY
docker run --rm snipe/snipe-it php artisan key:generate --show
将输出的密钥(形如 base64:xxxx...)填入 APP_KEY 中。
四、启动服务
cd /opt/snipeit
docker compose up -d
等待数据库初始化完成,查看日志:
docker compose logs -f snipeit
访问 http://VPS_IP:8080,首次访问会显示安装向导(Pre-Flight Check),按照提示完成设置。
五、配置 Nginx 反向代理
cat > /etc/nginx/sites-available/snipeit <<'EOF'
server {
listen 80;
server_name assets.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
client_max_body_size 50m;
}
EOF
ln -sf /etc/nginx/sites-available/snipeit /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d assets.yourdomain.com
六、初始配置
6.1 基础设置
登录后进入管理面板,完成以下基础配置:
- 设置公司名称和 Logo。
- 配置资产编号前缀和自增规则。
- 设置默认语言为简体中文。
- 配置邮件通知(资产领用、归还通知)。
6.2 创建分类和型号
在开始录入资产之前,先建立分类体系:
- 创建资产分类:笔记本、台式机、显示器、打印机等。
- 创建厂商:Dell、Lenovo、Apple 等。
- 创建设备型号,关联到分类和厂商。
6.3 导入现有数据
Snipe-IT 支持通过 CSV 文件批量导入资产数据,在管理界面的导入功能中上传 CSV 文件即可。
七、数据备份
# 备份数据库
docker compose exec mysql mysqldump -u snipeit -p snipeit > /opt/snipeit/backup_$(date +%Y%m%d).sql
# 备份上传文件
docker cp $(docker compose ps -q snipeit):/var/lib/snipeit /opt/snipeit/files_backup
八、常见问题
安装向导报错
如果 Pre-Flight Check 报告缺少 PHP 扩展,使用官方 Docker 镜像一般不会遇到此问题。确保使用最新版本的镜像。
上传文件大小限制
如果需要上传大文件(如设备照片),调整 Nginx 的 client_max_body_size 和 PHP 的上传限制。
总结
Snipe-IT 是一个功能完善且易用的 IT 资产管理系统,特别适合中小企业管理 IT 设备。配合 NetBox 使用可以覆盖从网络基础设施到终端设备的完整管理需求。选购搬瓦工 VPS 请访问 bwh81.net,使用优惠码 NODESEEK2026 享受 6.77% 折扣。