Files
creator-hub/README.md
T
rogee 208f6766af chore(dev): add pnpm dev hot-reload workflow for local development
Replace full docker compose rebuild during development with:
- pnpm dev / dev:backend (air hot-reload control-plane) / dev:frontend (vite HMR) / dev:deps
- compose.dev.yaml: postgres+docker-gateway only, host port mapping (5432/8081), container control-plane disabled via profile
- scripts/dev-backend.mjs: read .env, fill dev defaults (login admin/admin123, listen :8082, 32-byte dev master key with explicit warning on invalid .env value), ensure dep containers, run air
- vite: fixed port 5173, /api proxy to local control-plane (8082)
- README: document hot-reload dev workflow

Verified: pnpm dev end-to-end (login/API/frontend/proxy 200), Go+JSX edit hot-reload, compose config --quiet, go build ./..., web tests 65 passed, npm --prefix web run build.
2026-09-02 14:38:44 +08:00

62 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CreatorHub
面向团队的新媒体多账号运营管理平台,统一管理浏览器环境、代理资源、账号池、负责人和自动化运营任务。
## 当前阶段
项目处于阶段 A 技术验证。当前可运行切片提供浏览器容器控制,以及单用户、Mock 连接器的离线业务闭环,功能参考公开上游项目独立实现,不直接复制其代码。
详细的五领域优先级、系统边界、合规知识库与分阶段验证方案见
[《合规产品规划与上游调研》](docs/product/compliance-product-plan.md)。
## 本地运行
需要 Docker Compose
```bash
export CONTROL_PLANE_USERNAME=creatorhub
export CONTROL_PLANE_PASSWORD="$(openssl rand -hex 24)"
export CREATORHUB_CREDENTIAL_MASTER_KEY="$(openssl rand -base64 32)"
DOCKER_GID=$(stat -c %g /var/run/docker.sock) docker compose up --build
```
三个控制面凭据变量均为必填;Compose 不提供默认凭据。`CREATORHUB_CREDENTIAL_MASTER_KEY` 必须在重启后保持不变。开发环境可复制 `.env.example` 后显式填写本地值。
打开 <http://127.0.0.1:8080>,使用 `CONTROL_PLANE_USERNAME` / `CONTROL_PLANE_PASSWORD` 登录;局域网内用宿主机 IP 访问同一端口。首次使用:在「网关管理」用 Compose 里的 `GATEWAY_TOKEN` 注册 `http://docker-gateway:8081`,在「镜像版本」添加可用的指纹浏览器镜像引用,即可创建环境;网关会在镜像缺失时自动拉取。架构、API 契约、失败语义和 `docker.sock` 风险边界见
[《浏览器容器控制面》](docs/architecture/container-control.md)。
## 本地开发(热加载)
日常开发不再整仓重建镜像,改用源码热加载:
```bash
npm --prefix web ci
pnpm dev
```
- `pnpm dev`:同时起后端(air 热重载)与前端(vite HMR);
- `pnpm dev:backend` / `pnpm dev:frontend`:单独启动其中一端;
- `pnpm dev:deps`:仅启动 postgres 与 docker-gateway 两个容器(`compose.dev.yaml` 会把 5432/8081 映射到宿主机)。
服务地址:
| 端 | 地址 | 说明 |
| --- | --- |
| 前端 | <http://127.0.0.1:5173> | `/api` 由 vite 代理到本地 control-plane |
| 后端 control-plane | <http://127.0.0.1:8082> | Go 源码改动即自动重启 |
| docker-gateway | <http://127.0.0.1:8081> | 容器内常驻,重启不频繁 |
| postgres | `127.0.0.1:5432` | 容器内常驻,数据库重建直接销毁 volume |
开发默认值(`.env` 缺失或留空时):登录 `admin` / `admin123`;控制面监听 `:8082`;凭据主密钥使用本地开发专用密钥;本地网关注册地址用 `http://127.0.0.1:8081`(容器名 `docker-gateway` 仅存在于 Compose 网络内)。
注意:本地开发后端占用 `:8082`,与整仓 `docker compose up` 的容器端口互斥,两者二选一运行。
最小验证:
```bash
go test ./...
npm --prefix web ci
npm --prefix web run build
docker compose config --quiet
```