]> git.immae.eu Git - github/bastienwirtz/homer.git/blame - README.md
Merge pull request #56 from nightah/fix-docker-multiarch-builds
[github/bastienwirtz/homer.git] / README.md
CommitLineData
09763dbf 1# Homer
7bb903e6 2
8aa8398f 3A dead simple static **HOM**epage for your serv**ER** to keep your services on hand, from a simple `yaml` configuration file.
09763dbf 4
5861f0f8 5**Check out the live demo [here](https://homer-demo.netlify.app).**
5fe53dce 6
a4de4a3a
JS
7It supports keyboard shortcuts:
8
9* `/` Start searching.
10* `Escape` Stop searching.
11* `Enter` Open the first matching result (respects the bookmark's `_target` property).
12* `Alt`/`Option` + `Enter` Open the first matching result in a new tab.
13
8aa8398f 14If 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, ...)
09763dbf 15
22555b55 16![screenshot](https://raw.github.com/bastienwirtz/homer/master/screenshot.png)
09763dbf 17
22555b55
BW
18## Roadmap
19
7bb903e6
FB
20* [ ] Colors / theme customization
21* [ ] Enable PWA support (making possible to "install" - add to homescreen - it)
22* [ ] Improve maintainability (external library import & service workers cached file list.)
22555b55
BW
23
24## Installation
b79e6ed1
BW
25
26### Using docker
27
28```sh
46fd4f4d 29sudo docker run -p 8080:8080 -v /your/local/config.yml:/www/config.yml -v /your/local/assets/:/www/assets b4bz/homer:latest
b79e6ed1
BW
30```
31
32### Manually
33
22555b55 34**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`.
e41196e7 35
22555b55 36## Configuration
09763dbf
BW
37
38Title, icons, links, colors, and services can be configured in the `config.yml` file, using [yaml](http://yaml.org/) format.
39
09763dbf
BW
40```yaml
41---
42# Homepage configuration
e41196e7 43# See https://fontawesome.com/icons for icons options
09763dbf
BW
44
45title: "Simple homepage"
46subtitle: "Homer"
47logo: "assets/homer.png"
e41196e7 48# Alternatively a fa icon can be provided:
46fd4f4d
BW
49# icon: "fas fa-skull-crossbones"
50footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it.header:
09763dbf
BW
51
52# Optional message
53message:
7fd9dc6f 54 # url: "https://<my-api-endpoint>" # Can fetch information from an endpoint to override value below.
e3212743 55 style: "is-warning"
09763dbf
BW
56 title: "Optional message!"
57 content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque risus mi, tempus quis placerat ut, porta nec nulla. Vestibulum rhoncus ac ex sit amet fringilla. Nullam gravida purus diam, et dictum felis venenatis efficitur. Aenean ac eleifend lacus, in mollis lectus. Donec sodales, arcu et sollicitudin porttitor, tortor urna tempor ligula."
58
59# Optional navbar
5028088e 60# links: [] # Allows for navbar (dark mode, layout, and search) without any links
09763dbf
BW
61links:
62 - name: "ansible"
aabb7d53 63 icon: "fab fa-github"
09763dbf 64 url: "https://github.com/xxxxx/ansible/"
7bb903e6 65 target: '_blank' # optional html a tag target attribute
09763dbf 66 - name: "Wiki"
aabb7d53 67 icon: "fas fa-book"
09763dbf
BW
68 url: "https://wiki.xxxxxx.com/"
69
70# Services
71# First level array represent a group.
7312bdd6 72# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
09763dbf
BW
73services:
74 - name: "DevOps"
aabb7d53 75 icon: "fa fa-code-fork"
09763dbf
BW
76 items:
77 - name: "Jenkins"
78 logo: "/assets/tools/jenkins.png"
e41196e7
BW
79 # Alternatively a fa icon can be provided:
80 # icon: "fab fa-jenkins"
09763dbf
BW
81 subtitle: "Continuous integration server"
82 tag: "CI"
83 url: "#"
7bb903e6 84 target: '_blank' # optional html a tag target attribute
09763dbf
BW
85 - name: "RabbitMQ Management"
86 logo: "/assets/tools/rabbitmq.png"
87 subtitle: "Manage & monitor RabbitMQ server"
88 tag: "haproxy"
7312bdd6 89 # Optional tagstyle
a2fdb8a9 90 tagstyle: "is-success"
09763dbf
BW
91 url: "#"
92 - name: "Monitoring"
aabb7d53 93 icon: "fas fa-heartbeat"
09763dbf
BW
94 items:
95 - name: "M/Monit"
96 logo: "/assets/tools/monit.png"
97 subtitle: "Monitor & manage all monit enabled hosts"
98 tag: "monit"
99 url: "#"
100 - name: "Grafana"
101 logo: "/assets/tools/grafana.png"
102 subtitle: "Metric analytics & dashboards"
103 url: "#"
104 - name: "Kibana"
105 logo: "/assets/tools/elastic.png"
106 subtitle: "Explore & visualize logs"
107 tag: "elk"
108 url: "#"
109 - name: "Website monitoring"
110 logo: "/assets/tools/pingdom.png"
111 subtitle: "Pingdom public reports overview"
112 tag: "CI"
113 url: "#"
114
e41196e7 115```
7fd9dc6f
BW
116
117If you choose to fetch message information from an endpoint, the output format should be:
118
119```json
120{
7bb903e6
FB
121 "style": null,
122 "title": "Lorem ipsum 42",
123 "content": "LA LA LA Lorem ipsum dolor sit amet, ....."
7fd9dc6f
BW
124}
125```
126
127`null` value or missing keys will be ignored and value from the `config.yml` will be used if available.
22555b55 128Empty values (either in `config.yml` or the endpoint data) will hide the element (ex: set `"title": ""` to hide the title bar).