P7: restore agent node type, agent heartbeat expiry, build-version injection, remove log/history/xray-metrics modules, optional sub port
- nodes: port node-type (traditional/agent) picker back from web-src into the embedded frontend; backend annotates NodeView.nodeType from agent_nodes bindings; fix agent-node update path (skip reachability probe and apiToken requirement for agent-managed nodes); restore i18n keys in all 13 locales; install command now uses the Gitea mirror - jobs: expire agent-bound nodes whose agent_nodes.last_seen is older than max(3x heartbeat interval, 120s) = 180s; last_seen=0 (never registered) is left untouched; transitions reuse UpdateHeartbeat + node event broadcast - config: GetBaseVersion honors ldflags-injected buildVersion; release builds inject 3.7.0-agent.1 so the panel no longer reports a phantom update against the Gitea release tag - logger/server: remove the three log viewers (panel/xray/amneziawg), their API endpoints and the 10240-entry in-memory log buffer; file logging via lumberjack unchanged; tests assert via a new optional logger hook instead of the removed buffer - server: remove system history and xray metrics modules end to end (endpoints, sampling appends in RefreshStatus, per-minute persist cron, gob snapshot/restore, XrayMetricsService); realtime status and per-node history are untouched - settings: subPort may be 0/unset - subscription links are generated without a port while the subscription service keeps binding the default 2096; the settings form declares the cleared state via onNumber's new onClear option instead of snapping back to 1
This commit is contained in:
@@ -136,45 +136,6 @@
|
||||
"currentCommit": "当前提交",
|
||||
"latestCommit": "最新提交",
|
||||
"updateChannelChanged": "更新通道已切换",
|
||||
"systemHistoryTitle": "系统历史",
|
||||
"historyTitleCpu": "CPU 使用率",
|
||||
"historyTitleMem": "内存使用率",
|
||||
"historyTitleNetwork": "网络带宽",
|
||||
"historyTitlePackets": "网络数据包",
|
||||
"historyTitleDisk": "磁盘 I/O",
|
||||
"historyTitleOnline": "在线客户端",
|
||||
"historyTitleLoad": "系统平均负载(1 分钟 / 5 分钟 / 15 分钟)",
|
||||
"historyTitleConnections": "活动连接 (TCP / UDP)",
|
||||
"historyTitleDiskUsage": "磁盘空间使用率",
|
||||
"historyTabBandwidth": "带宽",
|
||||
"historyTabPackets": "数据包",
|
||||
"historyTabDisk": "磁盘 I/O",
|
||||
"historyTabOnline": "在线",
|
||||
"historyTabLoad": "负载",
|
||||
"historyTabConnections": "连接数",
|
||||
"historyTabDiskUsage": "磁盘使用量",
|
||||
"xrayMetricsTitle": "Xray 指标",
|
||||
"xrayTitleHeap": "已分配的堆内存",
|
||||
"xrayTitleSys": "向操作系统保留的内存",
|
||||
"xrayTitleObjects": "存活的堆对象",
|
||||
"xrayTitleGcCount": "已完成的 GC 周期",
|
||||
"xrayTitleGcPause": "GC 暂停时间",
|
||||
"xrayTitleObservatory": "出站连接健康状态",
|
||||
"xrayTabHeap": "堆",
|
||||
"xrayTabSys": "系统",
|
||||
"xrayTabObjects": "对象",
|
||||
"xrayTabGcCount": "GC 次数",
|
||||
"xrayTabGcPause": "GC 暂停",
|
||||
"xrayTabObservatory": "观测站",
|
||||
"xrayMetricsDisabled": "未配置 Xray 指标端点",
|
||||
"xrayMetricsHint": "在 xray 配置中添加顶级 metrics 块,tag 为 metrics_out,listen 为 127.0.0.1:11111,然后重启 xray。",
|
||||
"xrayObservatoryEmpty": "暂无 Observatory 数据",
|
||||
"xrayObservatoryHint": "在 xray 配置中添加 observatory 块,列出要探测的出站 tag,然后重启 xray。",
|
||||
"xrayObservatoryTagPlaceholder": "选择出站",
|
||||
"xrayObservatoryAlive": "在线",
|
||||
"xrayObservatoryDead": "离线",
|
||||
"xrayObservatoryLastSeen": "最后在线",
|
||||
"xrayObservatoryLastTry": "最后尝试",
|
||||
"connectionCount": "连接数",
|
||||
"ipAddresses": "IP 地址",
|
||||
"toggleIpVisibility": "切换 IP 可见性",
|
||||
@@ -191,18 +152,6 @@
|
||||
"panelUpdateUnknownTitle": "无法确认更新是否已完成",
|
||||
"panelUpdateUnknownDesc": "面板未能及时返回结果。请刷新页面查看当前版本,或检查服务器日志。",
|
||||
"dontRefresh": "安装中,请勿刷新此页面",
|
||||
"logs": "日志",
|
||||
"accessLogs": "访问日志",
|
||||
"autoUpdate": "自动更新",
|
||||
"amneziawgLogs": "AmneziaWG 日志",
|
||||
"amneziawgHandshake": "最后握手",
|
||||
"amneziawgInterface": "网络接口",
|
||||
"amneziawgInbound": "入站",
|
||||
"amneziawgEndpoint": "端点",
|
||||
"amneziawgIdle": "空闲",
|
||||
"amneziawgEvents": "事件",
|
||||
"amneziawgNoPeers": "当前没有活动的 AmneziaWG 对端",
|
||||
"amneziawgNoEvents": "尚未记录 AmneziaWG 事件",
|
||||
"config": "配置",
|
||||
"backupTitle": "备份和恢复",
|
||||
"exportDatabase": "备份",
|
||||
@@ -219,25 +168,14 @@
|
||||
"importDatabasePgDesc": "点击选择并上传 PostgreSQL 备份(.dump)、SQLite 数据库(.db)或 SQLite 迁移导出文件以恢复您的数据库。此操作将替换所有当前数据。",
|
||||
"migrationDownload": "下载迁移文件",
|
||||
"migrationDownloadPgDesc": "点击下载由 PostgreSQL 数据构建的 .db SQLite 数据库,可用于在 SQLite 上运行本面板。",
|
||||
"avg": "均值",
|
||||
"peak": "峰值",
|
||||
"free": "剩余",
|
||||
"openSockets": "打开的套接字",
|
||||
"throughputSub": "网卡总计",
|
||||
"avgWindow": "窗口均值",
|
||||
"healthWarm": "{list} — 偏高",
|
||||
"healthCritical": "{list} — 危险",
|
||||
"panel": "面板",
|
||||
"threads": "线程",
|
||||
"uptime": "运行时间",
|
||||
"logLevelDebug": "Debug",
|
||||
"logLevelInfo": "Info",
|
||||
"logLevelNotice": "Notice",
|
||||
"logLevelWarning": "Warning",
|
||||
"logLevelError": "Error",
|
||||
"accessDirect": "DIRECT",
|
||||
"accessBlocked": "BLOCKED",
|
||||
"accessProxy": "PROXY",
|
||||
"importKeepHostSettings": "保留本机设置",
|
||||
"importKeepHostSettingsDesc": "保留本面板的监听地址、端口、基础路径、证书和节点身份,而不是使用上传文件中的值。"
|
||||
},
|
||||
@@ -970,7 +908,19 @@
|
||||
"pinnedCertPlaceholder": "base64 或 hex 的 SHA-256",
|
||||
"fetchPin": "获取",
|
||||
"pinFetched": "已获取节点当前证书",
|
||||
"pinFetchFailed": "无法获取证书"
|
||||
"pinFetchFailed": "无法获取证书",
|
||||
"nodeType": "节点类型",
|
||||
"nodeTypeTraditional": "传统面板节点",
|
||||
"nodeTypeAgent": "Agent 轻量节点",
|
||||
"agentHint": "Agent 节点由节点机主动连接主控,无需填写地址、端口和 API 令牌。创建后会生成安装命令。",
|
||||
"agentTokenTitle": "Agent 节点安装",
|
||||
"agentTokenCreated": "节点 {{name}} 创建成功",
|
||||
"agentTokenHint": "复制下面的命令,在节点机上运行即可完成安装。此 token 只显示一次!",
|
||||
"agentTokenInstructions": "命令会自动下载安装脚本、配置主控地址和 token,约 30 秒后节点上线。",
|
||||
"agentTokenCopied": "安装命令已复制",
|
||||
"agentTokenCopyFailed": "复制失败,请手动复制",
|
||||
"copyToken": "复制安装命令",
|
||||
"agentMasterUrlHint": "主控地址(agent 用来连接主控,如有域名或反代请改成对外地址):"
|
||||
},
|
||||
"settings": {
|
||||
"defaultTag": "默认",
|
||||
@@ -1070,7 +1020,7 @@
|
||||
"subListen": "监听 IP",
|
||||
"subListenDesc": "订阅服务监听的 IP 地址(留空表示监听所有 IP)",
|
||||
"subPort": "监听端口",
|
||||
"subPortDesc": "订阅服务监听的端口号(必须是未使用的端口)。当下方「反向代理 URI」为空时,也会用来生成面板中显示的订阅链接/二维码——如果订阅是通过反向代理的其他端口访问的,请改为设置「反向代理 URI」。",
|
||||
"subPortDesc": "订阅服务监听的端口号(必须是未使用的端口)。当下方「反向代理 URI」为空时,也会用来生成面板中显示的订阅链接/二维码——如果订阅是通过反向代理的其他端口访问的,请改为设置「反向代理 URI」。留空表示订阅链接不带端口(服务仍监听默认端口 2096)。",
|
||||
"subCertPath": "公钥路径",
|
||||
"subCertPathDesc": "订阅服务使用的公钥文件路径(以 '/' 开头)",
|
||||
"subKeyPath": "私钥路径",
|
||||
@@ -1725,4 +1675,4 @@
|
||||
"noIpRecord": "❗ 没有 IP 记录!"
|
||||
},
|
||||
"email": {}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user