]> git.immae.eu Git - github/bastienwirtz/homer.git/blame - docs/configuration.md
doc(auth): add auth proxy documentation
[github/bastienwirtz/homer.git] / docs / configuration.md
CommitLineData
1d3287dc 1# Configuration
1bc75494 2
2662b170 3Title, icons, links, colors, and services can be configured in the `config.yml` file (located in `/assets` directory once built, or in the `public/assets` directory in development mode), using [yaml](http://yaml.org/) format.
1bc75494
BW
4
5```yaml
6---
7# Homepage configuration
775d0a8e 8# See https://fontawesome.com/v5/search for icons options
1bc75494 9
fd12de9e 10# Optional: Use external configuration file.
1bc75494
BW
11# Using this will ignore remaining config in this file
12# externalConfig: https://example.com/server-luci/config.yaml
13
14title: "App dashboard"
15subtitle: "Homer"
a02961b7 16# documentTitle: "Welcome" # Customize the browser tab text
ffe3404a 17logo: "assets/logo.png"
1bc75494
BW
18# Alternatively a fa icon can be provided:
19# icon: "fas fa-skull-crossbones"
20
21header: true # Set to false to hide the header
584f2b4b 22# Optional: Different hotkey for search, defaults to "/"
1c0bf713
RS
23# hotkey:
24# search: "Shift"
1bc75494
BW
25footer: '<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.
26
27columns: "3" # "auto" or number (must be a factor of 12: 1, 2, 3, 4, 6, 12)
95249e11
P
28connectivityCheck: true # whether you want to display a message when the apps are not accessible anymore (VPN disconnected for example).
29 # You should set it to true when using an authentication proxy, it also reloads the page when a redirection is detected when checking connectivity.
1bc75494 30
fea0f090
BW
31# Optional: Proxy / hosting option
32proxy:
66a434e7 33 useCredentials: false # send cookies & authorization headers when fetching service specific data. Set to `true` if you use an authentication proxy. Can be overrided on service level.
fea0f090 34
5db2414d
A
35# Set the default layout and color scheme
36defaults:
37 layout: columns # Either 'columns', or 'list'
38 colorTheme: auto # One of 'auto', 'light', or 'dark'
39
1bc75494 40# Optional theming
86f4680a 41theme: default # 'default' or one of the themes available in 'src/assets/themes'.
1bc75494 42
71cf63eb 43# Optional custom stylesheet
8e5ee54a
GC
44# Will load custom CSS files. Especially useful for custom icon sets.
45# stylesheet:
46# - "assets/custom.css"
71cf63eb 47
86f4680a 48# Here is the exhaustive list of customization parameters
1bc75494
BW
49# However all value are optional and will fallback to default if not set.
50# if you want to change only some of the colors, feel free to remove all unused key.
51colors:
52 light:
53 highlight-primary: "#3367d6"
54 highlight-secondary: "#4285f4"
55 highlight-hover: "#5a95f5"
56 background: "#f5f5f5"
57 card-background: "#ffffff"
58 text: "#363636"
59 text-header: "#424242"
60 text-title: "#303030"
61 text-subtitle: "#424242"
62 card-shadow: rgba(0, 0, 0, 0.1)
3faeac7e 63 link: "#3273dc"
1bc75494 64 link-hover: "#363636"
154e6efe 65 background-image: "assets/your/light/bg.png"
1bc75494
BW
66 dark:
67 highlight-primary: "#3367d6"
68 highlight-secondary: "#4285f4"
69 highlight-hover: "#5a95f5"
70 background: "#131313"
71 card-background: "#2b2b2b"
72 text: "#eaeaea"
73 text-header: "#ffffff"
74 text-title: "#fafafa"
75 text-subtitle: "#f5f5f5"
76 card-shadow: rgba(0, 0, 0, 0.4)
3faeac7e 77 link: "#3273dc"
1bc75494 78 link-hover: "#ffdd57"
154e6efe 79 background-image: "assets/your/dark/bg.png"
1bc75494
BW
80
81# Optional message
82message:
83 # url: "https://<my-api-endpoint>" # Can fetch information from an endpoint to override value below.
6d29bc27 84 # mapping: # allows to map fields from the remote format to the one expected by Homer
85 # title: 'id' # use value from field 'id' as title
86 # content: 'value' # value from field 'value' as content
9542de6e 87 # refreshInterval: 10000 # Optional: time interval to refresh message
6d29bc27 88 #
89 # Real example using chucknorris.io for showing Chuck Norris facts as messages:
90 # url: https://api.chucknorris.io/jokes/random
91 # mapping:
92 # title: 'id'
93 # content: 'value'
1ddf3941 94 # refreshInterval: 10000
1bc75494
BW
95 style: "is-warning"
96 title: "Optional message!"
0e045b4c 97 icon: "fa fa-exclamation-triangle"
1bc75494
BW
98 content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
99
100# Optional navbar
101# links: [] # Allows for navbar (dark mode, layout, and search) without any links
102links:
103 - name: "Link 1"
104 icon: "fab fa-github"
105 url: "https://github.com/bastienwirtz/homer"
106 target: "_blank" # optional html tag target attribute
107 - name: "link 2"
108 icon: "fas fa-book"
109 url: "https://github.com/bastienwirtz/homer"
e3bd2ecc 110 # this will link to a second homer page that will load config from page2.yml and keep default config values as in config.yml file
111 # see url field and assets/page.yml used in this example:
112 - name: "Second Page"
113 icon: "fas fa-file-alt"
c6267296 114 url: "#page2"
1bc75494
BW
115
116# Services
86f4680a 117# First level array represents a group.
1bc75494
BW
118# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
119services:
120 - name: "Application"
62ec6fa0 121 icon: "fas fa-code-branch"
8e093313
GC
122 # A path to an image can also be provided. Note that icon take precedence if both icon and logo are set.
123 # logo: "path/to/logo"
1bc75494
BW
124 items:
125 - name: "Awesome app"
126 logo: "assets/tools/sample.png"
127 # Alternatively a fa icon can be provided:
128 # icon: "fab fa-jenkins"
129 subtitle: "Bookmark example"
130 tag: "app"
131 url: "https://www.reddit.com/r/selfhosted/"
132 target: "_blank" # optional html tag target attribute
133 - name: "Another one"
134 logo: "assets/tools/sample2.png"
135 subtitle: "Another application"
136 tag: "app"
137 # Optional tagstyle
138 tagstyle: "is-success"
139 url: "#"
140 - name: "Other group"
141 icon: "fas fa-heartbeat"
142 items:
9a14de00 143 - name: "Pi-hole"
1bc75494 144 logo: "assets/tools/sample.png"
c5eab80d 145 # subtitle: "Network-wide Ad Blocking" # optional, if no subtitle is defined, PiHole statistics will be shown
1bc75494 146 tag: "other"
9a14de00
BW
147 url: "http://192.168.0.151/admin"
148 type: "PiHole" # optional, loads a specific component that provides extra features. MUST MATCH a file name (without file extension) available in `src/components/services`
e9afa4d7
TP
149 target: "_blank" # optional html a tag target attribute
150 # class: "green" # optional custom CSS class for card, useful with custom stylesheet
be308259 151 # background: red # optional color for card to set color directly without custom stylesheet
1bc75494
BW
152```
153
9e0ef05e 154View [Custom Services](customservices.md) for details about all available custom services (like PiHole) and how to configure them.
fd12de9e 155
9542de6e 156If you choose to fetch message information from an endpoint, the output format should be as follows (or you can [custom map fields as shown in tips-and-tricks](./tips-and-tricks.md#mapping-fields)):
1bc75494
BW
157
158```json
159{
160 "style": null,
161 "title": "Lorem ipsum 42",
162 "content": "LA LA LA Lorem ipsum dolor sit amet, ....."
163}
164```
165
166`null` value or missing keys will be ignored and value from the `config.yml` will be used if available.
167Empty values (either in `config.yml` or the endpoint data) will hide the element (ex: set `"title": ""` to hide the title bar).
168
1d3287dc 169## Style Options
1bc75494
BW
170
171Homer uses [bulma CSS](https://bulma.io/), which provides a [modifiers syntax](https://bulma.io/documentation/modifiers/syntax/). You'll notice in the config there is a `tagstyle` option. It can be set to any of the bulma modifiers. You'll probably want to use one of these 4 main colors:
172
173- `is-info` (blue)
174- `is-success` (green)
175- `is-warning` (yellow)
176- `is-danger` (red)
177
178You can read the [bulma modifiers page](https://bulma.io/documentation/modifiers/syntax/) for other options regarding size, style, or state.
d1b9dea2 179
1d3287dc 180## PWA Icons
d1b9dea2
BW
181
182In order to easily generate all required icon preset for the PWA to work, a tool like [vue-pwa-asset-generator](https://www.npmjs.com/package/vue-pwa-asset-generator) can be used:
183
184```bash
185npx vue-pwa-asset-generator -a {your_512x512_source_png} -o {your_output_folder}
186```
c3878bca 187
1d3287dc 188## Supported services
c3878bca
AW
189
190Currently the following services are supported for showing quick infos on the card. They can be used by setting the type to one of the following values at the item.
191
192- PiHole
193- AdGuardHome
194- PaperlessNG
195- Mealie
196
1d3287dc
BW
197## Additional configuration
198
199### Paperless
c3878bca 200
c3878bca
AW
201For Paperless you need an API-Key which you have to store at the item in the field `apikey`.
202
1d3287dc
BW
203### Mealie
204
4386cd09 205First off make sure to remove an existing `subtitle` as it will take precedence if set. Setting `type: "Mealie"` will then show the number of recipes Mealie is keeping organized or the planned meal for today if one is planned. You will have to set an API key in the field `apikey` which can be created in your Mealie installation.