cbb 4d6f71af5b feat: GiteaHubSync v1.0.0 — fnOS 原生应用:Gitea→GitHub 镜像同步
- 每次推送到飞牛 Gitea(3000 端口)的代码 10 秒内自动镜像到 GitHub 7 个私有仓库
  (SMB_Android / DCU_APP / GD32E50X_BOOT / DCU_DesktopController / Motor_v2 /
  DCU_ECAT_Master / GD32_BOOT),真镜像语义(删分支/标签同步删)
- 标准 .fpk 原生应用:不进 Docker,依赖 python312,安装后进入应用中心已安装列表
  和桌面启动台,支持启动/停止/重启/卸载,NAS 重启自动恢复
- 控制面板(:8899):自动同步开关、立即同步、仓库状态、同步日志、打开 Gitea
- GitHub 推送走 SSH 22 端口直连(HTTPS 443 本地网络被断),部署私钥随应用本地分发
- 附 fnos-install.js(命令行自动安装)、build.sh(重新构建 fpk)、genicon.py(图标生成)

注意:GitHub 部署私钥(GiteaHubSync/app/ssh/id_ed25519)与打包产物 .fpk
按 .gitignore 规则不进仓库,仅保留在工作目录本地分发。
2026-10-13 19:12:49 +08:00

GiteaHubSync — Gitea → GitHub 镜像同步(飞牛原生应用)

每次推送到飞牛 Gitea(3000 端口)的代码,10 秒内自动镜像到 GitHub 的 7 个私有仓库 (SMB_Android / DCU_APP / GD32E50X_BOOT / DCU_DesktopController / Motor_v2 / DCU_ECAT_Master / GD32_BOOT)。

和「Agent 签到助手」一样,是标准的飞牛 .fpk 原生应用:不进 Docker,依赖已安装的 python312 运行时,安装后出现在应用中心已安装列表和桌面启动台,可 启动/停止/重启/卸载, NAS 重启自动恢复。控制面板带自动同步开关、立即同步、仓库状态、同步日志和 「打开 Gitea(3000 端口)」按钮。

安装(三选一)

方式一:飞牛网页手动安装(不需要给任何密码)

  1. 把 NAS 上的 fnos-gitea-sync/GiteaHubSync/GiteaHubSync.fpk 下载到电脑 (通过飞牛文件管理/SMB,目录:/vol1/@appshare/fn-deepseek-harness/fnos-gitea-sync/GiteaHubSync/)
  2. 飞牛网页 → 应用中心 → 右上角 手动安装 → 选择该 fpk
  3. 等待安装完成(依赖 python312 已满足),应用自动启动,约 1 分钟内完成 7 个仓库的首次同步

方式二:命令行自动安装(和签到系统相同的方式)

cd /vol1/@appshare/fn-deepseek-harness/fnos-gitea-sync
FNOS_HOST=192.168.31.10 FNOS_USER=<管理员账号> FNOS_PASS=<密码> \
  /var/apps/nodejs_v24/target/bin/node fnos-install.js

方式三:先用着原生版

在安装应用前,面板已以原生方式在 http://192.168.31.10:8899 运行,功能一致。 安装应用时安装脚本会自动停掉原生版,无缝交接。

安装后

  • 桌面图标:「Gitea→GitHub 同步」,点击打开控制面板
  • 或直接访问:http://192.168.31.10:8899
  • 应用中心管理:已安装 → GiteaHubSync → 启动/停止/重启/卸载
  • 数据目录:/vol1/@appdata/GiteaHubSync(镜像仓库、状态、日志;卸载应用不丢 GitHub 上的代码)

重新构建

cd /vol1/@appshare/fn-deepseek-harness/fnos-gitea-sync
./build.sh

说明

  • GitHub 推送走 SSH 22 端口直连(HTTPS 443 在本地网络被断),私钥随应用打包安装在 NAS 本地
  • 真镜像语义:Gitea 删分支/标签,GitHub 同步删
  • 推送失败下一轮自动重试;开关关掉后完全停止同步
S
Description
Gitea→GitHub 镜像同步 · 飞牛 fnOS 原生应用(.fpk):Gitea 推送 10 秒内自动镜像到 GitHub 7 个私有仓库,内置控制面板
Readme
489 KiB
Languages
Python 86.3%
JavaScript 7.4%
Shell 6.3%