- 每次推送到飞牛 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 规则不进仓库,仅保留在工作目录本地分发。
19 lines
1015 B
Bash
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
|