Skip to main content
Glama

港 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% 前端代码与后端代码——不写两套业务逻辑。

Related MCP server: LightCMS

快速开始

桌面端(推荐)

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 加密主密钥

自动生成

登录平台

  1. 打开 Web UI → 点平台名 → 点「登录」

  2. 弹出有头浏览器窗口(Linux 服务器自动起 Xvfb)

  3. 扫码/输密码/过验证码(系统先试半自动,过不了转人工)

  4. 登录态存本地 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。

Related MCP Connectors

Related MCP Servers