This commit is contained in:
eric
2026-03-12 03:54:22 -05:00
parent 421f979e10
commit e7dde61e31
23 changed files with 876 additions and 125 deletions

View File

@@ -1,9 +1,15 @@
/**
* 服务配置 - PocketBase、支付等第三方服务
* 可通过环境变量覆盖,不同主题可配置不同集合/金额
* 域名更换:设置 ROOT_DOMAIN如 nomadro.com可推导默认 API 地址
*/
import { getThemeConfig } from "./site.config";
import {
DEFAULT_PAYMENT_API_URL,
DEFAULT_POCKETBASE_URL,
DEFAULT_MINIO_HOST,
} from "./domain.config";
export interface PocketBaseConfig {
enabled: boolean;
@@ -59,6 +65,12 @@ export interface ServicesConfig {
const isDev = process.env.NODE_ENV === "development";
/** 站点标识,用于 VIP 按站点隔离。digital 专题站ai.xx/android.xx各自独立如 digital_ai、digital_android */
export const SITE_ID = process.env.NEXT_PUBLIC_SITE_ID || "digital";
/** vip 站vip.hackrobot.cn的 site_id其付费 VIP 可解锁所有 digital 专题站 */
export const VIP_MASTER_SITE_ID = "vip";
/** 获取 PocketBase 配置(可传入主题覆盖) */
export function getPocketBaseConfig(themeOverride?: { joinCollection?: string }): PocketBaseConfig {
const joinCollection =
@@ -67,7 +79,7 @@ export function getPocketBaseConfig(themeOverride?: { joinCollection?: string })
"solan";
return {
enabled: true,
url: process.env.NEXT_PUBLIC_POCKETBASE_URL || process.env.POCKETBASE_URL || "https://pocketbase.hackrobot.cn",
url: process.env.NEXT_PUBLIC_POCKETBASE_URL || process.env.POCKETBASE_URL || DEFAULT_POCKETBASE_URL,
usersCollection: "users",
joinCollection,
};
@@ -77,11 +89,9 @@ export function getPocketBaseConfig(themeOverride?: { joinCollection?: string })
export function getPaymentConfig(themeOverride?: { amount?: number; type?: string }): PaymentConfig {
const base = {
enabled: true,
apiUrl:
process.env.PAYMENT_API_URL ||
(isDev ? "http://127.0.0.1:8700" : "https://api.hackrobot.cn"),
apiUrl: process.env.PAYMENT_API_URL || DEFAULT_PAYMENT_API_URL,
provider: (process.env.PAYMENT_PROVIDER as "zpay" | "xorpay") || "zpay",
defaultAmount: Number(process.env.PAYMENT_DEFAULT_AMOUNT) || 80,
defaultAmount: Number(process.env.PAYMENT_DEFAULT_AMOUNT) || 100,
defaultType: process.env.PAYMENT_DEFAULT_TYPE || "meetup",
zpaySubmitUrl: process.env.ZPAY_SUBMIT_URL || "https://zpayz.cn/submit.php",
};
@@ -94,7 +104,7 @@ export function getPaymentConfig(themeOverride?: { amount?: number; type?: strin
/** 获取 MinIO 配置(可传入主题覆盖 bucket/prefix */
export function getMinioConfig(themeOverride?: { bucket?: string; uploadPrefix?: string }): MinioConfig {
const endPoint = process.env.MINIO_ENDPOINT || "minioweb.hackrobot.cn";
const endPoint = process.env.MINIO_ENDPOINT || DEFAULT_MINIO_HOST;
const port = parseInt(process.env.MINIO_PORT || "9035", 10);
const useSSL = process.env.MINIO_USE_SSL === "true";
const bucket = themeOverride?.bucket || process.env.MINIO_BUCKET || "hackrobot";