使用GitHub Action 自动构建 RustDesk 客户端

geteshi
2025-08-12 / 0 评论 / 17 阅读 / 正在检测是否收录...

1. 安装rustdesk

docker-compose 文件:

假设你的域名是rustdesk.test.com

services:
  rustdeskapi:
    container_name: rustdeskapi
    ports:
      - 21114:21114
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21117:21117
      - 21118:21118
      - 21119:21119
    image: lejianwen/rustdesk-server-s6:latest
    environment:
      RELAY: "rustdesk.test.com:21117" #中继服务器:21117
      ENCRYPTED_ONLY: 1
      MUST_LOGIN: Y #默认为N,设置为Y 则必须登录才能链接
      TZ: Asia/Shanghai
      RUSTDESK_API_RUSTDESK_ID_SERVER: "rustdesk.test.com:21116" #ID服务器
      RUSTDESK_API_RUSTDESK_API_SERVER: "https://rustdesk.test.com" #API服务器
      RUSTDESK_API_RUSTDESK_KEY: "" # 首次运行后给的
      RUSTDESK_API_JWT_KEY: "随便一个" # 自定义JWT KEY,为空则不启用JWT,如果没使用lejianwen/rustdesk-server中的MUST_LOGIN,建议设置为空
      RUSTDESK_API_RUSTDESK_WS_HOST: "wss://rustdesk.test.com"
    volumes:
      - ./server:/data
      - ./api:/app/data #将数据库挂载
    restart: unless-stopped

nginx文件:参考:HTTPS Reverse Proxy · lejianwen/rustdesk-api Wiki

server {
    server_name <server>;
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/<server>/fullchain.pem; 
    ssl_certificate_key /etc/nginx/ssl/<server>/privkey.pem; 
    location / {
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://rustdesk-api:21114/;
    }

    location /ws/id {
        proxy_pass http://rustdesk-server:21118;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /ws/relay {
        proxy_pass http://rustdesk-server:21119;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

server {
    if ($host = <server>) {
        return 301 https://$host$request_uri;
    }

    server_name <server>;
    listen 80;
    return 404; 
}

2. Fork Rustdesk仓库

  1. rustdesk/hbb_common
  2. rustdesk/rustdesk

2.1 拉取 Fork 后的代码

请注意,替换仓库地址为你fork后的仓库地址,而不是直接复制我下面的命令
    
# 可选:如果需要使用代理  
    
# git config --global http.proxy http://127.0.0.1:10808  
    
# git config --global https.proxy http://127.0.0.1:10808  
    
# 拉取仓库代码到本地 请替换为你fork后的仓库地址  
    
git clone https://github.com/irains/hbb_common.git  
    
git clone https://github.com/irains/rustdesk.git  

3. 修改 hbb_common代码

打开 hbb_common 仓库下的 src/config.rs文件,修改 101-102 行 的默认服务器和密钥为你自己的服务器和密钥。

3.1 推送修改后的代码

# 将修改的代码添加到暂存区  

git add .  

# 将代码提交到本地仓库  
git commit -m "修改默认的服务器和 key"  

# 将本地仓库代码推送到远程仓库 如果你没有登录过GitHub会要求你登录github
git push  

3.2 查看最新提交的 commit ID

git log --oneline
我这里提交后的commit id是b8d80ca,可用于后续验证rustdesk服务器和key是否修改成功

4. 修改 rustdesk 仓库代码

我们切换到克隆下来的rustdesk代码目录下,按照下面的方式修改子模块地址并更新。

4.1 更新 .gitmodules

打开并编辑 .gitmodules 文件,将 url 替换为你Fork后的 hbb_common 仓库地址。

比如我fork后的仓库地址是https://github.com/irains/hbb_common\则将 https://github.com/rustdesk/hbb_common地址换为前面这个地址即可,记住是hbb_common的地址,而不是rustdesk仓库的地址

4.2 更新子模块

将上面修改好的代码保存,执行下面的命令更新子模块到最新的commit id

git submodule sync
git submodule update --remote

如果上面的方法不行,用下面这个

cd libs/hbb_common
git checkout <上面提到的版本号>
cd ../..
git add libs/hbb_common
git commit -m "Pin submodule to specific version"

4.3 提交并推送代码

git add . 
git commit -m "修改子模块仓库地址"  
git push

4.4 确认 Commit ID 更新

代码推送完毕后,进入你Fork 后的 rustdesk 仓库的 libs 目录下,查看 hbb_common 后面的 commit id,确保它是3.2提到的b8d80ca(这个值每个人的是不同的),否则请回到上面的步骤重新检查是否遗漏了某个操作。

5. 触发 GitHub Action 构建

5.1 创建 Tag

在本地 rustdesk 仓库中创建一个新 tag,例如 1.3.9,请使用 固定格式 (如 1.3.9v1.3.9),以便于自动匹配构建规则。

git tag -a 1.3.9 -m "修改内置服务器和 key"

5.2 增加API_SERVER

来到rustdesk项目,settings --> Secrets and variables --> new repository secret
name:API_SERVER
secret:RUSTDESK_API_RUSTDESK_API_SERVER的值

5.3 触发 GitHub Actions 构建

rustdesk 仓库中,进入 Actions 页面,点击下面图中的按钮启用自动构建启用后回到本地rustdesk代码中使用下面的命令将tag推送到Github后将自动开始构建。

git push --tags

5.4 下载构建好的客户端

Tag推送完毕后会出现下面的构建进度。

等待 Action 执行完成后(时间比较长,一个半小时左右才能全部构建完成),进入 Releases 页面,即可下载构建好的客户端并使用。

0

评论 (0)

取消