当前位置: 首页 > article >正文

SkeyeVSS开发日志:环境变量 .env 配置项详解

试用安装包下载 | SMS | 试用安装包下载 | 在线演示项目源码地址https://github.com/openskeye/go-vss1. 关于.env.prod在 Skeyevss 中.env.prod或.env.prod.d是生产环境的总开关服务端口、IP、日志路径都来自它SIP/媒体联动参数来自它数据库、Redis、etcd 连接来自它各服务配置文件etc/.xxx.yaml通过${SKEYEVSS_*}占位符引用它配错 env服务可能“能启动但不可用”2. 配置加载机制2.1 配置链路启动命令读取-env参数如.env.prod变量注入进进程环境etc/.vss.yaml、etc/.backend-api.yaml等读取${SKEYEVSS_*}服务按替换后的最终值运行2.2 常见文件角色.env.prod本地/单机/非容器生产配置示例.env.prod.d容器部署场景示例含___INTERNAL_IP___占位符建议上线前保留一份最终生效的 env 备份便于回滚和审计。3. 配置项分组详解以下按“最常改、最容易出问题”的顺序说明。3.1 基础运行与环境标识配置项作用典型值SKEYEVSS_SERVER_ENV_MODE运行环境标识proSKEYEVSS_ROOT服务根目录/app或实际部署目录SKEYEVSS_SEV_BIND_IP服务绑定地址0.0.0.0SKEYEVSS_INTERNAL_IP内网访问地址10.x.x.x/192.168.x.xSKEYEVSS_EXTERNAL_IP公网访问地址公网 IPSKEYEVSS_CONTAINERIZED_STATE是否容器化模式标记true/false注意同局域网部署可将EXTERNAL_IP与INTERNAL_IP设为同值跨网/公网接入时必须准确区分内外网 IP3.2 服务启用与数据存储配置项作用典型值SKEYEVSS_DATABASE_TYPE数据库类型mysql或sqliteSKEYEVSS_ENABLED_MYSQL是否启用 MySQL 依赖true/falseSKEYEVSS_ENABLED_REDIS是否启用 Redis 依赖true/falseSKEYEVSS_ENABLED_ETCD是否启用 etcd 依赖true/falseSKEYEVSS_SAVE_VIDEO_DIR录像目录.../video-recordsSKEYEVSS_SAVE_VIDEO_SNAPSHOT_DIR抓拍目录.../video-snapshotSKEYEVSS_SAVE_SQL_DIRSQL 输出目录.../source/sql注意生产优先mysql视频/日志目录建议挂载到独立数据盘3.3 日志与排障开关配置项作用建议SKEYEVSS_SERVER_LOG_PATH日志根目录指向可持久化目录SKEYEVSS_LOG_MODE输出方式生产用fileSKEYEVSS_LOG_ENCODING日志格式json便于采集SKEYEVSS_LOG_LEVEL日志级别error或infoSKEYEVSS_PRINT_REQUEST_LOGHTTP 请求日志排障时临时开SKEYEVSS_PRINT_SAVE_SIP_LOG_FILESIP 文件日志建议开启SIP 日志路径$SKEYEVSS_SERVER_LOG_PATH/$SKEYEVSS_VSS_NAME/sip/3.4 鉴权与密钥配置项作用SKEYEVSS_AES_KEY对称加密基础密钥SKEYEVSS_U_KEY_BACKEND_APIBackend 鉴权密钥SKEYEVSS_U_KEY_VSSVSS 服务密钥SKEYEVSS_U_KEY_DBDB RPC 密钥SKEYEVSS_U_KEY_WEB_SEVWeb 服务密钥SKEYEVSS_U_KEY_JWTJWT 相关密钥注意如果需要针对访问DB做鉴权可根据SKEYEVSS_U_KEY_*做详细配置示例代码中目前未使用3.5 MySQL / Redis / etcdMySQLSKEYEVSS_MYSQL_HOSTSKEYEVSS_MYSQL_PORTSKEYEVSS_MYSQL_USERNAMESKEYEVSS_MYSQL_PASSWORDSKEYEVSS_MYSQL_DB_NAME_BASERedisSKEYEVSS_REDIS_HOSTSKEYEVSS_REDIS_PORTSKEYEVSS_REDIS_PASSWORDetcdSKEYEVSS_ETCD_HOSTSKEYEVSS_ETCD_CLIENT_PORTSKEYEVSS_ETCD_PEER_PORT注意DB RPC 连不上时80% 先查 etcd 地址和端口3.6 Web 代理前端入口配置项作用SKEYEVSS_WEB_SEV_PORTWeb 服务端口SKEYEVSS_WEB_SEV_PROXY_API_BACKEND后端 API 代理前缀SKEYEVSS_WEB_SEV_PROXY_FILE静态资源代理前缀SKEYEVSS_WEB_SEV_PROXY_FILE_URL文件访问基础 URLSKEYEVSS_WEB_SEV_CONFWeb 配置文件路径3.7 媒体服务SMS联动播放链路核心关键项SKEYEVSS_MEDIA_SERVER_PORTSKEYEVSS_MEDIA_SERVER_CONF_DEFSKEYEVSS_MEDIA_SERVER_NOTIFY_ON_PUB_STARTSKEYEVSS_MEDIA_SERVER_NOTIFY_ON_PUB_STOPSKEYEVSS_MEDIA_SERVER_NOTIFY_ON_SUB_STARTSKEYEVSS_MEDIA_SERVER_NOTIFY_ON_RTMP_CONNECT这些回调 URL 若不可达会导致“设备在线但播放异常”。3.8 VSSGB28181 核心最关键参数SKEYEVSS_VSS_PORTSIPSKEYEVSS_VSS_HTTP_PORTHTTP 回调SKEYEVSS_VSS_SSE_PORTSSESKEYEVSS_VSS_SIP_IDSKEYEVSS_VSS_SIP_DOMAINSKEYEVSS_VSS_SIP_PASSWORDSKEYEVSS_VSS_SIP_USE_EXTERNAL_WANSKEYEVSS_VSS_USE_EXTERNAL_IP公网接入建议设备跨公网时确认EXTERNAL_IP、USE_EXTERNAL_WAN和防火墙端口策略一致3.9 各微服务端口与配置文件绑定服务关键端口变量配置文件变量DB RPCSKEYEVSS_DB_GRPC_PORTSKEYEVSS_DB_GRPC_CONFVSSSKEYEVSS_VSS_PORTSKEYEVSS_VSS_CONFBackend APISKEYEVSS_BACKEND_API_PORTSKEYEVSS_BACKEND_API_CONFCronSKEYEVSS_CRON_PORTSKEYEVSS_CRON_CONFWebSKEYEVSS_WEB_SEV_PORTSKEYEVSS_WEB_SEV_CONFGuardSKEYEVSS_GUARD_PORTSKEYEVSS_GUARD_CONF4. 上线前必查清单SKEYEVSS_INTERNAL_IP/EXTERNAL_IP与实际网络一致SKEYEVSS_DATABASE_TYPE与实际依赖一致SKEYEVSS_VSS_SIP_*与设备侧平台参数一致媒体回调SKEYEVSS_MEDIA_SERVER_NOTIFY_*可达SKEYEVSS_SERVER_LOG_PATH、录像目录有写权限所有服务端口无冲突防火墙已放行5. 三个最常见误配案例案例 1后台正常视频黑屏原因媒体回调地址错误或 VSS SIP 参数不一致排查检查SKEYEVSS_MEDIA_SERVER_NOTIFY_*、SKEYEVSS_VSS_SIP_*案例 2DB RPC 启动成功但业务报错原因etcd 配置错误服务发现失败排查检查SKEYEVSS_ETCD_HOST、SKEYEVSS_ETCD_CLIENT_PORT案例 3公网设备注册不上原因SKEYEVSS_VSS_SIP_USE_EXTERNAL_WANfalse或外网地址错误排查检查SKEYEVSS_EXTERNAL_IP、公网端口放行策略6. 推荐配置策略6.1 开发环境日志可用plain info可启用sqlite内外网 IP 可先同值纯内网6.2 生产环境日志建议file json error/info使用mysql开启 SIP 文件日志做日志轮转与归档禁止默认密码与空密钥7. 变更流程建议.env.prod变更建议按以下流程执行变更前备份旧文件按模块修改并复核灰度环境验证低峰时段发布发布后做播放链路与设备注册回归测试

