Docker 私有化部署——把 BilldDesk 跑在自己的服务器上
什么是私有化部署
私有化部署指的是把 BilldDesk 的服务端组件(信令服务器、中继服务器、后台管理服务)部署在你自己的服务器 / 云服务器上,而不是使用 BilldDesk 官方的 SaaS 服务。
私有化部署的核心好处:
- 数据不出内网:远程会话数据只经过你自己的服务器
- 不依赖官方:官方服务器宕机、维护、风控都不影响你
- 可定制开发:源码购买后可以自由修改功能
- 无中继费用:自己搭建中继,不需要付官方中继带宽费用
BilldDesk 的服务端架构
BilldDesk 客户端(桌面端、移动端、网页端)远程连接时,需要以下服务端组件配合:
| 服务 | 作用 | 技术栈 |
|---|---|---|
| 信令服务器 | 交换远程连接协商信息(NAT 穿透候选、密钥、设备信息) | Node.js + Koa2 + Redis |
| 中继服务器 | NAT 穿透失败时转发远程会话流量 | 基于 WebRTC TURN 协议 |
| 后台管理服务 | 设备管理、分组、远程记录、黑名单等(Pro 版有) | Node.js + 前端管理界面 |
这三个服务可以一起部署,也可以分散在不同服务器上。
Docker 一键部署
BilldDesk 官方提供了 Docker 镜像和 docker-compose.yml 配置文件,私有化部署非常简单:
# 1. 克隆项目仓库(开源版或购买源码后)
git clone https://github.com/galaxy-s10/billd-desk-server.git
# 2. 进入项目目录
cd billd-desk-server
# 3. 修改配置(数据库、端口、域名等)
# 编辑 config/production.json
# 4. 一键启动
docker-compose up -d
启动后,你自己的服务器上就跑着一套完整的 BilldDesk 服务端:
- 信令服务器监听指定端口
- 中继服务器监听指定端口
- 后台管理界面通过服务器 IP + 端口访问
客户端配置自建服务器
服务端部署好后,需要在 BilldDesk 客户端中配置指向自建的服务器:
- BilldDesk 客户端 → 高级设置 → 网络设置
- 找到「自定义接口」配置区域
- 填入自建信令服务器的 WebSocket 地址(如
wss://your-server.com/socket) - 填入自建中继服务器的地址
- 保存后客户端就会连接到你的自建服务端
自建后,客户端的所有远程连接都不会经过 BilldDesk 官方的服务器。
最低硬件要求
私有化部署 BilldDesk 服务端的最低硬件要求:
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| 信令服务器 | 1 核 1G 内存 | 2 核 4G 内存 |
| 中继服务器 | 1 核 2G 内存 + 足够带宽 | 4 核 8G 内存 + 100Mbps+ 上行带宽 |
| Redis | 跟信令同机即可 | 独立实例 |
关键瓶颈是中继服务器的上行带宽:中继每转发一路远控画面需要消耗对应带宽(1080P + 60FPS ≈ 3-10Mbps)。如果有 5 路远程同时经过自建中继,中继服务器的上行带宽就要 ≥ 50Mbps。
与官方 SaaS 的对比
| 对比项 | 私有化部署 | 官方 SaaS |
|---|---|---|
| 数据路径 | 仅经过自建服务器 | 经过官方服务器 |
| 稳定性 | 自建保障 | 依赖官方可用性 |
| 中继资源 | 自己的服务器带宽 | 官方中继集群 |
| 维护成本 | 需要自己维护 | 零维护 |
| 费用 | 服务器成本 + Pro 源码购买 | VIP 订阅(低至 4.2 元/月) |
| 定制能力 | 源码购买后自由修改 | 不可定制 |
私有化部署适合谁
| 用户类型 | 推荐私有化? | 原因 |
|---|---|---|
| 个人用户(< 10 台设备) | ❌ 不推荐 | 维护成本高于收益 |
| 小型工作室(< 50 台) | ⚠️ 可选 | 如果对数据安全有要求可以考虑 |
| 中型企业(50-500 台) | ✅ 推荐 | 数据安全、自定义需求 justify 成本 |
| 大型企业 / 政府 / 金融 | ✅ 强烈推荐 | 数据不出内网是硬性要求 |
| 云游戏 / 云手机运营商 | ✅ 必须 | 批量设备管理 + 低延迟需求 |
开源版 vs Pro 源码私有化部署
| 对比项 | 开源版 | Pro 源码(¥19999 起) |
|---|---|---|
| 服务端功能 | 基础信令 + 中继 | 完整信令 + 中继 + 后台管理 |
| 客户端功能 | 基础远控 | 全部高阶功能(隐私屏、屏幕墙、驱动级键鼠等) |
| 二次开发 | 可以 | 可以 |
| 后台管理界面 | 无 | 有 |
| 文档与支持 | GitHub README | 源码内文档 + 作者支持 |