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:
JianFeeeee
2026-10-23 09:12:30 +08:00
parent a96335dbf1
commit ee46b758fa
9 changed files with 166 additions and 38 deletions

View File

@ -20,6 +20,8 @@ and audit-log CSV export.
install -D -m 0755 %{_w4f_bin} %{buildroot}%{_bindir}/webui4frpc
install -D -m 0644 %{_w4f_service} %{buildroot}%{_unitdir}/webui4frpc.service
install -D -m 0640 %{_w4f_env} %{buildroot}%{_sysconfdir}/webui4frpc/webui4frpc.env
install -D -m 0644 %{_w4f_config} %{buildroot}%{_sysconfdir}/webui4frpc/config.json
install -d -m 0750 %{buildroot}%{_sysconfdir}/webui4frpc/secret
install -D -m 0644 %{_w4f_readme} %{buildroot}%{_docdir}/webui4frpc/README.md
install -d -m 0750 %{buildroot}%{_sharedstatedir}/webui4frpc
@ -36,11 +38,14 @@ exit 0
%systemd_post webui4frpc.service
chown -R webui4frpc:webui4frpc %{_sharedstatedir}/webui4frpc || :
chown root:webui4frpc %{_sysconfdir}/webui4frpc/webui4frpc.env || :
chown root:webui4frpc %{_sysconfdir}/webui4frpc/secret || :
chmod 0750 %{_sysconfdir}/webui4frpc/secret || :
cat <<'EOF'
webui4frpc 已安装。
配置: /etc/webui4frpc/webui4frpc.env (请立即修改 W4F_USER / W4F_PASSWORD)
配置: /etc/webui4frpc/config.json (请设置 password,推荐 file:/etc/webui4frpc/secret/password)
密钥: echo '你的口令' > /etc/webui4frpc/secret/password && chmod 0640 /etc/webui4frpc/secret/password
数据: /var/lib/webui4frpc
服务: systemctl enable --now webui4frpc
界面: http://<本机地址>:7500
@ -63,6 +68,8 @@ fi
%{_unitdir}/webui4frpc.service
%dir %{_sysconfdir}/webui4frpc
%config(noreplace) %attr(0640,root,webui4frpc) %{_sysconfdir}/webui4frpc/webui4frpc.env
%config(noreplace) %attr(0644,root,root) %{_sysconfdir}/webui4frpc/config.json
%dir %attr(0750,root,webui4frpc) %{_sysconfdir}/webui4frpc/secret
%dir %attr(0750,webui4frpc,webui4frpc) %{_sharedstatedir}/webui4frpc
%doc %{_docdir}/webui4frpc/README.md