mirror of
https://gitcode.com/JianFeeeee/webui4frpc.git
synced 2026-10-31 06:17:20 +00:00
feat(packaging): 单元与安装包改为配置文件启动,口令不再写入 ExecStart
所有交付形态统一成「只传 -config」,凭据留在配置文件 / secrets 文件里。
- systemd 单元:ExecStart 改为 `-config /etc/webui4frpc/config.json`,
EnvironmentFile 加 `-` 前缀变成可选;新增 ReadOnlyPaths=-/etc/webui4frpc/secret。
- 新增 packaging/common/config.json 示例:口令默认用
file:/etc/webui4frpc/secret/password 引用,内嵌以 "_" 开头的说明键。
- webui4frpc.env 瘦身为可选环境变量(${VAR} 取值来源),不再承载明文口令。
- deb/rpm:安装 config.json 与 0750 的 secret 目录,config.json 进 conffiles,
安装后提示改成「设置 password 文件」。
- release.sh 的分发单元模板同步改 -config;tar.gz 附 config.json.example。
- macOS pkg:写 config.json + secret/password,launch 包装脚本只传 -config。
- Windows NSIS:安装时把口令写进 secret-password.txt(icacls 限制为
SYSTEM/Administrators),生成 data/config.json 用 file: 引用,启动脚本只传
-config;顺带按 JSON 规则转义 addr/user。makensis 实测可编译通过。
This commit is contained in:
@ -38,15 +38,25 @@ mkdir -p "$ROOT/usr/local/bin" "$ROOT/usr/local/etc/webui4frpc" "$SCRIPTS" "$PKG
|
||||
# ---- payload 根文件系统 ----
|
||||
install -m 0755 "$BINARY" "$ROOT/usr/local/bin/webui4frpc"
|
||||
|
||||
cat > "$ROOT/usr/local/etc/webui4frpc/webui4frpc.env" <<'ENVEOF'
|
||||
# webui4frpc runtime configuration (macOS)
|
||||
# 请修改密码后再投入使用;改完执行:
|
||||
# sudo launchctl kickstart -k system/com.jianfeeeee.webui4frpc
|
||||
W4F_ADDR=0.0.0.0:7500
|
||||
W4F_USER=admin
|
||||
W4F_PASSWORD=admin
|
||||
ENVEOF
|
||||
chmod 0644 "$ROOT/usr/local/etc/webui4frpc/webui4frpc.env"
|
||||
# Startup config. The service reads this file via `-config`, so the admin
|
||||
# password never appears on the command line (visible in `ps` to every user).
|
||||
# Set the password in /usr/local/etc/webui4frpc/secret/password instead of
|
||||
# writing it here; the "file:" reference below reads its first line.
|
||||
mkdir -p "$ROOT/usr/local/etc/webui4frpc/secret"
|
||||
cat > "$ROOT/usr/local/etc/webui4frpc/config.json" <<'CFGEOF'
|
||||
{
|
||||
"_comment": "precedence: command-line flag > this file > built-in default",
|
||||
"addr": "0.0.0.0:7500",
|
||||
"user": "admin",
|
||||
"password": "file:/usr/local/etc/webui4frpc/secret/password",
|
||||
"workdir": "/usr/local/var/lib/webui4frpc"
|
||||
}
|
||||
CFGEOF
|
||||
chmod 0644 "$ROOT/usr/local/etc/webui4frpc/config.json"
|
||||
# Placeholder so the service starts out of the box (admin/admin). The
|
||||
# postinstall script removes it if the file was already customised.
|
||||
printf 'admin\n' > "$ROOT/usr/local/etc/webui4frpc/secret/password"
|
||||
chmod 0640 "$ROOT/usr/local/etc/webui4frpc/secret/password"
|
||||
|
||||
# ---- launchd plist ----
|
||||
mkdir -p "$ROOT/Library/LaunchDaemons"
|
||||
@ -80,18 +90,15 @@ chmod 0644 "$ROOT/Library/LaunchDaemons/com.jianfeeeee.webui4frpc.plist"
|
||||
# launchd 不读 EnvironmentFile,用小包装脚本 source 配置再 exec
|
||||
cat > "$ROOT/usr/local/bin/webui4frpc-launch" <<'LAUNCHEOF'
|
||||
#!/bin/sh
|
||||
# 读取 /usr/local/etc/webui4frpc/webui4frpc.env 后启动 webui4frpc
|
||||
# Start webui4frpc from /usr/local/etc/webui4frpc/config.json.
|
||||
# launchd does not read an EnvironmentFile, so the optional env file is sourced
|
||||
# here first (config.json may reference ${W4F_*}), then the config file drives
|
||||
# everything. No credential is ever passed on this command line.
|
||||
set -e
|
||||
ENV_FILE=/usr/local/etc/webui4frpc/webui4frpc.env
|
||||
W4F_ADDR=0.0.0.0:7500
|
||||
W4F_USER=admin
|
||||
W4F_PASSWORD=admin
|
||||
CONFIG_FILE=/usr/local/etc/webui4frpc/config.json
|
||||
[ -f "$ENV_FILE" ] && . "$ENV_FILE"
|
||||
exec /usr/local/bin/webui4frpc \
|
||||
-addr "$W4F_ADDR" \
|
||||
-user "$W4F_USER" \
|
||||
-password "$W4F_PASSWORD" \
|
||||
-workdir /usr/local/var/lib/webui4frpc
|
||||
exec /usr/local/bin/webui4frpc -config "$CONFIG_FILE"
|
||||
LAUNCHEOF
|
||||
chmod 0755 "$ROOT/usr/local/bin/webui4frpc-launch"
|
||||
|
||||
@ -159,12 +166,16 @@ cat > "$FLAT/Distribution" <<DISTEOF
|
||||
<welcome language="zh_CN" mime-type="text/plain">webui4frpc — 可视化 frpc 控制器
|
||||
|
||||
安装内容:
|
||||
/usr/local/bin/webui4frpc 主程序(内嵌 Web 界面)
|
||||
/usr/local/etc/webui4frpc/webui4frpc.env 配置文件
|
||||
/Library/LaunchDaemons/…webui4frpc.plist 开机自启服务
|
||||
/usr/local/bin/webui4frpc 主程序(内嵌 Web 界面)
|
||||
/usr/local/etc/webui4frpc/config.json 启动配置(监听地址/账号/对端)
|
||||
/usr/local/etc/webui4frpc/secret/password 口令文件(file: 引用,不进命令行)
|
||||
/usr/local/etc/webui4frpc/webui4frpc.env 可选环境变量(config.json 里可写 \${VAR})
|
||||
/Library/LaunchDaemons/…webui4frpc.plist 开机自启服务
|
||||
|
||||
安装完成后服务自动启动,访问 http://127.0.0.1:7500
|
||||
默认凭据 admin/admin —— 请立即修改 webui4frpc.env 中的密码。</welcome>
|
||||
默认凭据 admin/admin —— 请立即修改
|
||||
/usr/local/etc/webui4frpc/secret/password 后再重启
|
||||
(sudo launchctl kickstart -k system/com.jianfeeeee.webui4frpc)。</welcome>
|
||||
<choices-outline>
|
||||
<line choice="default">
|
||||
<line choice="com.jianfeeeee.webui4frpc"/>
|
||||
|
||||
Reference in New Issue
Block a user