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 3 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 November 13, 2026, and from our analysis. They are not legal advice.
Star history
- bastienwirtz/homer11,717 ★ · +207
| Repository | 2026-07-28 | 2026-11-13 |
|---|---|---|
| bastienwirtz/homer | 11.5k | 11.7k |
207 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial 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. The README lists "smart cards" among its highlights and points to docs/customservices.md for them. The application also supports fuzzy search and keyboard shortcuts. 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 uses a bind mount, which 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.
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. 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. 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 for a dynamic dashboard instead. Homer's strength is its simplicity: a YAML file, a static build, and you are done.
Frequently asked questions
how to install homer
Three paths are given: `docker run` with the config directory bind mounted to /www/assets, a docker-compose service using image b4bz/homer with user 1000:1000 and INIT_ASSETS=1, or downloading homer.zip from the releases page, renaming assets/config.yml.dist to assets/config.yml, and serving it. A fourth option is building with `pnpm install` and `pnpm build` and using the /dist directory.
how to use homer
Homer reads one yaml configuration file at assets/config.yml and needs to be served by an HTTP server, since it will not work over the file protocol. Keyboard control covers searching: / starts a search, Escape stops it, Enter opens the first match respecting the bookmark's _target property, and Alt or Option plus Enter opens it in a new tab.
how to setup homer dashboard
Create your config directory on the host first, then mount it at /www/assets so edits to the yaml show up in the served dashboard. The container runs as uid and gid 1000 by default, and INIT_ASSETS=1 needs that directory to be writable by that user.
how to setup homer
Rename assets/config.yml.dist to assets/config.yml after extracting the release zip, or let the container do the bootstrap with INIT_ASSETS=1. Serving is mandatory rather than optional: pnpx http-server, python -m http.server 8010, or any web server will do, and the page states the dashboard does not work over the file protocol.
how to install homer on mac
No macOS specific path is given for Homer. The generic routes are the ones documented: the prebuilt homer.zip served by any web server, which needs nothing beyond unzip and a server command, or the container, which is pinned to the linux images alpine:3.23 and node:24-alpine3.23.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/bastienwirtz-homer)Star history chart for your README
[](https://hysenlabs.com/projects/bastienwirtz-homer)Was this useful?