content-harbor
mcp
Gecti
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 11 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Content Harbor — 桌面 + Web 双形态 AI 内容发布中枢:AI 写稿、一键多投、原地更新、三档发布模式、AIGC 合规门禁
README.md
港 Harbor —— 桌面 + Web 双形态 AI 内容发布中枢
一个后台管所有内容平台:知乎 / 掘金 / CSDN / B站 / 博客园 / 头条 / 开源中国 / SegmentFault / 51CTO / MetaWeblog。
AI 写稿、一键多投、原地更新、定时发布、AIGC 合规门禁、人工兜底——全在这里。
形态对照
| Web 形态 | 桌面形态 | |
|---|---|---|
| 前端 | Vue 3 + Vite 浏览器 | Vue 3 + Tauri 系统 WebView |
| 后端 | FastAPI + uvicorn 手动启 | 由 Tauri 内嵌启动,对外不可见 |
| 访问 | http://localhost:8000 | 单 exe 双击即用 |
桌面形态基于 Tauri 2.0,复用 100% 前端代码与后端代码——不写两套业务逻辑。
快速开始
桌面端(推荐)
cd web
pnpm install
pnpm run tauri dev
桌面启动时,Tauri 自动以 sidecar 模式启动 backed/ Python 后端,前端自动连接
本地后端,不需要手动开命令行窗口。
桌面端构建(发布用)
cd web
pnpm run tauri build
产物:web/src-tauri/target/release/content-harbor.exe(单文件双击即用)。
Web 开发
# 终端 1:前端
cd web
pnpm install
pnpm dev # http://localhost:5173
# 终端 2:后端
cd backed
uv sync # 首次安装依赖
uv run uvicorn app.factory:create_app --host 0.0.0.0 --port 8000 --reload
浏览器打开 http://localhost:5173(vite 代理自动转发 API 到 :8000)。
核心能力
| 能力 | 说明 |
|---|---|
| 一键多投 | 选平台 → 发布 → 全平台同步,间隔 8-20s 防风控 |
| 回答问题 | 知乎:发布轨粘贴问题链接即写回答(留空则发专栏文章),回读+发布双验证 |
| 原地更新 | 改一处,已发布文章全平台同步,不产生重复内容 |
| 定时发布 | 一次性 / 每天 / 每周 / cron,到期自动投递 |
| AI 写稿 | 8 个 Provider 路由,故障自动转移 |
| AI 改写/润色 | 改完自动标记待同步,点一下全平台更新 |
| AIGC 合规 | 四道闸门:安全扫描 → AIGC 标识 → 双模型审查 → 人审 in-the-loop |
| 人工兜底 | 验证码/风控/登录失效 → 任务自动暂停,人工处理完点恢复 |
| 版本管理 | 每次改前自动快照,误改一键回滚 |
| 标签治理 | 同义合并 / 别名映射 / 词云 / 智能推荐 |
| 内容质检 | 可读性 + SEO + 近似重复检测,一键出报告 |
| MCP Server | 16 个 Tool,stdio + SSE,对接 Claude Code / Cursor / Windsurf |
| Webhook | 任务完成/失败/等人工 10 种事件,HMAC 签名,自动禁僵尸 |
| SSE 实时流 | 前端 EventSource 长连接,任务进度实时推送 |
配置
编辑 backed/config.json(首次启动自动生成模板)或用环境变量:
| 变量 | 说明 | 默认 |
|---|---|---|
HARBOR_API_TOKEN |
REST 鉴权 Token | 自动生成 UUID |
HARBOR_SECRET_KEY |
签名密钥(生产必设) | 开发随机 |
TRUSTED_NETS |
受信代理网段(XFF 校验) | 127.0.0.0/8,::1/128 |
CORS_ORIGINS |
跨域白名单 | 同源 |
DEMO=1 |
演示模式(不开浏览器不调外部 API) | 0 |
AI_API_KEY |
LLM API 密钥 | 空 |
AI_BASE_URL |
LLM 端点 | deepseek |
FERNET_KEY |
Webhook secret 加密主密钥 | 自动生成 |
登录平台
- 打开 Web UI → 点平台名 → 点「登录」
- 弹出有头浏览器窗口(Linux 服务器自动起 Xvfb)
- 扫码/输密码/过验证码(系统先试半自动,过不了转人工)
- 登录态存本地 profile,之后长期复用,不用每次重登
纯协议平台(博客园 MetaWeblog / 掘金 API)只需在 config.json 填令牌,免浏览器。
发布流程
AI 写稿 / 手工编辑 → 保存 → 选平台 → 发布
│
┌───────────────┤
│ │
draft_only=False draft_only=True
│ │
过 AIGC 门禁 直接进草稿
│ │
AI 源→拒(须 draft) 等人确认
人写源→放行 │
│ ▼
平台 API / 浏览器 管理页点「确认发布」
│
成功 → publications 落库
失败 → Triage 分流(重试/人工/永久失败)
测试
# 一键门禁(四道全绿才能提交)
pwsh -File scripts/check_all.ps1 # Windows
bash scripts/check_all.sh # Linux/macOS
# 单跑
cd backed
uv run pytest -q # 379 用例
uv run ruff check . # 静态
备份
cd backed
uv run python ../scripts/backup_data.py # 到 ~/harbor-backups
uv run python ../scripts/backup_data.py --dry-run # 只看计划
走 sqlite3.Connection.backup() 做在线一致性快照,不用停服务。
拒绝备份到仓库内(防凭据被 commit)。
架构
详见 docs/architecture/ARCHITECTURE.md。
文档
License
MIT — 见 LICENSE。
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi