homepage¶
Configuration for Homepage, a static dashboard that lists your services, bookmarks and status widgets. The container runs as the image's unprivileged node user, mapped to u_homepage on the host. Its configuration directory is /home/u_homepage/config: Homepage fills it with default settings.yaml, services.yaml, bookmarks.yaml and widgets.yaml files on first start, and changes made there as u_homepage are applied live without a restart. Expose it through Caddy with a caddy.public_sites entry pointing at homepage.http_port, and list that host name in homepage.allowed_hosts.
Note
Homepage has no authentication of its own. Only expose it behind Caddy on a host name you control, and keep widget API keys in homepage.environment (as HOMEPAGE_VAR_* variables referenced from the YAML files) rather than in the config files themselves. The Docker socket integration is not supported here: a rootless Podman socket would only see the Homepage container, so use each service's API integration instead.
homepage.image¶
The image of Homepage to deploy.
- Type: String
- Example:
ghcr.io/gethomepage/homepage:v1
homepage.http_port¶
Port to listen for HTTP requests.
- Type: Integer
- Example:
3011
homepage.allowed_hosts¶
Host names Homepage accepts requests for, joined into the required HOMEPAGE_ALLOWED_HOSTS variable. Include the Caddy site's host name and, if you access it directly, <server-ip>:<http_port>.
- Type: List of strings
- Example:
[home.mydomain.com, 192.168.0.11:3011]
homepage.environment¶
Optional extra environment variables passed to the container, typically HOMEPAGE_VAR_* secrets referenced as {{HOMEPAGE_VAR_*}} in the YAML configuration files.
- Optional
- Type: Map of string to string
- Purpose: Keep API tokens out of the configuration directory.
- Example:
{ HOMEPAGE_VAR_JELLYFIN_KEY: <MY API TOKEN> }
homepage.services¶
Services of this repository to list on the dashboard, each with its status widget. The key is the template name (adguardhome, forgejo, immich, jellyfin, prometheus, wg_easy): the widget type, icon and description come from a built-in catalog. href is the link of the tile and port the http_port of the service, reached as host.containers.internal:<port> (or give a complete url). The tile can be adjusted with name, group (Services by default), icon and description; every other key (key, username, password, fields...) is passed through to the widget as-is.
- Type: Map of maps
-
Example:
homepage.custom_services¶
Additional tiles written in Homepage's own service format: a name, an optional group (Services by default) and any service key (href, icon, description, siteMonitor, widget...), copied verbatim into services.yaml. Combined with the Prometheus template, a prometheusmetric widget displays any PromQL query on any application that exposes metrics.
- Type: List of maps
-
Example:
custom_services: - name: vLLM group: Workstation href: http://192.168.0.27:8000/v1/models icon: mdi-brain description: Qwen3.8-27B widget: type: prometheusmetric url: http://host.containers.internal:3013 metrics: - label: Running / waiting query: vllm:num_requests_running + vllm:num_requests_waiting - label: KV cache used query: vllm:kv_cache_usage_perc format: { type: number, scale: 100, suffix: " %" }