📦 新增 Gitea管理 Skill(金仓)
Some checks failed
Sync GitHub to CKB NAS Gitea / sync (push) Has been cancelled

- 金仓/Gitea管理: 统一管理 Gitea 创建/推送/API/挂载
- SKILL主索引: 新增 Gitea管理,触发词 Gitea/推送到Gitea/创建仓库
- Gitea推送手册: 引用 Gitea管理 Skill
- 群晖NAS管理: 外网入口增加 Gitea,引用 Gitea管理
- references: 批量注册NAS仓库脚本
- 已用 API 注册 15 个仓库到 Gitea 界面

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-15 23:09:11 +08:00
parent 6bcbcb3d1a
commit 82885b92f3
10 changed files with 486 additions and 35 deletions

View File

@@ -0,0 +1,39 @@
# 将 fnvtk 的 GitHub 仓库同步到 CKB NAS Giteaopen.quwanzhi.com:3000
# 触发定时每6小时、手动、或任意 push 时可选触发
# 仓库需配置 SecretsGITEA_TOKEN必填、GITHUB_TOKEN全量同步必填
name: Sync GitHub to CKB NAS Gitea
on:
schedule:
- cron: "0 */6 * * *"
workflow_dispatch: {}
push:
branches: [ main, master ]
paths-ignore:
- "**.md"
- ".github/workflows/sync_github_to_gitea.yml"
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
# 全量同步 fnvtk 下所有仓库时,请在仓库 Secrets 中配置 GH_PATGitHub PATrepo 权限)
- name: Sync GitHub → Gitea
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT || secrets.GITHUB_TOKEN }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_BASE_URL: "http://open.quwanzhi.com:3000"
GITHUB_USER: "fnvtk"
GITEA_USER: "fnvtk"
SYNC_WORK_DIR: "${{ runner.temp }}/github_gitea_sync"
run: |
sudo apt-get update -qq && sudo apt-get install -y -qq jq
chmod +x "01_卡资/_团队成员/金仓/群晖NAS管理/scripts/sync_github_to_gitea.sh" 2>/dev/null || true
if [ -f "01_卡资/_团队成员/金仓/群晖NAS管理/scripts/sync_github_to_gitea.sh" ]; then
bash "01_卡资/_团队成员/金仓/群晖NAS管理/scripts/sync_github_to_gitea.sh"
else
echo "未找到同步脚本,跳过(请确认仓库结构)。"
fi

View File

