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
+33
View File
@@ -0,0 +1,33 @@
{% extends "base.html" %}
{% block title %}审计日志 · frps-manager{% endblock %}
{% block content %}
<h1>审计日志</h1>
<p class="muted small">共 {{ total }} 条</p>
<table class="table">
<thead>
<tr><th>时间</th><th>用户</th><th>动作</th><th>对象</th><th>详情</th><th>IP</th></tr>
</thead>
<tbody>
{% for e in items %}
<tr>
<td>{{ e.created_at|fmt_dt }}</td>
<td>{{ e.username or '-' }}</td>
<td><span class="action-tag">{{ e.action }}</span></td>
<td>
{{ e.target_type or '-' }}
{% if e.target_label %}<br><code>{{ e.target_label }}</code>{% endif %}
</td>
<td>{{ e.detail or '' }}</td>
<td><code>{{ e.ip or '-' }}</code></td>
</tr>
{% endfor %}
</tbody>
</table>
{% if total > per %}
<div class="pagination">
{% if page > 1 %}<a href="?page={{ page-1 }}">上一页</a>{% endif %}
<span class="muted">第 {{ page }} 页 / 共 {{ ((total + per - 1) // per) }} 页</span>
{% if page * per < total %}<a href="?page={{ page+1 }}">下一页</a>{% endif %}
</div>
{% endif %}
{% endblock %}