73 lines
3.4 KiB
Markdown
73 lines
3.4 KiB
Markdown
# EveryPublish
|
||
|
||
EveryPublish 是一个本机部署的多平台内容发布 Web 控制台:用户打开浏览器登录,在网页内完成账号、素材、任务、审核、挑战和结果管理。
|
||
|
||
> 当前交付边界:Web-only V1。macOS/Windows 客户端、Agent 配对和设备管理暂停,不进入本阶段验收。
|
||
|
||
## 当前架构
|
||
|
||
```text
|
||
浏览器 React + TDesign
|
||
│ REST / Browser WebSocket
|
||
▼
|
||
Go server :8090
|
||
├─ MySQL / Redis
|
||
├─ 本地素材 StorageDriver
|
||
├─ WebExecutor(mock 联调)
|
||
└─ PlatformAdapter(真实平台逐个接入)
|
||
```
|
||
|
||
服务器运行在当前设备时,发布执行所需的浏览器 profile、cookie 和素材均留在该设备;不需要安装客户端或输入配对码。
|
||
|
||
## 本地启动
|
||
|
||
```bash
|
||
make infra-up
|
||
make run
|
||
cd apps/web && npm run dev -- --port 3013
|
||
```
|
||
|
||
本地联调默认使用 `EXECUTOR_MODE=mock`,不会访问真实平台。要联调已接入的 B 站 adapter,启动服务前设置 `EXECUTOR_MODE=web`;二维码扫码或 Cookie 导入成功后,任务才会走真实平台链路。没有人工扫码时,使用 adapter HTTP stub 和 mock 账号完成自动化验证,不把 mock URL 当成真实发布。
|
||
|
||
- Go API/Browser WS:`http://127.0.0.1:8090`
|
||
- Vite Web:`http://127.0.0.1:3013`
|
||
- 生产构建:`cd apps/web && npm run build`,设置 `STATIC_DIR=apps/web/dist` 后由 Go server 托管
|
||
|
||
## 网页功能
|
||
|
||
- 工作台:任务统计、执行器状态、挑战和最近任务。
|
||
- 账号管理:平台账号、扫码/Cookie 登录、健康检查、重新登录。
|
||
- 素材库:上传进度、SHA-256 去重、预览、分组和删除。
|
||
- 发布管理:新建、草稿、审核、排期、任务详情、重试和取消。
|
||
- 挑战/通知/审计:二维码、验证码、实时状态、历史追踪。
|
||
|
||
网页端不需要客户端安装、设备配对或 Agent WSS。客户端代码仅作为历史归档保留。
|
||
|
||
## 文档入口
|
||
|
||
| 文档 | 说明 |
|
||
|---|---|
|
||
| [docs/web-only-v1-plan.md](docs/web-only-v1-plan.md) | 当前 V1 范围、页面、执行器和验收 |
|
||
| [docs/web-only-logic-diagrams.md](docs/web-only-logic-diagrams.md) | Web-only 系统、登录、上传、执行、扫码逻辑图 |
|
||
| [docs/reference-repositories-analysis.md](docs/reference-repositories-analysis.md) | 三个 MIT 参考仓库的拉取记录和借鉴边界 |
|
||
| [docs/system-design.md](docs/system-design.md) | 当前系统设计 |
|
||
| [docs/delivery-plan.md](docs/delivery-plan.md) | 当前交付排期 |
|
||
| [docs/page-wireframes.md](docs/page-wireframes.md) | 网页 ASCII 线框 |
|
||
| [docs/api.md](docs/api.md) | REST API |
|
||
| [docs/progress.md](docs/progress.md) | 当前进度和剩余风险 |
|
||
|
||
## 参考项目
|
||
|
||
- `references/social-auto-upload`(MIT,dreammis,CLI/uploader/QR 参考)
|
||
- `references/social-auto-upload-web-ui`(MIT,DevilJie,Web/SSE/任务队列参考)
|
||
- `references/MediaPublishPlatform`(MIT,funfan0517,批量上传/定时/发布记录参考)
|
||
|
||
参考代码只读保存,新增实现必须保留 MIT 版权说明;当前工程不混入 Vue/Flask/SQLite 三套运行时。
|
||
|
||
## 开发原则
|
||
|
||
- mock executor 只能证明业务状态机,不冒充真实平台成功。
|
||
- 真实扫码无法执行时,状态必须停在“等待扫码”,不能自动标记 active。
|
||
- 所有任务、挑战和素材错误必须能在页面和日志中定位。
|
||
- 不做刷量、绕过平台风控、矩阵养号、私信轰炸等功能。
|