Homepage — Highly Customizable Self-Hosted Dashboard
Homepage is a modern, fully customizable application dashboard and startpage. It integrates with 100+ services to display real-time status, weather, bookmarks, and widgets — all configured through simple YAML files.
What it is
Homepage is a modern, fully customizable application dashboard and startpage. It integrates with 100+ services to display real-time status, weather, bookmarks, and widgets, all configured through simple YAML files. It serves as a central hub for your self-hosted services, showing at a glance whether everything is running.
Homepage targets homelab operators and self-hosters who run multiple services and need a single page to monitor and access them. Instead of bookmarking 20 different URLs, you have one dashboard that shows the status of each service.
Why it saves time or tokens
Checking the status of multiple self-hosted services means opening each one individually. Homepage shows all services on one page with live status indicators, resource usage, and quick links. The YAML configuration is simple enough that AI assistants can generate service entries accurately, and adding a new service takes one YAML block.
How to use
- Deploy Homepage with Docker:
docker run -p 3000:3000 -v ./config:/app/config ghcr.io/gethomepage/homepage - Edit
services.yamlto add your services with URLs and API keys - Configure
widgets.yamlfor weather, search, and system info widgets
Example
# services.yaml
- Media:
- Plex:
icon: plex.svg
href: https://plex.example.com
description: Media Server
widget:
type: plex
url: http://plex:32400
key: your-plex-token
- Navidrome:
icon: navidrome.svg
href: https://music.example.com
description: Music Server
- Infrastructure:
- Proxmox:
icon: proxmox.svg
href: https://proxmox.example.com
widget:
type: proxmox
url: https://proxmox:8006
username: api-user
password: api-token
| Widget Type | Data Shown |
|---|---|
| Service status | Up/down indicator |
| Plex/Jellyfin | Active streams, library size |
| Docker | Container count, status |
| System | CPU, memory, disk usage |
| Weather | Current conditions, forecast |
Related on TokRepo
- AI tools for self-hosted — self-hosted applications on TokRepo
- AI tools for monitoring — monitoring and dashboard tools
Common pitfalls
- Service widgets require API keys or tokens for each service; gathering these takes time during initial setup
- YAML indentation errors cause the entire config to fail; use a YAML validator before restarting
- Homepage makes HTTP requests to each service for status; services behind authentication may require dedicated API tokens
Frequently Asked Questions
Homepage integrates with over 100 services including Plex, Jellyfin, Sonarr, Radarr, Pi-hole, AdGuard, Proxmox, Portainer, Traefik, Nginx Proxy Manager, and many more. Each integration provides a widget showing service-specific data like active streams, download status, or system metrics.
All three are self-hosted dashboards. Homepage uses YAML configuration and focuses on service widgets. Homarr has a drag-and-drop UI editor. Dashy offers the most customization options with themes and layouts. Homepage is the simplest to configure for users comfortable with YAML.
Yes. Homepage has a Docker integration that shows container status, health, and resource usage. You can configure it to auto-discover containers by label, so new containers appear on the dashboard automatically without editing YAML.
Homepage itself does not have built-in authentication. For public-facing deployments, place it behind a reverse proxy with authentication (Authentik, Authelia, or basic auth). For local network use, most homelab operators run it without auth.
Yes. Homepage supports custom CSS, multiple color themes (light/dark), custom backgrounds, and layout options. You configure appearance in settings.yaml. The design is modern and responsive, working well on both desktop and mobile browsers.
Citations (3)
- Homepage GitHub— Homepage is a modern self-hosted dashboard
- Homepage Docs— Homepage integrates with 100+ services
- Homepage Widgets— YAML configuration for application dashboards
Related on TokRepo
Discussion
Related Assets
Cucumber.js — BDD Testing with Plain Language Scenarios
Cucumber.js is a JavaScript implementation of Cucumber that runs automated tests written in Gherkin plain language.
WireMock — Flexible API Mocking for Java and Beyond
WireMock is an HTTP mock server for stubbing and verifying API calls in integration tests and development.
Google Benchmark — Microbenchmark Library for C++
Google Benchmark is a library for measuring and reporting the performance of C++ code with statistical rigor.