logo
0
0
WeChat Login

RustDesk API

使用 Go 实现的 RustDesk API 服务,包含 Web Admin 和 Web 客户端

本项目维护者: Claude (AI Assistant)

📖 简介

本项目实现了 RustDesk 的完整 API 服务,包括:

  • PC 端 API - 个人版 API、登录、地址簿、群组、OAuth (GitHub/Google/OIDC)、LDAP 支持
  • Web Admin - 用户管理、设备管理、地址簿管理、标签管理、群组管理、登录/连接/文件传输日志、Server 控制
  • Web Client - 自动配置、地址簿同步、游客分享
  • CLI 工具 - 重置管理员密码、用户管理

🚀 快速开始

一键启动(推荐)

使用提供的一键启动脚本,自动完成所有配置和启动:

# 启动服务 ./start.sh # 停止服务 ./stop.sh # 重启服务 ./restart.sh

启动脚本会自动完成:

  • ✅ 检查并安装依赖 (go, node, npm, gcc)
  • ✅ 安装 Go 依赖
  • ✅ 克隆并构建前端
  • ✅ 启动服务(CGO_ENABLED=1)
  • ✅ 等待服务就绪并显示访问信息

使用快捷命令

# 加载快捷命令 source ./QUICK_START.sh # 使用快捷命令 rustdesk-start # 启动服务 rustdesk-stop # 停止服务 rustdesk-info # 查看服务信息 rustdesk-pwd # 查看管理员密码 rustdesk-logs # 实时查看日志 rustdesk-help # 显示帮助

访问服务

启动成功后,可以通过以下地址访问:

  • 管理后台: http://localhost:21114/_admin/
  • API 地址: http://localhost:21114/api/
  • 版本信息: http://localhost:21114/api/version

默认登录信息:

  • 用户名: admin
  • 密码: 查看日志获取 grep "Admin Password Is:" /workspace/runtime/log.txt

📋 核心功能

PC 端 API

  • ✅ 个人版 API
  • ✅ 登录认证
  • ✅ 地址簿管理
  • ✅ 群组管理
  • ✅ OAuth 支持 (GitHub / Google / OIDC)
  • ✅ LDAP 支持 (AD 和 OpenLDAP)
  • ✅ 国际化 (i18n)

Web Admin

  • ✅ 用户管理
  • ✅ 设备管理
  • ✅ 地址簿管理
  • ✅ 标签管理
  • ✅ 群组管理
  • ✅ OAuth 管理
  • ✅ 登录日志
  • ✅ 连接日志
  • ✅ 文件传输日志
  • ✅ Web Client 快速访问
  • ✅ Server 控制(简易模式 & 高级模式)

Web Client

  • ✅ 自动获取 API 配置
  • ✅ 自动同步 ID 服务器和 KEY
  • ✅ 地址簿自动同步
  • ✅ 游客临时分享链接

CLI 工具

# 查看帮助 ./apimain -h # 重置管理员密码 ./apimain reset-admin-pwd <new_password> # 重置用户密码 ./apimain reset-pwd <user_id> <new_password>

⚙️ 配置说明

配置文件

主配置文件位于 conf/config.yaml,包含以下主要配置项:

# 服务配置 gin: api-addr: "0.0.0.0:21114" # API 监听地址 mode: "release" # 运行模式: release/debug/test # 数据库配置 gorm: type: "sqlite" # 数据库类型: sqlite/mysql/postgresql # RustDesk 配置 rustdesk: id-server: "192.168.1.66:21116" relay-server: "192.168.1.66:21117" api-server: "http://127.0.0.1:21114" personal: 1 # 是否启用个人版 API # 应用配置 app: register: false # 是否开启注册 web-client: 1 # 是否启用 web-client show-swagger: 0 # 是否显示 swagger 文档

环境变量

可通过环境变量覆盖配置(前缀为 RUSTDESK_API):

变量名说明示例
RUSTDESK_API_LANG语言zh-CN, en
RUSTDESK_API_GIN_API_ADDRAPI 地址0.0.0.0:21114
RUSTDESK_API_APP_REGISTER是否开启注册true, false
RUSTDESK_API_RUSTDESK_ID_SERVERID 服务器192.168.1.66:21116
RUSTDESK_API_RUSTDESK_KEYRustDesk Key123456789

📦 安装方式

Docker 运行

# 直接运行 docker run -d --name rustdesk-api -p 21114:21114 \ -v /data/rustdesk/api:/app/data \ -e TZ=Asia/Shanghai \ -e RUSTDESK_API_LANG=zh-CN \ lejianwen/rustdesk-api # Docker Compose docker compose -f docker-compose.yaml up -d

源码运行

# 1. 克隆仓库 git clone https://github.com/lejianwen/rustdesk-api.git cd rustdesk-api # 2. 安装依赖 go mod tidy # 3. 运行 CGO_ENABLED=1 go run cmd/apimain.go

使用一键脚本(推荐)

# 一键启动,自动处理所有依赖和配置 ./start.sh

📝 查看日志

# 实时查看日志 tail -f /workspace/runtime/log.txt # 查看应用日志 cat /workspace/runtime/app.log # 使用快捷命令 source ./QUICK_START.sh rustdesk-logs

🛠️ 常见问题

1. 端口被占用

# 检查端口占用 netstat -tlnp | grep 21114 # 修改配置文件 vim conf/config.yaml # 修改 gin.api-addr 为其他端口

2. 重置管理员密码

# 方法 1: 使用 CLI ./apimain reset-admin-pwd <new_password> # 方法 2: 查看日志获取初始密码 grep "Admin Password Is:" /workspace/runtime/log.txt

📚 相关资源

🎯 API 端点

公开端点

  • GET /api/version - 获取版本信息
  • GET /api/login-options - 获取登录选项
  • POST /api/login - 用户登录
  • POST /api/heartbeat - 心跳检测

管理端点(需要认证)

  • GET /api/admin/user/current - 当前用户信息
  • POST /api/admin/user/changeCurPwd - 修改密码
  • GET /api/admin/user/list - 用户列表
  • GET /api/admin/address_book/list - 地址簿列表
  • GET /api/admin/peer/list - 设备列表

完整 API 文档可通过 Swagger 查看(需在配置中启用 show-swagger: 1

🤝 贡献

欢迎提交 Issue 和 Pull Request!

感谢所有贡献者!

📜 许可证

本项目采用 MIT 许可证。


本项目维护者: Claude (AI Assistant)

感谢你的支持!如果这个项目对你有帮助,请点个 ⭐️ 鼓励一下,谢谢!