Files
dsh_shenxian/config/platform.env.example
T
admin 452924d89c feat(config): 涉密内容外置到配置目录(档案 140)
把散落在代码里的真实部署值统一收进 config/,代码改为引用配置,
使仓库副本/开源导出不再带出生产域名、IP、内网路径与凭据。

新增 config/:platform.env.example(模板)· load.sh(shell 加载器)·
index.cjs(node 加载器)· README.md(键一览与优先级)。
真实值放 config/platform.env —— 已 .gitignore 排除,不入库、不进导出。

TS 侧新增 src/platform-paths.ts 作部署路径的唯一解析处(零副作用):
platformDir/stateDir/backupDir/artifactDir/installDir/scriptPath。
config.ts 接入这些字段;内置中继种子由生产 URL 改为空(改由
DSHS_OVERLAY_BOOTSTRAP_SEEDS 提供)。修掉 5 处硬编码绝对路径,
src/** 注释中性化 116 行/53 文件。

scripts/** 36 个内部运维脚本:真令牌/PG 口令/隧道目标/主机号/路径
一律改从配置取;web/wake.html 的注册域白名单改为运行时从
location.hostname 推导;test/** 夹具 119 行/13 文件改 RFC 2606/5737
保留值,并把「内置种子必须为空」固化为回归断言。

取证:tsc 0 错;npm test 373/375(唯一失败 lease 属既有);
全仓扫描(大小写不敏感)代码面涉密标识 = 0;已部署 47 并零回归
(/opt/dsh/* 未搬家,/var/lib/dshs/platform 未被误建)。
2026-09-19 15:12:19 +08:00

68 lines
2.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================================
# DSH 平台 — 部署配置模板
# ----------------------------------------------------------------------------
# 用法:cp config/platform.env.example config/platform.env → 按本机实际填写
# · platform.env 已被 .gitignore 排除,**不会入库、不会进入开源导出**
# · 代码里不含任何真实部署值;所有部署相关的值都从本文件(或同名 env)读取
# · 也可以用系统级 env 覆盖(systemd drop-in / /etc/dshs.env),优先级见 config/README.md
# ============================================================================
# --- 数据根:每用户 home / ws / 平台库 都在这下面 -------------------------
DSHS_DATA_ROOT=/var/lib/dshs
# --- 平台私有目录的父目录:其下放 state / backups / artifacts -------------
# 代码里的 stateDir / backupDir / artifactDir 都由它派生,见 src/config.ts
DSH_PLATFORM_DIR=/opt/dsh
# --- 代码安装根(lib/ 与 scripts/ 所在)----------------------------------
DSH_INSTALL_DIR=/opt/dshs
# --- 对外域名 -------------------------------------------------------------
DSHS_BASE_DOMAIN=example.com
DSHS_COOKIE_DOMAIN=.example.com
# --- 监听端口 / 隔离方式 --------------------------------------------------
DSHS_PORT=3080
DSHS_ISOLATION_MODE=account
DSHS_BASE_UID=100000
# --- 部署形态:local | cluster | k8s --------------------------------------
DSHS_DEPLOY_MODE=local
DSHS_CLUSTER_HOST_ID=<host-id>
DSHS_CLUSTER_INSTANCE_HOST=127.0.0.1
DSHS_CLUSTER_WORKER_DATA_ROOT=/var/lib/dshs
# --- 覆盖网络引导种子(逗号分隔;留空 = 功能关闭)------------------------
DSHS_OVERLAY_BOOTSTRAP_SEEDS=
# --- 本机地址(出网护栏脚本用;填自己的公网/内网地址)--------------------
DSH_HOST_PUBLIC_IP=<server-public-ip>
DSH_HOST_LAN_IP=<host-lan-ip>
# --- 控制面 PG(cluster 形态用)-------------------------------------------
DSHS_PG_HOST=127.0.0.1
DSHS_PG_PORT=<pg-port>
DSHS_PG_USER=dshs
DSHS_PG_DB=dshs
DSHS_PG_PASSWORD=<pg-password>
DSH_PG_DATA_DIR=/var/lib/dsh-pg
# --- Worker 注册凭据(cluster 形态必填)----------------------------------
DSHS_CLUSTER_AGENT_TOKEN=<worker-token>
# --- 反向隧道目标(可选;留空 = 隧道关闭)--------------------------------
# 形如 root@<host>:<port> 或 ssh://root@<host>:<port>
DSHS_TUNNEL_TARGET=
# --- 平台库连接(cluster 形态用 PG;local 形态留空走 SQLite)-------------
DSHS_DB_URL=
# --- 注册验证外发(留空 = 该能力关闭)-----------------------------------
DSHS_MAIL_DRIVER=
DSHS_MAIL_API_KEY=
DSHS_MAIL_FROM=
DSHS_MAIL_FROM_NAME=
DSHS_TURNSTILE_SITE_KEY=
DSHS_TURNSTILE_SECRET=
DSHS_TURNSTILE_HOSTNAMES=