ShipAny Docs

配置说明

两层配置体系

ShipAny TanStack 刻意保持 env 文件最小化:

  1. 环境变量 — 只放启动必需项(应用 URL/名称、数据库、Auth 密钥)。
  2. 管理后台设置 — 各类服务商凭证(支付、OAuth、邮件、存储、AI、统计)在 管理后台 → Settings 中配置,存储于 config 表;设置了 CONFIG_ENCRYPTION_KEY 时自动加密。

同名环境变量仍可作为兜底——数据库中的值优先生效

必填变量

.env.development
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)。

可选变量

.env.development
# 应用品牌(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 devdb:* / 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 表中,运行时覆盖对应的环境变量。