/** * 域名与根域配置 - 特色标识 * 更换域名(如 *.hackrobot.cn -> *.nomadro.com)时,只需设置 ROOT_DOMAIN 或各独立变量 * * 环境变量: * - ROOT_DOMAIN: 根域名,如 nomadro.com,用于推导 Cookie、API 等默认值 * - AUTH_COOKIE_DOMAIN: Cookie 根域,如 .nomadro.com(优先于 ROOT_DOMAIN) * - PAYMENT_API_URL: 支付 API 地址 * - NEXT_PUBLIC_POCKETBASE_URL: PocketBase 地址 * - NEXT_PUBLIC_SITE_URL: 站点根地址 */ const isDev = process.env.NODE_ENV === "development"; /** 根域名,用于推导默认值。如 nomadro.com、hackrobot.cn */ export const ROOT_DOMAIN = process.env.ROOT_DOMAIN || process.env.NEXT_PUBLIC_ROOT_DOMAIN || "hackrobot.cn"; /** 支付 API 默认地址。生产环境固定为 api.${ROOT_DOMAIN},避免 .env 中 127.0.0.1 导致支付失败 */ export const DEFAULT_PAYMENT_API_URL = isDev ? "http://127.0.0.1:8007" : `https://api.${ROOT_DOMAIN}`; /** 生产环境若 PAYMENT_API_URL 指向 localhost,则忽略并使用 api 域名 */ export function resolvePaymentApiUrl(): string { const url = process.env.PAYMENT_API_URL || DEFAULT_PAYMENT_API_URL; if (!isDev && /^(https?:\/\/)?(127\.0\.0\.1|localhost)(:\d+)?(\/|$)/i.test(url)) { return `https://api.${ROOT_DOMAIN}`; } return url; } /** PocketBase 默认地址 */ export const DEFAULT_POCKETBASE_URL = `https://pocketbase.${ROOT_DOMAIN}`; /** 站点根地址默认值 */ export const DEFAULT_SITE_URL = isDev ? "http://localhost:3001" : `https://${ROOT_DOMAIN}`; /** MinIO 端点默认主机 */ export const DEFAULT_MINIO_HOST = `minioweb.${ROOT_DOMAIN}`; /** meetup(目的地)站链接 */ export const MEETUP_URL = `https://meetup.${ROOT_DOMAIN}/`; /** vip(异度星球)站链接 */ export const VIP_URL = `https://vip.${ROOT_DOMAIN}/`;