feat(MikrotikConfigRoutes): add function to retrieve remote MikroTik credentials for speed tests, enhancing server configuration flexibility
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m55s

This commit is contained in:
2026-02-18 12:16:58 +07:00
parent 9f85351b6b
commit 8b362f0f55
+22 -2
View File
@@ -103,6 +103,26 @@ function getMikrotikCredentials(server) {
return { host, port: restPort, user, password, secure: false };
}
/**
* Учётные данные для удалённого конца (speed-test): любой сервер с host,
* пароль может быть пустым (доступ по IP без пароля).
*/
function getRemoteMikrotikCredentials(server) {
if (!server) return null;
const host = server.mikrotikHost || server.ip || server.dns;
if (!host) return null;
const user = server.mikrotikUser || 'admin';
let password = '';
if (server.encryptedMikrotikPassword) {
try {
password = decrypt(server.encryptedMikrotikPassword);
} catch (_) {
return null;
}
}
return { user, password };
}
/**
* POST /api/mikrotik/generate
* Body: { format?, type?, serverId?, config?, servers? }
@@ -941,7 +961,7 @@ async function speedTestViaTunnel(req, res) {
}
const localCreds = getMikrotikCredentials(localServer);
const remoteCreds = getMikrotikCredentials(remoteServer);
const remoteCreds = getRemoteMikrotikCredentials(remoteServer);
if (!localCreds) {
return sendError(
@@ -955,7 +975,7 @@ async function speedTestViaTunnel(req, res) {
return sendError(
res,
400,
'MikroTik credentials not configured for remote server',
'Удалённый сервер не найден или не задан host (ip/dns)',
'E_REMOTE_CREDENTIALS'
);
}