部署指南
将 RTKHUB 部署到生产环境。
准备工作
- 下载 RTKHUB 发布包或准备 Docker 镜像
- 准备配置文件
- 准备服务器环境
选择部署方式
| 方式 | 适合场景 | 说明 |
|---|---|---|
| Windows 单机 | 本机试运行、Windows Server 生产部署 | 使用 Release x64 包,配合 NSSM 或计划任务管理 |
| Docker | 云服务器、标准化交付、测试环境 | 推荐挂载 conf/、data/、logs/、result/ |
| 反向代理 | 需要 HTTPS 或统一域名入口 | 使用 Nginx、Cloudflare Tunnel 或 VPN,不建议直接公网暴露 5426 |
Docker 详细配置见 Docker 部署。
本地部署
1. 解压文件
# 解压到目标目录
Expand-Archive rtkhub-v1.2.0.zip D:\rtkhub\
cd D:\rtkhub
2. 创建配置
参考 配置指南
3. 启动服务
.\rtkhub.exe -s -k conf\rtkhub.list
Windows 服务
创建服务
# 使用 NSSM
nssm install RTKHUB "D:\rtkhub\rtkhub.exe"
nssm set RTKHUB AppParameters "-s -k conf\rtkhub.list"
nssm set RTKHUB AppDirectory "D:\rtkhub"
nssm set RTKHUB Start SERVICE_AUTO_START
# 启动服务
nssm start RTKHUB
管理服务
# 停止
nssm stop RTKHUB
# 重启
nssm restart RTKHUB
# 删除
nssm remove RTKHUB confirm
Nginx 反向代理
配置 HTTPS
server {
listen 443 ssl;
server_name rtkhub.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:5426;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# HTTP 重定向到 HTTPS
server {
listen 80;
server_name rtkhub.example.com;
return 301 https://$server_name$request_uri;
}
Docker 部署
如果你需要用容器统一部署,优先阅读 Docker 部署。核心原则是:
- 只把镜像当作运行环境,不把配置和结果文件写入镜像层。
- 将
conf/、data/、logs/、result/挂载到宿主机。 - 生产环境固定镜像版本,并保留旧镜像用于回滚。
- 串口或 USB 设备需要额外映射和权限验证。
最小 Compose 形态:
services:
rtkhub:
image: ghcr.io/apkpai/rtkhub:latest
restart: unless-stopped
command: ["./rtkhub", "-s", "-k", "conf/rtkhub.list"]
ports:
- "5426:5426"
volumes:
- ./conf:/app/conf
- ./data:/app/data
- ./logs:/app/logs
- ./result:/app/result
防火墙配置
Windows 防火墙
New-NetFirewallRule -DisplayName "RTKHUB" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 5426 `
-Action Allow
Linux iptables
sudo iptables -A INPUT -p tcp --dport 5426 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
自动备份
备份脚本
# backup.ps1
$date = Get-Date -Format "yyyyMMdd"
$backupPath = "E:\backups\rtkhub_$date"
# 停止服务
nssm stop RTKHUB
# 备份
Copy-Item D:\rtkhub\conf $backupPath\conf -Recurse
Copy-Item D:\rtkhub\database $backupPath\database -Recurse
# 启动服务
nssm start RTKHUB
# 压缩
Compress-Archive $backupPath "$backupPath.zip"
Remove-Item $backupPath -Recurse
定时任务
# 每天凌晨 2 点备份
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
-Argument "-File D:\rtkhub\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 2AM
Register-ScheduledTask -TaskName "RTKHUB Backup" `
-Action $action -Trigger $trigger
监控告警
进程监控
# monitor.ps1
if (!(Get-Process rtkhub -ErrorAction SilentlyContinue)) {
# 发送告警邮件
Send-MailMessage -To "admin@example.com" `
-Subject "RTKHUB服务停止" `
-Body "RTKHUB服务异常停止,已自动重启" `
-SmtpServer "smtp.example.com"
# 重启服务
nssm start RTKHUB
}
性能优化
系统调优
- 关闭不必要的服务
- 增加虚拟内存
- 使用 SSD 存储结果文件
RTKHUB 优化
- 调整日志级别(
-t 0) - 减少历史数据保留
- 定期清理日志
安全加固
- 修改默认密码
- 限制访问 IP
- 定期更新
- 启用 HTTPS
- 配置防火墙
故障恢复
数据恢复
# 从备份恢复
nssm stop RTKHUB
Remove-Item D:\rtkhub\database -Recurse
Expand-Archive E:\backups\rtkhub_20260610.zip D:\rtkhub\
nssm start RTKHUB