mirror of
https://github.com/bastienwirtz/homer.git
synced 2026-01-23 02:15:09 +00:00
Merge branch 'main' into main
This commit is contained in:
commit
92d5b8d424
22 changed files with 2606 additions and 1723 deletions
|
|
@ -66,6 +66,17 @@ colors:
|
|||
# Optional message
|
||||
message:
|
||||
# url: "https://<my-api-endpoint>" # Can fetch information from an endpoint to override value below.
|
||||
# mapping: # allows to map fields from the remote format to the one expected by Homer
|
||||
# title: 'id' # use value from field 'id' as title
|
||||
# content: 'value' # value from field 'value' as content
|
||||
# refreshInterval: 10000 # Optional: time interval to refresh message
|
||||
#
|
||||
# Real example using chucknorris.io for showing Chuck Norris facts as messages:
|
||||
# url: https://api.chucknorris.io/jokes/random
|
||||
# mapping:
|
||||
# title: 'id'
|
||||
# content: 'value'
|
||||
# refreshInterval: 10000
|
||||
style: "is-warning"
|
||||
title: "Optional message!"
|
||||
icon: "fa fa-exclamation-triangle"
|
||||
|
|
@ -81,6 +92,11 @@ links:
|
|||
- name: "link 2"
|
||||
icon: "fas fa-book"
|
||||
url: "https://github.com/bastienwirtz/homer"
|
||||
# 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
|
||||
# see url field and assets/page.yml used in this example:
|
||||
- name: "Second Page"
|
||||
icon: "fas fa-file-alt"
|
||||
url: "#page2"
|
||||
|
||||
# Services
|
||||
# First level array represents a group.
|
||||
|
|
@ -88,6 +104,8 @@ links:
|
|||
services:
|
||||
- name: "Application"
|
||||
icon: "fas fa-code-branch"
|
||||
# A path to an image can also be provided. Note that icon take precedence if both icon and logo are set.
|
||||
# logo: "path/to/logo"
|
||||
items:
|
||||
- name: "Awesome app"
|
||||
logo: "assets/tools/sample.png"
|
||||
|
|
@ -118,9 +136,10 @@ services:
|
|||
# background: red # optional color for card to set color directly without custom stylesheet
|
||||
```
|
||||
|
||||
|
||||
View [Custom Services](customservices.md) for details about all available custom services (like PiHole) and how to configure them.
|
||||
|
||||
If you choose to fetch message information from an endpoint, the output format should be:
|
||||
If 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)):
|
||||
|
||||
```json
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
# Custom Services
|
||||
|
||||
Here is an overview of all custom services that are available within Homer.
|
||||
Some service can use a specific a component that provides some extra features by adding a `type` key to the service yaml
|
||||
configuration. Available services are in `src/components/`. Here is an overview of all custom services that are available
|
||||
within Homer.
|
||||
|
||||
## PiHole
|
||||
|
||||
|
|
@ -17,6 +19,7 @@ The following configuration is available for the PiHole service.
|
|||
type: "PiHole"
|
||||
```
|
||||
|
||||
|
||||
## OpenWeatherMap
|
||||
|
||||
Using the OpenWeatherMap service you can display weather information about a given location.
|
||||
|
|
@ -35,4 +38,38 @@ items:
|
|||
```
|
||||
|
||||
**Remarks:**
|
||||
If for some reason your city can't be found by entering the name in the `location` property, you could also try to configure the OWM city ID in the `locationId` property. To retrieve your specific City ID, go to the [OWM website](https://openweathermap.org), search for your city and retrieve the ID from the URL (for example, the City ID of Amsterdam is 2759794).
|
||||
If for some reason your city can't be found by entering the name in the `location` property, you could also try to configure the OWM city ID in the `locationId` property. To retrieve your specific City ID, go to the [OWM website](https://openweathermap.org), search for your city and retrieve the ID from the URL (for example, the City ID of Amsterdam is 2759794).
|
||||
|
||||
|
||||
## Medusa
|
||||
|
||||
This service displays News (grey), Warning (orange) or Error (red) notifications bubbles from the Medusa application.
|
||||
Two lines are needed in the config.yml :
|
||||
```
|
||||
type: "Medusa"
|
||||
apikey: "01234deb70424befb1f4ef6a23456789"
|
||||
```
|
||||
The url must be the root url of Medusa application.
|
||||
The Medusa API key can be found in General configuration > Interface. It is needed to access Medusa API.
|
||||
|
||||
|
||||
## Sonarr/Radarr
|
||||
|
||||
This service displays Activity (blue), Warning (orange) or Error (red) notifications bubbles from the Radarr/Sonarr application.
|
||||
Two lines are needed in the config.yml :
|
||||
```
|
||||
type: "Radarr" or "Sonarr"
|
||||
apikey: "01234deb70424befb1f4ef6a23456789"
|
||||
```
|
||||
The url must be the root url of Radarr/Sonarr application.
|
||||
The Radarr/Sonarr API key can be found in Settings > General. It is needed to access the API.
|
||||
|
||||
|
||||
## PaperlessNG
|
||||
|
||||
For Paperless you need an API-Key which you have to store at the item in the field `apikey`.
|
||||
|
||||
|
||||
## Ping
|
||||
|
||||
For Ping you need an API-Key which you have to store at the item in the field `apikey`.
|
||||
|
|
|
|||
|
|
@ -113,6 +113,64 @@ docker create \
|
|||
|
||||
|
||||
## Get the news headlines in Homer
|
||||
|
||||
### Mapping Fields
|
||||
Most times, the url you're getting headlines from follows a different schema than the one expected by Homer.
|
||||
|
||||
For example, if you would like to show jokes from ChuckNorris.io, you'll find that the url https://api.chucknorris.io/jokes/random is giving you info like this:
|
||||
|
||||
```json
|
||||
{
|
||||
"categories": [],
|
||||
"created_at": "2020-01-05 13:42:22.089095",
|
||||
"icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png",
|
||||
"id": "MR2-BnMBR667xSpQBIleUg",
|
||||
"updated_at": "2020-01-05 13:42:22.089095",
|
||||
"url": "https://api.chucknorris.io/jokes/MR2-BnMBR667xSpQBIleUg",
|
||||
"value": "Chuck Norris can quitely sneak up on himself"
|
||||
}
|
||||
```
|
||||
|
||||
but... you need that info to be transformed to something like this:
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "MR2-BnMBR667xSpQBIleUg",
|
||||
"content": "Chuck Norris can quitely sneak up on himself"
|
||||
}
|
||||
```
|
||||
|
||||
Now, you can do that using the `mapping` field in your `message` configuration. This example would be something like this:
|
||||
|
||||
```yml
|
||||
message:
|
||||
url: https://api.chucknorris.io/jokes/random
|
||||
mapping:
|
||||
title: 'id'
|
||||
content: 'value'
|
||||
```
|
||||
|
||||
As you would see, using the ID as a title doesn't seem nice, that's why when a field is empty it would keep the default values, like this:
|
||||
|
||||
```yml
|
||||
message:
|
||||
url: https://api.chucknorris.io/jokes/random
|
||||
mapping:
|
||||
content: 'value'
|
||||
title: "Chuck Norris Facts!"
|
||||
```
|
||||
|
||||
and even an error message in case the `url` didn't respond or threw an error:
|
||||
|
||||
```yml
|
||||
message:
|
||||
url: https://api.chucknorris.io/jokes/random
|
||||
mapping:
|
||||
content: 'value'
|
||||
title: "Chuck Norris Facts!"
|
||||
content: "Message could not be loaded"
|
||||
```
|
||||
|
||||
#### `by @JamiePhonic`
|
||||
|
||||
Homer allows you to set a "message" that will appear at the top of the page, however, you can also supply a `url:`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue