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 && (