Add Gateway connectivity diagnostics and traffic chart improvements
Build and Deploy Gateway / build-and-push (push) Successful in 14s
Build and Deploy Gateway / deploy (push) Successful in 13s

This commit is contained in:
2026-08-07 20:48:43 +03:00
parent e6666558b7
commit 12375006d3
18 changed files with 1133 additions and 206 deletions
+7
View File
@@ -7,6 +7,7 @@ import { buildVersionInfo } from './version.js';
import { readNeighborSnapshot } from './adapters/neighbors.js';
import { createDeviceTrafficService } from './services/deviceTrafficService.js';
import { createDevicePolicyService } from './services/devicePolicyService.js';
import { createConnectivityDiagnosticsService } from './services/connectivityDiagnosticsService.js';
const socketPath = settings.dataplaneSocket;
const runtime = createSingboxRuntime({
@@ -27,6 +28,9 @@ const devicePolicy = createDevicePolicyService({
tproxyPort: settings.tproxyPort,
tproxyMark: settings.tproxyMark,
});
const connectivityDiagnostics = createConnectivityDiagnosticsService({
proxyPort: settings.diagnosticsProxyPort,
});
let ready = false;
let trafficTimer = null;
const MAX_POLICY_BODY_BYTES = 256 * 1024;
@@ -86,6 +90,9 @@ const server = http.createServer(async (req, res) => {
const body = await readJson(req);
return sendJson(res, 200, await devicePolicy.apply(body.devices));
}
if (req.method === 'POST' && req.url === '/diagnostics/connectivity') {
return sendJson(res, 200, await connectivityDiagnostics.run({ vpnAvailable: runtime.running }));
}
if (req.method === 'POST' && req.url === '/apply') {
return sendJson(res, 200, await runtime.apply());
}