Custom Rustdesk Api Server, include web admin ,web client, web client v2 preview and oidc login
Go to file
2024-09-13 17:38:10 +08:00
cmd first 2024-09-13 15:57:29 +08:00
conf first 2024-09-13 15:57:29 +08:00
config first 2024-09-13 15:57:29 +08:00
docs first 2024-09-13 15:57:29 +08:00
global first 2024-09-13 15:57:29 +08:00
http first 2024-09-13 15:57:29 +08:00
lib first 2024-09-13 15:57:29 +08:00
model first 2024-09-13 15:57:29 +08:00
resources/web fix build 2024-09-13 16:21:57 +08:00
service first 2024-09-13 15:57:29 +08:00
utils first 2024-09-13 15:57:29 +08:00
.gitignore fix build 2024-09-13 16:21:57 +08:00
build.bat fix build 2024-09-13 16:21:57 +08:00
build.sh fix build 2024-09-13 16:21:57 +08:00
generate_api.go first 2024-09-13 15:57:29 +08:00
go.mod first 2024-09-13 15:57:29 +08:00
README.md up README.md 2024-09-13 17:38:10 +08:00

RustDesk API

本项目使用 Go 实现了 RustDesk 的 API并包含了 Web UI 和 Web 客户端。RustDesk 是一个远程桌面软件,提供了自托管的解决方案。

使用前准备

Rustdesk

  1. PC客户端使用的是 1.3.0,经测试 1.2.6+ 都可以
  2. server端必须指定key不能用自带的生成的key,否则可能链接不上或者超时
hbbs -r <relay-server-ip[:port]> -k 123456789
hbbr -k 123456789

功能

API 服务: 基本实现了PC端基础的接口。

pc_ab pc_gr

Web UI: 使用前后端分离,提供用户友好的管理界面,主要用来管理和展示。

前端代码在rustdesk-api-web

初次安装管理员为用户名密码为admin admin请即时更改密码

  1. 管理员界面 web_admin
  2. 普通用户界面 web_user
  3. 更改密码在右上角

web_resetpwd

  1. 分组可以自定义,方便管理,暂时支持两种类型: 共享组普通组 web_admin_gr

Web 客户端:

  1. 如果已经登录了后台web client将自动直接登录
  2. 如果没登录后台点击右上角登录即可api server已经自动配置好了
  3. 登录后台后会将地址簿自动保存到web client中方便使用 webclient_conf

自动化文档: 使用 Swag 生成 API 文档,方便开发者理解和使用 API。

  1. 后台文档 /admin/swagger/index.html
  2. PC端文档 /swagger/index.html api_swag

安装与运行

相关配置

  • 参考conf/config.yaml配置文件,修改相关配置。如果gorm.typesqlite则不需要配置mysql相关配置。
gin:
  api-addr: "0.0.0.0:21114"
  mode: "release"
  resources-path: 'resources'
gorm:
  type: "sqlite"
  max-idle-conns: 10
  max-open-conns: 100
mysql:
  username: "root"
  password: "111111"
  addr: "192.168.1.66:3308"
  dbname: "rustdesk"
rustdesk:
  id-server: "192.168.1.66:21116"
  relay-server: "192.168.1.66:21117"
  api-server: "http://192.168.1.66:21114"
  key: "123456789"

安装步骤

docker运行

下载release直接运行

源码安装

  1. 克隆仓库
    git clone https://github.com/lejianwen/rustdesk-api.git
    cd rustdesk-api
    
  2. 安装依赖
    go mod tidy
    #安装swag如果不需要生成文档可以不安装
    go install github.com/swaggo/swag/cmd/swag@latest
    
  3. 编译后台前端,前端代码在rustdesk-api-web
    cd resources
    git clone https://github.com/lejianwen/rustdesk-api-web
    cd rustdesk-api-web
    npm install
    npm run build
    cp -ar dist/* ../admin/
    
  4. 运行
    #直接运行
    go run cmd/apimain.go
    #或者使用generate_api.go生成api并运行
    go generate generate_api.go
    
  5. 编译,如果想自己编译,先cd到项目根目录然后windows下直接运行build.bat,linux下运行build.sh,编译后会在release 目录下生成对应的可执行文件。