配置说明
两层配置体系
ShipAny TanStack 刻意保持 env 文件最小化:
- 环境变量 — 只放启动必需项(应用 URL/名称、数据库、Auth 密钥)。
- 管理后台设置 — 各类服务商凭证(支付、OAuth、邮件、存储、AI、统计)在 管理后台 → Settings 中配置,存储于
config表;设置了CONFIG_ENCRYPTION_KEY时自动加密。
同名环境变量仍可作为兜底——数据库中的值优先生效。
必填变量
VITE_APP_URL=http://localhost:3000
VITE_APP_NAME=My App
DATABASE_PROVIDER=sqlite
DATABASE_URL=file:data/local.db
# 生成方式:openssl rand -base64 32
AUTH_SECRET=
VITE_*变量会被 Vite 暴露给客户端(import.meta.env);无前缀变量仅服务端可见(process.env)。
可选变量
# 应用品牌(src/config/index.ts 中有默认值)
VITE_APP_DESCRIPTION=Ship your SaaS faster
VITE_APP_LOGO=/logo.png
VITE_DEFAULT_LOCALE=en
# 加密管理后台 Settings 保存的密钥(AES-256-GCM)。
# 一旦设置请保持稳定——更换会导致已加密的值无法解密。
CONFIG_ENCRYPTION_KEY=
# 数据库(高级 / 非 sqlite)
# DATABASE_AUTH_TOKEN= # Turso 鉴权 token
# DB_SCHEMA=public # Postgres schema
# DB_SINGLETON_ENABLED=false # 复用单一连接(serverless 场景)
# DB_MAX_CONNECTIONS=1
# Auth(默认取 VITE_APP_URL)
# AUTH_URL=http://localhost:3000环境变量加载顺序
由 src/lib/env.ts 加载(pnpm dev 和 db:* / rbac:* 脚本共用):
.env.{NODE_ENV}.local > .env.{NODE_ENV} > .env.local > .env因此开发环境的配置写在 .env.development 即可。
管理后台设置
使用管理员账号登录后打开 /admin → Settings,可配置:
- 鉴权 — 邮箱登录开关、邮箱验证、Google/GitHub OAuth 凭证、Google One Tap
- 支付 — Stripe / Creem / 支付宝 / 微信支付凭证
- 邮件 — Resend API Key 与发件地址
- 积分 — 注册赠送积分(开关 / 数量 / 有效天数)
所有值存储在 config 表中,运行时覆盖对应的环境变量。