精简环境变量配置

This commit is contained in:
yml2213
2026-05-26 09:48:05 +08:00
parent 8b1904d732
commit 779287f662
6 changed files with 16 additions and 63 deletions
+5 -15
View File
@@ -1,39 +1,29 @@
# Mac Docker development template. Copy to .env for local full-stack testing. # Mac Docker 本机联调模板。复制为 .env 后按需修改。
# For public claim links, update APP_BASE_URL and CLAIM_BASE_URL together. # 如果使用 ngrok / cloudflared 等公网地址,只需要同步修改 APP_DOMAIN / CADDY_SITE_ADDR / CLAIM_BASE_URL
# App
# App / Caddy
APP_DOMAIN=localhost APP_DOMAIN=localhost
APP_BASE_URL=http://localhost
CADDY_SITE_ADDR=http://localhost CADDY_SITE_ADDR=http://localhost
TZ=Asia/Shanghai TZ=Asia/Shanghai
BACKEND_PORT=3000 BACKEND_PORT=3000
# Claim Links # Claim Links
CLAIM_BASE_URL=http://localhost/#/claim CLAIM_BASE_URL=http://localhost/#/claim
CLAIM_TOKEN_TTL_HOURS=24
# Database # Database
POSTGRES_DB=order_site POSTGRES_DB=order_site
POSTGRES_USER=postgres POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres POSTGRES_PASSWORD=postgres
DATABASE_URL=postgres://postgres:postgres@postgres:5432/order_site DATABASE_URL=postgres://postgres:postgres@postgres:5432/order_site
DATABASE_SSL=false
DATABASE_MAX_CONNECTIONS=10
POSTGRES_PORT=5432 POSTGRES_PORT=5432
# Data And Logging # Logging
DATA_ROOT=/app/data
LOG_LEVEL=info LOG_LEVEL=info
# Admin # Admin
ADMIN_SESSION_SECRET=dev-local-session-secret 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"}] ADMIN_DEFAULT_USERS_JSON=[{"username":"admin","password":"dev-admin-123456","role":"admin"},{"username":"operator","password":"dev-operator-123456","role":"operator"}]
# 91Kaquan # 91Kaquan
NINETYONE_USER_ID= NINETYONE_USER_ID=
NINETYONE_SECRET= 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
View File
@@ -1,38 +1,28 @@
# Production deployment template. Copy to .env and replace every change-me value. # 生产部署模板。复制为 .env 后替换所有 change-me 值。
# Keep real secrets out of git. # 真实密钥不要提交到 git
# App
# App / Caddy
APP_DOMAIN=order.khhao.com APP_DOMAIN=order.khhao.com
APP_BASE_URL=https://order.khhao.com
CADDY_SITE_ADDR=https://order.khhao.com CADDY_SITE_ADDR=https://order.khhao.com
TZ=Asia/Shanghai TZ=Asia/Shanghai
BACKEND_PORT=3000 BACKEND_PORT=3000
# Claim Links # Claim Links
CLAIM_BASE_URL=https://order.khhao.com/#/claim CLAIM_BASE_URL=https://order.khhao.com/#/claim
CLAIM_TOKEN_TTL_HOURS=24
# Database # Database
POSTGRES_DB=order_site POSTGRES_DB=order_site
POSTGRES_USER=postgres POSTGRES_USER=postgres
POSTGRES_PASSWORD=change-me-postgres-password POSTGRES_PASSWORD=change-me-postgres-password
DATABASE_URL=postgres://postgres:change-me-postgres-password@postgres:5432/order_site DATABASE_URL=postgres://postgres:change-me-postgres-password@postgres:5432/order_site
DATABASE_SSL=false
DATABASE_MAX_CONNECTIONS=20
# Data And Logging # Logging
DATA_ROOT=/app/data
LOG_LEVEL=info LOG_LEVEL=info
# Admin # Admin
ADMIN_SESSION_SECRET=change-me-long-random-session-secret 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"}] ADMIN_DEFAULT_USERS_JSON=[{"username":"admin","password":"change-me-admin-password","role":"admin"},{"username":"operator","password":"change-me-operator-password","role":"operator"}]
# 91Kaquan # 91Kaquan
NINETYONE_USER_ID= NINETYONE_USER_ID=
NINETYONE_SECRET= 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
+4 -4
View File
@@ -98,12 +98,12 @@ cp .env.server.example .env
常用变量: 常用变量:
- `APP_BASE_URL`:应用公网地址,用于推导领取链接 - `APP_DOMAIN` / `CADDY_SITE_ADDR`Caddy 对外域名与监听地址
- `CLAIM_BASE_URL`:领取页地址,优先级高于 `APP_BASE_URL` - `CLAIM_BASE_URL`:领取页完整地址
- `DATABASE_URL`PostgreSQL 连接串
- `ADMIN_SESSION_SECRET`:后台登录态签名密钥 - `ADMIN_SESSION_SECRET`:后台登录态签名密钥
- `ADMIN_DEFAULT_USERS_JSON`:默认后台用户 - `ADMIN_DEFAULT_USERS_JSON`:默认后台用户
- `DATABASE_URL`PostgreSQL 连接串 - `NINETYONE_USER_ID` / `NINETYONE_SECRET`91 卡券开放接口凭据
- `NINETYONE_*`91 卡券对接配置
## 运行数据 ## 运行数据
+2 -2
View File
@@ -43,12 +43,12 @@ npm test
常用配置: 常用配置:
- 服务端口 `PORT` - 服务端口 `PORT`Docker 部署中由根目录 `.env``BACKEND_PORT` 映射)
- 日志级别 `LOG_LEVEL=debug|info|warn|error` - 日志级别 `LOG_LEVEL=debug|info|warn|error`
- 数据库连接 `DATABASE_URL` - 数据库连接 `DATABASE_URL`
- 后台登录密钥 `ADMIN_SESSION_SECRET` - 后台登录密钥 `ADMIN_SESSION_SECRET`
- 默认后台用户 `ADMIN_DEFAULT_USERS_JSON` - 默认后台用户 `ADMIN_DEFAULT_USERS_JSON`
- 91 卡券与快手相关平台配置 - 91 卡券开放接口凭据 `NINETYONE_USER_ID` / `NINETYONE_SECRET`
## 接口 ## 接口
-12
View File
@@ -9,7 +9,6 @@ import {
parseBoolean, parseBoolean,
parseInteger, parseInteger,
parseJsonArray, parseJsonArray,
parseCommaSeparatedStrings,
} from "./runtime-env.js"; } from "./runtime-env.js";
import { deepMerge } from "./runtime-merge.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( function corsOriginsEnv(
env: string, env: string,
configPath: RuntimeConfigPath configPath: RuntimeConfigPath
-15
View File
@@ -96,18 +96,3 @@ export function parseJsonArray<T = unknown>(rawValue: unknown): T[] | null {
return 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;
}