背景: - 开发机上前端/后端/worker 需要分别启动,端口被旧进程占用时排查成本高; PostgreSQL / Redis 已按约定提前以 Docker 启动,脚本不再负责。 改动: - 新增 ./dev.sh:后台启动 api(3000)/web(5173)/worker,启动前自动检测并结束 端口占用进程(--no-kill 可改为直接失败),等待健康检查后返回。 - 提供 start/stop/restart/status/logs/clean 子命令;stop 按进程组结束并兜底 释放端口;支持 --api-only/--web-only/--no-worker/--follow。 - 自动加载仓库根 .env.local/.env 并导出给子进程(worker 读取 REDIS_URL 需要)。 - .dev/ 纳入 gitignore;README 本地开发章节补充脚本用法。 影响面: - 仅新增开发工具与文档,不影响构建、运行时与 CI;`pnpm dev` 保持原行为。 回滚方式: - 回滚本提交即可,无数据与配置变更。 验证证据: - bash -n 通过; - ./dev.sh start / status / stop / restart / clean / --follow 实测; - 占用 3000/5173 的假服务被自动结束并成功启动; - --no-kill、--api-only、--no-worker 行为符合预期。
This commit is contained in:
1 parent
4d9eb980af
commit
46959fd5fc
3 files changed
+596
No files matched your search
@@ -79,6 +79,18 @@ pnpm db:seed # 幂等写入 system_configs 基线
|
||||
pnpm dev # 并行启动 api(3000) / web(5173) / worker
|
||||
```
|
||||
|
||||
也可以使用一键脚本(后台启动、自动检测并释放端口、带健康检查):
|
||||
|
||||
```bash
|
||||
./dev.sh # 启动 api + web + worker
|
||||
./dev.sh status # 端口 / PID / 健康状态
|
||||
./dev.sh logs [api|web|worker] # 跟踪日志(默认全部)
|
||||
./dev.sh stop # 停止并释放 3000 / 5173
|
||||
./dev.sh --help # 全部参数
|
||||
```
|
||||
|
||||
> `dev.sh` 只负责开发服务,不启动 PostgreSQL / Redis 或任何 Docker 容器;这两者按约定在开发前已就绪。
|
||||
|
||||
- **本地数据库**:直接复用本机已有 Docker 服务 `docker-postgres-1`(PostgreSQL 18,`127.0.0.1:5432`),库名 `lingxi`,用户 `postgres`,密码 `postgres`;Redis 复用 `docker-redis-1`(`127.0.0.1:6379`)。请先确认这两个容器已启动,本仓库不会另起 PG/Redis。
|
||||
- **对象存储**:使用公网 RustFS(`https://oss.xinsenidea.com`,桶 `lingxi-dev`);A0 的 `assets / renders / temp` 三类产物暂共用该桶,待 A1 按前缀拆分。真实 access key / secret 只写入本地 `.env.local`(已 gitignore),仓库内只保留占位。
|
||||
- **API 文档**:启动 api 后访问 `http://127.0.0.1:3000/api/docs`,OpenAPI JSON 在 `openapi/lingxi.openapi.json`。
|
||||
|
||||
Reference in new issue
Block a user