diff --git a/docs/developing.md b/docs/developing.md index c3c0ea8e..18fc9b64 100644 --- a/docs/developing.md +++ b/docs/developing.md @@ -242,7 +242,6 @@ Styleguides: │ │ ├── CloudBackupRestore.vue # Form where the user manages cloud sync options │ │ ├── ConfigContainer.vue # Main container, wrapping all other config components │ │ ├── CustomCss.vue # Form where the user can input custom CSS -│ │ ├── EditSiteMeta.vue # Form where the user can edit site meta data │ │ ╰── JsonEditor.vue # JSON editor, where the user can modify the main config file │ ├── FormElements # Basic form elements used throughout the app │ │ ├── Button.vue # Standard button component diff --git a/docs/management.md b/docs/management.md index d22e1f97..06cad668 100644 --- a/docs/management.md +++ b/docs/management.md @@ -105,6 +105,36 @@ docker run -d \ willfarrell/autoheal ``` +### HTTP Healthcheck Endpoint + +Dashy also exposes an unauthenticated HTTP liveness endpoint at `/healthz`, which returns a `200` with a small JSON body (`status`, `uptime`, `version`). It bypasses auth and SSL redirection so probes keep working regardless of how Dashy is configured. + +Useful when fronting Dashy with a load balancer / reverse proxy that needs an HTTP probe for auto-failover, or when running on Kubernetes: + +```yaml +# Kubernetes +livenessProbe: + httpGet: + path: /healthz + port: 8080 +``` + +```yaml +# Traefik (label on the Dashy service) +- "traefik.http.services.dashy.loadbalancer.healthcheck.path=/healthz" +- "traefik.http.services.dashy.loadbalancer.healthcheck.interval=30s" +``` + +```caddyfile +# Caddy (reverse_proxy block) +reverse_proxy dashy:8080 { + health_uri /healthz + health_interval 30s +} +``` + +For Nginx Proxy Manager, set the *Forward Hostname* health-check path to `/healthz` under the proxy host's *Custom locations* / advanced config. + ****[⬆️ Back to Top](#)**** --- diff --git a/docs/pages-and-sections.md b/docs/pages-and-sections.md index 7552fcd2..57fd8d56 100644 --- a/docs/pages-and-sections.md +++ b/docs/pages-and-sections.md @@ -171,14 +171,15 @@ Item groups may also have an optional title. items: - title: Normal Item 1 - title: Normal Item 2 - - subItems: + - title: Languages + subItems: - title: JavaScript url: https://developer.mozilla.org icon: si-javascript - title: TypeScript url: https://www.typescriptlang.org/docs icon: si-typescript - - title: Svelt + - title: Svelte url: https://svelte.dev/docs icon: si-svelte - title: Go diff --git a/docs/showcase.md b/docs/showcase.md index 86d9b783..444decdf 100644 --- a/docs/showcase.md +++ b/docs/showcase.md @@ -212,6 +212,14 @@ --- +## HomeLab 3.0 + +> Re: [#1999](https://github.com/Lissy93/dashy/issues/1999) + +![screenshot-homelab-3](https://pixelflare.cc/alicia/dashy/12-skoogee-homelab-3) + +--- + ## Morning Dashboard > Displayed on my smart screen between 05:00 - 08:00, and includes all the info that I usually check before leaving for work diff --git a/docs/widgets.md b/docs/widgets.md index 3048d115..6ca9bc1c 100644 --- a/docs/widgets.md +++ b/docs/widgets.md @@ -617,7 +617,7 @@ This widget display email addresses / aliases from addy.io. Click an email addre **Field** | **Type** | **Required** | **Description** --- | --- | --- | --- -**`apiKey`** | `string` | Required | Your addy.io API Key / Personal Access Token. You can generate this under [Account Settings](https://app.addy.io/settings) +**`apiKey`** | `string` | Required | Your addy.io API Key / Personal Access Token. You can generate this under [API Settings](https://app.addy.io/settings/api) **`hostname`** | `string` | _Optional_ | If your self-hosting addy.io, then supply the host name. By default it will use the public hosted instance **`apiVersion`** | `string` | _Optional_ | If you're using an API version that is not version `v1`, then specify it here **`limit`** | `number` | _Optional_ | Limit the number of emails shown per page. Defaults to `10` @@ -630,7 +630,7 @@ This widget display email addresses / aliases from addy.io. Click an email addre #### Example ```yaml - - type: anonaddy + - type: addy options: apiKey: "xxxxxxxxxxxxxxxxxxxxxxxx\ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\