chore: 清理 Docker 相关文件并优化前端布局
- 删除 Docker 相关文件 (docker-compose, Dockerfile, nginx.conf, init.sql 等) - 优化 platforms.html 卡片布局和响应式样式 - 优化 users.html 格式和移动端卡片设计 - 优化 admin.html 页面结构和表格布局 - 修复各页面 min-height 和溢出问题 - 更新导航组件样式
This commit is contained in:
@@ -1,156 +1,134 @@
|
||||
# 宇之然内容创作平台
|
||||
|
||||
一个轻量级的管理平台,用于监控和操作内容生产流水线。
|
||||
> 覆盖"选题→创作→审核→发布→数据追踪"全链路的内容运营工具
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 环境准备
|
||||
|
||||
```bash
|
||||
cd /root/openclaw-workspace/projects/yu-zhi-ran/platform
|
||||
|
||||
# 创建虚拟环境(推荐)
|
||||
backend/venv/bin/python -m venv backend/venv # 若不存在
|
||||
source backend/venv/bin/activate
|
||||
|
||||
# 安装依赖
|
||||
pip install -r backend/requirements.txt
|
||||
```
|
||||
|
||||
### 2. 启动服务
|
||||
|
||||
```bash
|
||||
# 方式一:使用启动脚本(推荐)
|
||||
./run.sh 8000
|
||||
|
||||
# 方式二:手动启动
|
||||
cd backend
|
||||
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
||||
```
|
||||
|
||||
### 3. 访问
|
||||
|
||||
- **界面**: http://localhost:8000/
|
||||
- **API文档**: http://localhost:8000/docs
|
||||
- **系统状态**: http://localhost:8000/api/system/status
|
||||
|
||||
## 核心功能
|
||||
|
||||
| 功能 | 描述 |
|
||||
|------|------|
|
||||
| 📊 仪表盘 | 选题总数、待发布数、今日生成 |
|
||||
| 🔄 流水线控制 | 触发创作、合规优化、状态监控 |
|
||||
| 📝 选题管理 | 列表、筛选、预览、发布 |
|
||||
|
||||
| 📋 日志查看 | creator/optimizer/collector 日志 |
|
||||
|
||||
## 与自动化流水线的集成
|
||||
|
||||
本平台位于 `platform/`,不修改原有 `automation/scripts/` 脚本。
|
||||
|
||||
**集成方式**:
|
||||
- `backend/app/core/generator.py` 调用 `scripts/creator.py`
|
||||
- `backend/app/core/optimizer.py` 调用 `scripts/compliance_optimizer.py`
|
||||
- `backend/app/api/publisher.py` 调用 `scripts/publisher.py`
|
||||
- 数据存储:`automation/data/` 为唯一数据源
|
||||
- 同步:`sync.py` 将 JSON 选题同步到 SQLite 数据库供前端查询
|
||||
|
||||
**目录结构关系**:
|
||||
|
||||
```
|
||||
yu-zhi-ran/
|
||||
├── platform/ # 管理平台(本目录)
|
||||
│ ├── backend/app/
|
||||
│ │ ├── core/generator.py → 调用 ../scripts/creator.py
|
||||
│ │ ├── core/optimizer.py → 调用 ../scripts/compliance_optimizer.py
|
||||
│ │ └── api/publisher.py → 调用 ../scripts/publisher.py
|
||||
│ └── frontend/index.html # UI
|
||||
├── automation/
|
||||
│ ├── data/ ← 数据源(JSON)
|
||||
│ │ ├── sustainability_topics.json
|
||||
│ │ ├── drafts/
|
||||
│ │ └── releases/
|
||||
│ └── logs/ ← 日志(creator, optimizer, publisher)
|
||||
└── scripts/
|
||||
├── creator.py ← 被调用
|
||||
├── compliance_optimizer.py
|
||||
└── publisher.py
|
||||
```
|
||||
|
||||
## 配置
|
||||
|
||||
环境变量(可选):
|
||||
|
||||
| 变量 | 说明 | 默认 |
|
||||
|------|------|------|
|
||||
| `PROJECT_ROOT` | 项目根目录 | 自动推导 |
|
||||
| `DATA_DIR` | 平台数据库目录 | `platform/data` |
|
||||
| `LOG_LEVEL` | 日志级别 | `INFO` |
|
||||
| `ALLOWED_ORIGINS` | CORS允许的源 | `*` |
|
||||
|
||||
示例:
|
||||
```bash
|
||||
export PROJECT_ROOT=/path/to/yu-zhi-ran
|
||||
./run.sh 8000
|
||||
```
|
||||
|
||||
## 开发调试
|
||||
|
||||
```bash
|
||||
# 检查依赖和环境
|
||||
python check.py
|
||||
|
||||
# 查看 API 日志
|
||||
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
|
||||
|
||||
# 数据库初始化(首次)
|
||||
cd backend
|
||||
python -c "from app.database import init_db; init_db()"
|
||||
|
||||
# 手动同步数据(测试)
|
||||
curl -X POST http://localhost:8000/api/system/sync/run
|
||||
```
|
||||
|
||||
## 故障排查
|
||||
|
||||
| 症状 | 检查点 |
|
||||
|------|--------|
|
||||
| 前端显示无选题 | 1. `automation/data/sustainability_topics.json` 是否存在且包含 `status: \"待处理\"` 的数据<br>2. 点击"全量刷新"按钮 |
|
||||
| 创作任务失败 | 1. 查看 `automation/logs/creator_*.log`<br>2. 确认 `scripts/creator.py` 可执行 |
|
||||
| 发布包为空 | 1. 确认 `automation/data/releases/YYYY-MM-DD/` 下有对应平台的 HTML<br>2. 点击发布Tab → "重新生成" |
|
||||
| 端口8000占用 | 停止其他 uvicorn 进程或 `./run.sh 8080` 改用其他端口 |
|
||||
|
||||
## 部署清单
|
||||
|
||||
- [x] FastAPI 后端(无 Docker,直接运行)
|
||||
- [x] Vue 3 前端(CDN依赖,无需构建)
|
||||
- [x] SQLite 数据库(`platform/data/yzr.db`)
|
||||
- [x] 自动化流水线集成(subprocess 调用)
|
||||
- [x] 数据同步模块(JSON ↔ SQLite)
|
||||
- [x] 流水线状态监控面板
|
||||
- [x] 日志查看功能
|
||||
- [ ] 反向代理(Nginx)配置(如需外网访问)
|
||||
- [ ] HTTPS(Let's Encrypt)
|
||||
- [ ] 系统服务(systemd)
|
||||
|
||||
如需外网访问,建议配置 Nginx 反向代理和 HTTPS。
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **后端**: FastAPI 0.115.0 + Uvicorn
|
||||
- **前端**: Vue 3 + Element Plus
|
||||
- **数据库**: SQLite 3
|
||||
- **脚本**: Python 3 (subprocess)
|
||||
- **样式**: Tailwind CSS (CDN)
|
||||
|
||||
## 文档
|
||||
|
||||
- 详细架构设计: `PORTFOLIO.md`
|
||||
- 使用说明: 本文档
|
||||
- API 文档: http://localhost:8000/docs (运行后)
|
||||
**最后更新: 2026-05-09**
|
||||
|
||||
---
|
||||
|
||||
**版本**: 0.1.0
|
||||
**更新**: 2026-04-19
|
||||
**维护**: 宇之然 AI 助手
|
||||
## 当前状态
|
||||
|
||||
| 模块 | 状态 |
|
||||
|------|------|
|
||||
| 后端 API | ✅ 完成 |
|
||||
| 前端页面 | ✅ 完成 |
|
||||
| PostgreSQL | ✅ 运行中 |
|
||||
| 服务 | ✅ 运行中 (端口 8001) |
|
||||
|
||||
---
|
||||
|
||||
## 技术栈
|
||||
|
||||
| 层次 | 技术 |
|
||||
|------|------|
|
||||
| 后端 | FastAPI 0.104+ |
|
||||
| ORM | SQLAlchemy 2.0+ |
|
||||
| 数据库 | PostgreSQL 15 |
|
||||
| 前端 | Vue 3 (CDN) + Element Plus |
|
||||
| 认证 | JWT (python-jose) + bcrypt |
|
||||
|
||||
---
|
||||
|
||||
## 数据库配置
|
||||
|
||||
```
|
||||
USE_POSTGRES=true
|
||||
PG_HOST=127.0.0.1
|
||||
PG_PORT=5432
|
||||
PG_DATABASE=yzr_nr
|
||||
PG_USER=yzr_nr
|
||||
PG_PASSWORD=aTX3WKKnPfRnM5PC
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 启动方式
|
||||
|
||||
```bash
|
||||
cd /root/openclaw-workspace/projects/yu-zhi-ran
|
||||
./start-platform.sh 8001
|
||||
```
|
||||
|
||||
默认管理员: **admin** / **admin123**
|
||||
|
||||
---
|
||||
|
||||
## 页面入口
|
||||
|
||||
| 页面 | 地址 |
|
||||
|------|------|
|
||||
| 仪表盘 | http://localhost:8001/ |
|
||||
| 选题管理 | http://localhost:8001/topics.html |
|
||||
| 内容日历 | http://localhost:8001/calendar.html |
|
||||
| 数据分析 | http://localhost:8001/metrics.html |
|
||||
| 素材库 | http://localhost:8001/assets.html |
|
||||
| 创作任务 | http://localhost:8001/tasks.html |
|
||||
| 平台配置 | http://localhost:8001/platforms.html |
|
||||
| 系统管理 | http://localhost:8001/admin.html |
|
||||
| API 文档 | http://localhost:8001/docs |
|
||||
|
||||
---
|
||||
|
||||
## API 模块
|
||||
|
||||
| 模块 | 文件 | 功能 |
|
||||
|------|------|------|
|
||||
| 认证 | auth.py | 登录/注册/JWT |
|
||||
| 选题 | topics.py | CRUD、评分、批量操作 |
|
||||
| 选题配置 | topic_config.py | 领域/评分字段/状态配置 |
|
||||
| 文章 | articles.py | 文章管理 |
|
||||
| 发布 | publishing.py | 发布记录 |
|
||||
| 内容日历 | calendar.py | 排期、绑定选题 |
|
||||
| 数据分析 | metrics.py | 仪表盘、趋势、推荐 |
|
||||
| 素材库 | assets.py | 上传、标签、搜索 |
|
||||
| 创作任务 | tasks.py | 异步任务、进度管理 |
|
||||
| 平台配置 | platform_config.py | 知乎/微信/小红书 |
|
||||
| 系统管理 | admin.py | 用户/案例/日志/配置 |
|
||||
|
||||
---
|
||||
|
||||
## 数据模型
|
||||
|
||||
- **TopicField** - 领域分类配置
|
||||
- **TopicConfigField** - 选题评分字段
|
||||
- **TopicStatusConfig** - 选题状态配置
|
||||
- **Topic** - 选题主表
|
||||
- **ContentCalendar** - 内容日历
|
||||
- **ContentMetrics** - 数据追踪
|
||||
- **MediaAsset** - 素材库
|
||||
- **PlatformConfig** - 平台配置
|
||||
- **ContentTask** - 创作任务
|
||||
- **User** - 用户
|
||||
- **Case** - 案例库
|
||||
|
||||
---
|
||||
|
||||
## 初始化数据
|
||||
|
||||
- 领域: 6 个(未来工作方式、AI与效率、可持续生活、数字游民、个人成长、科技人文)
|
||||
- 状态: 5 种(待处理、待审查、草稿、待发布、已发布)
|
||||
- 平台: 3 个(知乎、微信公众号、小红书)
|
||||
- 管理员: admin/admin123
|
||||
|
||||
---
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
yu-zhi-ran/
|
||||
├── platform/
|
||||
│ ├── backend/
|
||||
│ │ ├── app/
|
||||
│ │ │ ├── api/ # REST API
|
||||
│ │ │ ├── core/ # 业务逻辑
|
||||
│ │ │ ├── models.py # SQLAlchemy 模型
|
||||
│ │ │ ├── schemas.py # Pydantic 验证
|
||||
│ │ │ ├── database.py # 数据库连接
|
||||
│ │ │ ├── main.py # FastAPI 入口
|
||||
│ │ │ └── initial_data.py
|
||||
│ │ └── venv/
|
||||
│ └── frontend/ # Vue + Element Plus SPA
|
||||
├── automation/ # 自动化脚本
|
||||
├── content/ # 内容数据
|
||||
└── scripts/ # 工具脚本
|
||||
```
|
||||
Reference in New Issue
Block a user