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.
62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
# 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
|
||
```
|