相关文章:

SkeyeVSS开发日志:环境变量 .env 配置项详解

试用安装包下载 | SMS | 试用安装包下载 | 在线演示 项目源码地址 https://github.com/openskeye/go-vss 1. 关于 .env.prod 在 Skeyevss 中,.env.prod(或 .env.prod.d)是生产环境的总开关: 服务端口、IP、日志路径都来自它SIP…...

深度学习驱动的知识图谱构建:从实体识别到关系推理

1. 知识图谱与深度学习的化学反应 第一次接触知识图谱时,我被它像"互联网版思维导图"的特性吸引住了。想象一下,把世界上所有事物和它们之间的关系,用节点和连线的方式画在一张巨大的网上——这就是知识图谱的本质。而深度学习就像…...

智库级深度研判:数字中国浪潮下的医疗行业数字化转型与智慧医疗架构全景解构(PPT)

医疗行业的数字化转型,从来不是一场单纯的技术迭代,而是一次深刻的生产力重构与医疗资源再分配。很长一段时间,互联网和移动互联网一直在医院高墙之外游弋 。直至2014年,一系列利好政策的发布与大量资本的蜂拥而至,使互…...

微信小程序下载PDF的‘隐藏’路径揭秘:wx.env.USER_DATA_PATH到底存哪了?怎么删?

