2020-06-29 04:42:07 +00:00
< h1 align = "center" >
2021-09-25 10:12:22 +00:00
< img
width="180"
alt="Homer's donut"
src="https://raw.githubusercontent.com//bastienwirtz/homer/main/public/logo.png">
2020-06-29 04:42:07 +00:00
< br / >
Homer
< / h1 >
< h4 align = "center" >
2021-09-25 10:12:22 +00:00
A dead simple static < strong > HOM< / strong > epage for your serv< strong > ER< / strong > to keep your services on hand, from a simple < code > yaml< / code > configuration file.
2020-06-29 04:42:07 +00:00
< / h4 >
2024-10-25 19:58:32 +00:00
< p align = "center" >
2022-10-28 08:24:38 +00:00
< a href = "https://www.buymeacoffee.com/bastien" target = "_blank" > < img src = "https://cdn.buymeacoffee.com/buttons/default-yellow.png" alt = "Buy Me A Coffee" height = "41" width = "174" > < / a >
< p >
2020-06-29 04:42:07 +00:00
< p align = "center" >
2021-09-25 10:12:22 +00:00
< a href = "https://opensource.org/licenses/Apache-2.0" > < img
alt="License: Apache 2"
src="https://img.shields.io/badge/License-Apache%202.0-blue.svg">< / a >
2020-06-29 04:42:07 +00:00
< a href = "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip" > < img
2021-09-25 10:12:22 +00:00
alt="Download homer static build"
src="https://img.shields.io/badge/Download-homer.zip-orange">< / a >
2022-09-01 13:29:12 +00:00
< a href = "https://twitter.com/acdlite/status/974390255393505280" > < img
alt="speed-blazing"
src="https://img.shields.io/badge/speed-blazing%20%F0%9F%94%A5-red">< / a >
2021-09-25 10:12:22 +00:00
< a href = "https://github.com/awesome-selfhosted/awesome-selfhosted" > < img
alt="Awesome"
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg">< / a >
2020-06-29 04:42:07 +00:00
< / p >
2024-10-25 19:58:32 +00:00
## Highlights
- ⚡️ Lightweight & Fast
- 🥱 Low / No maintenance
- 📄 Simple [yaml ](http://yaml.org/ ) file configuration
- ➕ Installable (pwa)
- 🧠 Smart cards
- 🔍️ Fuzzy search
- 📂 Multi pages & item grouping
- 🎨 Theme customization
- ⌨️ keyboard shortcuts:
2024-11-06 12:56:12 +00:00
- < kbd > /</ kbd > Start searching.
- < kbd > Escape</ kbd > Stop searching.
- < kbd > Enter</ kbd > Open the first matching result (respects the bookmark's `_target` property).
- < kbd > Alt</ kbd > (or < kbd > Option</ kbd > ) + < kbd > Enter</ kbd > Open the first matching result in a new tab.
2018-06-14 05:14:05 +00:00
2024-11-13 22:13:45 +00:00
## Table of Contents
- [Getting started ](#get-started )
- [Kubernetes Installation ](docs/kubernetes.md )
- [Configuration ](docs/configuration.md )
- [Theming ](docs/theming.md )
- [Smart cards ](docs/customservices.md )
- [Tips & tricks ](docs/tips-and-tricks.md )
- [Development ](docs/development.md )
- [Troubleshooting ](docs/troubleshooting.md )
2024-10-25 19:58:32 +00:00
## Get started
2020-03-22 22:51:54 +00:00
2022-06-29 21:02:10 +00:00
Homer is a full static html/js dashboard, based on a simple yaml configuration file. See [documentation ](docs/configuration.md ) for information about the configuration (`assets/config.yml`) options.
2020-02-27 23:13:48 +00:00
2022-06-29 21:02:10 +00:00
It's meant to be served by an HTTP server, **it will not work if you open the index.html directly over file:// protocol** .
2020-06-12 05:40:36 +00:00
2020-02-27 23:13:48 +00:00
### Using docker
2024-11-13 11:07:23 +00:00
The configuration directory is bind mounted to make your dashboard easy to maintain.
**Start the container with `docker run` **
2020-02-27 23:13:48 +00:00
```sh
2024-11-13 11:07:23 +00:00
# Make sure your local config directory exists
2021-02-16 06:23:16 +00:00
docker run -d \
2024-11-13 11:07:23 +00:00
--name homer \
2021-02-16 06:23:16 +00:00
-p 8080:8080 \
2024-11-13 11:07:23 +00:00
--mount type=bind,source="/path/to/config/dir",target=/www/assets \
--restart=unless-stopped \
2021-02-16 06:23:16 +00:00
b4bz/homer:latest
2020-02-27 23:13:48 +00:00
```
2024-11-13 11:07:23 +00:00
> [!NOTE]
> The container will run using a user uid and gid 1000 by default, add `--user <your-UID>:<your-GID>` to the docker command to adjust it if necessary. Make sure this match the permissions of your assets directory.
**or `docker-compose` **
```yaml
services:
homer:
image: b4bz/homer
container_name: homer
volumes:
- /path/to/config/dir:/www/assets # Make sure your local config directory exists
ports:
- 8080:8080
user: 1000:1000 # default
environment:
- INIT_ASSETS=1 # default, requires the config directory to be writable for the container user (see user option)
restart: unless-stopped
```
2022-06-29 21:02:10 +00:00
2024-10-25 19:58:32 +00:00
**Environment variables:**
2022-04-10 09:55:11 +00:00
2024-10-25 19:58:32 +00:00
- **`INIT_ASSETS`** (default: `1` )
2022-05-03 17:00:49 +00:00
Install example configuration file & assets (favicons, ...) to help you get started.
2020-06-07 06:15:27 +00:00
2024-10-25 19:58:32 +00:00
- **`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` ).
2021-06-21 17:33:21 +00:00
2024-10-25 19:58:32 +00:00
- **`PORT`** (default: `8080` )
2022-07-28 09:00:57 +00:00
If you would like to change internal port of Homer from default `8080` to your port choice.
2024-10-25 19:58:32 +00:00
- **`IPV6_DISABLE`** (default: 0)
2023-09-26 00:17:08 +00:00
Set to `1` to disable listening on IPv6.
2022-07-28 09:00:57 +00:00
2022-06-29 21:02:10 +00:00
#### With docker-compose
2021-06-21 17:33:21 +00:00
2022-06-29 21:02:10 +00:00
A [`docker-compose.yml` ](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).
2020-06-29 19:39:47 +00:00
2022-04-10 09:55:11 +00:00
Then launch the container:
2020-06-29 19:39:47 +00:00
```sh
2022-04-10 09:55:11 +00:00
cd /path/to/docker-compose.yml/
2020-06-29 19:39:47 +00:00
docker-compose up -d
```
2020-06-06 05:56:53 +00:00
### Using the release tarball (prebuilt, ready to use)
2020-05-25 22:07:03 +00:00
2021-09-25 10:12:22 +00:00
Download and extract the latest release (`homer.zip`) from the [release page ](https://github.com/bastienwirtz/homer/releases ), rename the `assets/config.yml.dist` file to `assets/config.yml` , and put it behind a web server.
2020-11-14 12:25:01 +00:00
2020-05-25 22:07:03 +00:00
```sh
2020-06-06 05:56:53 +00:00
wget https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip
2024-01-13 05:47:56 +00:00
unzip homer.zip -d homer
2020-06-06 05:56:53 +00:00
cd homer
2020-06-24 05:56:33 +00:00
cp assets/config.yml.dist assets/config.yml
2024-10-30 12:39:05 +00:00
pnpx http-server # or python -m http.server 8010 or any web server.
2020-05-25 22:07:03 +00:00
```
2020-06-06 05:56:53 +00:00
### Build manually
2020-05-25 22:07:03 +00:00
```sh
2024-04-22 17:55:25 +00:00
pnpm install
pnpm build
2020-05-25 22:07:03 +00:00
```
2020-06-06 05:56:53 +00:00
Then your dashboard is ready to use in the `/dist` directory.