diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100644 index 73f345c7..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -# 检查是否存在package-lock.json或yarn.lock文件 -if [ -f "package-lock.json" ]; then - echo "错误: 检测到package-lock.json文件。" - echo "本项目强制使用pnpm作为包管理器,请删除package-lock.json并使用pnpm install安装依赖。" - exit 1 -fi - -if [ -f "yarn.lock" ]; then - echo "错误: 检测到yarn.lock文件。" - echo "本项目强制使用pnpm作为包管理器,请删除yarn.lock并使用pnpm install安装依赖。" - exit 1 -fi - -# 确保pnpm-lock.yaml存在 -if [ ! -f "pnpm-lock.yaml" ]; then - echo "警告: 未检测到pnpm-lock.yaml文件。" - echo "请确保使用pnpm install安装依赖。" -fi - -# 测试门禁(可用 SKIP_TEST_GATE=1 跳过,仅用于紧急情况) -if [ "$SKIP_TEST_GATE" = "1" ]; then - echo "跳过测试门禁:检测到 SKIP_TEST_GATE=1" - exit 0 -fi - -echo "运行测试门禁(fast):pnpm test:gate" -pnpm test:gate diff --git a/.husky/pre-commit.ps1 b/.husky/pre-commit.ps1 deleted file mode 100644 index 9fd75d32..00000000 --- a/.husky/pre-commit.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -# PowerShell版本的pre-commit钩子 - -# 检查是否存在package-lock.json或yarn.lock文件 -if (Test-Path "package-lock.json") { - Write-Host "错误: 检测到package-lock.json文件。" -ForegroundColor Red - Write-Host "本项目强制使用pnpm作为包管理器,请删除package-lock.json并使用pnpm install安装依赖。" -ForegroundColor Red - exit 1 -} - -if (Test-Path "yarn.lock") { - Write-Host "错误: 检测到yarn.lock文件。" -ForegroundColor Red - Write-Host "本项目强制使用pnpm作为包管理器,请删除yarn.lock并使用pnpm install安装依赖。" -ForegroundColor Red - exit 1 -} - -# 确保pnpm-lock.yaml存在 -if (-not (Test-Path "pnpm-lock.yaml")) { - Write-Host "警告: 未检测到pnpm-lock.yaml文件。" -ForegroundColor Yellow - Write-Host "请确保使用pnpm install安装依赖。" -ForegroundColor Yellow -} - -# 测试门禁(可用 SKIP_TEST_GATE=1 跳过,仅用于紧急情况) -if ($env:SKIP_TEST_GATE -eq "1") { - Write-Host "跳过测试门禁:检测到 SKIP_TEST_GATE=1" -ForegroundColor Yellow - exit 0 -} - -Write-Host "运行测试门禁(fast):pnpm test:gate" -ForegroundColor Cyan -pnpm test:gate diff --git a/.pnpmrc b/.pnpmrc deleted file mode 100644 index be16790b..00000000 --- a/.pnpmrc +++ /dev/null @@ -1,5 +0,0 @@ -save-workspace-protocol=false -save-prefix='~' -strict-peer-dependencies=false -auto-install-peers=true -resolution-mode=highest \ No newline at end of file diff --git a/README.md b/README.md index dec9f198..c9f5b6b1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ [Website](https://always200.com) | [Online Optimizer](https://prompt.always200.com) | [Prompt Garden](https://garden.always200.com) | [Docs](https://docs.always200.com) | [Quick Start](#quick-start) | [Chrome Extension](https://chromewebstore.google.com/detail/prompt-optimizer/cakkkhboolfnadechdlgdcnjammejlna) | [💖 Support](https://ko-fi.com/linshenkx) -[Development Docs](dev.md) | [Vercel Deployment Guide](docs/user/deployment/vercel_en.md) | [Cloudflare Pages Deployment Guide](docs/user/deployment/cloudflare-pages_en.md) | [MCP Deployment Guide](docs/user/mcp-server_en.md) | [DeepWiki Docs](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead Docs](https://zread.ai/linshenkx/prompt-optimizer) +[Development Docs](docs/developer/development.md) | [Vercel Deployment Guide](docs/user/deployment/vercel_en.md) | [Cloudflare Pages Deployment Guide](docs/user/deployment/cloudflare-pages_en.md) | [MCP Deployment Guide](docs/user/mcp-server_en.md) | [DeepWiki Docs](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead Docs](https://zread.ai/linshenkx/prompt-optimizer) @@ -172,10 +172,10 @@ ACCESS_PASSWORD=your_password # Set access password EOF # 3. Start the service -docker compose up -d +docker compose -f docker/docker-compose.yml up -d # 4. View logs -docker compose logs -f +docker compose -f docker/docker-compose.yml logs -f # 5. Access the service Web Interface: http://localhost:8081 @@ -183,9 +183,9 @@ MCP Server: http://localhost:8081/mcp ``` -You can also directly edit the docker-compose.yml file to customize your configuration: +You can also directly edit the docker/docker-compose.yml file to customize your configuration:
-Click to view docker-compose.yml example +Click to view docker/docker-compose.yml example ```yaml services: @@ -317,7 +317,7 @@ Configure environment variables through the `-e` parameter when deploying with D
## Local Development -For detailed documentation, see [Development Documentation](dev.md) +For detailed documentation, see [Development Documentation](docs/developer/development.md)
Click to view local development commands diff --git a/README.zh-CN.md b/README.zh-CN.md index 8d24509b..87656cf1 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -16,7 +16,7 @@ [官网](https://always200.com) | [在线优化器](https://prompt.always200.com) | [提示词库](https://garden.always200.com) | [文档站](https://docs.always200.com) | [快速开始](#快速开始) | [Chrome插件](https://chromewebstore.google.com/detail/prompt-optimizer/cakkkhboolfnadechdlgdcnjammejlna) | [💖赞助支持](images/other/sponsor_wx.jpg) -[开发文档](dev.md) | [Vercel部署指南](docs/user/deployment/vercel.md) | [Cloudflare Pages部署指南](docs/user/deployment/cloudflare-pages.md) | [MCP部署使用说明](docs/user/mcp-server.md) | [DeepWiki文档](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead文档](https://zread.ai/linshenkx/prompt-optimizer) +[开发文档](docs/developer/development.md) | [Vercel部署指南](docs/user/deployment/vercel.md) | [Cloudflare Pages部署指南](docs/user/deployment/cloudflare-pages.md) | [MCP部署使用说明](docs/user/mcp-server.md) | [DeepWiki文档](https://deepwiki.com/linshenkx/prompt-optimizer) | [ZRead文档](https://zread.ai/linshenkx/prompt-optimizer) @@ -165,10 +165,10 @@ cp env.local.example .env # 编辑 .env 文件,填入实际的 API 密钥和配置 # 3. 启动服务 -docker compose up -d +docker compose -f docker/docker-compose.yml up -d # 4. 查看日志 -docker compose logs -f +docker compose -f docker/docker-compose.yml logs -f # 5. 访问服务 Web 界面:http://localhost:8081 @@ -176,9 +176,9 @@ MCP 服务器:http://localhost:8081/mcp ```
-你还可以直接编辑docker-compose.yml文件,自定义配置: +你还可以直接编辑 docker/docker-compose.yml 文件,自定义配置:
-点击查看 docker-compose.yml 示例 +点击查看 docker/docker-compose.yml 示例 ```yaml services: @@ -313,7 +313,7 @@ Docker部署时通过 `-e` 参数配置环境变量:
## 本地开发 -详细文档可查看 [开发文档](dev.md) +详细文档可查看 [开发文档](docs/developer/development.md)
点击查看本地开发命令 diff --git a/docker-compose.dev.yml b/docker/docker-compose.dev.yml similarity index 92% rename from docker-compose.dev.yml rename to docker/docker-compose.dev.yml index e928be26..8dda7e0d 100644 --- a/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -2,7 +2,7 @@ services: prompt-optimizer: # 开发模式:从源码构建 build: - context: . + context: .. dockerfile: Dockerfile image: linshen/prompt-optimizer:dev container_name: prompt-optimizer-dev @@ -12,7 +12,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" # 允许容器访问宿主机 env_file: - - .env.local # 读取本地环境变量文件 + - ../.env.local # 读取仓库根目录的本地环境变量文件 healthcheck: test: ["CMD", "sh", "-c", "curl -f http://localhost:${NGINX_PORT:-80}/ && curl -f http://localhost:${NGINX_PORT:-80}/mcp"] interval: 30s diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 98% rename from docker-compose.yml rename to docker/docker-compose.yml index 92bbb6d6..07506c57 100644 --- a/docker-compose.yml +++ b/docker/docker-compose.yml @@ -3,7 +3,7 @@ services: image: linshen/prompt-optimizer:latest # Alternatively, you can build from source: # build: -# context: . +# context: .. # dockerfile: Dockerfile container_name: prompt-optimizer restart: unless-stopped diff --git a/docs/deployment/docker-mcp-integration.md b/docs/deployment/docker-mcp-integration.md index 7e6e9ee5..6e089da5 100644 --- a/docs/deployment/docker-mcp-integration.md +++ b/docs/deployment/docker-mcp-integration.md @@ -53,13 +53,13 @@ MCP_DEFAULT_MODEL_BASE_URL= ### 1. 配置环境变量 ```bash -cp .env.docker.example .env +cp env.local.example .env # 编辑.env文件,填入实际的API密钥 ``` ### 2. 启动服务 ```bash -docker-compose up -d +docker compose -f docker/docker-compose.yml up -d ``` ### 3. 访问服务 @@ -71,13 +71,13 @@ docker-compose up -d ### 4. 健康检查 ```bash # 检查容器状态 -docker-compose ps +docker compose -f docker/docker-compose.yml ps # 查看日志 -docker-compose logs -f +docker compose -f docker/docker-compose.yml logs -f # 查看MCP服务器日志 -docker-compose exec prompt-optimizer supervisorctl tail -f mcp-server +docker compose -f docker/docker-compose.yml exec prompt-optimizer supervisorctl tail -f mcp-server ``` ## MCP服务器API @@ -111,37 +111,37 @@ curl -X POST http://localhost:8081/mcp \ ### 查看服务状态 ```bash -docker-compose exec prompt-optimizer supervisorctl status +docker compose -f docker/docker-compose.yml exec prompt-optimizer supervisorctl status ``` ### 重启MCP服务器 ```bash -docker-compose exec prompt-optimizer supervisorctl restart mcp-server +docker compose -f docker/docker-compose.yml exec prompt-optimizer supervisorctl restart mcp-server ``` ### 查看详细日志 ```bash # Nginx日志 -docker-compose exec prompt-optimizer tail -f /var/log/nginx/error.log +docker compose -f docker/docker-compose.yml exec prompt-optimizer tail -f /var/log/nginx/error.log # MCP服务器日志 -docker-compose exec prompt-optimizer tail -f /var/log/supervisor/mcp-server.out.log +docker compose -f docker/docker-compose.yml exec prompt-optimizer tail -f /var/log/supervisor/mcp-server.out.log ``` ## 开发模式 -如果需要在开发模式下运行,可以修改docker-compose.yml: +如果需要在开发模式下运行,可以使用 `docker/docker-compose.dev.yml`: ```yaml services: prompt-optimizer: build: - context: . + context: .. dockerfile: Dockerfile # ... 其他配置 ``` 然后重新构建: ```bash -docker-compose up --build -d +docker compose -f docker/docker-compose.dev.yml up --build -d ``` diff --git a/docs/developer/README.md b/docs/developer/README.md index f0789cf5..5f495959 100644 --- a/docs/developer/README.md +++ b/docs/developer/README.md @@ -4,7 +4,7 @@ ## 🚀 快速开始 -- 快速开始指南(待创建) - 开发环境搭建和项目启动 +- [开发指南](./development.md) - 开发环境搭建、Docker 开发和常用工作流 - [技术开发指南](./technical-development-guide.md) - 完整的技术栈和开发规范 - [项目结构](./project-structure.md) - 项目文件和目录组织说明 - [AI开发流程规范](./ai-development-workflow.md) - AI辅助开发的标准化流程 diff --git a/dev.md b/docs/developer/development.md similarity index 100% rename from dev.md rename to docs/developer/development.md diff --git a/docs/developer/project-structure.md b/docs/developer/project-structure.md index 5f596525..d2e63b6f 100644 --- a/docs/developer/project-structure.md +++ b/docs/developer/project-structure.md @@ -18,13 +18,14 @@ prompt-optimizer/ │ │ └── package.json # Web包配置 │ └── extension/ # Chrome插件 ├── docs/ # 项目文档 -├── tools/ # 工具脚本 +├── docker/ # Docker 配置和服务脚本 +├── scripts/ # 工具脚本 └── ...配置文件 ``` ### 1.2 配置文件 - `pnpm-workspace.yaml` - 工作区配置 -- `.env.example` - 环境变量示例 +- `env.local.example` - 环境变量示例 - `package.json` - 项目配置 - `.vscode/` - VSCode配置目录 - `.gitignore` - Git忽略配置 @@ -36,7 +37,7 @@ prompt-optimizer/ ### 1.4 文档目录 (docs/) - `README.md` - 文档索引 -- `development-guidelines.md` - 开发指南 +- `developer/development.md` - 开发指南 - `project-status.md` - 项目状态 - `project-structure.md` - 项目结构 - `technical-documentation.md` - 技术文档 diff --git a/docs/testing/README.md b/docs/testing/README.md index cfe1dd52..5fb34d00 100644 --- a/docs/testing/README.md +++ b/docs/testing/README.md @@ -5,7 +5,7 @@ - `pnpm test` 只跑单元测试,适合日常开发的快速反馈。 - `pnpm test:gate` - 运行 core/ui 的门禁测试,不含 Playwright E2E,适合 pre-commit。 + 运行 core/ui 的门禁测试,不含 Playwright E2E,适合提交前快速检查。 - `pnpm test:gate:full` 在 `test:gate` 基础上追加关键 E2E 白名单,适合提交前或 CI。 @@ -15,7 +15,7 @@ # 日常开发:快速反馈 pnpm test -# pre-commit:core/ui 门禁,不含 E2E +# 提交前快速门禁:core/ui,不含 E2E pnpm test:gate # 提交前 / CI:门禁 + 关键 E2E diff --git a/docs/testing/test-commands.md b/docs/testing/test-commands.md index f06747e1..4d45970e 100644 --- a/docs/testing/test-commands.md +++ b/docs/testing/test-commands.md @@ -10,7 +10,7 @@ pnpm test pnpm test:unit pnpm test:fast -# pre-commit 门禁:core/ui,不含 Playwright +# 提交前快速门禁:core/ui,不含 Playwright pnpm test:gate # 提交前 / CI:门禁 + 关键 E2E 白名单 diff --git a/docs/user/multi-custom-models.md b/docs/user/multi-custom-models.md index d59e69a2..158ae008 100644 --- a/docs/user/multi-custom-models.md +++ b/docs/user/multi-custom-models.md @@ -227,7 +227,7 @@ docker run -d -p 8081:80 --env-file .env \ #### 方式3:Docker Compose -修改 `docker-compose.yml` 添加 `env_file` 配置: +修改 `docker/docker-compose.yml` 添加 `env_file` 配置: ```yaml services: diff --git a/docs/user/multi-custom-models_en.md b/docs/user/multi-custom-models_en.md index 23868242..6d415bb2 100644 --- a/docs/user/multi-custom-models_en.md +++ b/docs/user/multi-custom-models_en.md @@ -189,7 +189,7 @@ docker run -d -p 8081:80 --env-file .env \ #### Method 3: Docker Compose -Modify `docker-compose.yml` to add `env_file` configuration: +Modify `docker/docker-compose.yml` to add `env_file` configuration: ```yaml services: diff --git a/mkdocs/docs/zh/deployment/docker-advanced.md b/mkdocs/docs/zh/deployment/docker-advanced.md index 3d3335af..705a06ea 100644 --- a/mkdocs/docs/zh/deployment/docker-advanced.md +++ b/mkdocs/docs/zh/deployment/docker-advanced.md @@ -123,7 +123,7 @@ docker run -d -p 8081:80 --name prompt-optimizer-local prompt-optimizer:local ## 更适合放进 `.env.local` 的内容 -如果你长期在本地开发,建议把这类变量放进 `.env.local`,再配合 `docker-compose.dev.yml`: +如果你长期在本地开发,建议把这类变量放进 `.env.local`,再配合 `docker/docker-compose.dev.yml`: - 各种 `VITE_*` 模型配置 - `ACCESS_USERNAME` diff --git a/mkdocs/docs/zh/deployment/docker-basic.md b/mkdocs/docs/zh/deployment/docker-basic.md index 6dd3f6f0..08286594 100644 --- a/mkdocs/docs/zh/deployment/docker-basic.md +++ b/mkdocs/docs/zh/deployment/docker-basic.md @@ -49,10 +49,10 @@ docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer \ ## 使用仓库自带的 Docker Compose -仓库根目录已经带了 `docker-compose.yml`,可以直接使用: +仓库 `docker/` 目录已经带了 `docker-compose.yml`,可以直接使用: ```bash -docker compose up -d +docker compose -f docker/docker-compose.yml up -d ``` 默认端口映射是: @@ -69,8 +69,8 @@ docker compose up -d 常用命令: ```bash -docker compose logs -f -docker compose down +docker compose -f docker/docker-compose.yml logs -f +docker compose -f docker/docker-compose.yml down ``` ## 开发用 Compose @@ -78,7 +78,7 @@ docker compose down 如果你要基于本地源码构建,可以使用: ```bash -docker compose -f docker-compose.dev.yml up -d --build +docker compose -f docker/docker-compose.dev.yml up -d --build ``` 这个文件的特点是: diff --git a/mkdocs/docs/zh/deployment/docker-troubleshooting.md b/mkdocs/docs/zh/deployment/docker-troubleshooting.md index a54b5e57..1a7d4380 100644 --- a/mkdocs/docs/zh/deployment/docker-troubleshooting.md +++ b/mkdocs/docs/zh/deployment/docker-troubleshooting.md @@ -12,8 +12,8 @@ 排查前先分清: - `docker run -p 8081:80 ...` -- `docker compose up -d` 使用仓库自带 `docker-compose.yml` -- `docker compose -f docker-compose.dev.yml up -d --build` +- `docker compose -f docker/docker-compose.yml up -d` 使用仓库自带 Compose 配置 +- `docker compose -f docker/docker-compose.dev.yml up -d --build` 因为三种方式默认端口不一样,很多“服务打不开”其实只是看错了端口。 @@ -41,8 +41,8 @@ docker logs prompt-optimizer 如果你用的是仓库自带 compose,再看: ```bash -docker compose ps -docker compose logs -f +docker compose -f docker/docker-compose.yml ps +docker compose -f docker/docker-compose.yml logs -f ``` 常见原因: @@ -54,8 +54,8 @@ docker compose logs -f 端口对应关系: - `docker run -p 8081:80` 对外一般是 `8081` -- `docker-compose.yml` 默认是 `28081` -- `docker-compose.dev.yml` 默认是 `28082` +- `docker/docker-compose.yml` 默认是 `28081` +- `docker/docker-compose.dev.yml` 默认是 `28082` ## 常见问题 2:`/mcp` 访问失败 @@ -138,7 +138,7 @@ http://localhost:11434/v1 http://host.docker.internal:11434/v1 ``` -如果你使用 `docker-compose.dev.yml`,仓库已经帮你加了: +如果你使用 `docker/docker-compose.dev.yml`,仓库已经帮你加了: ```yaml extra_hosts: @@ -156,8 +156,8 @@ extra_hosts: 可以按这个顺序试: ```bash -docker compose down -docker compose up -d +docker compose -f docker/docker-compose.yml down +docker compose -f docker/docker-compose.yml up -d ``` 或者: