
Reflex Build 应用源码下载与本地自托管Download App 完整指南【免费下载链接】reflex️ Web apps in pure Python 项目地址: https://gitcode.com/GitHub_Trending/re/reflex导读Download下载是 Reflex BuildReflex 的 AI Builder 平台中应用生命周期管理的关键动作之一它为当前应用生成一份一次性的源码导出包供你在本地继续开发或迁移到自托管环境。本文基于 download_app.md 展开并结合仓库中reflex export的 CLI 实现reflex/reflex.py、reflex/utils/export.py以及自托管、Secrets、Git 集成等配套文档讲清下载产物里有什么、哪些值不会被打包、下载后如何接续开发与部署。读完你可以完整掌握从 Reflex Build 下载 → 本地运行 → 接回源码控制的端到端流程。一、下载源码操作入口与步骤1.1 两个入口下载动作在 Reflex Build 中有两个等效入口Deploy 按钮旁的菜单打开应用页面右上角Deploy旁边的更多菜单more menu选择Download。应用 Settings设置页从应用的更多菜单进入Settings在Reuse and Export复用与导出区域同样提供下载入口。这一点与 Copy App 一致——Copy与Download两个动作都出现在 Settings 中Deploy 菜单则同时提供两者的快捷入口参见 General App Settings。1.2 执行步骤打开Deploy旁边的菜单。选择Download该动作同样可以在应用Settings中找到。保存并解压生成的归档文件。下载即触发一次一次性导出one-time source export目的是为本地开发local development或自托管self-hosting提供可移植的源码副本。说明Download 与 Deploy App 不同——Deploy 是将当前应用发布到 Reflex Cloud 或已连接的云厂商Download 则是把源码完整取回本地后续由你自己决定如何运行和部署。二、归档里有什么一次导出包含的完整内容根据文档下载得到的归档包含四类内容足以支撑脱离 Build 平台继续开发内容说明应用源码app source应用的全部 Python 代码即页面、组件与状态逻辑资源文件assets应用中引用的静态资源例如图片、字体、favicon.ico、robots.txt等依赖清单dependency manifests锁定项目依赖的清单文件例如仓库中示例应用使用的 app/reflex.lock/bun.lock 与 app/reflex.lock/package.json以及 Python 侧的pyproject.toml/requirements.txtReflex 配置Reflex configuration项目根目录的rxconfig.py如 app/rxconfig.py保存app_name、api_url、frontend_port/backend_port等运行参数源码级印证导出机制的底层实现把应用编译、构建并打包这一整套能力在仓库中对应reflex exportCLI 命令与其底层实现 reflex/utils/export.py 中的export()函数。从 reflex/reflex.py#L595-L690 的命令定义与实现看一次导出会依次完成编译生产版本应用调用prerequisites.get_compiled_app(prerender_routesssr, triggerexport)确保模块可导入且执行app.compile()搭建前端调用build.setup_frontend(Path.cwd())准备.web目录并安装前端依赖构建调用build.build()生成前端产物打包调用build.zip_app(...)将前端frontend与后端backend打包为 zipfrontend.zip/backend.zip对应参数zipping、frontend、backend、zip_dest_dir。整个过程会通过telemetry.send(export, ...)上报编译、构建、打包各阶段耗时详见 reflex/utils/export.py#L74-L117。可以推断Reflex Build 平台上的Download动作正是这套导出能力在云端侧的呈现——把编译好的应用源码 资产 依赖 配置聚合为一份可下载的归档。CLI 导出参数速查本地项目同样适用如果你在本地直接操作 Reflex 项目reflex export命令提供了更细粒度的控制常见参数如下见 reflex/reflex.py#L595-L690参数作用--zip/--no-zip是否将前后端导出打包为 zip默认--zip--no-zip时前端产物落在.web/build/client/后端源码保留在项目根目录--frontend-only/--backend-only只导出前端或只导出后端二者互斥--zip-dest-dirzip 文件输出目录默认当前工作目录--exclude-from-backend从后端 zip 中排除指定文件或目录可重复使用--ssr/--no-ssr是否启用前端服务端渲染SSR默认开启--env导出环境可选dev/prod默认prod自托管文档也印证了导出产物的用途详见 self-hosting.mdAPI_URLhttp://app.example.com:8000 reflex export会生成可直接上传静态托管服务的frontend.zip含压缩后的 HTML、JavaScript、CSS以及包含后端 Python 代码的backend.zip。三、不会被导出的部分Secrets 与受保护项目值下载归档是可移植源码但不是完整的环境快照。文档明确强调Secrets、集成凭据integration credentials以及其他受保护的项目值不是源码导出的可移植部分。必须在目标环境中单独配置并且绝不提交到源码控制。这是下载功能最重要的安全边界导出包内不含API 密钥、数据库连接串、Token、OAuth 凭据等敏感值拿到归档后你需要在本地/自托管环境自行配置这些环境变量否则应用运行时会因缺少凭据而失败任何时候都不要把敏感值写入源码文件或提交进 Git。关于凭据的正确管理方式参见 Secrets and Environment Variables应用内读取后端 Python 代码用os.environ读取例如import os database_url os.environ[ASYNC_DB_URL]部署时注入通过 CLI 传参注入例如reflex deploy --project project-id --envfile .env reflex deploy --project project-id --env OPENAI_API_KEYvalue多个值可重复使用--env同时提供--envfile与--env时--envfile中的值优先。Deployments 面板管理已部署应用可在Deployments → Settings → Secrets中搜索、编辑环境变量支持NAMEvalue原始编辑器并可选择是否重启应用使变更立即生效开启Sensitive模式后团队成员将无法查看、编辑或删除这些值可用性与修改权限取决于组织套餐与项目权限。对于下载后的本地运行还可在rxconfig.py中通过rx.Config(api_url...)或运行时环境变量API_URL注入后端地址参见 self-hosting.md。多环境场景下也可以用 Cloud Config File 中的envfile字段如.env.production区分开发/预发/生产配置。四、下载之后本地开发与自托管接续下载归档解压后你可以把它当作一个普通 Reflex 项目对待。核心接续步骤4.1 配置后端地址编辑rxconfig.py将api_url设置为公网可达的服务器地址带:8000端口这是前端与后端状态交互的前提config rx.Config( app_nameyour_app_name, api_urlhttp://app.example.com:8000, )也可以运行时通过环境变量API_URL覆盖从而保留本地开发默认值。若需将后端挂在反向代理子路径下如 nginx 的/api/*应使用backend_path配置而非把前缀写进api_url详见 self-hosting.md。4.2 生产模式运行reflex run --env prod生产模式生成优化构建默认静态前端HTML/JS/CSS暴露在3000端口后端事件处理器监听8000端口。由于后端使用 WebSocketnginx、Apache 等反向代理需配置传递Upgrade头。4.3 容器化自托管可选仓库的 docker-example/README.md 提供了多种容器化部署参考simple-two-port最基础的双端口生产部署依赖既有负载均衡转发流量simple-one-port静态导出前端并用 Caddy 以单端口服务production-compose单台 VPS 上一站式compose.yaml包含 Web 服务器、一个或多个后端实例、Redis 与 PostgreSQLproduction-app-platform面向 Azure、AWS、Google Cloud Run 等应用托管平台的后端镜像。构建前需在项目根目录放置requirements.txt包含reflex包并更新rxconfig.py的api_url为浏览器可直接访问的外部地址。五、接回源码控制Download 与 Git 集成的分工Download 是一次性导出适合取走一份快照如果你需要持续的版本管理应使用 Git 集成而不是反复手动下载连接 GitHubreflex-buildGitHub App通过 OAuth 将单个 Builder 应用与 GitHub 仓库双向同步——支持 push把编辑器当前状态提交为普通 Git commit、pull拉取远端提交更新编辑器文件、切换分支与回滚到任意历史版本仓库默认main分支且为私有。详见 Connecting to GitHub。连接项目仓库Project Repositories在项目侧连接 GitHub、GitLab、Bitbucket、Azure DevOps、自建 Git 服务器等 HTTPS Git 远程仓库提供仓库 HTTPS 克隆 URL 与个人访问令牌让 Reflex Build 在 Agent 开始工作前先克隆已有代码。详见 Connecting to Git Providers。两者的典型配合是先用 Download 把云端应用取回本地 → 本地开发调试 → 通过 Git 集成把变更推回 Build 或推送到你自己的仓库。无论走哪条路都请遵守同一安全红线——凭据单独配置、永不提交进源码控制。六、与 Copy 的边界什么时候用 Download 而不是 CopyCopy App 与 Download 都位于应用生命周期管理之中但定位不同动作产物典型场景Copy在当前项目内生成一个独立的新应用包含代码、状态、配置与依赖对副本的改动不影响原应用尝试重大变更而不动原应用复用已验证的起点Download一份一次性的源码导出归档脱离 Build 平台到本地本地开发、自托管、迁移到自己的基础设施两者都遵循同一安全原则共享或部署前需单独复核集成、Secrets 与可见性设置详见 General App Settings。若你的目标是把应用带回家自己跑Download 是正确的选择。小结Download App 是 Reflex Build 应用生命周期中连接云端构建与本地/自托管的桥梁一份归档带走应用源码、资产、依赖清单与 Reflex 配置却刻意不带走任何 Secrets——这正是它既便携又安全的原因。结合仓库中 reflex/utils/export.py 与 reflex/reflex.py 的实现可以看到导出能力在 CLI 侧同样完整可用reflex export及其--frontend-only、--no-zip、--ssr等参数自托管侧则由 self-hosting.md 与 docker-example 提供落地路径。下载之后请用 Git 集成接续版本控制并在目标环境单独配置凭据即可无缝衔接本地开发与生产部署。【免费下载链接】reflex️ Web apps in pure Python 项目地址: https://gitcode.com/GitHub_Trending/re/reflex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考