@@ -0,0 +1,106 @@
---
name: Gitea管理
description: CKB NAS 自建 Gitea 的仓库创建、推送、API、挂载管理。触发词Gitea、推送到Gitea、创建仓库、Git推送、CKB Git、界面不显示。统一用 HTTPS+API 创建,确保仓库在 Gitea 界面可见。
triggers: Gitea、Gitea管理、推送到Gitea、创建Gitea仓库、Git推送CKB、CKB_NAS_Git、仓库界面不显示
owner: 金仓
version: "1.0"
updated: "2026-02-15"
---
# Gitea 管理
CKB NAS 自建 Gitea 的**创建、推送、API、挂载**统一管理。Git 相关内容、API、凭证均通过本 Skill 执行。
---
## 一、强制规则(每次必守)
1. **新建仓库**:必须用 **Gitea API 或 Web** 创建,**禁止** SSH 手动 `mkdir+git init --bare`
2. **推送方式**:统一用 **HTTPS**(账号密码),不用 SSH
3. **HTTPS 访问**http://open.quwanzhi.com:3000/fnvtk/{仓库名} 可直接在浏览器打开
> 违反上述规则会导致仓库不显示在 Gitea 界面。
---
## 二、凭证与 API来自 00_账号与API索引
| 项 | 值 |
|----|-----|
| 地址 | http://open.quwanzhi.com:3000 |
| 账号 | fnvtk |
| 密码 | Zhiqun1984 |
| HTTPS 推送 URL | `http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/{仓库名}.git` |
| 存储路径NAS | `/volume1/git/github/fnvtk/{仓库名}.git` |
---
## 三、创建仓库API
```bash
curl -u "fnvtk:Zhiqun1984" -X POST "http://open.quwanzhi.com:3000/api/v1/user/repos" \
-H "Content-Type: application/json" \
-d '{"name":"仓库名","description":"描述","private":false}'
```
---
## 四、推送HTTPS
```bash
git remote add gitea "http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/仓库名.git"
git push -u gitea main
```
---
## 五、已纳入管理的仓库(界面可见)
| 仓库 | Gitea 地址 |
|------|------------|
| karuo-ai | http://open.quwanzhi.com:3000/fnvtk/karuo-ai |
| suanli-juzhen | http://open.quwanzhi.com:3000/fnvtk/suanli-juzhen |
| yinzhanggu-finance | http://open.quwanzhi.com:3000/fnvtk/yinzhanggu-finance |
| skills | http://open.quwanzhi.com:3000/fnvtk/skills |
| cunkebao, cunkebao_v3, cunkebao_v4 | http://open.quwanzhi.com:3000/fnvtk/ |
| kr, kr-phone, karuo-deploy | 同上 |
| wanzhi, zhiji, godeye, my, mybooks | 同上 |
---
## 六、修复「NAS 有但界面不显示」的仓库
NAS 文件系统上可能有通过 SSH 手动创建的 `.git` 目录Gitea 数据库无记录,故界面不显示。
**处理步骤**:用 API 创建同名仓库 → 若本地有内容则 `git push` 补齐。
```bash
# 1. API 创建(使界面显示)
curl -u "fnvtk:Zhiqun1984" -X POST "http://open.quwanzhi.com:3000/api/v1/user/repos" \
-H "Content-Type: application/json" \
-d '{"name":"仓库名","description":"","private":false}'
# 2. 本地添加 remote 并推送
cd /path/to/local/repo
git remote add gitea "http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/仓库名.git"
git push -u gitea main
```
---
## 七、关联文档
| 文档 | 路径 | 说明 |
|------|------|------|
| Gitea 推送手册 | `_共享模块/references/Gitea推送_卡若AI调用手册.md` | 卡若AI 调用流程 |
| 账号与 API | `_共享模块/工作台/00_账号与API索引.md` § Gitea | 凭证 |
| CKB NAS Gitea 访问 | `群晖NAS管理/references/CKB_NAS_Gitea_类GitHub访问.md` | 部署与访问 |
---
## 八、卡若AI 调用流程
1. 读本 SKILL + `Gitea推送_卡若AI调用手册.md`
2. 新建仓库 → 用 API 创建
3. 推送 → `git push gitea main`remote 用 HTTPS URL
4. 检查界面 → http://open.quwanzhi.com:3000/fnvtk/

View File

