diff --git a/README.md b/README.md
index a3d378c..0696750 100644
--- a/README.md
+++ b/README.md
@@ -171,35 +171,80 @@

-## 快速部署
+## 快速部署
-项目提供多种基础镜像,可根据具体环境选择:
+### 镜像说明
-| 标签 (Tag) | 基础镜像 | 说明 |
-| :--- | :--- | :--- |
-| `latest` | Debian 12 | **默认推荐**:集成 Python 3.13 与 Node.js 23,开箱即用 |
-| `latest-debian13` | Debian 13 | 尝鲜版本,基于 Debian Trixie |
-| `latest-minimal` | Debian 13 | **最小化版**:不预置语言环境,由用户通过面板自主按需安装 |
+| 镜像 | 说明 |
+| :--- | :--- |
+| `git.viaeon.com/admin/taskpool:latest` | **本仓库 CI 构建(推荐)**:React 前端 + Go 后端的 **standalone** 一体镜像(nginx + supervisord) |
+| `ghcr.io/engigu/taskpool:latest` | 上游公共镜像(Debian + Mise 完整运行时),适合需要完整语言环境的场景 |
-> **提示**:下方部署示例默认使用 `latest` 标签,如需换用 Debian 13 版,只需将 `latest` 替换为 `latest-debian13` 即可。
+**本仓库 standalone 镜像端口:**
-> **警告**:**架构升级破坏性变更**
->
-> 本版本(2026.02.13+)对底层运行时环境进行了彻底重构,弃用了原有的静态 Python/Node 环境,转为使用 **Mise** 进行动态版本管理。
->
-> 1. **不再提供 Alpine 镜像**:由于 glibc 兼容性问题,Mise 无法在 Alpine 上完美运行,因此暂时取消 Alpine 镜像支持。
-> 2. **环境数据不兼容**:如果您是从旧版本升级上来,原有的 Python/Node 环境数据将无法迁移。升级后您需要:
-> - 清空或备份原有的 `envs/` 挂载目录
-> - 启动新容器,让系统自动初始化新的 Mise 环境
-> - 在面板中重新安装所需的语言和依赖
+| 端口 | 说明 |
+| :--- | :--- |
+| `3000` | Web 面板(nginx 静态资源 + `/api` 反代) |
+| `8052` | Go API / WebSocket 后端 |
+> 启动后端进程时必须使用:`taskpool server`(无参数只会打印 help 并退出)。
-方式一:环境变量部署(推荐)
+方式一:本仓库 standalone 镜像(推荐)
-通过环境变量指定配置,简单灵活,适合容器编排场景。
+```bash
+docker run -d \
+ --name taskpool \
+ -p 3000:3000 \
+ -p 8052:8052 \
+ -v $(pwd)/data:/app/data \
+ -v $(pwd)/configs:/app/configs \
+ -v $(pwd)/envs:/app/envs \
+ -e TZ=Asia/Shanghai \
+ -e BH_SERVER_PORT=8052 \
+ -e BH_SERVER_HOST=0.0.0.0 \
+ -e BH_DB_TYPE=sqlite \
+ -e BH_DB_PATH=/app/data/taskpool.db \
+ -e BH_DB_TABLE_PREFIX=taskpool_ \
+ -e TASKPOOL_SECRET_KEY=your_secret_key_here \
+ --restart unless-stopped \
+ git.viaeon.com/admin/taskpool:latest
+```
-**使用 SQLite(默认):**
+**Docker Compose:**
+
+```yaml
+services:
+ app:
+ image: git.viaeon.com/admin/taskpool:latest
+ container_name: taskpool
+ ports:
+ - "3000:3000"
+ - "8052:8052"
+ volumes:
+ - ./data:/app/data
+ - ./configs:/app/configs
+ - ./envs:/app/envs
+ environment:
+ - TZ=Asia/Shanghai
+ - BH_SERVER_PORT=8052
+ - BH_SERVER_HOST=0.0.0.0
+ - BH_DB_TYPE=sqlite
+ - BH_DB_PATH=/app/data/taskpool.db
+ - BH_DB_TABLE_PREFIX=taskpool_
+ - TASKPOOL_SECRET_KEY=your_secret_key_here
+ restart: unless-stopped
+```
+
+访问:
+
+- 面板:http://localhost:3000
+- API:http://localhost:8052
+
+
+
+
+方式二:环境变量部署(上游完整镜像 / SQLite)
```bash
docker run -d \
@@ -218,12 +263,6 @@ docker run -d \
ghcr.io/engigu/taskpool:latest
```
-> **提示**:如需通过反向代理部署在子路径(如 `/taskpool`),添加环境变量:
-> ```bash
-> -e BH_SERVER_URL_PREFIX=/taskpool
-> ```
-> 配置后访问地址为 `http://your-domain.com/taskpool/`,详见下方「URL 前缀配置」说明。
-
**Docker Compose(SQLite):**
```yaml
@@ -244,12 +283,6 @@ services:
- BH_DB_PATH=/app/data/taskpool.db
- BH_DB_TABLE_PREFIX=taskpool_
- TASKPOOL_SECRET_KEY=your_secret_key_here
- # - BH_SERVER_URL_PREFIX=/taskpool # 可选:配置 URL 前缀用于反向代理
- logging:
- driver: json-file
- options:
- max-size: "10m"
- max-file: "3"
restart: unless-stopped
```
@@ -276,41 +309,6 @@ docker run -d \
ghcr.io/engigu/taskpool:latest
```
-> **提示**:如需配置 URL 前缀,添加 `-e BH_SERVER_URL_PREFIX=/taskpool`
-
-**Docker Compose(MySQL):**
-
-```yaml
-services:
- taskpool:
- image: ghcr.io/engigu/taskpool:latest
- container_name: taskpool
- ports:
- - "8052:8052"
- volumes:
- - ./data:/app/data
- - ./envs:/app/envs
- environment:
- - TZ=Asia/Shanghai
- - BH_SERVER_PORT=8052
- - BH_SERVER_HOST=0.0.0.0
- # - BH_SERVER_URL_PREFIX=/taskpool # 可选:配置 URL 前缀
- - BH_DB_TYPE=mysql
- - BH_DB_HOST=mysql-server
- - BH_DB_PORT=3306
- - BH_DB_USER=root
- - BH_DB_PASSWORD=your_password
- - BH_DB_NAME=taskpool
- - BH_DB_TABLE_PREFIX=taskpool_
- - TASKPOOL_SECRET_KEY=your_secret_key_here
- logging:
- driver: json-file
- options:
- max-size: "10m"
- max-file: "3"
- restart: unless-stopped
-```
-
@@ -600,12 +598,26 @@ nginx -t && nginx -s reload
### 访问面板
-启动后访问:http://localhost:8052
+| 部署方式 | 访问地址 |
+| :--- | :--- |
+| 本仓库 standalone 镜像 | http://localhost:3000 (API: http://localhost:8052) |
+| 上游完整镜像 / 仅后端 | http://localhost:8052 |
**默认账号:** 用户名 `admin`,密码见启动日志(首次启动会自动生成 12 位随机密码并打印在日志中)
> **注意**:出于安全性考虑,系统不再使用固定默认密码。请在容器启动日志中搜索 `管理员账号创建成功` 找到您的随机密码,并登录后及时修改。
+**排查 backend 反复重启:**
+
+```bash
+# 正确启动命令
+taskpool server
+
+# 容器内日志(standalone / supervisord)
+docker exec -it taskpool cat /app/logs/backend.err.log
+docker exec -it taskpool cat /app/logs/backend.out.log
+```
+
命令行工具 (CLI)
@@ -671,7 +683,7 @@ host = localhost
port = 3306
user = root
password =
-dbname = bh_panel
+dbname = taskpool
table_prefix = taskpool_
```
@@ -690,10 +702,10 @@ table_prefix = taskpool_
| `BH_DB_PORT` | database.port | 数据库端口 | 3306 |
| `BH_DB_USER` | database.user | 数据库用户 | root |
| `BH_DB_PASSWORD` | database.password | 数据库密码 | - |
-| `BH_DB_NAME` | database.dbname | 数据库名称 | bh_panel |
+| `BH_DB_NAME` | database.dbname | 数据库名称 | taskpool |
| `BH_DB_PATH` | database.path | SQLite 文件路径 | ./data/taskpool.db |
| `BH_DB_TABLE_PREFIX` | database.table_prefix | 表前缀 | taskpool_ |
-| `TASKPOOL_SECRET_KEY` | - | 系统加密秘钥,用于机密功能(**注:仅支持环境变量设置,不支持配置文件**) | - |
+| `TASKPOOL_SECRET_KEY` | - | 系统加密秘钥,用于机密功能(**注:仅支持环境变量设置,不支持配置文件**;兼容旧变量 `BAIHU_SECRET_KEY`) | - |
### URL 前缀配置
@@ -755,6 +767,33 @@ location /taskpool/ {
+## 本地开发(本仓库)
+
+```bash
+# 后端
+go build -o bin/taskpool.exe .
+./bin/taskpool.exe server
+
+# 前端
+cd web
+pnpm install
+pnpm dev # 默认 :3000,代理 API 到 :8052
+```
+
+常用命令:
+
+```bash
+taskpool server
+taskpool resetpwd admin
+taskpool version
+```
+
+数据库品牌迁移(可选,旧 `baihu_` 表前缀 → `taskpool_`):
+
+```bash
+go run scripts/migrate-db-brand.go -db data/baihu.db -out data/taskpool.db
+```
+
## 免责声明 ⚠️
任务池(TaskPool)仅作为一个轻量级的任务托管与调度平台,本项目及相关代码**不提供、不内置任何具有实际业务逻辑的第三方脚本**。