diff --git a/backend/server.js b/backend/server.js index 3acc8b0..c8da7dd 100644 --- a/backend/server.js +++ b/backend/server.js @@ -302,7 +302,7 @@ app.post('/api/ip-ranges', writeLimiter, ipRangesRoutes.post); // === JSON DATA ROUTES (используют фабрики) === // Servers -const SERVER_TYPES = ['jumphost', 'exit', 'bgp', 'dns']; +const SERVER_TYPES = ['jumphost', 'exit', 'bgp', 'dns', 'home']; const TYPES_NEED_TUNNEL = ['jumphost', 'exit']; // Типы, которым нужен туннель const TYPES_NEED_GATEWAYS = ['jumphost', 'exit']; // Типы, которым нужны gateways diff --git a/frontend/src/BillingManager.jsx b/frontend/src/BillingManager.jsx index 5fdb41f..0e44e10 100644 --- a/frontend/src/BillingManager.jsx +++ b/frontend/src/BillingManager.jsx @@ -126,9 +126,11 @@ function BillingManager() { prev.map(b => b.serverId).filter(Boolean) ); - // Находим серверы без записей в биллинге + // Находим серверы без записей в биллинге (исключаем входные роутеры) const serversToAdd = servers.filter(server => - server.id && !existingServerIds.has(server.id) + server.id && + !existingServerIds.has(server.id) && + server.type !== 'home' // Входные роутеры не попадают в биллинг ); if (serversToAdd.length === 0) return prev; diff --git a/frontend/src/FilterManager.jsx b/frontend/src/FilterManager.jsx index 04b5cc3..f09ad8f 100644 --- a/frontend/src/FilterManager.jsx +++ b/frontend/src/FilterManager.jsx @@ -989,7 +989,7 @@ function FilterManager() { } }); - // Фильтруем только jumphost'ы (исключаем exit-ноды, bgp и dns серверы) + // Фильтруем только jumphost'ы (исключаем exit-ноды, bgp, dns и входные роутеры) const jumphosts = allServers .filter(s => s.type === 'jumphost') .map(s => { diff --git a/frontend/src/components/server/ServerCard.jsx b/frontend/src/components/server/ServerCard.jsx index 9e8d4b2..09b32f0 100644 --- a/frontend/src/components/server/ServerCard.jsx +++ b/frontend/src/components/server/ServerCard.jsx @@ -57,6 +57,7 @@ export default function ServerCard({ exit: { label: 'EXIT', color: 'red', icon: IconArrowsRightLeft }, bgp: { label: 'BGP', color: 'purple', icon: IconRoute }, dns: { label: 'DNS', color: 'cyan', icon: IconWorldWww }, + home: { label: 'HOME', color: 'green', icon: IconRouter }, }; const currentTypeConfig = typeConfig[serverType] || typeConfig.jumphost; diff --git a/frontend/src/utils/serverUtils.js b/frontend/src/utils/serverUtils.js index 5064726..b866f26 100644 --- a/frontend/src/utils/serverUtils.js +++ b/frontend/src/utils/serverUtils.js @@ -93,6 +93,7 @@ export const SERVER_TYPE_OPTIONS = [ { value: 'exit', label: 'Выходная нода' }, { value: 'bgp', label: 'BGP роутер' }, { value: 'dns', label: 'DNS сервер' }, + { value: 'home', label: 'Входной роутер (домашний)' }, ]; /**