This commit is contained in:
eric
2026-03-12 03:54:50 -05:00
parent 170a9939aa
commit 40230dd646
20 changed files with 645 additions and 95 deletions

23
config/domain.config.ts Normal file
View File

@@ -0,0 +1,23 @@
/**
* 域名与根域配置 - 特色标识
* 更换域名(如 *.hackrobot.cn -> *.nomadro.com只需设置 ROOT_DOMAIN 或各独立变量
*/
const isDev = process.env.NODE_ENV === "development";
export const ROOT_DOMAIN =
process.env.ROOT_DOMAIN || process.env.NEXT_PUBLIC_ROOT_DOMAIN || "hackrobot.cn";
export const AUTH_COOKIE_DOMAIN =
process.env.AUTH_COOKIE_DOMAIN || `.${ROOT_DOMAIN}`;
export const DEFAULT_PAYMENT_API_URL = isDev
? "http://127.0.0.1:8700"
: `https://api.${ROOT_DOMAIN}`;
export const DEFAULT_POCKETBASE_URL = `https://pocketbase.${ROOT_DOMAIN}`;
export const DEFAULT_MINIO_HOST = `minioweb.${ROOT_DOMAIN}`;
/** digital 专题站默认地址(用于跨站链接) */
export const DEFAULT_DIGITAL_URL = `https://digital.${ROOT_DOMAIN}`;

View File

@@ -8,6 +8,7 @@ export {
getPaymentConfig,
getJoinPaymentConfig,
getMinioConfig,
SITE_ID,
} from "./services.config";
export type {
PocketBaseConfig,

View File

@@ -1,7 +1,14 @@
/**
* 服务配置 - PocketBase、支付、MinIO
* 域名更换:设置 ROOT_DOMAIN如 nomadro.com可推导默认 API 地址
*/
import {
DEFAULT_PAYMENT_API_URL,
DEFAULT_POCKETBASE_URL,
DEFAULT_MINIO_HOST,
} from "./domain.config";
export interface PocketBaseConfig {
enabled: boolean;
url: string;
@@ -33,13 +40,19 @@ export interface MinioConfig {
const isDev = process.env.NODE_ENV === "development";
/** 站点标识,用于 VIP 按站点隔离 */
export const SITE_ID = process.env.NEXT_PUBLIC_SITE_ID || "meetup";
/** meetup 加入游牧中国 价格测试用1元 */
export const MEETUP_JOIN_AMOUNT = 100;
export function getPocketBaseConfig(): PocketBaseConfig {
return {
enabled: true,
url:
process.env.NEXT_PUBLIC_POCKETBASE_URL ||
process.env.POCKETBASE_URL ||
"https://pocketbase.hackrobot.cn",
DEFAULT_POCKETBASE_URL,
usersCollection: "users",
joinCollection: process.env.POCKETBASE_JOIN_COLLECTION || "solan",
};
@@ -48,11 +61,9 @@ export function getPocketBaseConfig(): PocketBaseConfig {
export function getPaymentConfig(): PaymentConfig {
return {
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",
};
@@ -60,10 +71,9 @@ export function getPaymentConfig(): PaymentConfig {
/** 获取「加入」场景的支付配置 */
export function getJoinPaymentConfig(): { amount: number; type: string } {
const payment = getPaymentConfig();
return {
amount: Number(process.env.PAYMENT_JOIN_AMOUNT) || payment.defaultAmount,
type: process.env.PAYMENT_JOIN_TYPE || payment.defaultType,
amount: Number(process.env.PAYMENT_JOIN_AMOUNT) || MEETUP_JOIN_AMOUNT,
type: process.env.PAYMENT_JOIN_TYPE || "meetup",
};
}
@@ -71,7 +81,7 @@ 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 bucket = themeOverride?.bucket || process.env.MINIO_BUCKET || "hackrobot";
const publicUrl =