From 779287f66286414b94f323ead74244dc133f6660 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Tue, 26 May 2026 09:48:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.mac-docker.example | 20 +++++--------------- .env.server.example | 20 +++++--------------- README.md | 8 ++++---- apps/backend/README.md | 4 ++-- apps/backend/src/config/env-overrides.ts | 12 ------------ apps/backend/src/config/runtime-env.ts | 15 --------------- 6 files changed, 16 insertions(+), 63 deletions(-) diff --git a/.env.mac-docker.example b/.env.mac-docker.example index 0aa3a517..0c834f2c 100644 --- a/.env.mac-docker.example +++ b/.env.mac-docker.example @@ -1,39 +1,29 @@ -# Mac Docker development template. Copy to .env for local full-stack testing. -# For public claim links, update APP_BASE_URL and CLAIM_BASE_URL together. -# App +# Mac Docker 本机联调模板。复制为 .env 后按需修改。 +# 如果使用 ngrok / cloudflared 等公网地址,只需要同步修改 APP_DOMAIN / CADDY_SITE_ADDR / CLAIM_BASE_URL。 + +# App / Caddy APP_DOMAIN=localhost -APP_BASE_URL=http://localhost CADDY_SITE_ADDR=http://localhost TZ=Asia/Shanghai BACKEND_PORT=3000 # Claim Links CLAIM_BASE_URL=http://localhost/#/claim -CLAIM_TOKEN_TTL_HOURS=24 # Database POSTGRES_DB=order_site POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres DATABASE_URL=postgres://postgres:postgres@postgres:5432/order_site -DATABASE_SSL=false -DATABASE_MAX_CONNECTIONS=10 POSTGRES_PORT=5432 -# Data And Logging -DATA_ROOT=/app/data +# Logging LOG_LEVEL=info # Admin ADMIN_SESSION_SECRET=dev-local-session-secret -ADMIN_SESSION_TTL_HOURS=12 ADMIN_DEFAULT_USERS_JSON=[{"username":"admin","password":"dev-admin-123456","role":"admin"},{"username":"operator","password":"dev-operator-123456","role":"operator"}] # 91Kaquan NINETYONE_USER_ID= NINETYONE_SECRET= -NINETYONE_VERSION=1.0 -NINETYONE_SHOP_ID=91kaquan -NINETYONE_SHOP_NAME=91卡券 -NINETYONE_TIMESTAMP_TOLERANCE_SECONDS=600 -NINETYONE_CARDS_ENCODING=aes-256-ecb-base64 diff --git a/.env.server.example b/.env.server.example index 1cbcf74f..a5e0a88a 100644 --- a/.env.server.example +++ b/.env.server.example @@ -1,38 +1,28 @@ -# Production deployment template. Copy to .env and replace every change-me value. -# Keep real secrets out of git. -# App +# 生产部署模板。复制为 .env 后替换所有 change-me 值。 +# 真实密钥不要提交到 git。 + +# App / Caddy APP_DOMAIN=order.khhao.com -APP_BASE_URL=https://order.khhao.com CADDY_SITE_ADDR=https://order.khhao.com TZ=Asia/Shanghai BACKEND_PORT=3000 # Claim Links CLAIM_BASE_URL=https://order.khhao.com/#/claim -CLAIM_TOKEN_TTL_HOURS=24 # Database POSTGRES_DB=order_site POSTGRES_USER=postgres POSTGRES_PASSWORD=change-me-postgres-password DATABASE_URL=postgres://postgres:change-me-postgres-password@postgres:5432/order_site -DATABASE_SSL=false -DATABASE_MAX_CONNECTIONS=20 -# Data And Logging -DATA_ROOT=/app/data +# Logging LOG_LEVEL=info # Admin ADMIN_SESSION_SECRET=change-me-long-random-session-secret -ADMIN_SESSION_TTL_HOURS=12 ADMIN_DEFAULT_USERS_JSON=[{"username":"admin","password":"change-me-admin-password","role":"admin"},{"username":"operator","password":"change-me-operator-password","role":"operator"}] # 91Kaquan NINETYONE_USER_ID= NINETYONE_SECRET= -NINETYONE_VERSION=1.0 -NINETYONE_SHOP_ID=91kaquan -NINETYONE_SHOP_NAME=91卡券 -NINETYONE_TIMESTAMP_TOLERANCE_SECONDS=600 -NINETYONE_CARDS_ENCODING=aes-256-ecb-base64 diff --git a/README.md b/README.md index d33bb416..0bbaee3a 100644 --- a/README.md +++ b/README.md @@ -98,12 +98,12 @@ cp .env.server.example .env 常用变量: -- `APP_BASE_URL`:应用公网地址,用于推导领取链接 -- `CLAIM_BASE_URL`:领取页地址,优先级高于 `APP_BASE_URL` +- `APP_DOMAIN` / `CADDY_SITE_ADDR`:Caddy 对外域名与监听地址 +- `CLAIM_BASE_URL`:领取页完整地址 +- `DATABASE_URL`:PostgreSQL 连接串 - `ADMIN_SESSION_SECRET`:后台登录态签名密钥 - `ADMIN_DEFAULT_USERS_JSON`:默认后台用户 -- `DATABASE_URL`:PostgreSQL 连接串 -- `NINETYONE_*`:91 卡券对接配置 +- `NINETYONE_USER_ID` / `NINETYONE_SECRET`:91 卡券开放接口凭据 ## 运行数据 diff --git a/apps/backend/README.md b/apps/backend/README.md index 2b296c41..52e45f65 100644 --- a/apps/backend/README.md +++ b/apps/backend/README.md @@ -43,12 +43,12 @@ npm test 常用配置: -- 服务端口 `PORT` +- 服务端口 `PORT`(Docker 部署中由根目录 `.env` 的 `BACKEND_PORT` 映射) - 日志级别 `LOG_LEVEL=debug|info|warn|error` - 数据库连接 `DATABASE_URL` - 后台登录密钥 `ADMIN_SESSION_SECRET` - 默认后台用户 `ADMIN_DEFAULT_USERS_JSON` -- 91 卡券与快手相关平台配置 +- 91 卡券开放接口凭据 `NINETYONE_USER_ID` / `NINETYONE_SECRET` ## 接口 diff --git a/apps/backend/src/config/env-overrides.ts b/apps/backend/src/config/env-overrides.ts index 0b018d35..0f3ae4ac 100644 --- a/apps/backend/src/config/env-overrides.ts +++ b/apps/backend/src/config/env-overrides.ts @@ -9,7 +9,6 @@ import { parseBoolean, parseInteger, parseJsonArray, - parseCommaSeparatedStrings, } from "./runtime-env.js"; import { deepMerge } from "./runtime-merge.js"; @@ -305,17 +304,6 @@ function adminUsersJsonEnv( }; } -function stringArrayEnv( - env: string, - configPath: RuntimeConfigPath -): EnvOverride { - return { - env, - path: configPath, - read: parseCommaSeparatedStrings, - }; -} - function corsOriginsEnv( env: string, configPath: RuntimeConfigPath diff --git a/apps/backend/src/config/runtime-env.ts b/apps/backend/src/config/runtime-env.ts index 699fa5ff..706dd5aa 100644 --- a/apps/backend/src/config/runtime-env.ts +++ b/apps/backend/src/config/runtime-env.ts @@ -96,18 +96,3 @@ export function parseJsonArray(rawValue: unknown): T[] | null { return null; } } - -export function parseCommaSeparatedStrings(rawValue: unknown): string[] | null { - const normalized = String(rawValue || "").trim(); - - if (!normalized) { - return null; - } - - const items = normalized - .split(",") - .map((item) => item.trim()) - .filter((item) => item.length > 0); - - return items.length > 0 ? items : null; -}