为 uvicorn/FastAPI Python Web 项目生成独立的开发/测试/生产环境,支持前端(Vue/React)。创建独立的配置文件和启动脚本。
多环境孤立器
功能概述
多环境孤立器是一项面向实际任务的技能,主要用于将孤立的 dev/ test/ product 环境用于uvicorn/ FastAPI 的项目, 并有一个命令的前端支持( Vue/ React);What This Skill does. 这个技能解决了一个。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
多环境隔离器
使用一条命令,为基于 uvicorn/FastAPI 的项目(支持 Vue/React 前端)生成完全隔离的开发(dev)、测试(test)、生产(prod)环境。
该能力的作用
本能力解决多智能体 AI 团队中的一个常见问题:开发者、测试人员与生产用户相互干扰。 它生成一套完整的环境隔离方案,确保:
- Valina(开发者) 可在 8000/3000 端口自由试错,不影响他人
- Choco(测试人员) 可在 8001/3001 端口使用隔离的测试数据及 Playwright 测试验证发布版本
- 生产环境 稳定运行于 8002/4173 端口,完全不受开发/测试活动影响
每个环境均拥有独立的配置文件、启动脚本(后端 + 前端)、数据库、媒体存储目录及 Playwright 测试配置——彼此彻底隔离。
生成内容说明
执行初始化脚本后,将在目标项目内创建如下结构:
your-project/ ├── .env.dev # 开发配置:DEBUG=True,启用热重载,无速率限制 ├── .env.test # 测试配置:启用速率限制,QA 相关设置 ├── .env.prod # 生产配置:DEBUG=False,启用安全 CORS,多 worker 模式 ├── scripts/ │ # 后端脚本 │ ├── start-backend-dev.sh # 在 8000 端口启动开发服务(含 --reload) │ ├── start-backend-test.sh # 在 8001 端口启动测试服务 │ └── start-backend-prod.sh # 在 8002 端口启动生产服务(自动 worker 数量) │ # 前端脚本(Vue/React) │ ├── start-frontend-dev.sh # 在 3000 端口启动开发前端 │ ├── start-frontend-test.sh # 在 3001 端口启动测试前端 │ └── start-frontend-prod.sh # 在 4173 端口启动生产前端(预览模式) │ # 测试脚本 │ └── run-playwright-tests.sh # 在测试环境运行 Playwright 端到端测试 ├── data/ │ ├── dev/ # 开发数据库 + 媒体上传目录(可安全删除) │ │ └── media/ │ ├── test/ # 测试数据库 + 媒体上传目录 │ │ └── media/ │ └── prod/ # 生产数据库 + 媒体上传目录(请务必定期备份!) │ └── media/ ├── docs/ │ └── MULTI_ENV_SETUP.md # 自动生成的团队部署指南 ├── cloud_docs/frontend/ │ └── playwright.config.ts # Playwright 测试配置(仅当前端存在时生成) └── .gitignore # 已更新,排除 .env.* 和 data/ 目录
使用方法
步骤 1:运行初始化脚本
python3 scripts/setup_envs.py /path/to/your-project --name "Your Project Name" --dev-backend-port 8000 --dev-frontend-port 3000 --test-backend-port 8001 --test-frontend-port 3001 --prod-backend-port 8002 --prod-frontend-port 4173 --dev-user "Valina" --test-user "Choco" --app-module "server.main:app" --frontend-dir "cloud_docs/frontend"
除 --name 外,其余参数均为可选,均已预设合理默认值。
步骤 2:启动各环境
# Valina(开发)使用 ./scripts/start-dev.sh # 同时启动后端(8000)和前端(3000) # Choco(测试)使用 ./scripts/start-test.sh # 同时启动后端(8001)和前端(3001) ./scripts/run-playwright-tests.sh # 运行端到端测试 # 生产环境使用 ./scripts/start-prod.sh # 同时启动后端(8002)和前端(4173)
步骤 2:自定义配置
编辑生成的 .env.dev、.env.test、.env.prod 文件,添加项目专属配置,例如 API 密钥、外部服务地址等。
步骤 3:启动任一环境
# 启动开发环境(启用热重载) ./scripts/start-dev.sh # 启动测试环境 ./scripts/start-test.sh # 启动生产环境 ./scripts/start-prod.sh
每个脚本均加载其对应 .env.* 配置文件,绑定独立端口,并写入各自的 data/ 子目录。
命令参考
python3 scripts/setup_envs.py--name [options]
| 参数 | 默认值 | 说明 |
|---|---|---|
project_dir |
(必需) | 目标项目的路径 |
--name |
(必需) | 项目名称,用于配置文件与文档中 |
--dev-port |
8020 | 开发服务器端口 |
--test-port |
8010 | 测试服务器端口 |
--prod-port |
8000 | 生产服务器端口 |
--dev-user |
(无) | 开发者姓名,显示在开发环境启动提示中 |
--test-user |
(无) | 测试人员姓名,显示在测试环境启动提示中 |
--db-type |
sqlite | sqlite 或 postgres |
--app-module |
server.main:app | Uvicorn 应用模块路径 |
--dev-db |
(自动推导) | 覆盖开发环境数据库 URL |
--test-db |
(自动推导) | 覆盖测试环境数据库 URL |
--prod-db |
(自动推导) | 覆盖生产环境数据库 URL |
各环境关键差异速览
| 配置项 | 开发环境(Valina) | 测试环境(Choco) | 生产环境 |
|---|---|---|---|
| 后端端口 | 8000 | 8001 | 8002 |
| 前端端口 | 3000 | 3001 | 4173 |
DEBUG |
True | True | False |
| 热重载 | 启用 | 禁用 | 禁用 |
| CORS | 允许全部来源 | 允许全部来源 | 严格限制 |
| 速率限制 | 关闭 | 开启 | 开启 |
| Worker 数量 | 1(带 reload) | 1 | 自动(按 CPU 核心数) |
| 日志等级 | DEBUG | INFO | WARNING |
| 数据库目录 | data/dev/ |
data/test/ |
data/prod/ |
| 媒体存储目录 | data/dev/media/ |
data/test/media/ |
data/prod/media/ |
| Playwright 测试 | ❌ 不推荐 | ✅ 推荐 | ❌ 禁止 |
推荐的 Git 分支策略
采用本方案的团队建议如下分支模型:
main ──────────── 生产环境(start-prod.sh)— 端口 8002/4173 ├── release/* ── 测试环境(start-test.sh + run-playwright-tests.sh)— 端口 8001/3001 └── feature/* ── 开发环境(start-dev.sh)— 端口 8000/3000
- Valina(开发者) 在
feature/*分支开发,部署至开发环境(8000/3000) - 合并至
release/*分支后,Choco(测试人员) 在测试环境(8001/3001)进行验证 - Choco 运行 Playwright 测试:
./scripts/run-playwright-tests.sh - 测试通过后,合并至
main分支,并部署至生产环境(8002/4173)
并行开发与测试
核心优势:Valina 与 Choco 可同时工作,互不冲突!
时间 | Valina(开发) | Choco(测试) ------|---------------------------|--------------------------- 14:00 | start-dev.sh(8000/3000) | - 14:05 | 继续编码... | start-test.sh(8001/3001) 14:10 | 继续编码... | run-playwright-tests.sh 14:20 | 继续编码... | 测试通过!提交结果 14:25 | 继续编码... | stop-test.sh
零端口冲突!零数据干扰! ✅
重要注意事项
- 已有文件不会被覆盖。 若
.env.dev已存在,脚本将跳过并输出警告。可安全重复执行。 - 后端启动脚本专为 uvicorn 设计。 生成的
start-backend-*.sh脚本调用uvicorn命令。如使用其他框架,请在生成后手动修改脚本。 - 前端脚本支持 Vue/React。 生成的
start-frontend-*.sh脚本使用npm run dev和npm run preview。Vite 项目可开箱即用。 - 生产环境 JWT 密钥必须更换。 生成的
.env.prod中JWT_SECRET仅为占位符,请上线前替换为强随机值。 - 请备份生产数据。
data/prod/目录包含生产数据库,请建立定期备份机制。 - Playwright 测试依赖 Node.js。 测试脚本要求已安装 Playwright:
npm install -D @playwright/test - 测试数据清理建议。 Playwright 测试运行后,建议清理测试数据以保持测试环境整洁。
详细配置参考
关于所有环境变量及故障排查,请查阅 references/config-options.md
热门AI工具
相关专题
本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。
0
2026.11.02
本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。
0
2026.11.02
本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。
0
2026.11.02
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习