diff --git a/docs/widgets/services/gluetun.md b/docs/widgets/services/gluetun.md
index 31c18ca38..432526d2f 100644
--- a/docs/widgets/services/gluetun.md
+++ b/docs/widgets/services/gluetun.md
@@ -10,8 +10,9 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun).
Requires [HTTP control server options](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md) to be enabled. By default this runs on port `8000`.
Allowed fields: `["public_ip", "region", "country", "port_forwarded"]`.
+Default fields: `["public_ip", "region", "country"]`.
-To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml.
+To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml. Similarly, if you want to include the `port_forwarded` field, you must add the route `GET /v1/openvpn/portforwarded` to your Gluetun config.toml.
```yaml
widget:
diff --git a/src/widgets/gluetun/component.jsx b/src/widgets/gluetun/component.jsx
index 640d225df..a1210f5ae 100644
--- a/src/widgets/gluetun/component.jsx
+++ b/src/widgets/gluetun/component.jsx
@@ -6,14 +6,22 @@ import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { widget } = service;
- const { data: gluetunData, error: gluetunError } = useWidgetAPI(widget, "ip");
- const { data: portForwardedData, error: portForwardedError } = useWidgetAPI(widget, "port_forwarded");
+ if (!widget.fields) {
+ widget.fields = ["public_ip", "region", "country"];
+ }
- if (gluetunError || portForwardedError) {
+ const { data: gluetunData, error: gluetunError } = useWidgetAPI(widget, "ip");
+ const includePF = !!widget.fields["port_forwarded"];
+ const { data: portForwardedData, error: portForwardedError } = useWidgetAPI(
+ widget,
+ includePF ? "port_forwarded" : "",
+ );
+
+ if (gluetunError || (includePF && portForwardedError)) {
return ;
}
- if (!gluetunData || !portForwardedData) {
+ if (!gluetunData || (includePF && !portForwardedData)) {
return (
@@ -29,7 +37,7 @@ export default function Component({ service }) {
-
+
);
}