Homer: A Static YAML Dashboard for Self-Hosted Services
A very simple static homepage for your server. Build manually Then your dashboard is ready to use in the /dist directory.
At a glance
- What is it?
- Homer is a lightweight, static homepage for self-hosted services, configured entirely through a single YAML file. It trades dynamic features for simplicity and low maintenance, making it a solid choice for homelab users who want a clean, fast dashboard without a database or backend.
- Who is it for?
- Homer is for self-hosters who want a no-fuss, static dashboard that runs anywhere an HTTP server can, with zero backend dependencies. It is not for you if you need dynamic updates, user authentication, or complex widgets that require server-side logic.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 12 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Homer Solves and Who It Is For
The project's own description says it is for keeping your services "on hand," which is exactly the use case. If you have a NAS, a media server, a Pi-hole, or a home automation hub, Homer gives you a single entry point. It also works for a small office that wants a shared landing page for internal tools. The simplicity is the selling point, but it is also the boundary. You do not get user-specific views, dynamic status updates, or any kind of backend logic. If your need is purely organizational, Homer fits. If you need something smarter, it will not stretch.
The Mechanism: Static Files, YAML Configuration, and a Build Step
The static nature is both a feature and a constraint. Because there is no backend, Homer cannot know if a service is down or up. It can only show what you tell it. The README does mention "smart cards," which are a way to display dynamic data, but that requires the service to expose a JSON API, and the card configuration is done in the YAML. That is still client-side fetching. The application also supports fuzzy search and keyboard shortcuts, which are implemented in JavaScript. The search index is built from the YAML data, so it is instant and local. The architecture is refreshingly simple, but it means you are limited to what a static page can do.
Getting It Running: Docker, Tarball, or Manual Build
The manual build is for developers who want to customize the theme or contribute. The tarball is for users who do not want Docker. The Docker method is the most common, and the bind mount makes configuration updates trivial. The `INIT_ASSETS` variable is useful for first-time setup because it populates the config directory with a sample. The `SUBFOLDER` variable is important if you plan to host Homer behind a reverse proxy at a subpath, like `/homer`. Without it, the asset paths would break. The `PORT` variable lets you avoid conflicts. Overall, the setup is well documented and within reach of a beginner who has basic command-line comfort.
Configuration and Customization: The YAML File and Smart Cards
The configuration is a single file, which is both a blessing and a curse. A single file is easy to back up, version control, and edit. But if you have many services, the file can get long. The YAML structure is likely nested, with groups and items, so you can organize logically. The documentation is essential here because the README does not list all keys. You will need to consult `docs/configuration.md` for the full schema. That is a minor friction point, but the project is mature enough that the docs are probably complete. The smart cards are the only way to get dynamic data, and they require the service to expose a JSON endpoint. That is a limitation if your services do not have APIs.
Limitations and Failure Modes: Static Means Static
Homer is the wrong tool if you need a dashboard that reflects real-time status, has user accounts, or requires server-side logic. It is also wrong if you want to embed complex iframes or interactive widgets that need a backend. The project's simplicity is its strength, but it is also the ceiling. You cannot extend Homer with plugins or scripts; you are stuck with the features that are built in. The development docs might show how to contribute, but for a user, there is no extension mechanism. That is a trade-off you should accept before adopting.
Alternatives: Heimdall and Organizr Offer More, at a Cost
There is also the option of building your own dashboard with a static site generator like Hugo or Jekyll, but that requires more work. Homer gives you a ready-made solution with a search function and theming. The trade-off is that you are locked into Homer's YAML schema. If you outgrow it, you will need to migrate to a dynamic solution. That migration is not trivial because you would have to re-enter all your services in a new format. So, consider your future needs before committing.
Maintenance, Upgrade Cost, and License
One upgrade consideration is the `INIT_ASSETS` environment variable. If you had it enabled initially, it created a config file. On subsequent upgrades, it might overwrite your config if the container recreates the assets directory. The README does not specify, but it is safer to set `INIT_ASSETS=0` after the first run to avoid any accidental overwrites. Also, the `SUBFOLDER` and `PORT` variables are set at container start, so if you change them, you must recreate the container. The project's release cadence suggests that breaking changes are possible, so always check the release notes before upgrading. Overall, the cost of maintaining Homer is low, but it is not zero. You need to keep your YAML file in version control, which the README does not explicitly recommend but is a good practice.
Editorial conclusion
Homer is for self-hosters who want a no-fuss, static dashboard that runs anywhere an HTTP server can, with zero backend dependencies. It is not for you if you need dynamic updates, user authentication, or complex widgets that require server-side logic. Before adopting, verify that your services expose simple URLs or APIs that can be represented as static links or smart cards, and confirm that your deployment method (Docker, tarball, or manual build) matches your environment, especially regarding the bind mount permissions and the file:// protocol limitation. If you need more interactivity, look at alternatives like Heimdall or Organizr, but expect more setup and maintenance. Homer's strength is its simplicity: a YAML file, a static build, and you are done.
Community notes