A very simple static homepage for your server.
Go to file
Bastien Wirtz a6cbd1c22d Drop armv6 support
armv6 build seems broken, bloking all other arch release. Disabling it,
at least for now.
2024-03-10 14:30:57 +01:00
.github Drop armv6 support 2024-03-10 14:30:57 +01:00
docs Update customservices.md 2024-02-23 00:59:40 -08:00
dummy-data PiAlert custom service (#674) 2023-08-06 21:48:52 +02:00
public Fix typo in demo page (#574) 2022-12-20 20:27:13 +01:00
src chore: lint 2024-03-10 14:19:43 +01:00
.dockerignore Regroup all editable files in one place 2020-06-28 11:05:40 -07:00
.eslintrc.cjs Fix lint issues 2022-07-03 21:59:57 +02:00
.gitignore Explicitly define start_url 2020-06-29 20:03:52 +02:00
CODE_OF_CONDUCT.md Adding contribution guidelines 2020-03-22 17:44:02 -07:00
CONTRIBUTING.md Extendable base service for easier development. 2021-10-06 22:55:09 +02:00
docker-compose.yml Simplify the container starting process to allow it to run with a 2022-04-30 15:39:36 +02:00
Dockerfile Update build build actions 2024-03-08 10:27:34 +01:00
entrypoint.sh Properly pass signals to lighttpd 2022-11-19 16:06:09 +01:00
index.html Fix theming issue & subfolder hosting 2022-07-12 14:07:10 +02:00
LICENSE Replace licence placeholder. Fix #142 2020-12-23 10:55:05 -08:00
lighttpd-ipv6.sh fix: reverse IPV6_DISABLE logic 2023-10-21 05:16:20 -07:00
lighttpd.conf fix: allow disabling IPv6 2023-10-21 05:16:20 -07:00
package.json chore: lint 2024-03-10 14:19:43 +01:00
README.md fix(docs): only accept 1 for IPV6_DISABLE 2023-10-21 05:16:20 -07:00
vite.config.js Add scope and start_url to PWA manifest 2022-11-08 20:56:10 +01:00
yarn.lock chore: lint 2024-03-10 14:19:43 +01:00

Homer's donut
Homer

A dead simple static HOMepage for your servER to keep your services on hand, from a simple yaml configuration file.

Buy Me A Coffee

DemoChatGetting started

License: Apache 2 Gitter chat Download homer static build speed-blazing Awesome

Table of Contents

Features

  • yaml file configuration
  • Installable (pwa)
  • Search
  • Grouping
  • Theme customization
  • Offline health check
  • keyboard shortcuts:
    • / Start searching.
    • Escape Stop searching.
    • Enter Open the first matching result (respects the bookmark's _target property).
    • Alt/Option + Enter Open the first matching result in a new tab.

Getting started

Homer is a full static html/js dashboard, based on a simple yaml configuration file. See documentation for information about the configuration (assets/config.yml) options.

It's meant to be served by an HTTP server, it will not work if you open the index.html directly over file:// protocol.

Using docker

docker run -d \
  -p 8080:8080 \
  -v </your/local/assets/>:/www/assets \
  --restart=always \
  b4bz/homer:latest

The container will run using a user uid and gid 1000. Add --user <your-UID>:<your-GID> to the docker command to adjust it. Make sure this match the ownership of your assets directory.

Environment variables:

  • INIT_ASSETS (default: 1) Install example configuration file & assets (favicons, ...) to help you get started.

  • SUBFOLDER (default: null) If you would like to host Homer in a subfolder, (ex: http://my-domain/homer), set this to the subfolder path (ex /homer).

  • PORT (default: 8080) If you would like to change internal port of Homer from default 8080 to your port choice.

  • IPV6_DISABLE (default: 0) Set to 1 to disable listening on IPv6.

With docker-compose

A docker-compose.yml file is available as an example. It must be edited to match your needs. You probably want to adjust the port mapping and volume binding (equivalent to -p and -v arguments).

Then launch the container:

cd /path/to/docker-compose.yml/
docker-compose up -d

Using the release tarball (prebuilt, ready to use)

Download and extract the latest release (homer.zip) from the release page, rename the assets/config.yml.dist file to assets/config.yml, and put it behind a web server.

wget https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip
unzip homer.zip
cd homer
cp assets/config.yml.dist assets/config.yml
npx serve # or python -m http.server 8010 or apache, nginx ...

Using Helm

Thanks to @djjudas21 charts:

helm repo add djjudas21 https://djjudas21.github.io/charts/
helm repo update djjudas21

# install with all defaults
helm install homer djjudas21/homer

# install with customisations
wget https://raw.githubusercontent.com/djjudas21/charts/main/charts/homer/values.yaml
# edit values.yaml
helm install homer djjudas21/homer -f values.yaml

Build manually

# Using yarn (recommended)
yarn install
yarn build

# **OR** Using npm
npm install
npm run build

Then your dashboard is ready to use in the /dist directory.