如果你想快速启动项目,执行以下命令:
# 1. 克隆项目(如果尚未克隆)
git clone <your-repo-url>
cd prompt_market
# 2. 安装依赖
cd backend
pip install -r requirements.txt
# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,至少设置 SECRET_KEY 和 DATABASE_URL
# 4. 启动服务
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
访问 http://localhost:8000
开始使用!
# 安装 Python 依赖
cd backend
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接等信息
复制示例配置文件:
cp .env.example .env
编辑 .env
文件,配置以下必需项目:
# 用于 JWT 令牌签名和会话加密
SECRET_KEY=your_secret_key_here_change_in_production
python -c "import secrets; print(secrets.token_urlsafe(32))"
MySQL(生产环境推荐)
DATABASE_URL=mysql+aiomysql://username:password@localhost:3306/prompt_market_db
ACCESS_TOKEN_EXPIRE_MINUTES=1440 # 24小时
如需支持 GitHub 登录,请配置:
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GITHUB_REDIRECT_URI=http://localhost:8000/api/v1/auth/github/callback
如何获取 GitHub OAuth 配置:
- 访问 GitHub Developer Settings
- 创建新的 OAuth App
- 设置 Authorization callback URL 为:
http://localhost:8000/api/v1/auth/github/callback
- 获取 Client ID 和 Client Secret
# Kimi API
KIMI_API_KEY=your_kimi_api_key
# Google Gemini API
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-pro
启动应用前,确保以下配置正确:
- ✅
SECRET_KEY
已设置且不为空 - ✅
DATABASE_URL
指向有效的数据库 - ✅ 如果使用 MySQL,确保数据库已创建且用户有权限
项目使用 MySQL 数据库,详细配置请参考 MySQL 设置指南
# 在 backend 目录下启动后端服务
cd backend
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# 或使用 Python 直接运行
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
启动成功后,服务将在 http://localhost:8000
运行。
启动服务后,可以通过以下地址访问交互式 API 文档:
- Swagger UI:
http://localhost:8000/docs
- ReDoc:
http://localhost:8000/redoc
/api/v1/prompts
- Prompt CRUD 操作/api/v1/admin
- 管理员相关接口/api/v1/auth
- 用户认证(包括 GitHub OAuth)/api/v1/messages
- 私信和通知系统/api/v1/user-profile
- 用户资料管理/api/v1/config
- 前端配置获取
在 backend/main.py
文件中找到 CORS 中间件配置,修改 allow_origins
列表:
app.add_middleware(
CORSMiddleware,
allow_origins=[
"http://localhost:8000", # 本地开发环境
"http://127.0.0.1:8000", # 本地开发环境
"http://your-domain.com", # 添加您的域名
"https://your-domain.com", # HTTPS 版本
# 添加更多域名...
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
- HTTP 和 HTTPS 协议
- 带端口号和不带端口号的域名
- 子域名配置
管理页面可以通过以下方式访问:
- 直接访问:
http://localhost:8000/admin
- 登录重定向:
http://localhost:8000/admin-login
管理页面使用独立的认证系统,需要管理员账号密码登录。
使用提供的脚本创建管理员账号:
# 在 backend 目录下运行
cd backend
python scripts/create_admin.py
# 按提示输入管理员信息
# 用户名: admin
# 密码: [设置安全密码]
# 邮箱: [email protected]
- Prompt 内容管理(审核、编辑、删除)
- 用户管理
- 系统设置
- 数据统计
- 在 GitHub 创建 OAuth App
- 在
.env
文件中配置:
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GITHUB_REDIRECT_URI=http://localhost:8000/api/v1/auth/github/callback
- 前端通过
/api/v1/config
检查是否启用 GitHub 登录 - 用户点击 GitHub 登录按钮
- 重定向到
/api/v1/auth/github/login
- 完成 OAuth 流程后返回应用
prompt_market/
├── backend/ # 后端服务
│ ├── main.py # 主应用入口
│ ├── app/ # 应用代码
│ │ ├── api/ # API 路由
│ │ ├── core/ # 核心配置
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务逻辑
│ │ └── static/ # 静态文件
│ └── scripts/ # 工具脚本
├── frontend/ # 前端资源
│ ├── src/ # 源代码
│ └── assets/ # 静态资源
└── docs/ # 项目文档
使用 Docker Compose 快速部署:
# 启动服务(包括 MySQL 数据库)
docker-compose up -d
# 查看服务状态
docker-compose ps
# 停止服务
docker-compose down
- 检查 MySQL 服务是否启动
- 验证
.env
文件中的数据库配置 - 确保数据库已创建
- 确认
frontend
目录结构正确 - 检查静态文件挂载配置
- 验证文件路径是否正确
- 检查 GitHub OAuth App 配置
- 验证
.env
文件中的 GitHub 配置 - 确认回调 URL 设置正确
- 在
main.py
中添加您的域名到allow_origins
- 确保包含 HTTP 和 HTTPS 版本
- 重启服务使配置生效
如有问题,请检查:
- 服务器日志输出
- 浏览器控制台错误
- API 文档中的接口说明
- 数据库连接状态
快速参考:
- 🌍 前端页面:
http://localhost:8000
- 📖 API 文档:
http://localhost:8000/docs
- 🛠️ 管理页面:
http://localhost:8000/admin
- 📊 ReDoc:
http://localhost:8000/redoc