X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=README.md;h=5ea80fb84575b865f964fe2fa69be5fe58c8fd98;hb=refs%2Fpull%2F383%2Fhead;hp=90bbacf1d8ab08eb3c309dfbf84b1c16c0f11f78;hpb=b79e6ed17cf3f06f6e84dff04751df8f17c0f49f;p=github%2Fbastienwirtz%2Fhomer.git diff --git a/README.md b/README.md index 90bbacf..5ea80fb 100644 --- a/README.md +++ b/README.md @@ -1,115 +1,137 @@ -# Homer -A dead simple static **HOM**epage for your serv**ER** to keep your services on hand, from a simple `yaml` configuration file. - -**Check out the live demo [here](https://homer-demo.netlify.com/).** - -If you need authentication support, you're on your own (it can be secured using a web server auth module or exposing it only through a VPN network / SSH tunnel, ...) - -![screenshot](https://github.com/bastienwirtz/homer/blob/master/screenshot.png) - -## installation +
yaml
configuration file.
++ + Demo + ⢠+ Chat + ⢠+ Getting started + +
+ + ++ +
+ +## Table of Contents + +- [Features](#features) +- [Getting started](#getting-started) +- [Configuration](docs/configuration.md) +- [Custom services](docs/customservices.md) +- [Tips & tricks](docs/tips-and-tricks.md) +- [Development](docs/development.md) +- [Troubleshooting](docs/troubleshooting.md) + +## Features + +- [yaml](http://yaml.org/) 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, generated from the source in `/src` using webpack. It's meant to be served by an HTTP server, **it will not work if you open dist/index.html directly over file:// protocol**. + +See [documentation](docs/configuration.md) for information about the configuration (`assets/config.yml`) options. ### Using docker +To launch container: + ```sh -sudo docker run -p 8080:8080 -v /your/local/config.yml:/www/config.yml b4bz/homer:latest +docker run -d \ + -p 8080:8080 \ + -v :/www/assets \ + --restart=always \ + b4bz/homer:latest ``` -### Manually +Default assets will be automatically installed in the `/www/assets` directory. Use `UID` and/or `GID` env var to change the assets owner (`docker run -e "UID=1000" -e "GID=1000" [...]`). + +### Using docker-compose -**How to build / install it?** There is no build system (ð±), use it like that! It'meant to be stupid simple & zero maintenance required. just copy the static files somewhere, and visit the `index.html`. +The `docker-compose.yml` file must be edited to match your needs. +Set the port and volume (equivalent to `-p` and `-v` arguments): +```yaml +volumes: + - /your/local/assets/:/www/assets +ports: + - 8080:8080 +``` -## configuration +To launch container: -Title, icons, links, colors, and services can be configured in the `config.yml` file, using [yaml](http://yaml.org/) format. +```sh +cd /path/to/docker-compose.yml +docker-compose up -d +``` +Default assets will be automatically installed in the `/www/assets` directory. Use `UID` and/or `GID` env var to change the assets owner, also in `docker-compose.yml`: ```yaml ---- -# Homepage configuration -# See https://fontawesome.com/icons for icons options - -title: "Simple homepage" -subtitle: "Homer" -logo: "assets/homer.png" -# Alternatively a fa icon can be provided: -# icon: "fas fa-skull-crossbones" - -# Optional message -message: - # url: "https://Created with â¤ï¸ with bulma, vuejs & font awesome // Fork me on
' # set false if you want to hide it. - -# Optional navbar -links: - - name: "ansible" - icon: "fa-github" - url: "https://github.com/xxxxx/ansible/" - target: '_blank' # optionnal html a tag target attribute - - name: "Wiki" - icon: "fa-book" - url: "https://wiki.xxxxxx.com/" - -# Services -# First level array represent a group. -# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed). -services: - - name: "DevOps" - icon: "fa-code-fork" - items: - - name: "Jenkins" - logo: "/assets/tools/jenkins.png" - # Alternatively a fa icon can be provided: - # icon: "fab fa-jenkins" - subtitle: "Continuous integration server" - tag: "CI" - url: "#" - target: '_blank' # optionnal html a tag target attribute - - name: "RabbitMQ Management" - logo: "/assets/tools/rabbitmq.png" - subtitle: "Manage & monitor RabbitMQ server" - tag: "haproxy" - # Optional tagstyle - tagstyle: "is-success" - url: "#" - - name: "Monitoring" - icon: "fa-heartbeat" - items: - - name: "M/Monit" - logo: "/assets/tools/monit.png" - subtitle: "Monitor & manage all monit enabled hosts" - tag: "monit" - url: "#" - - name: "Grafana" - logo: "/assets/tools/grafana.png" - subtitle: "Metric analytics & dashboards" - url: "#" - - name: "Kibana" - logo: "/assets/tools/elastic.png" - subtitle: "Explore & visualize logs" - tag: "elk" - url: "#" - - name: "Website monitoring" - logo: "/assets/tools/pingdom.png" - subtitle: "Pingdom public reports overview" - tag: "CI" - url: "#" +environment: + - UID=1000 + - GID=1000 +``` + +### Using the release tarball (prebuilt, ready to use) +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. + +```sh +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 ... ``` -If you choose to fetch message information from an endpoint, the output format should be: +### Build manually + +```sh +# Using yarn (recommended) +yarn install +yarn build -```json -{ - "style": null, - "title": "Lorem ipsum 42", - "content": "LA LA LA Lorem ipsum dolor sit amet, ....." -} +# **OR** Using npm +npm install +npm run build ``` -`null` value or missing keys will be ignored and value from the `config.yml` will be used if available. -Empty values (either in `config.yml` or the endpoint data) will hide the element (ex: set `"title": ""` to hide the title bar) +Then your dashboard is ready to use in the `/dist` directory.