全球主机交流论坛

标题: 【教程记录】使用GitHub Action 自动构建 RustDesk 客户端 [打印本页]

作者: rainerosion    时间: 2025-3-4 10:32
标题: 【教程记录】使用GitHub Action 自动构建 RustDesk 客户端
本帖最后由 rainerosion 于 2025-3-4 10:36 编辑

前言

前几天有人问我新版本的Rustdesk如何自己构建,于是我写了这篇文章。如何利用Github Actions 实现自动构建内置你服务器和key的Rustdesk客户端。

1. 准备工作

在开始之前,请确保你已经安装了 Git,并且拥有一个 GitHub 账户。建议你对 Git 的基本使用有一定了解,以便顺利完成后续操作。

2. Fork Rustdesk仓库

1. rustdesk/hbb_common
2. rustdesk/rustdesk

2.1 拉取 Fork 后的代码

请注意,替换仓库地址为你fork后的仓库地址,而不是直接复制我下面的命令

  1. # 可选:如果需要使用代理
  2. # git config --global http.proxy http://127.0.0.1:10808
  3. # git config --global https.proxy http://127.0.0.1:10808
  4. # 拉取仓库代码到本地 请替换为你fork后的仓库地址
  5. git clone https://github.com/irains/hbb_common.git
  6. git clone https://github.com/irains/rustdesk.git
复制代码




3. 修改 hbb_common代码

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



3.1 推送修改后的代码


  1. # 将修改的代码添加到暂存区
  2. git add .
  3. # 将代码提交到本地仓库
  4. git commit -m "修改默认的服务器和 key"
  5. # 将本地仓库代码推送到远程仓库 如果你没有登录过GitHub会要求你登录github
  6. git push
复制代码




3.2 查看最新提交的 commit ID


  1. 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


  1. git submodule sync
  2. git submodule update --remote
复制代码




