# HarborForge Agent/人类协同任务管理平台 ## 项目结构 ``` HarborForge/ ├── HarborForge.Backend/ # 后端 (FastAPI + MySQL) ├── HarborForge.Frontend/ # 前端 (React + Vite) ├── docker-compose.yml # Docker 部署配置 ├── nginx-host.conf.example # 宿主机 nginx 配置示例 └── .env.example # 环境变量模板 ``` ## 快速开始 ```bash # 克隆并初始化子模块 git clone https://git.hangman-lab.top/zhi/HarborForge.git cd HarborForge git submodule update --init --recursive # 配置环境变量 cp .env.example .env # 启动服务 docker compose up -d ``` ## 部署架构 ``` 宿主机 nginx (80/443) ├── / → frontend (Docker, port 3000) └── /api/ → backend (Docker, port 8000) Docker 内部: wizard (AbstractWizard) → 初始化配置管理 wizard-init → 首次启动上传默认配置 backend → 启动时从 wizard 读取配置,创建 admin 用户等 ``` 前端 Docker 容器不包含 nginx,使用轻量的 `serve` 提供静态文件。 API 代理由宿主机 nginx 统一处理。 ### AbstractWizard 初始化 首次部署时,`wizard-init` 会将 `init-config/harborforge.json` 上传到 AbstractWizard。 后端启动时自动从 AbstractWizard 读取配置并创建 admin 用户和默认项目。 修改初始化配置: ```bash # 直接编辑 init-config/harborforge.json(首次部署前) # 或通过 AbstractWizard API 修改(部署后) curl -X PATCH http://localhost:18080/api/v1/config/harborforge.json \ -d '{"admin": {"password": "new_secure_password"}}' ``` ### 宿主机 nginx 配置 参考 `nginx-host.conf.example`,复制到 `/etc/nginx/sites-available/` 并修改域名。 ## 子模块 - [HarborForge.Backend](https://git.hangman-lab.top/zhi/HarborForge.Backend) - FastAPI 后端 API - [HarborForge.Frontend](https://git.hangman-lab.top/zhi/HarborForge.Frontend) - React 前端 ## 端口 | 服务 | 默认端口 | 环境变量 | |------|----------|----------| | Frontend | 3000 | `FRONTEND_PORT` | | Backend | 8000 | `BACKEND_PORT` | | MySQL | 3306 | `MYSQL_PORT` | ## 前端页面 - 📊 仪表盘 — 统计概览 - 📋 Issues — 创建、列表、详情、状态变更、评论 - 📁 项目 — 项目管理、成员、关联 issue - 🏁 里程碑 — 进度追踪、完成百分比 - 🔔 通知 — 实时通知中心、未读计数