From b3956426aaeaf06f67702bfdbeb20f9ef8ea1221 Mon Sep 17 00:00:00 2001 From: DonFU1 Date: Fri, 30 Aug 2024 19:21:42 +0000 Subject: [PATCH] Implemented tcp-ping as a service to check non http(s) connections --- Dockerfile | 2 +- package.json | 1 + public/locales/en/common.json | 9 ++++ src/components/services/item.jsx | 9 ++++ src/components/services/tcp-handshake.jsx | 63 +++++++++++++++++++++++ src/pages/api/tcpHandshake.js | 50 ++++++++++++++++++ 6 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 src/components/services/tcp-handshake.jsx create mode 100644 src/pages/api/tcpHandshake.js diff --git a/Dockerfile b/Dockerfile index 3e6de756..a4c9a6cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN apk add --no-cache libc6-compat \ RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store" -RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm install -r --offline +RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm install -r # Rebuild the source code only when needed FROM docker.io/node:18-alpine AS builder diff --git a/package.json b/package.json index 3d2e6100..13bbf204 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "rrule": "^2.8.1", "swr": "^1.3.0", "systeminformation": "^5.23.2", + "tcp-ping": "^0.1.1", "tough-cookie": "^4.1.3", "urbackup-server-api": "^0.52.0", "winston": "^3.11.0", diff --git a/public/locales/en/common.json b/public/locales/en/common.json index e54a0a77..f3f5bc9d 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -97,6 +97,15 @@ "up": "Up", "not_available": "Not Available" }, + "tcpHandshake": { + "tcp_status": "TCP-Handshake status", + "error": "Error", + "response": "Response", + "down": "Down", + "up": "Up", + "not_available": "Not Available" + }, + "emby": { "playing": "Playing", "transcoding": "Transcoding", diff --git a/src/components/services/item.jsx b/src/components/services/item.jsx index a38dfaa3..bbf5721a 100644 --- a/src/components/services/item.jsx +++ b/src/components/services/item.jsx @@ -5,6 +5,7 @@ import Status from "./status"; import Widget from "./widget"; import Ping from "./ping"; import SiteMonitor from "./site-monitor"; +import TcpHandshake from "./tcp-handshake"; import KubernetesStatus from "./kubernetes-status"; import Docker from "widgets/docker/component"; @@ -101,6 +102,14 @@ export default function Item({ service, group, useEqualHeights }) { Site monitor status )} + + {service.tcpHandshake && ( +
+ + TCP-Handshake status +
+ )} + {service.container && (