微信小程序PDF存储路径全解析:从下载到清理的完整指南 第一次在小程序里下载PDF时,你可能和我一样困惑——文件到底存哪儿了?为什么手机存储空间莫名其妙减少了?更让人抓狂的是,想手动清理却找不到文件位置。今天我们就…...

OV5640摄像头模组选型与二次开发避坑指南:DVP vs MIPI接口到底怎么选?

OV5640摄像头模组选型与二次开发避坑指南:DVP vs MIPI接口到底怎么选? 在智能硬件和嵌入式视觉项目中,摄像头模组的选择往往决定了整个系统的性能和开发难度。OV5640作为一款经典的500万像素CMOS图像传感器,凭借其出色的性价比和丰…...

Python 爬虫实战:精准抓取母婴电商平台数据,深入分析用户评价洞察市场趋势

随着生活水平的提高,越来越多的年轻父母开始关注母婴产品的质量和品牌。而母婴电商平台成为了他们选择和购买产品的主要渠道之一。母婴产品市场也因此变得异常活跃且充满竞争。在这样的市场环境下,用户评价不仅反映了产品的实际质量,也揭示了…...

从“独上高楼”到“炸鸡啤酒”:Top_p参数如何让AI续写古诗时“跑偏”或“封神”?

从“独上高楼”到“炸鸡啤酒”:Top_p参数如何让AI续写古诗时“跑偏”或“封神”? 当AI续写"昨夜西风凋碧树"时,为何有时能产出"独上高楼望尽天涯路"的经典对仗,有时却蹦出"炸鸡啤酒追剧到天明"的魔…...

CANFD数据帧解析实战:从示波器波形到STM32代码,一步步看懂那64个字节怎么传

CANFD数据帧深度解析:从物理层信号到STM32代码实现 引言 在汽车电子和工业控制领域,CAN总线技术已经服役超过30年。随着车载电子系统复杂度呈指数级增长,传统CAN总线1Mbps的带宽和8字节的数据长度逐渐成为瓶颈。2012年诞生的CANFD&#xff08…...

