精简环境变量配置
This commit is contained in:
+5
-15
@@ -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
|
||||
|
||||
+5
-15
@@ -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
|
||||
|
||||
@@ -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 卡券开放接口凭据
|
||||
|
||||
## 运行数据
|
||||
|
||||
|
||||
@@ -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`
|
||||
|
||||
## 接口
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -96,18 +96,3 @@ export function parseJsonArray<T = unknown>(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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user