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 ..
mkdir -p server/app/static && cp -r web/dist/. server/app/static/
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
yarn dev
yarn clean
触发发布
git tag v1.0.7 && git push origin v1.0.7
注意事项
- 前端构建需要 Node.js 20(setup-node 固定版本),本地可任意 LTS
- pkg 编译目标为 node18,跨架构需要对应平台或使用流水线(GitHub Actions ubuntu-latest 支持交叉编译 arm64)
- 二进制内置前端静态资源,运行时不依赖 web/dist,可与 systemd 脚本安装方式配合使用
- Docker 镜像为 multi-arch(linux/amd64, linux/arm64),通过 buildx 构建
- 发布标签格式必须为
vX.Y.Z(正则 ^v[0-9]+\.[0-9]+\.[0-9]+.*$),流水线会校验
- Docker Hub 镜像需配置
DOCKERHUB_USERNAME / DOCKERHUB_TOKEN secrets
- CNB 同步可选,未配置
CNB_ACCESS_TOKEN 时自动跳过
package.json 中版本通过手动更新,建议发版时同步修改
相关命令