精简环境变量配置
This commit is contained in:
+5
-15
@@ -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
@@ -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
|
|
||||||
|
|||||||
@@ -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 卡券对接配置
|
|
||||||
|
|
||||||
## 运行数据
|
## 运行数据
|
||||||
|
|
||||||
|
|||||||
@@ -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`
|
||||||
|
|
||||||
## 接口
|
## 接口
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user