From 69c6ebc9562769f429edfb7d01db5a3d53138e5a Mon Sep 17 00:00:00 2001 From: root Date: Sat, 21 Feb 2026 08:18:03 +0000 Subject: [PATCH] Initial: main repo with docker-compose and submodules --- .gitmodules | 3 ++ README.md | 32 ++++++++++++++++ docker-compose.yml | 91 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 .gitmodules create mode 100644 README.md create mode 100644 docker-compose.yml diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..1102cd7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "HarborForge.Backend"] + path = HarborForge.Backend + url = https://git.hangman-lab.top/zhi/HarborForge.Backend.git diff --git a/README.md b/README.md new file mode 100644 index 0000000..cd66537 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# HarborForge + +Agent/人类协同任务管理平台 + +## 项目结构 + +``` +HarborForge/ +├── HarborForge.Backend/ # 后端 (FastAPI + MySQL) +├── HarborForge.Frontend/ # 前端 (React) - 规划中 +├── HarborForge.Cli/ # CLI 工具 - 规划中 +└── docker-compose.yml # 部署配置 +``` + +## 快速开始 + +```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 +``` + +## 子模块 + +- [HarborForge.Backend](https://git.hangman-lab.top/zhi/HarborForge.Backend) - 后端 API +- [HarborForge.Frontend](https://git.hangman-lab.top/zhi/HarborForge.Frontend) - 前端 (规划中) +- [HarborForge.Cli](https://git.hangman-lab.top/zhi/HarborForge.Cli) - CLI 工具 (规划中) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..11a6d8c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,91 @@ +version: '3.8' + +services: + # MySQL Database + mysql: + image: mysql:8.0 + container_name: harborforge-mysql + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-harborforge_root} + MYSQL_DATABASE: ${MYSQL_DATABASE:-harborforge} + MYSQL_USER: ${MYSQL_USER:-harborforge} + MYSQL_PASSWORD: ${MYSQL_PASSWORD:-harborforge_pass} + volumes: + - mysql_data:/var/lib/mysql + ports: + - "3306:3306" + networks: + - harborforge + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + interval: 10s + timeout: 5s + retries: 5 + deploy: + resources: + limits: + cpus: '0.5' + memory: 512M + + # FastAPI Backend + backend: + build: + context: ./HarborForge.Backend + dockerfile: Dockerfile + container_name: harborforge-backend + restart: unless-stopped + environment: + DATABASE_URL: mysql+pymysql://${MYSQL_USER:-harborforge}:${MYSQL_PASSWORD:-harborforge_pass}@mysql:3306/${MYSQL_DATABASE:-harborforge} + SECRET_KEY: ${SECRET_KEY:-change_me_in_production} + LOG_LEVEL: ${LOG_LEVEL:-INFO} + ports: + - "8000:8000" + depends_on: + mysql: + condition: service_healthy + networks: + - harborforge + volumes: + - ./HarborForge.Backend:/app + deploy: + resources: + limits: + cpus: '0.5' + memory: 512M + + # React Frontend (optional, for future) + # frontend: + # build: + # context: ./frontend + # dockerfile: Dockerfile + # container_name: harborforge-frontend + # restart: unless-stopped + # ports: + # - "3000:3000" + # depends_on: + # - backend + # networks: + # - harborforge + # volumes: + # - ./frontend:/app + # - /app/node_modules + + # CLI (run on demand) + # cli: + # build: + # context: ./cli + # dockerfile: Dockerfile + # volumes: + # - ./cli:/app + # - ~/.harborforge:/root/.harborforge + # networks: + # - harborforge + +networks: + harborforge: + driver: bridge + +volumes: + mysql_data: + driver: local