开源免费的资产管理项目Snipe-IT ,保姆级部署流程

头条资讯 2025-08-02621未知admin

Snipe-IT是一款开源的IT资产管理系统(ITAM),用于跟踪企业IT设备、许可证、维护记录等。它基于Laravel框架开发,并支持Docker部署,适用于中小型企业和IT部门。如果你愿意自己动手解决环境问题,并能管理Laravel/MariaDB/Docker,Snipe-IT是一个性价比极高的IT资产管理工具。

Snipe-IT较为适合需要开源、可定制IT资产管理系统的团队,预算有限,无法购买商业ITAM解决方案的公司,以及习惯使用Docker或Laravel生态的开发者。

不过对于大规模企业来说(需要深度ERP/资产财务集成),数据库兼容性、性能优化、邮件通知等方面可能会有挑战。建议购买定制系统,方便后续的维护管理。

功能支持提前说明

关于数据库,我建议按照项目方给出的模版直接内置部署。独立数据库兼容性问题非常多(几乎每个版本都有变动),而且几乎每个应用都有自己独立的数据库版本,一般部署完轻易别动(不然应用崩了挽救的机会可能都没),因此建议打消所有服务共用数据库的想法。不过想要做数据/服务分离这本身并没什么问题,但仍然不是太建议共用,除非你对所部署的项目非常了解。

目前Snipe-IT更新频繁,想要长时间使用,请做好备份以应对大版本更新。

本文会以介威联通NAS为例,用DockerCompose演示Snipe-IT部署流程。有些部分可能比较啰嗦,但希望能对大家有所助力。

部署过程出现问题,可以参考文章最后一部分的问题说明(建议先看看)。

准备工作先拉取镜像
dockerpullmariadb:latest生成APP_KEY,记下来备用!dockerrun--rmsnipe/snipe-it

修改环境配置文件

把下图的文件下载下来。

如下图,放进为Snipe-IT准备的Docker目录中,使用TextEditor修改后保存。也可先用PC的记事本方式打开修改后再放进去。修改完毕后重命名为.env,NAS中默认是隐藏文件。

建议修改的部分如下:

定义生产环境APP_DEBUG=false上面生成的KEYAPP_URL=数据库相关DB_CONNECTION=mysqlDB_HOST=mariadb邮件服务器配置(163邮箱为例),按需要自行修改MAIL_MAILER=smtpMAIL_HOST=邮箱推荐使用465端口(SSL),如果使用STARTTLS则是587MAIL_USERNAME=your_email@163.com你的163邮箱SMTP授权码(不是邮箱登录密码)MAIL_ENCRYPTION=ssl发件人邮箱MAIL_FROM_NAME='Snipe-IT'回复邮件的地址MAIL_REPLYTO_NAME='Snipe-IT'默认开启TLS证书验证指定会话应保持有效的时间(以分钟为单位)。SESSION_LIFETIME=12000是否希望在Snipe-IT会话中使用加密cookie。ENCRYPT=falseMysqlParametersMYSQL_PORT_3306_TCP_ADDR=_PORT_3306_TCP_PORT=3306MYSQL_DATABASE=snipe_itMYSQL_USER=snipe_it_db_userMYSQL_PASSWORD=snipe_it_db_user_password

后续有新增配置,修改此文件重启应用即可。

更多配置比如登录限制、缓存设置、会话设置、备份设置、图库设置等,点我查看,Docker部分的额外内容点我查看(官方这个wiki,真乱!)

简化部署(建议)

上面的准备工作完成后,可以进行部署。

打开Docker管理工具。威联通为ContainerStation。

部署代码如下:

networks:shared_network:driver:bridgeservices:mariadb:image:mariadb:latestcontainer_name:mariadbrestart:unless-stoppedenvironment:MYSQL_ROOT_PASSWORD:root123456Snipe-IT数据库名称MYSQL_USER:ydxian数据库密码-PUID=0组ID,这俩都是admin,根据所用账户自行调整volumes:-/share/Container/mariadb/data:/var/lib/mysql:rw指定外部的.env文件,匹配上文的路径volumes:-/share/Container/snipeit/storage:/var/www/html/storage:rw你访问Snipe-IT的端口,可自定义

第二步创建用户

这部分就纯自定义,很多朋友可能已经比较熟悉了。站点名称建议改成你的组织名。邮件域玩过企业微信的朋友大概熟悉,这个教程也很多,不过多啰嗦。

搞定后就完成,进入后台进行使用了。

修改语言。

顺便改改头像。

各种功能都有。

独立部署(谨慎)

这前置的准备工作不可跳过。我没有设置网络,是默认部署自动建网状态。APP_URL也替换成了域名,测试外网使用。

部署MariaDB

部署代码如下:

services:mariadb:image:mariadb:latestcontainer_name:mariadbrestart:unless-stoppedenvironment:MYSQL_ROOT_PASSWORD:root123456应用程序用的数据库用户MYSQL_PASSWORD:ydxian123456持久化数据ports:-"3306:3306"

MYSQL_USER和MYSQL_PASSWORD这两项可以删除,在后面我们可以手动创建,会分情况给大家说明。

查看已有数据库SHOWDATABASES;查看数据库用户SELECTuser,;

假设你要创建一个名为my_app_db的数据库(仅举例,不用创建):

CREATEDATABASEmy_app_db;SHOWDATABASES;创建数据库CREATEDATABASEsnipeit_db;赋予权限GRANTALLPRIVILEGESONsnipeit_db.*TO'ydxian'@'%';FLUSHPRIVILEGES;

部署Snipe-IT

代码如下:

services:snipeit:image:snipe/snipe-it:latestcontainer_name:snipeitrestart:unless-stoppedenv_file:-/share/Container/snipeit/.env冒号左侧自定义ports:-"9090:80"找到服务对应网络名dockernetworkls连接专用网络和断开原有网络dockernetworkconnectshared_networkmariadbdockernetworkdisconnectmariadb_defaultmariadbdockernetworkconnectshared_networksnipeitdockernetworkdisconnectsnipeit_defaultsnipeit

或者直接yaml文件使用network_mode:host网络,所有容器共享宿主机的网络,但个人并不是太建议。

Snipe-IT无法初始化

一次部署数据库能过够完成初始化,但Snipe-IT可能不会,因此无法创建表。重启一下就好了。

初始化第二步一直500ServerError

查看日志,基本是目录权限不足问题,在这部分会卡住循环报错。

进入Snipe-IT容器

dockerexec-itsnipeitbash

或者也可以在NAS的WEB端直接进入。

确保storage和bootstrap/cache目录存在

mkdir-p/var/www/html/storage/framework/{cache,data,sessions,views}mkdir-p/var/www/html/bootstrap/cache

修改目录权限

chown-Rwww-data:www-data/var/www/html/storage/var/www/html/bootstrap/cachechmod-R775/var/www/html/storage/var/www/html/bootstrap/cache

如果775仍然不行,可尝试

chmod-R777storagechmod-R777public/uploadschmod-R777bootstrap/cachechmod-R777/var/www/html/storage

清理Laravel缓存

phpartisanconfig:clearphpartisancache:clearphpartisanconfig:cachephpartisanview:clearphpartisanroute:clear

退出容器

exit

重新启动Snipe-IT

dockerrestartsnipeit

等待过后,再进入WEB就没问题了。

关于简化部署部分,想要后续新项目继续加入该网络

只需要代码中模版换为:

networks:shared_network:external:true#告诉Docker,这个网络是已经存在的
最后

感谢观看,本文完~!

美兴惠购网 Copyright © 2002-2030 美兴惠购 美兴惠购网-家用电器_服装服饰_手机数码_户外运动_购物百科 sitemap.xml