docs: 合集加入分类方案与Gitea镜像同步方案,收录astryx
This commit is contained in:
1 parent
5ae4635a91
commit
29f4d88d3f
4 files changed
+156
-25
No files matched your search
@@ -1,48 +1,42 @@
|
|||||||
# 关注的代码库合集(Codebase Collection)
|
# 关注的代码库合集(Codebase Collection)
|
||||||
|
|
||||||
> 用途:聚合我们关注 / 追踪的代码库,通过 **Git 子模块(submodule)** 统一管理。
|
> 用途:聚合我们关注 / 追踪的代码库。外部代码库**镜像同步到 git.vanusys.com**(保证国内/内网可达),合集中通过 Git 子模块统一引用。
|
||||||
> 更新日期:2026-08-16
|
> 更新日期:2026-08-16
|
||||||
|
> 相关文档:[分类方案](分类方案.md) · [镜像同步方案](同步方案.md)
|
||||||
|
|
||||||
## 收录清单
|
## 收录清单
|
||||||
|
|
||||||
> 待补充。格式约定:
|
> 分类见 [分类方案.md](分类方案.md);镜像状态:`待建远程镜像` = git.vanusys.com 上还没有镜像仓库。
|
||||||
|
|
||||||
| 名称 | 子模块路径 | 仓库地址 | 用途 | 关注原因 | 备注 |
|
| 名称 | 分类 | 子模块路径 | 镜像地址(git.vanusys.com) | 上游地址 | 用途 | 关注原因 | 镜像状态 |
|
||||||
|------|-----------|---------|------|---------|------|
|
|------|------|-----------|---------------------------|---------|------|---------|---------|
|
||||||
| (示例)LiveKit | livekit/livekit | https://github.com/livekit/livekit | SFU 视频会议服务 | 自建媒体服务器核心 | 外部仓库,考虑镜像 |
|
| Astryx | frontend | frontend/astryx | VanuSystems/facebook-astryx | https://github.com/facebook/astryx | Meta 开源设计系统(可定制、Agent-ready) | AI 前端 / 设计系统方向,官网可跟踪 | 待建远程镜像 |
|
||||||
|
|
||||||
## 使用说明
|
## 使用说明
|
||||||
|
|
||||||
- **首次克隆**(含全部子模块):
|
- **首次克隆**(含全部子模块,全部走内部镜像,无需外网):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone --recursive <合集仓库地址>
|
git clone --recursive <合集仓库地址>
|
||||||
```
|
```
|
||||||
|
|
||||||
- **拉取全部子模块最新代码**(跟随上游):
|
- **跟随上游最新代码**(更新子模块引用后需提交):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git submodule update --remote
|
git submodule update --remote
|
||||||
```
|
|
||||||
|
|
||||||
- **新增一个代码库**:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git submodule add <仓库地址> <子模块路径>
|
|
||||||
git commit -m "chore: 收录 <名称>"
|
|
||||||
```
|
|
||||||
|
|
||||||
- **更新子模块引用并提交**:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git add .
|
git add .
|
||||||
git commit -m "chore: 同步子模块引用"
|
git commit -m "chore: 同步子模块引用"
|
||||||
```
|
```
|
||||||
|
|
||||||
## 收录规范(建议)
|
- **新增一个代码库**(完整流程见 [分类方案.md](分类方案.md) 收录流程):
|
||||||
|
|
||||||
- **内部仓库**(git.vanusys.com 上):直接以子模块收录。
|
```bash
|
||||||
- **外部开源仓库**(GitHub 等):
|
git submodule add <内部镜像地址> <分类>/<仓库名>
|
||||||
- 优先在 git.vanusys.com 建立镜像后再收录,避免子模块依赖外部网络(国内服务器拉取 GitHub 可能超时);
|
git commit -m "chore: 收录 <名称>"
|
||||||
- 或仅在本表登记地址与用途,不强制挂子模块。
|
```
|
||||||
- 子模块只记录**提交引用**,不会自动跟随上游改动,需定期 `git submodule update --remote` 同步。
|
|
||||||
|
## 收录规范
|
||||||
|
|
||||||
|
- **子模块一律指向内部镜像地址**(git.vanusys.com),不直接指向 GitHub —— 保证合集在宁波/内网环境可完整 clone。
|
||||||
|
- **镜像维护**:运行 `tools/sync-mirrors.ps1` 或服务器定时任务(见 [同步方案.md](同步方案.md)),定期把上游变更推到内部镜像。
|
||||||
|
- 子模块记录的是**提交引用**,不会自动跟随上游,需定期执行 `git submodule update --remote` 并人工确认提交。
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# 代码库镜像同步脚本(GitHub 外部仓库 -> git.vanusys.com 内部镜像)
|
||||||
|
# 用法:
|
||||||
|
# 1. 按下方 $Mirrors 表登记镜像(镜像工作区目录 + 内部镜像地址)
|
||||||
|
# 2. 首次:git clone --mirror <上游> <工作区目录>
|
||||||
|
# 3. 之后:本脚本 fetch 上游并 push --mirror 到内部
|
||||||
|
# 建议配合 Windows 任务计划程序每日/每周运行;也可移植到香港服务器 cron。
|
||||||
|
# 注意:统一使用 openssl TLS 后端,规避 schannel 在本机受限环境的问题。
|
||||||
|
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
# 镜像登记表:Name -> @{ Upstream = 上游地址; Mirror = 内部镜像地址; Workspace = 本地裸仓库路径 }
|
||||||
|
$Mirrors = @{
|
||||||
|
'astryx' = @{
|
||||||
|
Upstream = 'https://github.com/facebook/astryx'
|
||||||
|
Mirror = 'https://git.vanusys.com/VanuSystems/facebook-astryx.git'
|
||||||
|
Workspace = 'C:\Users\VanuSystems-Mu\Documents\AI\服务器运维\mirrors\astryx.git'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$GlobalSsl = @('-c', 'http.sslBackend=openssl')
|
||||||
|
|
||||||
|
foreach ($name in $Mirrors.Keys | Sort-Object) {
|
||||||
|
$m = $Mirrors[$name]
|
||||||
|
Write-Host "=== 同步 $name ==="
|
||||||
|
if (-not (Test-Path $m.Workspace)) {
|
||||||
|
Write-Warning "镜像工作区不存在: $($m.Workspace),跳过(请先 git clone --mirror)"
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
Push-Location $m.Workspace
|
||||||
|
try {
|
||||||
|
Write-Host "[1/2] 从上游 fetch ..."
|
||||||
|
& git @GlobalSsl fetch --prune origin '+refs/*:refs/*'
|
||||||
|
if ($LASTEXITCODE -ne 0) { throw "fetch 失败: $name" }
|
||||||
|
Write-Host "[2/2] push 到内部镜像 ..."
|
||||||
|
& git @GlobalSsl push --mirror $m.Mirror
|
||||||
|
if ($LASTEXITCODE -ne 0) { throw "push 失败: $name" }
|
||||||
|
Write-Host "OK: $name"
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
Pop-Location
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Host "全部镜像同步完成。"
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# 代码库合集分类方案
|
||||||
|
|
||||||
|
> 版本:v1 · 2026-08-16
|
||||||
|
> 用途:为"关注的代码库"合集(codebase-collection)定义统一的分类与命名规范。
|
||||||
|
|
||||||
|
## 分类原则
|
||||||
|
|
||||||
|
1. **按领域分类**,与服务器运维/业务场景对齐(音视频、网络、AI、前端等)。
|
||||||
|
2. **子模块路径用英文 slug**(小写、连字符),避免中文路径在工具链(CI、脚本、URL)中的兼容问题;中文说明只出现在文档里。
|
||||||
|
3. 一个仓库只能归入一个主分类;拿不准时归入 `other/`,后续再调整。
|
||||||
|
4. 每个收录项必须填写:名称、镜像地址(git.vanusys.com)、上游地址、用途、关注原因。
|
||||||
|
|
||||||
|
## 分类目录(一级)
|
||||||
|
|
||||||
|
| 分类 slug | 中文名 | 收录范围 | 示例 |
|
||||||
|
|-----------|--------|---------|------|
|
||||||
|
| `realtime` | 音视频与实时通信 | SFU、WebRTC、会议、直播、远程桌面 | LiveKit、RustDesk |
|
||||||
|
| `network` | 网络与隧道 | 隧道、代理、流量转发、防火墙、NAT | traffic-mix、frp、软路由相关 |
|
||||||
|
| `frontend` | 前端与设计系统 | UI 框架、设计系统、组件库、AI 前端 | **astryx**(Meta 设计系统) |
|
||||||
|
| `ai` | AI 与智能体 | LLM、Agent、机器人、推理、RAG | QQbot、Agent 框架 |
|
||||||
|
| `infra` | 基础设施与中间件 | 数据库、缓存、消息队列、容器、K8s | PostgreSQL、Redis、Docker 相关 |
|
||||||
|
| `ops` | 运维与自动化 | 监控、日志、备份、CI/CD、配置管理 | Prometheus、Ansible |
|
||||||
|
| `internal` | 内部自研 | 我们自己在 git.vanusys.com 上维护的仓库 | ai-ops-docs、自研客户端 |
|
||||||
|
| `other` | 其他/待分类 | 暂未归类的仓库 | — |
|
||||||
|
|
||||||
|
## 命名规范
|
||||||
|
|
||||||
|
- **子模块路径**:`<分类slug>/<仓库名>`,例如 `frontend/astryx`、`realtime/livekit`。
|
||||||
|
- **镜像仓库名**(git.vanusys.com 上):`<上游组织>-<仓库名>`,例如 `facebook-astryx`;统一放 `mirrors` 组织或 `VanuSystems/mirrors/` 分组下(待定)。
|
||||||
|
- **合集清单表**:README 的"收录清单"为唯一权威清单,分类变更同步更新该表。
|
||||||
|
|
||||||
|
## 收录流程
|
||||||
|
|
||||||
|
1. 把仓库加入"收录清单"表格(含分类)。
|
||||||
|
2. 在 git.vanusys.com 创建镜像仓库(或由同步脚本自动建仓)。
|
||||||
|
3. 本机执行镜像同步(见 `同步方案.md`)。
|
||||||
|
4. 在合集中执行 `git submodule add <镜像地址> <分类>/<仓库名>`,提交收录。
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# 镜像同步方案(外部代码库 → git.vanusys.com)
|
||||||
|
|
||||||
|
> 版本:v1 · 2026-08-16 · 状态:**待评审**
|
||||||
|
> 目标:把我们关注的 GitHub 等外部代码库**定期镜像**到 git.vanusys.com,让内部服务器(宁波、局域网等无法直连 GitHub 的环境)也能直接拉取,并在合集中用子模块统一引用。
|
||||||
|
|
||||||
|
## 架构
|
||||||
|
|
||||||
|
```
|
||||||
|
GitHub (facebook/astryx 等上游)
|
||||||
|
│ ① 定期 fetch(香港服务器可直连 / 或本机 openssl 后端)
|
||||||
|
▼
|
||||||
|
镜像工作区 mirrors/<name>.git(本机或香港服务器上的裸仓库)
|
||||||
|
│ ② push --mirror
|
||||||
|
▼
|
||||||
|
git.vanusys.com/VanuSystems/<mirror 命名>(内部镜像仓库)
|
||||||
|
│ ③ submodule 引用
|
||||||
|
▼
|
||||||
|
codebase-collection(合集,内部全链路可达)
|
||||||
|
```
|
||||||
|
|
||||||
|
- **镜像层**:每个关注仓库一个镜像,与上游保持全量历史同步(`git push --mirror` 同步所有分支/标签)。
|
||||||
|
- **合集层**:`codebase-collection` 的 submodule **只指向内部镜像地址**,不直接指向 GitHub,保证国内/内网 clone 合集时无需外网。
|
||||||
|
- 子模块默认记录某个提交引用;需要跟随上游时在合集中执行 `git submodule update --remote` 并提交(手动,避免自动漂移)。
|
||||||
|
|
||||||
|
## 同步脚本(草案)
|
||||||
|
|
||||||
|
### 方式 A:本机 Windows 计划任务(推荐先用这个)
|
||||||
|
|
||||||
|
`tools/sync-mirrors.ps1`(见下),配合 Windows 任务计划程序每日/每周运行。
|
||||||
|
注意:本机 schannel 后端在受限环境有 TLS 问题,脚本统一显式指定 `-c http.sslBackend=openssl`。
|
||||||
|
|
||||||
|
### 方式 B:香港服务器 cron(154.21.200.211,可直连 GitHub)
|
||||||
|
|
||||||
|
待服务器上配置 git 凭据(专用镜像账号或 token)后,用 bash 版脚本 + cron(如每天 03:00):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 示例:/root/mirror-sync/astryx.sh
|
||||||
|
cd /root/mirror-sync/astryx.git
|
||||||
|
git fetch --prune origin '+refs/*:refs/*'
|
||||||
|
git push --mirror https://<token>@git.vanusys.com/VanuSystems/facebook-astryx.git
|
||||||
|
```
|
||||||
|
|
||||||
|
## 待确认事项
|
||||||
|
|
||||||
|
1. **git.vanusys.com 服务类型**(Gitea / GitLab / 其他):
|
||||||
|
- 若支持**平台原生镜像**(Gitea 迁移/镜像、GitLab mirroring),可直接在网页上建镜像仓库并启用"定时同步",无需自建脚本 —— 这是最省事的路径,需确认。
|
||||||
|
- 若不支持,采用上述脚本方案。
|
||||||
|
2. **镜像仓库归属与命名**:`VanuSystems/facebook-astryx` 还是单独 `mirrors/` 组织?命名是否用 `facebook-astryx` 格式?
|
||||||
|
3. **同步频率**:每日 / 每周 / 手动?
|
||||||
|
4. **执行位置**:本机计划任务(先跑通)还是香港服务器 cron(长期更稳)?
|
||||||
|
5. **首次建仓**:需要有人登录 git.vanusys.com 网页创建空镜像仓库(我的执行环境无法完成 HTTPS 认证)。
|
||||||
|
|
||||||
|
## 收录清单登记表
|
||||||
|
|
||||||
|
| 上游仓库 | 镜像地址(计划) | 分类 | 状态 |
|
||||||
|
|---------|----------------|------|------|
|
||||||
|
| https://github.com/facebook/astryx | git.vanusys.com/VanuSystems/facebook-astryx | frontend | 待建远程镜像 |
|
||||||
Reference in new issue
Block a user