这是一个基于开源RustDesk客户端的开源Api服务器,实现了客户端所有Api接口,并提供一个Web-UI用于管理数据。
我们致力于用最简单的代码和结构实现功能!
- 同步RuskDesk版本(当前适配客户端:1.2.7)
- 纯Go实现所有接口
- 可视化管理界面
- 国际化支持
- 统计面板
- 用户管理
- 会话管理
- 日志审计
- hbbr&hbbs管理
- 轻量化&跨平台
- 最小sqlite即可
- 支持主流操作系统和架构
- 拉取镜像
docker pull ghcr.io/lantongxue/rustdesk-api-server-pro:latest
- 创建配置
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
- 运行镜像
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
- 添加管理员账号(如果设置了用于初始化管理员账号密码的环境变量,此步骤可以忽略,但我仍推荐你使用此方式创建管理员账号,而不是通过环境变量初始化)
docker exec rustdesk-api-server-pro rustdesk-api-server-pro user add admin yourpassword --admin
容器镜像默认监听
8080
端口
默认配置文件路径
/app/server.yaml
,可以通过-v
指定您自己的配置文件
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 ~= 最新版
- 获取源码
git clone https://github.com/lantongxue/rustdesk-api-server-pro.git
- 编译api-server
cd backend && go build
- 编译前端
cd soybean-admin && pnpm i && pnpm build
- 同步数据表结构
rustdesk-api-server-pro.exe sync
- 创建第一个账号
rustdesk-api-server-pro.exe user add admin yourpassword --admin
--admin 是一个可选项,启用后添加的用户为管理员用户,否则是普通用户
- 启动
rustdesk-api-server-pro.exe start
默认监听
8080
端口
此步骤你需要一个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/
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客户端,并实现对应接口,这将作为一个长期计划。
如果您觉得此项目对您有所帮助,不妨请开发者喝杯咖啡 :)
感谢您的赞助
您可以查看完整的许可证 这里
本项目采用MIT许可条款。