TiloBox
Back to directory
Homepage project preview

Homepage

A configurable application dashboard with Docker discovery plus service and information widgets.

LicenseGPL-3.0
GitHub stars32.2k
Last commit1 weeks ago
Tags6 topics
DashboardPrivacyWidgetsSelf HostedOpen SourceDocker
Overview

Why consider Homepage?

Homepage is an open-source, highly customizable application dashboard and startpage designed to monitor self-hosted services and infrastructure. It features instant static builds, secure backend API proxying, and native integrations for Docker, Kubernetes, and over 100 third-party services.

Guided learning

Learn Homepage by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

4 min read 4 sections
In this guide4 sections

Self-Hosting with Homepage: Fast, Secure Application Dashboard

Homepage is an open-source, highly customizable dashboard and startpage designed for self-hosted infrastructure and personal homelabs. Homepage is a statically generated application dashboard that proxies backend API requests to keep credentials hidden and supports YAML configuration as well as Docker label discovery.

By combining instant static rendering with an active ecosystem of over 100 service widgets, Homepage serves as a central hub for monitoring system health, managing bookmarks, and inspecting live service metrics. The official documentation is maintained at gethomepage.dev.

Deploying Homepage with Docker Compose

The standard deployment method for Homepage is containerized execution via Docker Compose. The configuration requires mounting a persistent directory for your configuration files and optionally mounting the Docker socket for container monitoring.

To set up Homepage, create a docker-compose.yml file as documented in the official Docker installation guide:

yaml
1services:
2 homepage:
3 image: ghcr.io/gethomepage/homepage:latest
4 container_name: homepage
5 ports:
6 - 3000:3000
7 volumes:
8 - /path/to/config:/app/config # Make sure your local config directory exists
9 - /var/run/docker.sock:/var/run/docker.sock:ro # (optional) For docker integrations
10 environment:
11 HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts

Make sure the local path mapped to /app/config exists before launching the container. Set the HOMEPAGE_ALLOWED_HOSTS variable to your access domain or host IP to ensure security headers permit inbound connections.

Launch the service using Docker Compose:

bash
1docker compose up -d

Once running, access the dashboard at http://localhost:3000 or your host IP address.

Organizing Groups and Declaring Services

Dashboard services and layout groups are defined inside the services.yaml configuration file, supporting arbitrary numbers of groups and service items. This file resides in the mounted /app/config volume directory.

The service configuration documentation demonstrates how to organize services into logical groups:

yaml
1- Media Services:
2 - Jellyfin:
3 icon: jellyfin.png
4 href: http://192.168.1.50:8096/
5 description: Media Streaming Server
6
7- Infrastructure:
8 - Pi-hole:
9 icon: pi-hole.png
10 href: http://192.168.1.2/admin
11 description: Network DNS Sinkhole

Groups can be nested to create multi-tier hierarchies, allowing complex homelab environments to stay cleanly partitioned across functional areas such as networking, storage, and media automation.

Service Widgets and API Proxying

A key architectural advantage of Homepage is its security posture when interfacing with downstream APIs. All outbound API requests to downstream services are proxied through the server layer so that sensitive API keys remain concealed from the client browser.

Service widgets fetch real-time operational metrics directly into service cards. For example, attaching an Emby widget into services.yaml requires specifying the widget type, target URL, and API key as shown in the official services configuration guide:

yaml
1- Emby:
2 icon: emby.png
3 href: http://emby.host.or.ip/
4 description: Movies & TV Shows
5 widget:
6 type: emby
7 url: http://emby.host.or.ip
8 key: apikeyapikeyapikeyapikeyapikey

When rendered, Homepage connects to the Emby API on the server side and forwards sanitized status data to the browser interface. Widgets also support custom headers, field visibility controls, and block tint highlighting for immediate visual alerts when thresholds are crossed.

Docker Discovery and Permission Management

Homepage offers native Docker integration capable of discovering and registering dashboard entries automatically using container labels. Instead of declaring every container manually in YAML, adding homepage.group, homepage.name, and homepage.href labels to container definitions allows Homepage to discover and display them dynamically upon startup.

For container execution security, While the container runs as root by default, Homepage supports running as a non-root user through standard PUID and PGID environment variables. When specifying non-root user IDs, ensure that local config directories on the host share matching file ownership so the application container maintains read and write access.

The project is actively maintained under the GNU General Public License v3.0, with regular maintenance updates such as the v2.1.2 release where The v2.1.2 release resolved a YAML parsing regression introduced in the previous version. Additional features, changelogs, and translation updates are detailed across the official README and documentation portals.

Related tools

More options with a similar category or technology profile.

Homepage FAQs

Homepage is listed as a Monitoring tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Homepage is listed under the GPL-3.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Homepage is listed as an alternative to Flame. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.