如何批量更新SQL数据表_使用UPDATE JOIN语法提升效率

MySQL中UPDATE JOIN正确写法是UPDATE主表别名JOIN关联表ON条件SET更新字段WHERE过滤条件,且主表只能一个、必须声明别名、JOIN默认为INNER JOIN。MySQL 中 UPDATE JOIN 语法怎么写才不报错UPDATE JOIN 不是所有数据库都支持,MySQL 可以,但 Po…...

深入理解Amazon VPC CNI网络策略:保障Kubernetes集群安全的终极指南

深入理解Amazon VPC CNI网络策略:保障Kubernetes集群安全的终极指南 【免费下载链接】amazon-vpc-cni-k8s Networking plugin repository for pod networking in Kubernetes using Elastic Network Interfaces on AWS 项目地址: https://gitcode.com/gh_mirrors/a…...

如何优化Vencord的搜索功能:提升Discord使用体验的完整指南

如何优化Vencord的搜索功能:提升Discord使用体验的完整指南 【免费下载链接】Vencord The cutest Discord modification 项目地址: https://gitcode.com/GitHub_Trending/ve/Vencord Vencord是一款广受欢迎的Discord客户端修改工具,它允许用户自定…...

解决Python代码检查痛点:Ruff `--stdin-filename`参数的妙用与实战指南

解决Python代码检查痛点:Ruff --stdin-filename参数的妙用与实战指南 【免费下载链接】ruff An extremely fast Python linter and code formatter, written in Rust. 项目地址: https://gitcode.com/GitHub_Trending/ru/ruff Ruff是一款用Rust编写的超快速P…...

终极暗黑破坏神2存档编辑器:5步轻松定制你的游戏角色

终极暗黑破坏神2存档编辑器:5步轻松定制你的游戏角色 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经在暗黑破坏神2中花费数小时刷装备却一无所获?是否想要尝试不同的角色build却不想重新练级&…...

3步掌握分子动力学分析:MDAnalysis开源工具的终极入门指南

3步掌握分子动力学分析:MDAnalysis开源工具的终极入门指南 【免费下载链接】mdanalysis MDAnalysis is a Python library to analyze molecular dynamics simulations. 项目地址: https://gitcode.com/gh_mirrors/md/mdanalysis 你是否曾为处理海量分子动力学…...

Chart.js项目实战:AI教育模式创新监控系统

Chart.js项目实战:AI教育模式创新监控系统 【免费下载链接】awesome A curated list of awesome Chart.js resources and libraries 项目地址: https://gitcode.com/GitHub_Trending/awesome/awesome Chart.js作为一款强大的数据可视化库,为AI教育…...

车载互联三巨头:CarLife、CarPlay与HiCar的技术对比与应用解析

1. 车载互联技术的前世今生 记得十年前我第一次接触车载互联系统,那时候还停留在蓝牙连接手机放音乐的阶段。如今开车时,中控大屏已经能无缝衔接手机导航、音乐、通话等功能,这种体验的升级主要归功于CarLife、CarPlay和HiCar这三大技术方案。…...

影刀RPA开发实战案例:融合AI大模型,打造电商3.0无人值守自动化铺货系统

背景引入:你的自动化团队,是否沦为了“无情的 Excel 填表员”? 在电商铺货与自动化运营的演进史上,我们正经历着极其清晰的“三次工业革命”。正如行业内所总结的: 1.0 时代(人工刀耕火种)&…...

告别繁琐切换:zoxide如何让你的终端导航效率提升10倍?

告别繁琐切换:zoxide如何让你的终端导航效率提升10倍? 【免费下载链接】zoxide A smarter cd command. Supports all major shells. 项目地址: https://gitcode.com/GitHub_Trending/zo/zoxide zoxide是一款智能cd命令工具,灵感源自z和…...

如何利用Bootstrap实现高效用户体验监控:从行为收集到数据分析的完整指南

