feat: 原生安装包 — deb/rpm/systemd + NSIS setup.exe + macOS pkg

此前交付的 tar.gz/zip 仅是解压直用包,补齐真正的平台安装包:
- Linux: .deb (dpkg-deb) 与 .rpm (rpmbuild),装 systemd 单元 + 专用
  系统账号 + /etc/webui4frpc 配置,非 root 运行 + 加固
- Windows: NSIS setup.exe,向导收集监听地址/凭据,注册卸载器 +
  防火墙放行(amd64/arm64)
- macOS: .pkg(在 Linux 上手工 xar+mkbom 组装 flat package),launchd
  开机自启 + env 配置文件(amd64/arm64)
- scripts/release.sh 纳入 build_installers.sh 阶段;README 增「安装」
  章节逐平台说明

已知限制:rpmbuild 无法在非 RHEL 主机交叉构建 aarch64(Debian rpm
只有 x86_64 构建 arch),aarch64 rpm 需在原生 ARM 机器构建;Linux/ARM
场景已由 deb-arm64 覆盖。
This commit is contained in:
JianFeeeee
2026-08-28 08:36:55 +08:00
parent 6ee901dc64
commit 15b1dcce8f
14 changed files with 974 additions and 0 deletions

View File

@ -0,0 +1,72 @@
Name: webui4frpc
Version: %{?_w4f_version}%{!?_w4f_version:0.1.0}
Release: 1%{?dist}
Summary: Visual frpc controller with token-ring cluster
License: MIT
URL: https://gitcode.com/JianFeeeee/webui4frpc
BuildArch: %{?_w4f_arch}%{!?_w4f_arch:x86_64}
Requires(pre): shadow-utils
%{?systemd_requires}
BuildRequires: systemd-rpm-macros
%description
A web UI to manage FRP forwards across a cluster of nodes. Ships as a single
statically-linked binary with an embedded Vue frontend. Includes a token-ring
based cluster for distributed forward management, NIC network load sampling,
and audit-log CSV export.
%install
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_readme} %{buildroot}%{_docdir}/webui4frpc/README.md
install -d -m 0750 %{buildroot}%{_sharedstatedir}/webui4frpc
%pre
getent group webui4frpc >/dev/null || groupadd --system webui4frpc
getent passwd webui4frpc >/dev/null || \
useradd --system --gid webui4frpc \
--home-dir %{_sharedstatedir}/webui4frpc --no-create-home \
--shell /sbin/nologin \
--comment "webui4frpc service account" webui4frpc
exit 0
%post
%systemd_post webui4frpc.service
chown -R webui4frpc:webui4frpc %{_sharedstatedir}/webui4frpc || :
chown root:webui4frpc %{_sysconfdir}/webui4frpc/webui4frpc.env || :
cat <<'EOF'
webui4frpc 已安装。
配置: /etc/webui4frpc/webui4frpc.env (请立即修改 W4F_USER / W4F_PASSWORD)
数据: /var/lib/webui4frpc
服务: systemctl enable --now webui4frpc
界面: http://<本机地址>:7500
EOF
%preun
%systemd_preun webui4frpc.service
%postun
%systemd_postun_with_restart webui4frpc.service
if [ $1 -eq 0 ]; then
rm -rf %{_sharedstatedir}/webui4frpc
getent passwd webui4frpc >/dev/null && userdel webui4frpc || :
getent group webui4frpc >/dev/null && groupdel webui4frpc || :
fi
%files
%{_bindir}/webui4frpc
%{_unitdir}/webui4frpc.service
%dir %{_sysconfdir}/webui4frpc
%config(noreplace) %attr(0640,root,webui4frpc) %{_sysconfdir}/webui4frpc/webui4frpc.env
%dir %attr(0750,webui4frpc,webui4frpc) %{_sharedstatedir}/webui4frpc
%doc %{_docdir}/webui4frpc/README.md
%changelog
* Fri Aug 28 2026 JianFeeeee <jianfeeeee@gitcode> - 0.1.0-1
- 首次发布per-forward worker 模型、NIC 负载采样、审计 CSV 导出、
session 登录与三级角色。