Files
fnos-gitea-sync/GiteaHubSync/cmd/install_callback
T
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

19 lines
1015 B
Bash

#!/bin/bash
# GiteaHubSync 安装后初始化:建数据目录、默认开启自动同步、落一份 SSH 密钥、清理旧面板
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
APPDEST="$(cd "$SCRIPT_DIR/.." && pwd)"
DATA_DIR="${TRIM_PKGVAR:-}"
if [ -n "$DATA_DIR" ] && [ -d "$DATA_DIR" ]; then
mkdir -p "${DATA_DIR}/repos" "${DATA_DIR}/logs"
[ -f "${DATA_DIR}/state.json" ] || printf '{"enabled":true}\n' > "${DATA_DIR}/state.json"
# 把内置 GitHub 密钥复制到数据目录,属主跟随数据目录(应用用户),保证守护进程可读
if [ -f "${APPDEST}/ssh/id_ed25519" ] && [ ! -f "${DATA_DIR}/id_ed25519" ]; then
cp "${APPDEST}/ssh/id_ed25519" "${DATA_DIR}/id_ed25519" 2>/dev/null
chmod 600 "${DATA_DIR}/id_ed25519" 2>/dev/null
chown --reference="${DATA_DIR}" "${DATA_DIR}/id_ed25519" 2>/dev/null
fi
fi
# 停掉占用 8899 端口的旧面板进程(早期原生版或本应用旧实例),避免端口冲突
pkill -f 'panel\.py$' 2>/dev/null
exit 0