@@ -0,0 +1,35 @@
#!/bin/bash
# 批量将 NAS 上有但 Gitea 界面不显示的仓库,通过 API 注册到 Gitea
# 用法:先获取 Gitea 已有列表,再对缺失的用 API 创建
# 注意API 创建可能产生空仓库,若本地有内容需手动 push
GITEA="http://open.quwanzhi.com:3000"
AUTH="fnvtk:Zhiqun1984"
# 从 API 获取已存在的仓库
EXISTING=$(curl -s -u "$AUTH" "$GITEA/api/v1/user/repos" | python3 -c "
import json,sys
d=json.load(sys.stdin)
for r in d: print(r['name'])
" 2>/dev/null)
# NAS 上的仓库列表(需 SSH 获取,此处写死常用项)
NAS_REPOS="cunkebao cunkebao_v3 cunkebao_v4 kr kr-phone karuo-deploy wanzhi zhiji godeye my mybooks"
for repo in $NAS_REPOS; do
if echo "$EXISTING" | grep -q "^${repo}$"; then
echo "跳过(已存在): $repo"
else
echo "创建: $repo"
curl -s -u "$AUTH" -X POST "$GITEA/api/v1/user/repos" \
-H "Content-Type: application/json" \
-d "{\"name\":\"$repo\",\"description\":\"\",\"private\":false}" | python3 -c "
import json,sys
try:
d=json.load(sys.stdin)
print(' OK ->', d.get('html_url',''))
except: print(' 失败')
"
sleep 0.5
fi
done

View File

@@ -29,10 +29,11 @@ description: 群晖NAS矩阵运维与宝塔中控管理。触发词NAS管理
| 服务 | 地址 |
|------|------|
| **GiteaCKB Git** | http://open.quwanzhi.com:3000 |
| **QuickConnect** | https://udbfnvtk.quickconnect.cn |
| **QuickConnect ID** | `udbfnvtk` |
> QuickConnect无需端口映射Synology云服务自动穿透
> Gitea 创建/推送/API 统一由 **Gitea管理 Skill** 负责,见 `金仓/Gitea管理/SKILL.md`。QuickConnect 无需端口映射。
---

View File

@@ -0,0 +1,99 @@
# GitHub 全仓同步到 CKB NAS Gitea 方案与双向说明
> **目标**GitHub 与存客宝 NAS Gitea **直接接通**——GitHub 有更新即拉取并推送到 NAS Gitea**无需指定** Gitea固定为存客宝
> **维护**:金仓
---
## 一、直接接通(推荐)
- **Gitea 固定为存客宝 NAS**`http://open.quwanzhi.com:3000`,用户 `fnvtk`,不在脚本里指定或改配置。
- **流程**GitHub 有新提交 → 定时在 NAS 上拉取 → 推送到存客宝 NAS Gitea。
- **一键部署**(本机执行一次):从账号索引自动读 Token把同步脚本和定时任务部署到 NAS之后两边自动同步。**所有 fnvtk 的 GitHub 仓库都会同步到 Gitea显示在 open.quwanzhi.com:3000 界面,目录结构与 GitHub 一致。**
```bash
# 在 卡若AI 根目录执行(需本机能 SSH 到存客宝 NAS 192.168.1.201
bash "01_卡资/_团队成员/金仓/群晖NAS管理/scripts/deploy_github_to_gitea_on_nas.sh"
```
部署后:每 **30 分钟** NAS 自动执行一次「拉取 GitHub → 推送到存客宝 Gitea」界面与 GitHub 结构保持同步;无需再配或再问。
---
## 二、架构与流向
| 方向 | 说明 | 实现方式 |
|:-----|:-----|:---------|
| **GitHub → Gitea** | 主向同步,保持 Gitea 与 GitHub 一致 | NAS 上 `sync_github_to_gitea.sh` + 定时cron |
| **Gitea → GitHub** | 可选,仅在「以 Gitea 为主」的少数仓库使用 | Gitea Webhook 或本地 push 后手动/脚本推送到 GitHub |
**建议**:默认以 **GitHub 为源真相**Gitea 为镜像;双向仅对个别在 NAS 上也会改动的仓库配置。
---
## 三、前置条件
- **CKB NAS 上 Gitea 已部署**:见 `references/CKB_NAS_Gitea_类GitHub访问.md`,地址固定 `http://open.quwanzhi.com:3000`
- **Token**:使用一键部署时,从 `_共享模块/工作台/00_账号与API索引.md` 自动读取 GitHub Token 与 Gitea 密码,无需单独配置。
---
## 四、同步脚本用法NAS 上)
脚本在 NAS 上位于 `/volume1/docker/gitea/sync_github_to_gitea.sh`Token 从同目录 `sync_tokens.env` 读取(部署时已写入)。
### 4.1 全量同步fnvtk 下所有仓库)
```bash
ssh fnvtk@192.168.1.201 "/bin/bash /volume1/docker/gitea/sync_github_to_gitea.sh"
```
### 4.2 只同步指定仓库
```bash
ssh fnvtk@192.168.1.201 "/bin/bash /volume1/docker/gitea/sync_github_to_gitea.sh --repo karuo-ai"
```
### 4.3 环境变量说明(可选覆盖)
| 变量 | 说明 |
|:-----|:-----|
| sync_tokens.env | 部署时生成,含 GITHUB_TOKEN、GITEA_TOKEN可为 Gitea 登录密码) |
| Gitea | 固定存客宝 NAS不可覆盖 |
| SYNC_WORK_DIR | 临时目录,默认 `/tmp/github_gitea_sync` |
---
## 五、自动触发推荐NAS 定时)
**直接接通**:一键部署已在 NAS 上添加 cron**30 分钟** 执行一次「拉取 GitHub → 推送到存客宝 Gitea」所有项目显示在 Gitea 界面,文件结构与 GitHub 一致。
- 定时:`*/30 * * * *` 执行 `/volume1/docker/gitea/sync_github_to_gitea.sh`
- 日志:`/volume1/docker/gitea/sync.log`
- 查看:`ssh fnvtk@192.168.1.201 tail -f /volume1/docker/gitea/sync.log`
- **组织**:仓库均在用户 `fnvtk` 下;若需按组织分类,可在 Gitea「探索」→「创建组织」后在仓库设置中转移至对应组织。
---
## 六、双向同步说明
- **主向****GitHub → Gitea** 已由上述脚本 + 定时/Actions 覆盖,保证 GitHub 一有更新就推到 Gitea。
- **反向****Gitea → GitHub** 仅在部分仓库需要时再开:
- **方式一**:在 Gitea 仓库设置 → Web 钩子 → 添加 “Gitea” 或 “HTTP” 钩子,指向自建服务:该服务在收到 push 后执行 `git push` 到对应 GitHub 仓库。需自行处理冲突与权限。
- **方式二**:在 NAS 或本机对「在 Gitea 上也会改」的仓库,配置双 remoteorigin=Gitea、github=GitHub提交后先 push Gitea 再 `git push github main`,或写小脚本在 push Gitea 后自动 push GitHub。
建议:大部分仓库仅做 **GitHub → Gitea** 单向镜像;需要双向的仓库单独配置并约定「以谁为主、冲突如何解决」。
---
## 七、相关文档与脚本
| 文档/脚本 | 说明 |
|:----------|:-----|
| `references/CKB_NAS_Gitea_类GitHub访问.md` | Gitea 部署与访问 |
| `scripts/sync_github_to_gitea.sh` | 全仓/单仓同步(固定推送到存客宝 NAS Gitea |
| `scripts/deploy_github_to_gitea_on_nas.sh` | 一键部署到 NAS从账号索引读 Token接通 GitHub ↔ Gitea |
---
*版本v1.0 | 2026-02*

View File

@@ -0,0 +1,48 @@
#!/usr/bin/env bash
# 一键部署GitHub ↔ 存客宝 NAS Gitea 直接接通。从账号索引读 Token把同步脚本和定时任务部署到 NAS。
# 在 卡若AI 根目录执行bash "01_卡资/_团队成员/金仓/群晖NAS管理/scripts/deploy_github_to_gitea_on_nas.sh"
# 或传入账号索引路径bash deploy_github_to_gitea_on_nas.sh /path/to/00_账号与API索引.md
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 卡若AI 根目录(脚本在 01_卡资/.../scripts/ 下)
ROOT="${ROOT:-$(cd "$SCRIPT_DIR/../../../../.." && pwd)}"
INDEX="${1:-$ROOT/_共享模块/工作台/00_账号与API索引.md}"
NAS_USER="${NAS_USER:-fnvtk}"
NAS_HOST="${NAS_HOST:-192.168.1.201}"
NAS_DIR="/volume1/docker/gitea"
SSH_OPTS="-o ConnectTimeout=10 -o KexAlgorithms=+diffie-hellman-group1-sha1 -o Ciphers=+aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc -o StrictHostKeyChecking=no"
NAS="${NAS_USER}@${NAS_HOST}"
echo "→ 从账号索引读取 Token: $INDEX"
[ ! -f "$INDEX" ] && { echo "错误: 未找到 $INDEX"; exit 1; }
GITHUB_TOKEN=$(grep -o 'ghp_[A-Za-z0-9]*' "$INDEX" | head -1)
GITEA_TOKEN=$(sed -n '/### GiteaCKB NAS/,/^###/p' "$INDEX" | grep "密码" | sed -n 's/.*`\([^`]*\)`.*/\1/p' | head -1)
[ -z "$GITHUB_TOKEN" ] && { echo "错误: 未在索引中找到 GitHub Token (ghp_...)"; exit 1; }
[ -z "$GITEA_TOKEN" ] && GITEA_TOKEN="Zhiqun1984"
echo " 已读取 GITHUB_TOKEN / GITEA_TOKEN"
echo "→ 在 NAS 上创建 $NAS_DIR 并写入 sync_tokens.env"
TMP_ENV=$(mktemp)
trap "rm -f $TMP_ENV" EXIT
echo "GITHUB_TOKEN=$GITHUB_TOKEN" > "$TMP_ENV"
echo "GITEA_TOKEN=$GITEA_TOKEN" >> "$TMP_ENV"
echo "GITEA_USER=fnvtk" >> "$TMP_ENV"
ssh $SSH_OPTS "$NAS" "mkdir -p $NAS_DIR"
scp $SSH_OPTS "$TMP_ENV" "$NAS:$NAS_DIR/sync_tokens.env"
echo "→ 上传同步脚本 sync_github_to_gitea.sh"
scp $SSH_OPTS "$SCRIPT_DIR/sync_github_to_gitea.sh" "$NAS:$NAS_DIR/sync_github_to_gitea.sh"
ssh $SSH_OPTS "$NAS" "chmod +x $NAS_DIR/sync_github_to_gitea.sh"
echo "→ 添加定时任务(每 30 分钟拉取 GitHub 并推送到存客宝 Gitea保持界面与结构同步"
CRON_LINE="*/30 * * * * /bin/bash $NAS_DIR/sync_github_to_gitea.sh >> $NAS_DIR/sync.log 2>&1"
ssh $SSH_OPTS "$NAS" "(crontab -l 2>/dev/null | grep -v sync_github_to_gitea; echo \"$CRON_LINE\") | crontab -" || true
echo "→ 立即执行一次同步"
ssh $SSH_OPTS "$NAS" "/bin/bash $NAS_DIR/sync_github_to_gitea.sh" || true
echo ""
echo "✅ 已接通GitHub 有更新会自动拉取并推送到存客宝 NAS Gitea$NAS_DIR),无需再指定。"
echo " 日志: ssh $NAS tail -f $NAS_DIR/sync.log"
echo " 手动执行: ssh $NAS $NAS_DIR/sync_github_to_gitea.sh"

View File

@@ -0,0 +1,115 @@
#!/usr/bin/env bash
# GitHub → 存客宝 NAS Gitea 直接接通:从 GitHub 拉取新内容并推送到 NAS Gitea无需指定 Gitea固定为存客宝
# 固定目标:存客宝 NAS Gitea = http://open.quwanzhi.com:3000用户 fnvtk。
# 在 NAS 上全自动:从同目录 sync_tokens.env 读 Token。用法bash sync_github_to_gitea.sh [--repo 仓库名]
# 依赖curl, git。维护金仓
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WORK_DIR="${SYNC_WORK_DIR:-/tmp/github_gitea_sync}"
GITHUB_USER="${GITHUB_USER:-fnvtk}"
# 固定存客宝 NAS Gitea不开放覆盖
GITEA_BASE="http://open.quwanzhi.com:3000"
GITEA_USER="fnvtk"
# 自动加载 Token先读同目录 sync_tokens.env再读环境变量
if [ -f "${SCRIPT_DIR}/sync_tokens.env" ]; then
set -a
# shellcheck source=/dev/null
. "${SCRIPT_DIR}/sync_tokens.env"
set +a
fi
GITHUB_TOKEN="${GITHUB_TOKEN:-}"
GITEA_TOKEN="${GITEA_TOKEN:-}"
usage() {
echo "用法: $0 [--repo REPO_NAME]"
echo " 无参数:同步 GitHub 上 ${GITHUB_USER} 的所有仓库到 Gitea"
echo " --repo REPO_NAME只同步指定仓库"
echo "Token 来源: 同目录 sync_tokens.env或环境变量 GITHUB_TOKEN / GITEA_TOKEN"
exit 1
}
SINGLE_REPO=""
while [ $# -gt 0 ]; do
case "$1" in
--repo) SINGLE_REPO="$2"; shift 2 ;;
-h|--help) usage ;;
*) echo "未知参数: $1"; usage ;;
esac
done
if [ -z "$GITEA_TOKEN" ]; then
echo "错误: 未设置 GITEA_TOKEN。请在 ${SCRIPT_DIR}/sync_tokens.env 或环境变量中配置(可用 Gitea 登录密码)"
exit 1
fi
# 列出要同步的仓库名(不依赖 jq兼容群晖
get_repos() {
if [ -n "$SINGLE_REPO" ]; then
echo "$SINGLE_REPO"
return
fi
if [ -z "$GITHUB_TOKEN" ]; then
echo "错误: 全量同步需要 GITHUB_TOKEN请在 sync_tokens.env 或环境变量中配置"
exit 1
fi
local json
json=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/users/${GITHUB_USER}/repos?per_page=200")
echo "$json" | grep -o '"name"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/'
}
# 在 Gitea 创建仓库若不存在。GITEA_TOKEN 可为登录密码Basic Auth
gitea_create_repo() {
local repo_name="$1"
local exists
exists=$(curl -s -o /dev/null -w "%{http_code}" -u "${GITEA_USER}:${GITEA_TOKEN}" \
"${GITEA_BASE}/api/v1/repos/${GITEA_USER}/${repo_name}" 2>/dev/null) || true
if [ "$exists" = "200" ]; then
return 0
fi
echo " 在 Gitea 创建仓库: ${repo_name}"
curl -s -X POST -u "${GITEA_USER}:${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"name\":\"${repo_name}\",\"private\":false}" \
"${GITEA_BASE}/api/v1/user/repos" >/dev/null || true
}
# 单个仓库:从 GitHub mirror 拉取,推送到 Gitea
sync_one() {
local repo_name="$1"
local gh_url="https://github.com/${GITHUB_USER}/${repo_name}.git"
if [ -n "$GITHUB_TOKEN" ]; then
gh_url="https://${GITHUB_TOKEN}@github.com/${GITHUB_USER}/${repo_name}.git"
fi
# HTTP 推送格式: http://用户:令牌@主机/路径
local base_no_slash="${GITEA_BASE%/}"
local gitea_url="${base_no_slash/https:\/\//https:\/\/${GITEA_USER}:${GITEA_TOKEN}@}"
gitea_url="${gitea_url/http:\/\//http:\/\/${GITEA_USER}:${GITEA_TOKEN}@}"
gitea_url="${gitea_url}/${GITEA_USER}/${repo_name}.git"
echo "同步: ${repo_name}"
gitea_create_repo "$repo_name"
mkdir -p "$WORK_DIR"
cd "$WORK_DIR"
if [ -d "${repo_name}.git" ]; then
cd "${repo_name}.git"
git fetch --all --prune
git fetch --tags --prune
else
git clone --mirror "$gh_url" "${repo_name}.git"
cd "${repo_name}.git"
fi
git push --mirror "$gitea_url" || { echo " 警告: ${repo_name} 推送失败"; return 1; }
echo " 完成: ${repo_name}"
}
mkdir -p "$WORK_DIR"
while read -r repo_name; do
[ -z "$repo_name" ] && continue
sync_one "$repo_name" || true
done < <(get_repos)
echo "全部同步完成。Gitea: ${GITEA_BASE}/${GITEA_USER}"