如何利用Bootstrap实现高效用户体验监控:从行为收集到数据分析的完整指南 【免费下载链接】bootstrap The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web. 项目地址: https://gitcode.com/GitH…...

探索ComfyUI-WanVideoWrapper:解密AI视频生成的核心架构与实战应用

探索ComfyUI-WanVideoWrapper:解密AI视频生成的核心架构与实战应用 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 在AI视频生成技术快速发展的今天,如何在熟悉的ComfyUI…...

如何打造无网络环境下的iScroll开发参考方案:完整离线文档指南

如何打造无网络环境下的iScroll开发参考方案:完整离线文档指南 【免费下载链接】iscroll Smooth scrolling for the web 项目地址: https://gitcode.com/gh_mirrors/is/iscroll iScroll作为一款高性能、轻量级的Web滚动库,为开发者提供了流畅的跨…...

DownKyi:5步掌握B站视频下载与管理的终极技巧

DownKyi:5步掌握B站视频下载与管理的终极技巧 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。…...

大模型 kimi / deepseek /豆包/元宝 网页版登录

Kimi: https://kimi.moonshot.cn/ deepseek: https://www.deepseek.com 豆包: https://www.doubao.com 腾讯元宝: ​​官网网址​​:https://yuanbao.tencent.com​​网页对话入口​​:https://yuanbao.tenc…...

ART库装饰功能详解:218种装饰让你的文本脱颖而出

ART库装饰功能详解:218种装饰让你的文本脱颖而出 【免费下载链接】art 🎨 ASCII art library for Python 项目地址: https://gitcode.com/gh_mirrors/ar/art ART库是一款功能强大的Python ASCII艺术库,提供了丰富的文本装饰功能&#…...

终极指南:PMD与元编程集成如何实现代码生成质量管控

终极指南:PMD与元编程集成如何实现代码生成质量管控 【免费下载链接】pmd An extensible multilanguage static code analyzer. 项目地址: https://gitcode.com/gh_mirrors/pm/pmd 在现代软件开发中,元编程和代码生成技术极大地提升了开发效率&am…...

别再死记硬背LTL公式了!用Python+Spot库5分钟搞定互斥锁与进程公平性验证

用PythonSpot库实战LTL:5分钟验证互斥锁与进程公平性 当你在调试一个多线程程序时,是否遇到过这样的场景:两个进程看似遵守了互斥规则,但其中一个却始终无法获得资源?传统的测试方法可能需要运行数小时才能发现这种公平…...

别让Simulink生成的代码拖慢你的嵌入式系统:手把手教你配置这7个关键优化选项

Simulink代码生成优化实战:7个关键配置提升嵌入式系统性能 在资源受限的嵌入式系统中,每一字节的内存和每一个时钟周期都弥足珍贵。作为汽车电子和工业控制领域的工程师,我们常常面临这样的困境:Simulink模型在仿真阶段运行流畅&a…...

如何快速上手Remmina:面向新手的10个简单设置技巧

如何快速上手Remmina:面向新手的10个简单设置技巧 【免费下载链接】Remmina Mirror of https://gitlab.com/Remmina/Remmina The GTK Remmina Remote Desktop Client 项目地址: https://gitcode.com/gh_mirrors/re/Remmina Remmina是一款功能强大的GTK远程桌…...

为什么选择Apache Camel:企业级集成框架的10大优势解析

为什么选择Apache Camel:企业级集成框架的10大优势解析 【免费下载链接】camel Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data. 项目地址: https://git…...

告别cmake-gui!纯命令行搞定OpenCV 3.4.1到ARM开发板的交叉编译(附完整脚本)

纯命令行实现OpenCV 3.4.1向ARM架构的交叉编译全流程 在嵌入式开发领域,将计算机视觉库OpenCV移植到ARM平台是常见需求。传统方法依赖cmake-gui图形界面工具,但真正的效率提升往往来自纯命令行操作——它不仅能实现自动化编译流程,更适用于无…...