随机
Enter 搜索 ↑↓ 切换 Esc 清空

fan-webssh-build

命令

fan-webssh 编译构建

编译产物

产物 架构 说明
fan-webssh_linux_amd64 linux amd64 内置前端静态资源的单文件二进制
fan-webssh_linux_arm64 linux arm64 内置前端静态资源的单文件二进制
mobufan/fan-webssh amd64 + arm64 Docker 镜像(含 guacd RDP 依赖说明)

补充说明

fan-webssh 项目本身使用 yarn workspace 组织(前端 web/ Vue + Vite,后端 server/ Node.js Koa)。发布版本通过 GitHub Actions 流水线编译:GitHub push v* 标签或手动触发(workflow_dispatch)即可全自动构建多架构二进制与 Docker 镜像。

发布流水线(release.yml)四个阶段

阶段 说明
build-binaries 安装前端依赖 cd web && yarn install && yarn build → 拷贝 Web 产物到 server/app/static → 用 @yao-pkg/pkg 编译 server/standalone.js 为 linux amd64 / arm64 单文件二进制
publish-release 将二进制作为 GitHub Release 附件上传,同时创建 Docker Hub / GHCR 说明文本
build-docker QEMU + Buildx 多架构构建,推送 Docker Hub(vX.Y.Z + latest)与 GHCR(vX.Y.Z + 无v版本号)镜像
sync-cnb 配置了 CNB_ACCESS_TOKEN 时同步代码到 CNB 镜像仓库

手动编译二进制

# 安装依赖并构建前端
cd web && yarn install --non-interactive && yarn build && cd ..

# 将前端产物内置到 pkg 可查找路径(standalone.js 从 server/app/static 加载)
mkdir -p server/app/static && cp -r web/dist/. server/app/static/

# 用 yao-pkg 编译(node18 target)
npm i -g @yao-pkg/pkg
pkg -t node18-linux-x64 server/standalone.js -o fan-webssh_linux_amd64
pkg -t node18-linux-arm64 server/standalone.js -o fan-webssh_linux_arm64
ls -lh fan-webssh_linux_amd64 fan-webssh_linux_arm64

本地开发

# 安装依赖
yarn install

# 启动开发模式(前后端 concurrently 同时运行)
yarn dev

# 清理依赖
yarn clean

触发发布

# 方式一:打 v 标签推送到 GitHub(自动触发流水线)
git tag v1.0.7 && git push origin v1.0.7

# 方式二:GitHub Actions 手动触发(输入 tag 参数,如 v1.0.4)
# 仓库 → Actions → Release Pipeline → Run workflow

注意事项

相关命令