---
url: /docs/getting-started/project-structure.md
---
# 目录结构

## 应用目录

```text
apps/
  web/       公开网页、工具页、博客、搜索优化与边缘入口
  app/       登录页和私有工作台
  api/       认证、业务接口及不同运行环境入口
  email/     邮件模板及模板预览
```

公开站页面在 `apps/web/pages/`，工作台页面在 `apps/app/routes/`，业务接口在 `apps/api/routers/`。三个应用可分别构建，通过公开站入口统一对外提供服务。

## 共享目录

| 目录                       | 职责                                       |
| -------------------------- | ------------------------------------------ |
| `packages/core/website.ts` | 品牌、导航、套餐、工具与功能开关的统一配置 |
| `packages/core/site.ts`    | 从统一配置派生兼容视图，通常不直接修改     |
| `packages/ui/design/`      | 设计变量、共享组件与布局样式               |
| `packages/ui/components/`  | 现有工作台基础组件                         |
| `packages/ws-protocol/`    | 实时消息协议与独立示例，尚未接入主站       |
| `db/schema/`               | 账号、组织、订阅、工具记录与积分数据模型   |
| `db/migrations/`           | 已提交的数据库迁移及元数据                 |
| `scripts/`                 | 复制新站、配置诊断、本地预览与部署脚本     |
| `infra/`                   | 各环境基础设施配置                         |
| `docs/`                    | 本中文教程                                 |

## 配置和生成文件

根目录 `.env.example` 是变量说明，`.env.local` 保存本机值；线上秘密写入对应环境的服务配置。三份 `apps/*/wrangler.jsonc` 定义部署名称及绑定。

`apps/app/lib/routeTree.gen.ts` 是路由生成文件，通过开发或构建更新，不要手写。各应用 `dist/`、文档 `.vitepress/dist/`、本地 `.local/` 和密钥文件不作为新站源码复制。

改文件前先看所在目录的 `AGENTS.md`。跨应用复用逻辑放共享包，单个应用专用逻辑留在该应用内。
