# 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/).**
+**Check out the live demo [here](https://homer-demo.netlify.app).**
+
+It supports 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.
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)
+![screenshot](https://raw.github.com/bastienwirtz/homer/master/screenshot.png)
+
+## Roadmap
-## installation
+* [ ] Colors / theme customization
+* [ ] Enable PWA support (making possible to "install" - add to homescreen - it)
+* [ ] Improve maintainability (external library import & service workers cached file list.)
+
+## Installation
### Using docker
### Manually
-**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`.
-
+**How to build / install it?** There is no build system (😱), use it like that! It's meant to be stupid simple & zero maintenance required. Just copy the static files somewhere, and visit the `index.html`.
-## configuration
+## Configuration
Title, icons, links, colors, and services can be configured in the `config.yml` file, using [yaml](http://yaml.org/) format.
-
```yaml
---
# Homepage configuration
# links: [] # Allows for navbar (dark mode, layout, and search) without any links
links:
- name: "ansible"
- icon: "fa-github"
+ icon: "fab fa-github"
url: "https://github.com/xxxxx/ansible/"
- target: '_blank' # optionnal html a tag target attribute
+ target: '_blank' # optional html a tag target attribute
- name: "Wiki"
- icon: "fa-book"
+ icon: "fas fa-book"
url: "https://wiki.xxxxxx.com/"
# Services
# 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"
+ icon: "fa fa-code-fork"
items:
- name: "Jenkins"
logo: "/assets/tools/jenkins.png"
subtitle: "Continuous integration server"
tag: "CI"
url: "#"
- target: '_blank' # optionnal html a tag target attribute
+ target: '_blank' # optional html a tag target attribute
- name: "RabbitMQ Management"
logo: "/assets/tools/rabbitmq.png"
subtitle: "Manage & monitor RabbitMQ server"
tagstyle: "is-success"
url: "#"
- name: "Monitoring"
- icon: "fa-heartbeat"
+ icon: "fas fa-heartbeat"
items:
- name: "M/Monit"
logo: "/assets/tools/monit.png"
```json
{
- "style": null,
- "title": "Lorem ipsum 42",
- "content": "LA LA LA Lorem ipsum dolor sit amet, ....."
+ "style": null,
+ "title": "Lorem ipsum 42",
+ "content": "LA LA LA Lorem ipsum dolor sit amet, ....."
}
```
`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)
+Empty values (either in `config.yml` or the endpoint data) will hide the element (ex: set `"title": ""` to hide the title bar).