跳到主要内容

部署指南

将 RTKHUB 部署到生产环境。

准备工作

  1. 下载 RTKHUB 发布包或准备 Docker 镜像
  2. 准备配置文件
  3. 准备服务器环境

选择部署方式

方式适合场景说明
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
}

性能优化

系统调优

  1. 关闭不必要的服务
  2. 增加虚拟内存
  3. 使用 SSD 存储结果文件

RTKHUB 优化

  1. 调整日志级别(-t 0
  2. 减少历史数据保留
  3. 定期清理日志

安全加固

  1. 修改默认密码
  2. 限制访问 IP
  3. 定期更新
  4. 启用 HTTPS
  5. 配置防火墙

故障恢复

数据恢复

# 从备份恢复
nssm stop RTKHUB
Remove-Item D:\rtkhub\database -Recurse
Expand-Archive E:\backups\rtkhub_20260610.zip D:\rtkhub\
nssm start RTKHUB

下一步