4.3 提交并推送代码


  1. git add .
  2. git commit -m "修改子模块仓库地址"
  3. 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.9` 或 `v1.3.9`),以便于自动匹配构建规则。


  1. git tag -a 1.3.9 -m "修改内置服务器和 key"
复制代码




5.2 触发 GitHub Actions 构建

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


  1. git push --tags
复制代码




5.3 下载构建好的客户端

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



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





作者: 空谷幽兰    时间: 2025-3-4 10:40
支持技术贴,是不是可以直接在网页操作
作者: rainerosion    时间: 2025-3-4 10:43
空谷幽兰 发表于 2025-3-4 10:40
支持技术贴,是不是可以直接在网页操作

submodule的更新可能不行。
作者: jpfree    时间: 2025-3-4 10:47
厉害了,可惜还是太复杂,需要操作GIT,

我觉得更简单的是FORK后直接在网页或者什么dev里修改,但不知道效果有什么不同。

另外,我这边修改后,别人更新了我这边怎么同步更新,还是不太懂。
作者: niudun1643    时间: 2025-3-4 11:22
实际测试 hbb_common的url更新不起作用,还是以前的commit id,不知道怎么回事?
作者: rainerosion    时间: 2025-3-4 11:47
niudun1643 发表于 2025-3-4 11:22
实际测试 hbb_common的url更新不起作用,还是以前的commit id,不知道怎么回事? ...


教程都是我一步一步操作过的肯定没问题,是不是遗漏了哪一步。
hbb_common代码push上去了吗
然后改好.gitsubmodule里面的hbb_common地址以后执行下面的命令,还要提交rustdesk代码那个commit id指向才会变
git submodule sync
git submodule update --remote
作者: niudun1643    时间: 2025-3-4 12:43
rainerosion 发表于 2025-3-4 11:47
教程都是我一步一步操作过的肯定没问题,是不是遗漏了哪一步。
hbb_common代码push上去了吗
然后改好.git ...

都试过了,还是不行,不知道是为什么,我现在发现hbb_common中的src下面的config中的中继服务器的地址和一个key竟然是一个别人的地址和key,绝对不是我的,也不是官方的,真实神奇。
作者: rainerosion    时间: 2025-3-4 12:49
niudun1643 发表于 2025-3-4 12:43
都试过了,还是不行,不知道是为什么,我现在发现hbb_common中的src下面的config中的中继服务器的地址和 ...

你不会搞错成我上面的地址了吧。。。。
作者: niudun1643    时间: 2025-3-4 12:55
rainerosion 发表于 2025-3-4 12:49
你不会搞错成我上面的地址了吧。。。。

有可能,但是还是不知道为什么,会搞成你的地址,你是19小时以前创建过吗?
作者: niudun1643    时间: 2025-3-4 12:58
niudun1643 发表于 2025-3-4 12:55
有可能,但是还是不知道为什么,会搞成你的地址,你是19小时以前创建过吗? ...

我再试一次试试
作者: rootdiandi    时间: 2025-3-4 13:37
1111
作者: 小白兔吃胡萝卜    时间: 2025-3-4 13:52
支持技术贴,请问大佬我之前在电脑A和电脑B安装了RustDesk,但是两个电脑连接非常慢延迟非常高,这是因为没有自建服务器吗?
作者: rainerosion    时间: 2025-3-4 14:20
小白兔吃胡萝卜 发表于 2025-3-4 13:52
支持技术贴,请问大佬我之前在电脑A和电脑B安装了RustDesk,但是两个电脑连接非常慢延迟非常高,这是因为没 ...

官方服务器都在海外。很慢我之前用延迟都是500+,经常1000多
作者: rainerosion    时间: 2025-3-4 14:22
niudun1643 发表于 2025-3-4 12:55
有可能,但是还是不知道为什么,会搞成你的地址,你是19小时以前创建过吗? ...

是的。
作者: rainerosion    时间: 2025-3-4 14:23
niudun1643 发表于 2025-3-4 12:55
有可能,但是还是不知道为什么,会搞成你的地址,你是19小时以前创建过吗? ...


注意看下文章2.1和4.1的说明,仓库地址要改成你自己fork的仓库地址
作者: 小穴儿    时间: 2025-3-4 18:39
本帖最后由 小穴儿 于 2025-3-4 19:40 编辑

成功。。。
作者: yi339999    时间: 2025-3-4 18:42
太复杂了,直接用docker的。更快。
作者: Domo    时间: 2025-3-9 17:42
谢谢教程,问了AI,是少执行了git submodule init
作者: hs203    时间: 2025-3-9 18:46
设置固定密码 同时使用两种密码是在那个文件修改了?
作者: Domo    时间: 2025-3-9 19:53
Domo 发表于 2025-3-9 17:42
谢谢教程,问了AI,是少执行了git submodule init

commit ID变成自己的了,但是编译出来的还是的客户端还是没内置我的服务器信息..
作者: hardwar    时间: 2025-3-9 20:02
好顶赞
作者: 九五    时间: 2025-3-9 20:28
技术贴,收藏了。
作者: hxhx    时间: 2025-3-10 10:48
Domo 发表于 2025-3-9 19:53
commit ID变成自己的了,但是编译出来的还是的客户端还是没内置我的服务器信息.. ...

不会在客户端显示你的信息,你可以测试看看,看服务器端的输出日志
作者: jamesbond    时间: 2025-3-10 10:52
这个官方更新了会自动更新吗

作者: 刘诗诗    时间: 2025-3-10 11:02
技术贴
作者: Domo    时间: 2025-3-10 11:06
hxhx 发表于 2025-3-10 10:48
不会在客户端显示你的信息,你可以测试看看,看服务器端的输出日志

我知道不显示在客户端。以前编译1.3.6没问题,id服务器和中继服务器,api服务器都是我自己的
现在最新版按照楼主的教程编译出来后,id服务器和中继服务器是我的,但是api服务器还是官方的。
作者: rainerosion    时间: 2025-3-10 11:09
jamesbond 发表于 2025-3-10 10:52
这个官方更新了会自动更新吗

肯定不会,自己github同步合并代码过来再次操作就是了
作者: rainerosion    时间: 2025-3-10 11:10
Domo 发表于 2025-3-10 11:06
我知道不显示在客户端。以前编译1.3.6没问题,id服务器和中继服务器,api服务器都是我自己的
现在最新版 ...

api服务器要内置的话改rustdesk仓库的src/common.rs代码在920行左右,直接搜索https://admin.rustdesk就能看到,自己改就是了
作者: rainerosion    时间: 2025-3-10 11:14
Domo 发表于 2025-3-9 19:53
commit ID变成自己的了,但是编译出来的还是的客户端还是没内置我的服务器信息.. ...

编译出来是不会显示在客户端的,有没有成功可以文本编辑器查看下面路径下的RustDesk2.toml配置文件是不是你自己服务器就知道了。
C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config
C:\Users\Administrator\AppData\Roaming\RustDesk\config
C:\ProgramData\RustDesk\config
作者: Domo    时间: 2025-3-10 11:24
rainerosion 发表于 2025-3-10 11:10
api服务器要内置的话改rustdesk仓库的src/common.rs代码在920行左右,直接搜索https://admin.rustdesk就 ...

好的,我试试,我在hbb common的config.rs改了没用
谢谢~~
作者: thaizxj    时间: 2025-3-10 13:54
收藏了
作者: lqphcc    时间: 2025-4-7 16:51
技术贴,感谢楼主分享,收藏!!!
作者: getduanfa    时间: 2025-4-10 16:48
这个fork过来改配置,秘钥什么的不是都泄露了吗。。。




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4