Fantastic homepages and where to find them
Once you reach a certain amount of services you frequently use, be it news feeds, blogs, or selfhosted services of any kind, bookmarks tend to get out of hand or become impractical, to say the least. Good news, you’re not the first one with this problem! Over the years, the OSS community created quite a few different landing pages and in this post, I will share my favorites with you!
With more and more people hosting more and more software on their own, e.g. within their home network or on a rented VPS, the need for easy-to-use home pages is evident. Most solutions are (rather) lightweight and can be run in a Docker container which most projects provide on top of their source code. My favorite projects over the last few years got different strengths and weaknesses, but see for your own!
Homer is exactly what it claims to be on its GitHub page - “a dead-simple
static HOMepage for your servER to keep your services on hand, from a simple
YAML configuration file.”
The project is licensed under Apache License 2.0 which allows for both, commercial and private use as well as modifications and distribution of the source code. It can be spun up via Docker very easily, either with or without persistent storage:
YAML file used for configuration gets created at /tmp/homer in this example and contains a well-commented
default configuration ready to adjust! The home page can be found at http://localhost:8080
and looks like this:
Basically anything you see can be customized - from the favicon over color schemes to menu links and widgets - there’s
even a builtin connectivity check for widgets! Talking about widgets, Homer comes with custom service displays for some
common applications to run from home - including the likes of
Prometheus, and many more.
Overall, Homer offers a simple UI without too much eye candy and yet a lot of configurable functionality - check it out. 😉
Heimdall is another home page which offers functionality similar to Homer, i.e. creation of entries for any links and special entries for foundation apps (242 apps) and enhanced apps (67 apps) which is a lot more than Homer supports. It is licensed under the MIT License which allows for commercial and private use as well as modifications and (re-)distribution of its source code, too.
Foundation apps come with preset colors and entry logos, all you need to do when configuring Heimdall is
to enter a service’s name and choose the right entry from the dropdown menu. You can find services such as
Grafana, and many more among the supported applications. Just enter the URL to your instance and
you’re good to go.
Enhanced apps allow for displaying custom data queried via API just as Homer does, but for many more services:
Traefik are just a few of the supported applications.
Just like Homer, Heimdall can be run via Docker:
Make sure to map a volume, since Heimdall’s configuration happens from the web app exclusively - you will need to save changes to disk persistently.
After Heimdall started (this may take some time on the first start), it will be accessible at http://localhost:8081. After adding a few enhanced apps, it might look like this - or completely different, based on your taste and apps.
To me, Heimdall appears to be Homer’s ‘big brother’ regarding functionality and style - it offers more accessible data for more services, a more efficient tagging system for categorizing your widgets and getting them off your landing page, and even allows for the creation of different users and access control.
Pomme Page takes a different approach for creating your home page: Instead of defining services to populate widgets with, you define the widgets themselves from scratch. This is a bit more work but allows for more individual tiling, spacing, and, most importantly, content of your widgets. It is licensed under the MIT License just like Heimdall.
The example application can be run by cloning from GitHub (see link above) and running via
npm - the provided
(written by me for an earlier release) seems to be broken these days and would need some tinkering. 🤔
The default dashboard looks like this (image taken from the GitHub repository):
As you can see, different widget types are provided and can be used for links with text, links with icons, or completely customized solutions involving graphs, icons, etc.
Writing your own widgets will require some knowledge of
Pug, a templating language for Node. Pomme-Page
definitely isn’t the easiest home page to set up, but if you’re keen on an aesthetic look whenever you open your browser
Dashy claims to be the ultimate homepage for your homelab and it might just be right with this. Grouping of entries, different themes, searching, multi-language support, and advanced checks of linked services make for a very powerful landing page with not much to miss. There’s even a live demo demonstrating most of its features. And a second and third to cover features missing in Demo No. 1, too!
If there’s really anything missing, you are free to add it - Dashy’s licensed under MIT License like Heimdall and Pomme Page.
Like Homer and Heimdall, Dashy can be hosted using its Docker container again:
You can provide an empty configuration file here, as you will be able to save the default config from the web frontend to disk and continue editing your home page afterwards. After quite some work, your dashboard might look like the demo one:
As already mentioned, Dashy is extremely versatile and offers even more functionality than I mentioned before, including remote backups, access control, and custom CSS. While not set up as fast as Homer or Heimdall, Dashy still offers a straightforward way to configure it via web GUI, no tinkering with source code needed.
Two simple home pages, set up in the blink of an eye, one aesthetically pleasing home page framework if you know how to approach it and love to really do things yourself and one feature-rich, configuration-heavy solution - which one will you choose? In my opinion, every application got its place and use case, you’ll just need to find the one which fits best for you.