Homepage: The Dashboard for All Your Self-Hosted Services
The more services you self-host, the more bookmarks and IP addresses you have to remember. A dashboard solves that: a single start page that links all your services, shows system load and even tells you which containers are running right now. Homepage is the nicest and fastest tool for it. What are we building? A central dashboard with Homepage (v2.2.0) behind Traefik , configured entirely…
Self-hosted services often require numerous bookmarks and IP addresses to remember. A dashboard simplifies this by providing a single start page that links all services, displays system load, and indicates which containers are currently running. Homepage is a sleek and swift solution for this purpose. It functions as a central dashboard using Traefik, configured through simple YAML files.
By the conclusion, you'll have a polished start page featuring tiles for all services, widgets for CPU/RAM/disk, a search box, and the standout feature: Homepage reads the Docker socket and shows live container status. This version 2 of Homepage includes its own login, ensuring the dashboard isn't left open on the internet.
To set up Homepage, you'll need a server with Traefik running and Docker Compose, a subdomain pointing to the server, and a few services already running to link. The steps are as follows:
1. Create the project and config folder: Homepage relies solely on YAML files within a designated config folder. Establish the structure by running `mkdir -p /opt/homepage/config && cd /opt/homepage`.
2. Set base settings: The file `config/settings.yaml` dictates the dashboard's appearance and layout. Two groups are defined as a row layout with three columns each. The names under layout (such as "Infrastructure" and "Media") must later correspond with the group names in the services file. This ensures the layout applies correctly.
3. Link your services: `config/services.yaml` serves as the core—the heart of your tiles. Each service is assigned a name, a URL, a description, and an icon. Homepage automatically retrieves matching icons from a vast catalog when you provide the name with a .png extension.
4. Add widgets for system load and search: The file `config/widgets.yaml` controls the information bar at the top. It includes resources for CPU, memory, and disk, a search box linked to DuckDuckGo, and a date/time widget with customizable text size and styles.
5. Connect Traefik and add host protection: The file `compose.yaml` is where Traefik integration occurs. Replace `YOUR_DOMAIN` with your actual subdomain. The environment variable `HOMEPAGE_ALLOWED_HOSTS` is mandatory, as it prevents the dashboard from responding to requests under an unknown hostname, enhancing security by thwarting DNS rebinding attacks.
6. Live container status: The most significant feature of Homepage is its ability to read Docker directly to show whether a container is running and to display CPU/RAM usage per container. Create `config/docker.yaml` for this purpose.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.