View File

@@ -1,7 +1,16 @@
# Gitea 推送 — 卡若AI 调用手册
> 凭证与接口记录,下次调用直接读本文件 + 00_账号与API索引 § Gitea
> 路径:`_共享模块/references/Gitea推送_卡若AI调用手册.md`
> 凭证与接口记录,下次调用直接读**Gitea管理 Skill** + 本文件。
> **Skill 路径**`01_卡资/_团队成员/金仓/Gitea管理/SKILL.md`
> **本文件路径**`_共享模块/references/Gitea推送_卡若AI调用手册.md`
---
## ⚠️ 强制规则(必须遵守)
1. **新建仓库**:必须通过 Gitea API 或 Web 创建,**禁止** SSH 手动 `mkdir+git init --bare`,否则不会显示在 Gitea 界面
2. **推送方式**:统一用 **HTTPS**(账号密码),不用 SSH
3. **HTTPS 访问**`http://open.quwanzhi.com:3000/fnvtk/{仓库名}` 可直接打开
---
@@ -12,52 +21,49 @@
| 地址 | http://open.quwanzhi.com:3000 |
| 账号 | fnvtk |
| 密码 | Zhiqun1984 |
| SSH 端口 | 22201 |
| HTTPS 克隆/推送 | `http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/{仓库名}.git` |
---
## 二、推送方式
## 二、推送方式HTTPS 优先)
### 2.1 SSH 推送(推荐,无需 token
```bash
# 远程 URL 格式
ssh://fnvtk@open.quwanzhi.com:22201/volume1/git/github/fnvtk/{仓库名}.git
# 推送命令(需 sshpass 或 SSH 密钥)
GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -o KexAlgorithms=+diffie-hellman-group1-sha1 -o Ciphers=+aes256-cbc -p 22201" \
sshpass -p 'Zhiqun1984' git push gitea main
```
### 2.2 HTTP 推送(账号密码嵌入 URL
### 2.1 日常推送(已有仓库
```bash
git remote add gitea "http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/{仓库名}.git"
git push gitea main
```
> ⚠️ Gitea 默认禁用「推送即创建」,新建仓库需先 SSH 到 NAS 手动创建 bare 仓库。
### 2.3 新建仓库SSH 到 NAS
### 2.2 新建仓库(必须用 API才能显示在 Gitea 界面)
```bash
sshpass -p 'Zhiqun1984' ssh -o StrictHostKeyChecking=no -o KexAlgorithms=+diffie-hellman-group1-sha1 -o Ciphers=+aes256-cbc -p 22201 fnvtk@open.quwanzhi.com \
"mkdir -p /volume1/git/github/fnvtk/新仓库名.git && cd /volume1/git/github/fnvtk/新仓库名.git && git init --bare && echo 'ref: refs/heads/main' > HEAD"
# 用 Basic Auth 创建仓库fnvtk:Zhiqun1984
curl -u "fnvtk:Zhiqun1984" -X POST "http://open.quwanzhi.com:3000/api/v1/user/repos" \
-H "Content-Type: application/json" \
-d '{"name":"仓库名","description":"描述","private":false}'
# 然后添加 remote 并推送
git remote add gitea "http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/仓库名.git"
git push -u gitea main
```
> 禁止用 SSH 手动创建 bare 仓库,否则 Gitea 数据库无记录,界面不显示。
---
## 三、已配置仓库
| 仓库 | 路径 | 远程名 |
|------|------|--------|
| 卡若AI | /Users/karuo/Documents/个人/卡若AI | gitea |
| 分布式算力矩阵 | /Users/karuo/Documents/1、金项目/3、自营项目/分布式算力矩阵 | gitea |
| 仓库 | 路径 | Gitea URL | 远程名 |
|------|------|-----------|--------|
| 卡若AI | /Users/karuo/Documents/个人/卡若AI | http://open.quwanzhi.com:3000/fnvtk/karuo-ai | gitea |
| 分布式算力矩阵 | /Users/karuo/Documents/1、金项目/3、自营项目/分布式算力矩阵 | http://open.quwanzhi.com:3000/fnvtk/suanli-juzhen | gitea |
---
## 四、卡若AI 调用流程
1. 读本文件 + `00_账号与API索引` § Gitea
2. 取凭证fnvtk / Zhiqun1984
3. 推送:`sshpass -p 'Zhiqun1984' git push gitea main`(或对应 remote 名)
1. **读 Gitea管理 Skill**`01_卡资/_团队成员/金仓/Gitea管理/SKILL.md`
2. 读本文件 + `00_账号与API索引` § Gitea
3. 取凭证fnvtk / Zhiqun1984
4. **新建仓库**:用 API `curl -u fnvtk:Zhiqun1984` 创建
5. **推送**`git push gitea main`remote 用 HTTPS URL

