Skip to content

视频 SDK 网关部署 ​

nexiot-video-sdk-gateway 用于海康、大华设备直连,与 NexIoT 主后端独立运行。只需改一份配置,Maven 自动拉取 SDK,打包后即可安装或升级。

1. 准备环境 ​

位置需要安装
打包电脑Git、Maven、JDK 25;使用 Git 克隆的 NexIoT 源码
部署服务器Linux x86_64(如 Ubuntu)、Java 25、Bash、curl;录像功能还需 FFmpeg(含 libx264/AAC)

服务器不需要 Git、Maven。主后端要能访问网关 5102 端口;网关要能访问摄像头和主后端告警回调地址。

2. 修改一份配置 ​

在源码中打开:

text
nexiot-video-sdk-gateway/src/main/config/runtime.env

找到下面几项,按服务器实际情况修改。示例 IP 192.0.2.10 要换成你的服务器 IP:

bash
# 服务器 Java 安装目录;Java 25 已在 PATH 中时可留空
JAVA_HOME=/opt/jdk-25

NEXIOT_VIDEO_SDK_GATEWAY_PORT=5102
NEXIOT_VIDEO_SDK_GATEWAY_NODE_CODE=video-sdk-01
NEXIOT_SDK_IMAGE_BASE_URL=http://192.0.2.10:5102/sdk/images

# 默认本地存储,先跑通无需配置云存储
NEXIOT_SDK_IMAGE_MODE=local

图片地址必须能被浏览器访问;主站使用 HTTPS 时,这里也配置可用的 HTTPS 地址。其他参数先用默认值。

需要从 NexIoT 页面配置存储时,再填写 NEXIOT_SDK_STORAGE_MANAGEMENT_TOKEN,与主后端保持一致。

3. Maven 打包 ​

在 NexIoT 主仓库根目录执行:

bash
mvn -version
mvn -pl nexiot-video-sdk-gateway -am clean package -Dmaven.test.skip=true

确认第一条命令显示 Java 25。Maven 会自动从 video-sdks 拉取锁定版本的 SDK,无需手工操作子模块;缺少依赖时会停止打包。

成功后得到:

text
nexiot-video-sdk-gateway/target/nexiot-video-sdk-gateway-1.6-SNAPSHOT-dist.tar.gz

包内已有 config/runtime.env、bin/、lib/ 和 sdk-libs/。后续版本变化时,替换下面命令中的包名。

4. 新服务器安装 ​

① 上传压缩包到服务器 /tmp/。

② 登录服务器,在同一个 Bash 终端依次执行:

bash
RELEASE_STAGE=$(mktemp -d /tmp/video-sdk-release.XXXXXX)
tar -xzf /tmp/nexiot-video-sdk-gateway-1.6-SNAPSHOT-dist.tar.gz \
  -C "$RELEASE_STAGE" --strip-components=1

③ 安装并启动。 以下目录可自行调整,运行用户必须有写权限:

bash
bash "$RELEASE_STAGE/bin/install.sh" "$HOME/nexiot-video-sdk-gateway"

出现 安装完成 即表示 HTTP 启动检查通过。安装前想修改配置,可编辑 $RELEASE_STAGE/config/runtime.env。

④ 检查 SDK:

bash
curl -fsS http://127.0.0.1:5102/sdk/health

确认 status 为 UP,所需厂商 hik、dahua 的 available 为 true。然后在 NexIoT 视频直连实例中填写网关地址 http://服务器IP:5102,执行设备连接测试。

5. 旧服务器升级 ​

重新打包、上传到 /tmp/,在服务器同一个 Bash 终端执行:

bash
RELEASE_STAGE=$(mktemp -d /tmp/video-sdk-release.XXXXXX)
tar -xzf /tmp/nexiot-video-sdk-gateway-1.6-SNAPSHOT-dist.tar.gz \
  -C "$RELEASE_STAGE" --strip-components=1

# 改成旧网关的实际部署目录;如果原目录带版本号,也保留原路径
bash "$RELEASE_STAGE/bin/install.sh" "$HOME/nexiot-video-sdk-gateway"

脚本自动停止旧进程、更新程序和 SDK、重新启动。保留原配置、图片和录像数据;升级启动检查失败时恢复上一版程序。

升级只记住两件事

不要直接解压覆盖旧目录。若要修改旧服务器配置,修改它现有的 config/runtime.env,新包中的配置不会覆盖旧配置。

6. 日常操作 ​

进入实际部署目录,再按需执行对应命令:

bash
cd "$HOME/nexiot-video-sdk-gateway"
操作命令
修改配置vi config/runtime.env
修改后重启bin/restart.sh
停止 / 启动bin/stop.sh / bin/start.sh
启动前检查bin/start.sh --check
查看当天日志tail -f "logs/nexiot-video-sdk-gateway.$(date +%F).log"

config/image-storage.json 是页面保存存储设置后自动生成的,不用手工维护;它优先于 runtime.env 中的存储设置。改了文件却不生效时,到“图片与录像存储”选择“恢复启动配置”。

默认脚本不会配置开机自启。重启网关会中断正在处理的录像任务,已保存的文件保留。