Snipe-IT 快速上手3 条命令搭建开源 IT 资产与许可证管理系统【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-itSnipe-IT 是一款开源的 IT 资产管理与软件许可证管理系统用 Laravel 构建。它记录谁手里有什么设备、何时采购、还差多少许可证席位帮 IT 运维团队把散落的资产变成一本清楚的账。本文用 2 个 Docker 容器、5 条命令带你把它从零跑到可用。 先跑起来最小启动路径第 1 步获取代码。官方提供 Docker 镜像不需要本地 PHP 环境仓库里只有 Compose 编排文件。git clone https://gitcode.com/GitHub_Trending/sn/snipe-it cd snipe-it第 2 步生成环境变量文件。仓库里的 docker/docker.env 是官方模板应用和数据库两个服务都靠它启动。cp docker/docker.env .env第 3 步填写必填项。模板里基础配置是注释掉的取消注释并填好 4 类值APP_KEY、APP_URL、数据库库名/账号/密码。APP_KEYbase64:xxxx... # 生成方法见下文踩坑急救 APP_URLhttp://127.0.0.1:8000 DB_DATABASEsnipeit DB_USERNAMEsnipeit DB_PASSWORDyour_strong_password第 4 步启动容器。Compose 里定义了 app 和 db 两个服务首次启动会等数据库健康检查通过再拉起应用。docker compose up -d docker compose ps # 预期两个服务都是 running/healthy第 5 步创建管理员并登录。镜像启动脚本会自动执行php artisan migrate建表建好库后执行docker compose exec app php artisan snipeit:create-admin \ --first_nameAdmin --last_nameUser \ --emailadminexample.com --passwordChangeMe123浏览器打开http://127.0.0.1:8000用刚才的邮箱密码登录能看到资产、许可证、维护计划等模块即部署成功。⚙️ 它是怎么工作的整个系统只有 2 个容器关系简单Laravel 12 PHP 8.2见 composer.json应用框架资产、许可证、配件等 50 多个模型都定义在app/Models/下app 容器官方snipe/snipe-it镜像内置 Apache对外映射 8000 端口db 容器mariadb:11.4.7存所有业务数据命名卷db_data挂 MySQL 数据目录storage挂/var/lib/snipeit存上传文件和备份容器删了数据还在docker/startup.sh入口脚本负责检查APP_KEY、创建 20 多个上传子目录、执行migrate --force建表、缓存配置最后启动 Apache前端交互由 Livewire 4 驱动REST API 由 Laravel Passport 提供备份由 spatie/laravel-backup 支撑——这三者分别对应界面能动、接口能调、数据能备。 关键配置详解6 个真正影响使用效果的配置项都在.env里APP_KEYLaravel 的加密密钥。不配它容器直接拒绝启动startup.sh 里是硬退出。什么时候改密钥泄露后用docker compose exec app php artisan snipeit:rotate-key轮换。APP_PORT对外端口默认 8000。8000 被占时改APP_PORT8080重启即生效不用动任何代码。DB_HOST / DB_PASSWORD数据库连接。容器网络里数据库主机名固定是db改密码后必须同步更新否则应用启动时连不上库。MAIL_HOST 等 MAIL_组*不配不会报错但许可证到期提醒、归还到期通知都不会发出去。有 SMTP 服务器就填上。CACHE_DRIVER / SESSION_DRIVER默认都是file。单容器跑没问题以后扩到多副本时改成database或接 Redis否则会话和缓存不共享。PHP_UPLOAD_LIMIT单位 MB。startup.sh 启动时会按它重写upload_max_filesize和post_max_size批量导入大 CSV 前建议设成100。 踩坑急救问题 1容器启动就退出日志显示要求提供 APP_KEY现象docker compose logs app出现Please re-run this container with an environment variable $APP_KEY。 原因模板里 APP_KEY 是注释状态没填或填了空值。 解决docker compose exec app php artisan key:generate --show把输出形如base64:xxxx写进.env的APP_KEY再执行docker compose up -d。问题 2访问 8000 端口打不开现象浏览器访问http://127.0.0.1:8000连接被拒或 502。 原因要么 8000 端口已被本机其他服务占用要么 db 还没通过健康检查、app 仍在等待。 解决docker compose ps # 确认 db 是 healthy 再排查若确认是端口占用在.env加一行APP_PORT8080后执行docker compose up -d即可。问题 3上传资产图片/附件失败现象上传超过几 MB 的文件时返回 413 或 PHP 尺寸限制错误。 原因PHP 默认upload_max_filesize很小批量导入 CSV 也常踩这个坑。 解决.env里设置PHP_UPLOAD_LIMIT100重启容器启动脚本会自动改好 php.ini。 跑通之后备份docker compose exec app php artisan snipeit:backup --force生成备份包恢复到snipeit:restore备份文件落在 storage 卷里数据校验定期跑snipeit:validate-assets检查资产记录合法性snipeit:counter-sync校准资产关联计数安全改初始管理员密码生产环境确认APP_DEBUGfalse密钥轮换用snipeit:rotate-key扩展需要对接 MDM 时系统内置 Jamf、Kandji 等同步适配器用snipeit:pull-inventory拉取设备清单用户目录可接 LDAP跑snipeit:ldap-sync同步从克隆仓库到登录管理界面核心操作就是 5 条命令。先把它跑起来再决定要不要接 LDAP、配 SMTP 或开 REST API——Snipe-IT 的每一步扩展都是可选的随时可以开始。【免费下载链接】snipe-itA free open source IT asset/license management system项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