View File

@@ -59,10 +59,10 @@ updated: "2026-01-31"
|:---|:---|:---|
| **金剑** | 服务器+监控 | 服务器管理、系统监控 |
| **金盾** | 数据+安全+部署 | 数据库管理、存客宝、微信管理、远程环境一键部署 |
| **金仓** | 存储+备份 | 群晖NAS管理、磁盘清理、容灾备份、照片分类 |
| **金仓** | 存储+备份 | 群晖NAS管理、Gitea管理、磁盘清理、容灾备份、照片分类 |
| **金链** | 设备+网络 | iPhone管理、局域网控制、iCloud管理 |
### Skills 明细13个)
### Skills 明细14个)
| Skill | 触发词 | SKILL.md 路径 |
|:---|:---|:---|
@@ -73,6 +73,7 @@ updated: "2026-01-31"
| 微信管理 | 微信分析、RFM、聊天记录 | `01_卡资/_团队成员/金盾/微信管理/SKILL.md` |
| 远程环境一键部署 | 远程部署、装Clash、装Cursor | `01_卡资/_团队成员/金盾/远程环境一键部署/SKILL.md` |
| 群晖NAS管理 | NAS、群晖、Docker | `01_卡资/_团队成员/金仓/群晖NAS管理/SKILL.md` |
| Gitea管理 | Gitea、推送到Gitea、创建仓库、Git推送CKB、界面不显示 | `01_卡资/_团队成员/金仓/Gitea管理/SKILL.md` |
| 磁盘清理 | 清理磁盘、释放空间 | `01_卡资/_团队成员/金仓/磁盘清理/SKILL.md` |
| 容灾备份 | 备份、git stash、灾备 | `01_卡资/_团队成员/金仓/容灾备份/SKILL.md` |
| 照片分类 | 照片整理、相册分类 | `01_卡资/_团队成员/金仓/照片分类/SKILL.md` |
@@ -235,7 +236,7 @@ from _共享模块.local_llm import summarize, classify, generate_questions
| 角色 | 成员数 | Skills数 |
|:---|:---|:---|
| 卡资(金) | 4 | 13 |
| 卡资(金) | 4 | 14 |
| 卡人(水) | 3 | 9 |
| 卡木(木) | 3 | 5 |
| 卡火(火) | 4 | 6 |

View File

@@ -68,9 +68,10 @@
| 地址 | http://open.quwanzhi.com:3000 |
| 账号 | `fnvtk` |
| 密码 | `Zhiqun1984` |
| SSH 推送 | `ssh://fnvtk@open.quwanzhi.com:22201/volume1/git/github/fnvtk/{repo}.git` |
| HTTP 推送 | `http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/{repo}.git` |
| 说明 | 卡若AI 下次调用直接读本表推送;新建仓库需 SSH 到 NAS 执行 `mkdir -p /volume1/git/github/fnvtk/xxx.git && cd xxx.git && git init --bare` |
| **HTTPS 推送** | `http://fnvtk:Zhiqun1984@open.quwanzhi.com:3000/fnvtk/{repo}.git` |
| HTTPS 访问 | http://open.quwanzhi.com:3000/fnvtk/{repo} |
| 新建仓库 API | `curl -u fnvtk:Zhiqun1984 -X POST http://open.quwanzhi.com:3000/api/v1/user/repos -H "Content-Type: application/json" -d '{"name":"xxx","description":"","private":false}'` |
| 说明 | 必须用 API 或 Web 创建仓库才能显示在界面;禁止 SSH mkdir+init推送统一用 HTTPS |
---