网站配置
配置 Tanplate 的品牌、部署应用、功能、Provider 与语言。
网站核心配置位于仓库根 project.manifest.json。它是可提交、严格校验且不含 secret 的项目意图,不会因为某个环境变量存在就隐式开启功能。
配置内容
| 区块 | 作用 |
|---|---|
project | 项目名、kebab-case slug 与生产 base URL |
brand | 品牌名、短名称和站点描述 |
apps | 是否部署 Admin 与 Docs;Web 固定部署 |
features | Authentication、Projects、Content、Search 等能力 |
providers | Auth、Storage、Email、Analytics、AI 与 Social Auth 选择 |
locale | 默认语言与允许进入产物的语言 |
schemaVersion | 当前 Manifest Schema 版本 |
品牌与网址
{
"brand": {
"description": "A focused product for independent teams.",
"name": "Example",
"shortName": "Example"
},
"project": {
"baseUrl": "https://example.com",
"name": "Example",
"slug": "example"
}
}生成后的公共配置由 Web src/config/app.ts 和 Admin src/config/app.ts 消费,用于浏览器标题、SEO、Header/Footer、登录界面和管理后台品牌。Logo 图形仍分别由各应用组件持有:
- Web:
apps/web/src/components/app-logo.tsx - Admin:
apps/admin/src/components/logo.tsx
修改 Logo 时同时检查 light/dark 对比度、登录页和紧凑导航状态。
Capability Profile
每项功能显式使用 enabled 字段。部分能力还包含受约束的子配置:
{
"features": {
"authentication": { "emailAndPassword": false, "enabled": true },
"content": {
"blog": true,
"changelog": false,
"enabled": true,
"legal": true
},
"projects": { "enabled": true },
"userAssets": { "enabled": true }
}
}派生规则由 @tanplate/config 统一计算。例如 Favorites 只在 Projects 与 Authentication 同时开启时存在;Admin 自身要求 Authentication;关闭 Web 邮箱密码时至少选择一个 Social Provider,且 Auth 不再派生 Resend;Consent 由 Analytics 或 Newsletter 派生。
Provider 与 Social Auth
providers 只接受 Manifest Schema 批准的实现。socialAuth 当前支持 google 与 github:
{
"providers": {
"auth": "better-auth",
"socialAuth": ["google", "github"],
"storage": "r2"
}
}Provider 意图可以提交,OAuth client secret 必须按 环境配置 写入 Web Worker secret。
语言
{
"locale": {
"default": "en",
"supported": ["en", "zh"]
}
}当前消息目录支持 en 与 zh。默认语言必须包含在 supported 中,列表不能重复;缺失完整消息目录的语言会被拒绝。
应用配置适配
不要在页面中反复读取 Manifest。应用级映射集中在 apps/web/src/config,例如:
app.ts:APP_BRAND、默认路由和 Docs URL。authentication.ts:Authentication gate。projects.ts:Projects 与 Favorites gate。content.ts:Blog、Changelog、Legal gate。search.ts、newsletter.ts、product-ai.ts:可选能力 gate。
应用更改
修改 Manifest 后执行:
pnpm init:template
pnpm check:template
pnpm test:profiles初始化器会迁移旧版本、生成公共快照并同步受管配置;Profile 测试验证 Landing、Auth-only、Projects-readonly 和 Auth+Admin 构建裁剪。