diff --git a/README.md b/README.md
index 4f898387..58820942 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ Homepage has built-in support for Docker, and can automatically discover and add
## Service Widgets
-Homepage also has support for over 100 3rd party services, including all popular starr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd party APIs. See the [Service](https://gethomepage.dev/widgets/) page for more information.
+Homepage also has support for hundreds of 3rd-party services, including all popular \*arr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd-party APIs. See the [Service](https://gethomepage.dev/widgets/) page for more information.
## Information Widgets
diff --git a/docs/installation/k8s.md b/docs/installation/k8s.md
index 1267af9e..a88bf57f 100644
--- a/docs/installation/k8s.md
+++ b/docs/installation/k8s.md
@@ -175,6 +175,7 @@ data:
expanded: true
cpu: true
memory: true
+ network: default
- search:
provider: duckduckgo
target: _blank
@@ -379,7 +380,7 @@ prevent unnecessary re-renders on page loads and window / tab focusing. The
procedure for enabling sticky sessions depends on your Ingress controller. Below
is an example using Traefik as the Ingress controller.
-```
+```yaml
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
diff --git a/docs/widgets/info/resources.md b/docs/widgets/info/resources.md
index 19323dc3..7fcf9c5c 100644
--- a/docs/widgets/info/resources.md
+++ b/docs/widgets/info/resources.md
@@ -24,9 +24,10 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation]
tempmin: 0 # optional, minimum cpu temp
tempmax: 100 # optional, maximum cpu temp
uptime: true
- units: imperial # only used by cpu temp
+ units: imperial # only used by cpu temp, options: 'imperial' or 'metric'
refresh: 3000 # optional, in ms
diskUnits: bytes # optional, bytes (default) or bbytes. Only applies to disk
+ network: true # optional, uses 'default' if true or specify a network interface name
```
You can also pass a `label` option, which allows you to group resources under named sections,
diff --git a/src/components/widgets/resources/network.jsx b/src/components/widgets/resources/network.jsx
new file mode 100644
index 00000000..a2a3acac
--- /dev/null
+++ b/src/components/widgets/resources/network.jsx
@@ -0,0 +1,47 @@
+import useSWR from "swr";
+import { FaNetworkWired } from "react-icons/fa";
+import { useTranslation } from "next-i18next";
+
+import Resource from "../widget/resource";
+import Error from "../widget/error";
+
+export default function Network({ options, refresh = 1500 }) {
+ const { t } = useTranslation();
+ // eslint-disable-next-line no-param-reassign
+ if (options.network === true) options.network = "default";
+
+ const { data, error } = useSWR(`/api/widgets/resources?type=network&interfaceName=${options.network}`, {
+ refreshInterval: refresh,
+ });
+
+ if (error || data?.error) {
+ return