Skip to content

galaxy-s10/billd-desk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Billd-Desk logo

BilldDesk

基于WebRTC + Vue3 + Electron + Nodejs搭建的远程桌面

stars forks

version License language

📢 省流 📢

2025 年起,billd-desk 项目的所有仓库将进入 dev 状态,如果你需要获取线上生产环境的代码,有以下两种方式:

  1. 请花些时间查看之前提交的代码:https://github.com/galaxy-s10/billd-desk/commits/master/
  2. 订阅 billd-project,价格:https://desk.hsslive.cn/#/price

历史原因:参考 billd-live 的历史原因

简介

BilldDesk 远程桌面控制,目前实现了类似 ToDesk、向日葵等远程桌面的功能。

生态

名称 仓库 star & fork 线上地址/下载地址
远程桌面网页/客户端 billd-desk github github https://desk.hsslive.cn
远程桌面后台 billd-desk-admin github github https://desk-admin.hsslive.cn
远程桌面移动端 billd-desk-flutter github github TODO
远程桌面服务端 billd-desk-server github github https://desk-api.hsslive.cn

功能

  • Web 端控制桌面客户端
  • 桌面客户端控制桌面客户端
  • Web 端控制 Web 端(仅观看)
  • 桌面客户端控制 Web 端(仅观看)
  • 多人同时远程同一设备
  • 连接鉴权
  • 支持 Macos 系统
  • 支持 Windows 系统
  • 支持 Linux 系统(未实际测试)
  • 文件传输
  • 开机自启
  • 锁屏保活
  • 移动客户端(Flutter)
  • 后台管理

预览

控制端发起远程控制

https://github.com/user-attachments/assets/8e760673-49b5-48b1-b15b-29963880fa64

https://github.com/user-attachments/assets/beb7d43c-5660-4185-96c8-2f2761a11413

控制端正在控制被控端

https://github.com/user-attachments/assets/4cc167f5-70ac-47bc-a226-564a2f69c2f1

被控端

https://github.com/user-attachments/assets/b1482a29-ca11-4ed8-b78e-49815a556bfe

文件传输

https://github.com/user-attachments/assets/fc9d5f94-e716-46ce-b17d-a39c394521a3

接口文档

接口文档:https://apifox.com/apidoc/shared-a8ba9715-7730-432d-896c-97f983050795

本地启动

billd-desk(pro)

  • 安装依赖(建议使用 node 版本:v18.19.0)
pnpm i

更新 billd 相关依赖:

pnpm i billd-deploy@latest billd-utils@latest billd-scss@latest billd-html-webpack-plugin@latest
  • 运行
npm run dev
  • 打包 web
npm run build:web
  • 打包 windows、macos、linux 包
npm run build
  • 打包 windows 包
npm run build:win
  • 打包 macos 包
npm run build:mac
  • 打包 linux 包
npm run build:linux

billd-desk-server(pro)

  • 安装依赖(建议使用 node 版本:v18.19.0)
pnpm i

更新 billd 相关依赖:

pnpm i billd-utils@latest billd-html-webpack-plugin@latest

本地必须要有 docker、ffmpeg 环境!

项目启动后,会在项目的 src/secret/目录下生成 secret.ts 文件,请填写里面的信息,MYSQL_CONFIG、REDIS_CONFIG 必填!

# 1.初始化docker容器
pnpm run docker:dev

# 2.初始化数据库(可选,只需要执行一次)
pnpm run mysql:dev

# 3.运行(5300端口)
pnpm run dev

性能测试

主要测试各个端之间远程时候的延迟。

TODO

常见问题

应用图标缓存问题

如果应用图标不更新,可以尝试替换一个图标图片再打包,或者你不希望换图标图片的话,可以将现在的图标图片拿去压缩一下,亲测也能解决问题。

rebuild

npm config set registry https://registry.npmmirror.com
./node_modules/.bin/electron-rebuild

rebuild 时 cpu-feature 报错

直接删了 node_modules 的 cpu-feature

pnpm 安装 electron 时卡在 postinstall

  1. 直接 ctrl+c 退出 npm 安装
  2. 进入 node_modules/electron/install.js,将
    downloadArtifact({
      version,
      artifactName: 'electron',
      force: process.env.force_no_cache === 'true',
      cacheRoot: process.env.electron_config_cache,
      checksums:
        (process.env.electron_use_remote_checksums ??
        process.env.npm_config_electron_use_remote_checksums)
          ? undefined
          : require('./checksums.json'),
      platform,
      arch,
    })
      .then(extractFile)
      .catch((err) => {
        console.error(err.stack);
        process.exit(1);
      });
    
    修改为:
    downloadArtifact({
      version,
      artifactName: 'electron',
      force: process.env.force_no_cache === 'true',
      cacheRoot: process.env.electron_config_cache,
      checksums:
        (process.env.electron_use_remote_checksums ??
        process.env.npm_config_electron_use_remote_checksums)
          ? undefined
          : require('./checksums.json'),
      platform,
      arch,
      mirrorOptions: {
        mirror: 'https://npmmirror.com/mirrors/electron/',
        platform,
        arch,
      },
    })
      .then(extractFile)
      .catch((err) => {
        console.error(err.stack);
        process.exit(1);
      });
    
  3. 在 node_modules/electron 目录下执行 node install

兼容性

  • Windows
  • Macos
  • Linux

贡献者

BilldDesk logo