Skip to content

Latest commit

 

History

History
223 lines (181 loc) · 6.09 KB

README_CN.md

File metadata and controls

223 lines (181 loc) · 6.09 KB

Rustdesk Api Server Pro

English | 简体中文

这是一个基于开源RustDesk客户端的开源Api服务器,实现了客户端所有Api接口,并提供一个Web-UI用于管理数据。

Preview

我们致力于用最简单的代码和结构实现功能!

特性

  • 同步RuskDesk版本(当前适配客户端:1.2.7)
  • 纯Go实现所有接口
  • 可视化管理界面
    • 国际化支持
    • 统计面板
    • 用户管理
    • 会话管理
    • 日志审计
    • hbbr&hbbs管理
  • 轻量化&跨平台
    • 最小sqlite即可
    • 支持主流操作系统和架构

Dashboard

Users

Sessions

Audit

使用Docker部署

  1. 拉取镜像
docker pull ghcr.io/lantongxue/rustdesk-api-server-pro:latest
  1. 创建配置
cat > /your/path/server.yaml <<EOF
signKey: "sercrethatmaycontainch@r$32chars" # this is the token signing key. change this before start server
db:
  driver: "sqlite"
  dsn: "./server.db"
  timeZone: "Asia/Shanghai" # setting the time zone fixes the database creation time problem
  showSql: true

  # driver: "mysql"
  # dsn: "root:123@tcp(localhost:3306)/test?charset=utf8mb4"
httpConfig:
  printRequestLog: true
  port: ":8080" # api server port
jobsConfig:
  deviceCheckJob:
    duration: 30
EOF
  1. 运行镜像
docker run \
--name rustdesk-api-server-pro \
-d \
-e ADMIN_USER=admin \ #管理员账号(可选)
-e ADMIN_PASS=yourpassword \ #管理员密码(可选)
-e TZ=Asia/Shanghai \ #必须与 server.yaml 中的"timeZone"设置匹配
-p 8080:8080 \
-v /your/path/server.yaml:/app/server.yaml \
ghcr.io/lantongxue/rustdesk-api-server-pro:latest
  1. 添加管理员账号(如果设置了用于初始化管理员账号密码的环境变量,此步骤可以忽略,但我仍推荐你使用此方式创建管理员账号,而不是通过环境变量初始化)
docker exec rustdesk-api-server-pro rustdesk-api-server-pro user add admin yourpassword --admin

容器镜像默认监听8080端口

默认配置文件路径/app/server.yaml,可以通过-v指定您自己的配置文件

Docker compose

services:
  rustdesk-api-server-pro:
    container_name: rustdesk-api-server-pro
    image: ghcr.io/lantongxue/rustdesk-api-server-pro:latest
    environment:
      - "ADMIN_USER=youruser"
      - "ADMIN_PASS=yourpassword"
      - "TZ=Asia/Shanghai"
    volumes:
      - ./server.yaml:/app/server.yaml
    network_mode: host
    restart: unless-stopped

环境变量

变量 默认值 说明
ADMIN_USER - 默认管理员账号
ADMIN_PASS - 默认管理员密码
TZ - 容器操作系统时区;必须与 YAML 文件中的应用设置相匹配

源代码编译

必要环境

  • Golang >= 1.21.4
  • NodeJs ~= 推荐最新LTS版本
  • pnpm ~= 最新版

编译

  1. 获取源码
git clone https://github.com/lantongxue/rustdesk-api-server-pro.git
  1. 编译api-server
cd backend && go build
  1. 编译前端
cd soybean-admin && pnpm i && pnpm build

运行

api-server

  1. 同步数据表结构
rustdesk-api-server-pro.exe sync
  1. 创建第一个账号
rustdesk-api-server-pro.exe user add admin yourpassword --admin

--admin 是一个可选项,启用后添加的用户为管理员用户,否则是普通用户

  1. 启动
rustdesk-api-server-pro.exe start

默认监听8080端口

Web管理界面

此步骤你需要一个WEB服务器软件(例如:nginx、apache等),通过将打包后的产物复制到WEB根目录即可。

一般情况下,打包后的产物在soybean-admin/dist目录中。

反向代理配置,你需要将在nginx或其他WEB服务器中配置反向代理,通过反向代理服务端才能正确访问到接口地址。

下面是nginx反向代理的参考配置:

#PROXY-START /api for rustdesk client
location ^~ /api
{
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host 127.0.0.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
}
#PROXY-END/

#PROXY-START /admin for web-ui
location ^~ /admin
{
    proxy_pass http://127.0.0.1:8080/admin;
    proxy_set_header Host 127.0.0.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
}
#PROXY-END/

CLI命令行

Usage:
  rustdesk-api-server-pro [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  rustdesk    About rustdesk-server command
  start       Start the api-server
  sync        The api-server database synchronization
  user        User management

Flags:
  -h, --help   help for rustdesk-api-server-pro

Use "rustdesk-api-server-pro [command] --help" for more information about a command.

后续计划

后续会持续跟进RustDesk客户端,并实现对应接口,这将作为一个长期计划。

赞助

如果您觉得此项目对您有所帮助,不妨请开发者喝杯咖啡 :)

Sponsorship

感谢您的赞助

开源许可

您可以查看完整的许可证 这里

本项目采用MIT许可条款。