feat: frps-manager v1.0 - frp 0.70.1 multi-tenant web management system

- Multi-tenant client/proxy management with Flask+SQLite
- Frps server control (start/restart/token rotation)
- Generate frpc.ini with shared server token + admin API
- Dashboard API integration (live client/proxy status)
- RBAC: admin/tenant_admin/user roles
- Audit logging for all operations
- Systemd service files included
- Requires legacy INI format (frp 0.70 TOML auth broken)
This commit is contained in:
Your Name
2026-08-10 14:17:49 +08:00
commit 71214524f4
27 changed files with 2847 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
[Unit]
Description=frps — frp server managed by frps-manager
Documentation=https://github.com/fatedier/frp
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# frps 0.70 does not support SIGHUP reload — `systemctl reload` will be
# turned into a full restart by systemd (ExecReload forces a fresh start).
ExecStart=/fs/1000/ftp/Project/frps-manager/runtime/bin/frps \
-c /fs/1000/ftp/Project/frps-manager/runtime/conf/frps.ini
# frps 0.70 doesn't implement SIGHUP reload — the manager invokes
# `systemctl restart frps.service` whenever a config change is applied.
ExecReload=/usr/bin/systemctl restart frps.service
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
# Don't start before the web manager; if frps is down the web manager
# still works (it can reload / restart frps).
# Hardening
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
[Install]
WantedBy=multi-user.target