logoPay4SaaS
部署

双域名部署

Pay4SaaS 支持一套代码部署两个独立站点 —— 例如海外站(example.com)和国内站(example.cn)。完全通过环境变量控制,无需改动任何代码。

工作原理

每个域名是一个独立部署,拥有各自的 .env 文件。核心环境变量是 NEXT_PUBLIC_LOCALE_SITE

  • 主站(如 .com):不设置 NEXT_PUBLIC_LOCALE_SITE
  • 副站(如 .cn):NEXT_PUBLIC_LOCALE_SITE=cn
# 主站(.com)—— 不设置 NEXT_PUBLIC_LOCALE_SITE
NEXT_PUBLIC_SITE_URL=https://www.example.com
NEXT_PUBLIC_PAYMENT_PROVIDERS=stripe,paypal

# 副站(.cn)—— 设置 NEXT_PUBLIC_LOCALE_SITE
NEXT_PUBLIC_LOCALE_SITE=cn
NEXT_PUBLIC_SITE_URL=https://www.example.cn
NEXT_PUBLIC_PAYMENT_PROVIDERS=alipay

变化范围

NEXT_PUBLIC_LOCALE_SITE=cn(值为 cn)触发

维度主站副站(cn)
货币USD ($)CNY (¥)
价格amount / priceamountCNY / priceCNY
默认语言英文中文
服务条款 / 隐私政策英文版中文版
ICP 备案号隐藏显示(需设置 NEXT_PUBLIC_ICP_BEIAN
试用期开启关闭

NEXT_PUBLIC_LOCALE_SITE 存在(任意值)触发

只要设置了这个变量——无论值是什么——该站点就被视为副站,SEO 完全禁用:

维度主站副站
robots.txtAllow: /Disallow: /
Sitemap完整站点地图
Meta robots不设置noindex, nofollow

这意味着只有主域名会被搜索引擎收录。

差异环境变量一览

变量主站(.com)副站(.cn)用途
NEXT_PUBLIC_LOCALE_SITE(不设置)cn开启副站模式
NEXT_PUBLIC_SITE_URLhttps://www.example.comhttps://www.example.cn链接、站点地图、OG 标签的基础 URL
NEXT_PUBLIC_PAYMENT_PROVIDERSstripe,paypal,creemalipay显示哪些支付按钮
NEXT_PUBLIC_PRICING_MODEL自行选择自行选择两个域名可以用不同的定价模式
NEXT_PUBLIC_ICP_BEIAN(不设置)备案号页脚显示 ICP 备案
NEXT_PUBLIC_CONTACT_EMAIL海外邮箱国内邮箱联系页面展示

支付相关密钥(Stripe 密钥、支付宝密钥等)只需在对应部署中配置。

本地开发

使用 npm run dev:cn 可以本地预览副站效果,会加载 .env.local.cn 中的 NEXT_PUBLIC_LOCALE_SITE=cn

npm run dev       # 预览主站
npm run dev:cn    # 预览副站

价格配置

config/payment.ts 中,每个套餐支持双币种定价:

basic: {
  amount: 9.99,          // USD —— 主站使用
  amountCNY: 29,         // CNY —— 副站(cn)使用
  // ...
}

如果未设置 amountCNY,副站会回退使用 USD 价格。

共享数据库

两个部署可以共享同一个 Supabase 数据库。用户账号、订阅、用量数据在两个域名间互通。Cookie 域名会自动从 NEXT_PUBLIC_SITE_URL 中提取,确保会话正常工作。

部署方式

每个域名需要各自独立的部署(例如两个 Vercel 项目,或一个 Vercel + 一个 VPS)。唯一的区别是环境变量——代码完全相同。

  1. 用主站的 .env 部署主站
  2. 用包含 NEXT_PUBLIC_LOCALE_SITE=cn.env 部署副站
  3. 两个部署指向同一个 Git 仓库和同一个分支

On this page