看懂安装包结构
安装包不是一个“把所有文件随便复制到服务器”的压缩目录。根目录中的程序、守护进程、平台脚本和可选媒体组件各有职责;先分清它们,安装、升级和排障时才不会改错文件。
flowchart LR
A[安装包根目录] --> B[程序:main / node-agent]
B --> C[管理:scripts]
C --> D[可选:media]
D --> E[持久数据:Config / Data]
解压后通常能看到什么
AKStream.Next-<版本>-<RID>/
├── AKStream.Next/ 主服务、依赖 DLL、内置 WebUI 与默认 Config
├── NodeAgent/ 独立节点守护进程
├── Deploy/ 当前平台唯一的安装和生命周期脚本
│ └── linux|windows|macos/
├── MediaServer/ 仅在本次包实际附带媒体服务时出现
├── Demos/
│ ├── rtc-web/ 桌面浏览器 RTC 示例
│ └── rtc-h5/ 移动端 RTC 示例
├── Tools/ 可选工具,例如包内 FFmpeg
├── VERSION 包版本标记
└── README.md 当前包说明
不同平台的二进制扩展名和媒体服务运行文件会不同。媒体服务是否随包提供取决于本次发行资产;目录不存在不一定代表损坏。没有随包 MediaServer 时,按当前安装脚本与首次向导的提示选择已有媒体节点或受支持的本机准备方式,不要从另一版本复制二进制拼包。
每个目录做什么
| 目录 | 谁运行 | 主要职责 | 是否直接修改 |
|---|---|---|---|
AKStream.Next/ |
AKStream.Next 主服务 | WebUI、API、设备和通道、权限、任务、录像索引、RTC 编排 | 不直接改发布文件 |
NodeAgent/ |
独立宿主服务 | 主进程离线时执行受限启停、重启与恢复检查 | 不直接改 |
Deploy/ |
管理员手工执行 | 构建、发布、安装、状态、启停、恢复验收和卸载 | 可以阅读,升级时使用新包脚本 |
MediaServer/ |
媒体服务 | 收发媒体、协议转换、WebRTC、产生录像文件 | 配置由平台和部署配置协同管理 |
Demos/ |
浏览器 | RTC 接入示例,不是管理 WebUI | 可用于验证和二次开发参考 |
Tools/ |
主服务或运维 | FFmpeg 等可选执行工具 | 只替换经过验证的同架构版本 |
AKStream.Next/wwwroot 是已经编译好的管理 WebUI。生产服务器不需要再运行 Vite;访问主服务的 HTTP 地址即可看到页面。
包目录不等于安装后的目录
安装脚本会把包内容复制到固定运行位置、设置权限并注册宿主服务。不要让 systemd、SCM 或 launchd 长期直接运行“下载目录”中的文件。
| 平台 | 默认程序目录 | 默认配置目录 | 宿主服务 |
|---|---|---|---|
| Linux | /opt/AKStream.Next |
/etc/akstream-next/Config |
akstream-next.service、akstream-next-agent.service |
| Windows | %ProgramFiles%\AKStream.Next |
%ProgramData%\AKStream.Next\Config |
AKStream.Next、AKStream.Next.NodeAgent |
| macOS | /Library/Application Support/AKStream.Next |
同目录下 Config |
com.akstream.next、com.akstream.next.agent |
| Docker | 默认 ~/AKStream.Next-Docker |
根目录下 Config |
Compose 中的主容器和 Agent 容器 |
配置、密钥、数据库连接、录像和日志不应只存在于版本目录。升级会替换程序文件,但应保留配置和数据。
安装前检查四件事
VERSION与下载页面显示的版本一致。- 包的 RID 与服务器 CPU 一致,例如
linux-x64不能用于 ARM64。 - 使用同一 Release 的 SHA256 文件校验归档,不只看文件名。
- 解压后至少存在主程序目录、NodeAgent、平台部署脚本和 README。
Linux 示例:
uname -m
sha256sum -c SHA256SUMS.txt --ignore-missing
tar -xzf AKStream.Next-<版本>-linux-x64.tar.gz
cd AKStream.Next-<版本>-linux-x64
./Deploy/linux/akstream-next.sh --help
哪些文件不要手工改
- 不要在
AKStream.Next/中覆盖单个 DLL 来“热修复”;版本可能失配。 - 不要把真实密码写回包内示例
Config后再到处复制。 - 不要只替换 MediaServer 二进制而保留不兼容的动态库或
config.ini。 - 不要直接删除 NodeAgent;它承担主服务离线时的受限恢复职责。
- 不要把
Demos当作生产鉴权代理,示例必须经过自己的业务安全边界。
下一步按服务器选择 Linux 安装、Windows 安装、macOS 安装 或 Docker 安装。