Skip to content

galaxy-s10/billd-desk

Repository files navigation

Billd-Desk logo

Billd-Desk

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

简介

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

生态

直播生态

名称 仓库 star & fork 线上地址
直播间网页端 billd-live github github https://live.hsslive.cn
直播间移动端 billd-live-flutter github github
直播间移动端 billd-live-react-native github github
直播间移动端 billd-live-kotlin github github
直播间客户端 billd-live-electron github github
直播间后台 billd-live-admin github github https://live-admin.hsslive.cn
直播间后端 billd-live-server github github https://live-api.hsslive.cn

远程桌面生态

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

功能

  • Web端发起远程控制
  • 客户端接收远程控制
  • 客户端发起远程控制
  • 文件传输

本地启动

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

更新 billd 相关依赖:

pnpm i billd-utils@latest billd-scss@latest billd-html-webpack-plugin@latest
  • 运行
npm run dev
  • 打包
npm run build

兼容性

  • Windows
  • macOS

常见问题

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