diff --git a/public/locales/ar/common.json b/public/locales/ar/common.json index 15ee2802..733d2b4d 100644 --- a/public/locales/ar/common.json +++ b/public/locales/ar/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/bg/common.json b/public/locales/bg/common.json index 013194f5..4a66fb4a 100644 --- a/public/locales/bg/common.json +++ b/public/locales/bg/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json index e7fa5de4..8b9f1e12 100644 --- a/public/locales/ca/common.json +++ b/public/locales/ca/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/cs/common.json b/public/locales/cs/common.json index 75fc9adb..c481f558 100644 --- a/public/locales/cs/common.json +++ b/public/locales/cs/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/da/common.json b/public/locales/da/common.json index 6d5aea5d..7569785d 100644 --- a/public/locales/da/common.json +++ b/public/locales/da/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 9266be63..42cdc869 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -615,5 +615,10 @@ "wanStatus": "WAN Status", "up": "Up", "down": "Down" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/el/common.json b/public/locales/el/common.json index 30a07c63..a14b42a2 100644 --- a/public/locales/el/common.json +++ b/public/locales/el/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 79138cad..167cbaca 100755 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -102,6 +102,11 @@ "subscriptions": "Subscriptions", "unread": "Unread" }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" + }, "changedetectionio": { "totalObserved": "Total Observed", "diffsDetected": "Diffs Detected" @@ -517,11 +522,11 @@ "pfsense": { "load": "Load Avg", "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", + "wanStatus": "WAN Status", + "up": "Up", + "down": "Down", + "temp": "Temp", + "disk": "Disk Usage", "wanIP": "WAN IP" }, "proxmoxbackupserver": { diff --git a/public/locales/eo/common.json b/public/locales/eo/common.json index e88a2d1c..78c153a6 100644 --- a/public/locales/eo/common.json +++ b/public/locales/eo/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 45de3c6b..db6f67d8 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -607,13 +607,18 @@ "poolUsage": "Comprobación del uso del grupo de memoria" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" + "load": "Promedio de carga", + "memory": "Memoria utilizada", + "wanStatus": "Estado de la WAN", + "up": "Arriba", + "down": "Abajo", + "temp": "Temperatura", + "disk": "Uso del disco", + "wanIP": "IP de la WAN" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/fi/common.json b/public/locales/fi/common.json index 9619fddf..6ad2496a 100644 --- a/public/locales/fi/common.json +++ b/public/locales/fi/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 9a9b3483..e7121d66 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -607,13 +607,18 @@ "poolUsage": "Pool" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", + "load": "Charge moy.", + "memory": "Util. Mém.", + "wanStatus": "Statut WAN", "up": "Up", "down": "Down", "temp": "Temp", - "disk": "Disk Usage", - "wanIP": "WAN IP" + "disk": "Util. Disque", + "wanIP": "IP WAN" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/he/common.json b/public/locales/he/common.json index c76cd44d..35d07e2d 100644 --- a/public/locales/he/common.json +++ b/public/locales/he/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index 77144f0a..c036a98c 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json index fbb82319..4f34db97 100644 --- a/public/locales/hr/common.json +++ b/public/locales/hr/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/hu/common.json b/public/locales/hu/common.json index 166a3ca6..e971e9aa 100644 --- a/public/locales/hu/common.json +++ b/public/locales/hu/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/it/common.json b/public/locales/it/common.json index cd8e57ed..1a0d52ec 100644 --- a/public/locales/it/common.json +++ b/public/locales/it/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index b4cb48c3..f6404127 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index ab49c795..b13ecf07 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -615,5 +615,10 @@ "wanStatus": "WAN Status", "up": "Up", "down": "Down" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/lv/common.json b/public/locales/lv/common.json index 7835646c..035712bc 100644 --- a/public/locales/lv/common.json +++ b/public/locales/lv/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/ms/common.json b/public/locales/ms/common.json index d13b3ce3..19ca06ba 100644 --- a/public/locales/ms/common.json +++ b/public/locales/ms/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json index caa3b49f..be50bd21 100644 --- a/public/locales/nb-NO/common.json +++ b/public/locales/nb-NO/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json index 8c43d122..93c851bc 100644 --- a/public/locales/nl/common.json +++ b/public/locales/nl/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index 0ac07522..d611a744 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/pt-BR/common.json b/public/locales/pt-BR/common.json index 94d3bcb6..930ad2f9 100644 --- a/public/locales/pt-BR/common.json +++ b/public/locales/pt-BR/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json index 98705b69..f595c7f7 100644 --- a/public/locales/pt/common.json +++ b/public/locales/pt/common.json @@ -624,5 +624,10 @@ "down": "Down", "temp": "Temp", "disk": "Disk Usage" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/ro/common.json b/public/locales/ro/common.json index bfac3c37..8dc75f2c 100644 --- a/public/locales/ro/common.json +++ b/public/locales/ro/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index b86d182d..d22a8400 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -615,5 +615,10 @@ "up": "Up", "down": "Down", "temp": "Temp" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json index c9280a79..f7ab543e 100644 --- a/public/locales/sk/common.json +++ b/public/locales/sk/common.json @@ -615,5 +615,10 @@ "down": "Down", "temp": "Temp", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/sl/common.json b/public/locales/sl/common.json index a3c24bb5..b80e81f7 100644 --- a/public/locales/sl/common.json +++ b/public/locales/sl/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/sr/common.json b/public/locales/sr/common.json index 2e0792bb..77eb2aff 100644 --- a/public/locales/sr/common.json +++ b/public/locales/sr/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/sv/common.json b/public/locales/sv/common.json index 409e4910..f83d35f2 100644 --- a/public/locales/sv/common.json +++ b/public/locales/sv/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/te/common.json b/public/locales/te/common.json index cbee4366..23c403f8 100644 --- a/public/locales/te/common.json +++ b/public/locales/te/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/th/common.json b/public/locales/th/common.json index 36bc7370..e3bf43f9 100644 --- a/public/locales/th/common.json +++ b/public/locales/th/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index f3552706..92331cd8 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/uk/common.json b/public/locales/uk/common.json index df5b6e9e..2727a5fe 100644 --- a/public/locales/uk/common.json +++ b/public/locales/uk/common.json @@ -607,13 +607,18 @@ "poolUsage": "Використання пулу" }, "pfsense": { - "load": "Load Avg", - "memory": "Mem Usage", - "wanStatus": "WAN Status", - "up": "Up", - "down": "Down", - "temp": "Temp", - "disk": "Disk Usage", + "load": "Середнє завантаження", + "memory": "Використання пам'яті", + "wanStatus": "Статус WAN", + "up": "Вгору", + "down": "Вниз", + "temp": "Температура", + "disk": "Використання диска", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json index d22fcb74..66e96a05 100644 --- a/public/locales/vi/common.json +++ b/public/locales/vi/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/yue/common.json b/public/locales/yue/common.json index 91164f26..b978b641 100644 --- a/public/locales/yue/common.json +++ b/public/locales/yue/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json index 8a928560..120f766c 100644 --- a/public/locales/zh-CN/common.json +++ b/public/locales/zh-CN/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json index 0170d4b1..8e869cc4 100644 --- a/public/locales/zh-Hant/common.json +++ b/public/locales/zh-Hant/common.json @@ -615,5 +615,10 @@ "temp": "Temp", "disk": "Disk Usage", "wanIP": "WAN IP" + }, + "caddy": { + "upstreams": "Upstreams", + "requests": "Current requests", + "requests_failed": "Failed requests" } } diff --git a/src/utils/proxy/handlers/generic.js b/src/utils/proxy/handlers/generic.js index b8db9618..8e31c556 100644 --- a/src/utils/proxy/handlers/generic.js +++ b/src/utils/proxy/handlers/generic.js @@ -57,7 +57,7 @@ export default async function genericProxyHandler(req, res, map) { } if (status >= 400) { - logger.debug("HTTP Error %d calling %s//%s%s...", status, url.protocol, url.hostname, url.pathname); + logger.debug("HTTP Error %d calling %s//%s%s%s...", status, url.protocol, url.hostname, url.port, url.pathname); return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), resultData}}); } diff --git a/src/utils/proxy/http.js b/src/utils/proxy/http.js index e07f06ff..8eebd451 100644 --- a/src/utils/proxy/http.js +++ b/src/utils/proxy/http.js @@ -81,7 +81,7 @@ export async function httpProxy(url, params = {}) { return [status, contentType, data, responseHeaders]; } catch (err) { - logger.error("Error calling %s//%s%s...", constructedUrl.protocol, constructedUrl.hostname, constructedUrl.pathname); + logger.error("Error calling %s//%s%s%s...", constructedUrl.protocol, constructedUrl.hostname, constructedUrl.port, constructedUrl.pathname); logger.error(err); return [500, "application/json", { error: {message: err?.message ?? "Unknown error", url, rawError: err} }, null]; } diff --git a/src/widgets/caddy/component.jsx b/src/widgets/caddy/component.jsx new file mode 100644 index 00000000..21320cd6 --- /dev/null +++ b/src/widgets/caddy/component.jsx @@ -0,0 +1,39 @@ +import { useTranslation } from "next-i18next"; + +import Container from "components/services/widget/container"; +import Block from "components/services/widget/block"; +import useWidgetAPI from "utils/proxy/use-widget-api"; + +export default function Component({ service }) { + const { t } = useTranslation(); + + const { widget } = service; + const { data: resultData, error: resultError } = useWidgetAPI(widget, "result"); + + + if (resultError) { + return ; + } + + if (!resultData) { + return ( + , + + + + + ); + } + + const upstreams = resultData.length; + const requests = resultData.reduce((acc, val) => acc + val.num_requests, 0); + const requestsFailed = resultData.reduce((acc, val) => acc + val.fails, 0); + + return ( + + + + + + ); +} diff --git a/src/widgets/caddy/widget.js b/src/widgets/caddy/widget.js new file mode 100644 index 00000000..2fb1978b --- /dev/null +++ b/src/widgets/caddy/widget.js @@ -0,0 +1,8 @@ +import genericProxyHandler from "utils/proxy/handlers/generic"; + +const widget = { + api: "{url}/reverse_proxy/upstreams", + proxyHandler: genericProxyHandler, +}; + +export default widget; diff --git a/src/widgets/components.js b/src/widgets/components.js index d51d6785..0fc8e654 100644 --- a/src/widgets/components.js +++ b/src/widgets/components.js @@ -6,6 +6,7 @@ const components = { authentik: dynamic(() => import("./authentik/component")), autobrr: dynamic(() => import("./autobrr/component")), bazarr: dynamic(() => import("./bazarr/component")), + caddy: dynamic(() => import("./caddy/component")), changedetectionio: dynamic(() => import("./changedetectionio/component")), channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")), cloudflared: dynamic(() => import("./cloudflared/component")), diff --git a/src/widgets/widgets.js b/src/widgets/widgets.js index 6035c15d..7a3fe99c 100644 --- a/src/widgets/widgets.js +++ b/src/widgets/widgets.js @@ -3,6 +3,7 @@ import audiobookshelf from "./audiobookshelf/widget"; import authentik from "./authentik/widget"; import autobrr from "./autobrr/widget"; import bazarr from "./bazarr/widget"; +import caddy from "./caddy/widget"; import changedetectionio from "./changedetectionio/widget"; import channelsdvrserver from "./channelsdvrserver/widget"; import cloudflared from "./cloudflared/widget"; @@ -88,6 +89,7 @@ const widgets = { authentik, autobrr, bazarr, + caddy, changedetectionio, channelsdvrserver, cloudflared,