chore: 清理 Docker 相关文件并优化前端布局

- 删除 Docker 相关文件 (docker-compose, Dockerfile, nginx.conf, init.sql 等)
- 优化 platforms.html 卡片布局和响应式样式
- 优化 users.html 格式和移动端卡片设计
- 优化 admin.html 页面结构和表格布局
- 修复各页面 min-height 和溢出问题
- 更新导航组件样式
This commit is contained in:
lt
2026-05-09 19:41:59 +08:00
parent e77a1aa4d9
commit 71cb4c35a8
80 changed files with 142574 additions and 3900 deletions
+128 -150
View File
@@ -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)配置(如需外网访问)
- [ ] HTTPSLet'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/ # 工具脚本
```