mirror of
https://github.com/DI0IK/homepage-plus.git
synced 2025-07-07 14:18:47 +00:00
Run pre-commit hooks over existing codebase
Co-Authored-By: Ben Phelps <ben@phelps.io>
This commit is contained in:
parent
fa50bbad9c
commit
19c25713c4
387 changed files with 4785 additions and 4109 deletions
|
@ -9,9 +9,9 @@ Formatting is locale aware and will present your date in the regional format you
|
|||
|
||||
```yaml
|
||||
- datetime:
|
||||
text_size: xl
|
||||
format:
|
||||
timeStyle: short
|
||||
text_size: xl
|
||||
format:
|
||||
timeStyle: short
|
||||
```
|
||||
|
||||
Any options passed to `format` are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat), please reference the MDN documentation for all available options.
|
||||
|
@ -23,29 +23,29 @@ A few examples,
|
|||
```yaml
|
||||
# 13:37
|
||||
format:
|
||||
timeStyle: short
|
||||
hourCycle: h23
|
||||
timeStyle: short
|
||||
hourCycle: h23
|
||||
```
|
||||
|
||||
```yaml
|
||||
# 1:37 PM
|
||||
format:
|
||||
timeStyle: short
|
||||
hour12: true
|
||||
timeStyle: short
|
||||
hour12: true
|
||||
```
|
||||
|
||||
```yaml
|
||||
# 1/23/22, 1:37 PM
|
||||
format:
|
||||
dateStyle: short
|
||||
timeStyle: short
|
||||
hour12: true
|
||||
dateStyle: short
|
||||
timeStyle: short
|
||||
hour12: true
|
||||
```
|
||||
|
||||
```yaml
|
||||
# 4 januari 2023 om 13:51:25 PST
|
||||
locale: nl
|
||||
format:
|
||||
dateStyle: long
|
||||
timeStyle: long
|
||||
dateStyle: long
|
||||
timeStyle: long
|
||||
```
|
||||
|
|
|
@ -9,16 +9,16 @@ The Glances widget allows you to monitor the resources (CPU, memory, storage, te
|
|||
|
||||
```yaml
|
||||
- glances:
|
||||
url: http://host.or.ip:port
|
||||
username: user # optional if auth enabled in Glances
|
||||
password: pass # optional if auth enabled in Glances
|
||||
cpu: true # optional, enabled by default, disable by setting to false
|
||||
mem: true # optional, enabled by default, disable by setting to false
|
||||
cputemp: true # disabled by default
|
||||
uptime: true # disabled by default
|
||||
disk: / # disabled by default, use mount point of disk(s) in glances. Can also be a list (see below)
|
||||
expanded: true # show the expanded view
|
||||
label: MyMachine # optional
|
||||
url: http://host.or.ip:port
|
||||
username: user # optional if auth enabled in Glances
|
||||
password: pass # optional if auth enabled in Glances
|
||||
cpu: true # optional, enabled by default, disable by setting to false
|
||||
mem: true # optional, enabled by default, disable by setting to false
|
||||
cputemp: true # disabled by default
|
||||
uptime: true # disabled by default
|
||||
disk: / # disabled by default, use mount point of disk(s) in glances. Can also be a list (see below)
|
||||
expanded: true # show the expanded view
|
||||
label: MyMachine # optional
|
||||
```
|
||||
|
||||
Multiple disks can be specified as:
|
||||
|
|
|
@ -7,8 +7,8 @@ This allows you to display simple text, can be configured like so:
|
|||
|
||||
```yaml
|
||||
- greeting:
|
||||
text_size: xl
|
||||
text: Greeting Text
|
||||
text_size: xl
|
||||
text: Greeting Text
|
||||
```
|
||||
|
||||
Valid text sizes are `4xl`, `3xl`, `2xl`, `xl`, `md`, `sm`, `xs`.
|
||||
|
|
|
@ -9,23 +9,23 @@ It provides CPU and Memory usage, by node and/or at the cluster level.
|
|||
|
||||
```yaml
|
||||
- kubernetes:
|
||||
cluster:
|
||||
# Shows cluster-wide statistics
|
||||
show: true
|
||||
# Shows the aggregate CPU stats
|
||||
cpu: true
|
||||
# Shows the aggregate memory stats
|
||||
memory: true
|
||||
# Shows a custom label
|
||||
showLabel: true
|
||||
label: "cluster"
|
||||
nodes:
|
||||
# Shows node-specific statistics
|
||||
show: true
|
||||
# Shows the CPU for each node
|
||||
cpu: true
|
||||
# Shows the memory for each node
|
||||
memory: true
|
||||
# Shows the label, which is always the node name
|
||||
showLabel: true
|
||||
cluster:
|
||||
# Shows cluster-wide statistics
|
||||
show: true
|
||||
# Shows the aggregate CPU stats
|
||||
cpu: true
|
||||
# Shows the aggregate memory stats
|
||||
memory: true
|
||||
# Shows a custom label
|
||||
showLabel: true
|
||||
label: "cluster"
|
||||
nodes:
|
||||
# Shows node-specific statistics
|
||||
show: true
|
||||
# Shows the CPU for each node
|
||||
cpu: true
|
||||
# Shows the memory for each node
|
||||
memory: true
|
||||
# Shows the label, which is always the node name
|
||||
showLabel: true
|
||||
```
|
||||
|
|
|
@ -12,18 +12,18 @@ It can show the aggregate metrics and/or the individual node metrics.
|
|||
|
||||
```yaml
|
||||
- longhorn:
|
||||
# Show the expanded view
|
||||
expanded: true
|
||||
# Shows a node representing the aggregate values
|
||||
total: true
|
||||
# Shows the node names as labels
|
||||
labels: true
|
||||
# Show the nodes
|
||||
nodes: true
|
||||
# An explicit list of nodes to show. All are shown by default if "nodes" is true
|
||||
include:
|
||||
- node1
|
||||
- node2
|
||||
# Show the expanded view
|
||||
expanded: true
|
||||
# Shows a node representing the aggregate values
|
||||
total: true
|
||||
# Shows the node names as labels
|
||||
labels: true
|
||||
# Show the nodes
|
||||
nodes: true
|
||||
# An explicit list of nodes to show. All are shown by default if "nodes" is true
|
||||
include:
|
||||
- node1
|
||||
- node2
|
||||
```
|
||||
|
||||
The Longhorn URL and credentials are stored in the `providers` section of the `settings.yaml`.
|
||||
|
|
|
@ -7,12 +7,12 @@ No registration is required at all! See [https://open-meteo.com/en/docs](https:/
|
|||
|
||||
```yaml
|
||||
- openmeteo:
|
||||
label: Kyiv # optional
|
||||
latitude: 50.449684
|
||||
longitude: 30.525026
|
||||
timezone: Europe/Kiev # optional
|
||||
units: metric # or imperial
|
||||
cache: 5 # Time in minutes to cache API responses, to stay within limits
|
||||
label: Kyiv # optional
|
||||
latitude: 50.449684
|
||||
longitude: 30.525026
|
||||
timezone: Europe/Kiev # optional
|
||||
units: metric # or imperial
|
||||
cache: 5 # Time in minutes to cache API responses, to stay within limits
|
||||
```
|
||||
|
||||
You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS).
|
||||
|
|
|
@ -7,13 +7,13 @@ The free tier "One Call API" is all thats required, you will need to [subscribe]
|
|||
|
||||
```yaml
|
||||
- openweathermap:
|
||||
label: Kyiv #optional
|
||||
latitude: 50.449684
|
||||
longitude: 30.525026
|
||||
units: metric # or imperial
|
||||
provider: openweathermap
|
||||
apiKey: youropenweathermapkey # required only if not using provider, this reveals api key in requests
|
||||
cache: 5 # Time in minutes to cache API responses, to stay within limits
|
||||
label: Kyiv #optional
|
||||
latitude: 50.449684
|
||||
longitude: 30.525026
|
||||
units: metric # or imperial
|
||||
provider: openweathermap
|
||||
apiKey: youropenweathermapkey # required only if not using provider, this reveals api key in requests
|
||||
cache: 5 # Time in minutes to cache API responses, to stay within limits
|
||||
```
|
||||
|
||||
You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS).
|
||||
|
|
|
@ -15,26 +15,26 @@ _Note: unfortunately, the package used for getting CPU temp ([systeminformation]
|
|||
|
||||
```yaml
|
||||
- resources:
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /disk/mount/path
|
||||
cputemp: true
|
||||
uptime: true
|
||||
units: imperial # only used by cpu temp
|
||||
refresh: 3000 # optional, in ms
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /disk/mount/path
|
||||
cputemp: true
|
||||
uptime: true
|
||||
units: imperial # only used by cpu temp
|
||||
refresh: 3000 # optional, in ms
|
||||
```
|
||||
|
||||
You can also pass a `label` option, which allows you to group resources under named sections,
|
||||
|
||||
```yaml
|
||||
- resources:
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
label: System
|
||||
cpu: true
|
||||
memory: true
|
||||
|
||||
- resources:
|
||||
label: Storage
|
||||
disk: /mnt/storage
|
||||
label: Storage
|
||||
disk: /mnt/storage
|
||||
```
|
||||
|
||||
Which produces something like this,
|
||||
|
@ -45,11 +45,11 @@ If you have more than a single disk and would like to group them together under
|
|||
|
||||
```yaml
|
||||
- resources:
|
||||
label: Storage
|
||||
disk:
|
||||
- /mnt/storage
|
||||
- /mnt/backup
|
||||
- /mnt/media
|
||||
label: Storage
|
||||
disk:
|
||||
- /mnt/storage
|
||||
- /mnt/backup
|
||||
- /mnt/media
|
||||
```
|
||||
|
||||
To produce something like this,
|
||||
|
@ -60,12 +60,12 @@ You can additionally supply an optional `expanded` property set to true in order
|
|||
|
||||
```yaml
|
||||
- resources:
|
||||
label: Array Disks
|
||||
expanded: true
|
||||
disk:
|
||||
- /disk1
|
||||
- /disk2
|
||||
- /disk3
|
||||
label: Array Disks
|
||||
expanded: true
|
||||
disk:
|
||||
- /disk1
|
||||
- /disk2
|
||||
- /disk3
|
||||
```
|
||||
|
||||

|
||||
|
|
|
@ -7,25 +7,25 @@ You can add a search bar to your top widget area that can search using Google, D
|
|||
|
||||
```yaml
|
||||
- search:
|
||||
provider: google # google, duckduckgo, bing, baidu, brave or custom
|
||||
focus: true # Optional, will set focus to the search bar on page load
|
||||
target: _blank # One of _self, _blank, _parent or _top
|
||||
provider: google # google, duckduckgo, bing, baidu, brave or custom
|
||||
focus: true # Optional, will set focus to the search bar on page load
|
||||
target: _blank # One of _self, _blank, _parent or _top
|
||||
```
|
||||
|
||||
or for a custom search:
|
||||
|
||||
```yaml
|
||||
- search:
|
||||
provider: custom
|
||||
url: https://lougle.com/?q=
|
||||
target: _blank
|
||||
provider: custom
|
||||
url: https://lougle.com/?q=
|
||||
target: _blank
|
||||
```
|
||||
|
||||
multiple providers is also supported via a dropdown (excluding custom):
|
||||
|
||||
```yaml
|
||||
- search:
|
||||
provider: [brave, google, duckduckgo]
|
||||
provider: [brave, google, duckduckgo]
|
||||
```
|
||||
|
||||
_Added in v0.1.6, updated in 0.6.0_
|
||||
|
|
|
@ -9,12 +9,12 @@ The free tier is all thats required, you will need to [register](https://www.wea
|
|||
|
||||
```yaml
|
||||
- weatherapi:
|
||||
label: Kyiv # optional
|
||||
latitude: 50.449684
|
||||
longitude: 30.525026
|
||||
units: metric # or imperial
|
||||
apiKey: yourweatherapikey
|
||||
cache: 5 # Time in minutes to cache API responses, to stay within limits
|
||||
label: Kyiv # optional
|
||||
latitude: 50.449684
|
||||
longitude: 30.525026
|
||||
units: metric # or imperial
|
||||
apiKey: yourweatherapikey
|
||||
cache: 5 # Time in minutes to cache API responses, to stay within limits
|
||||
```
|
||||
|
||||
You can optionally not pass a `latitude` and `longitude` and the widget will use your current location (requires a secure context, eg. HTTPS).
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["queries", "blocked", "filtered", "latency"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: adguard
|
||||
url: http://adguard.host.or.ip
|
||||
username: admin
|
||||
password: password
|
||||
type: adguard
|
||||
url: http://adguard.host.or.ip
|
||||
username: admin
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["series", "archives", "chapters", "categories"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: atsumeru
|
||||
url: http://atsumeru.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: atsumeru
|
||||
url: http://atsumeru.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["podcasts", "podcastsDuration", "books", "booksDuration"]`
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: audiobookshelf
|
||||
url: http://audiobookshelf.host.or.ip:port
|
||||
key: audiobookshelflapikey
|
||||
type: audiobookshelf
|
||||
url: http://audiobookshelf.host.or.ip:port
|
||||
key: audiobookshelflapikey
|
||||
```
|
||||
|
|
|
@ -18,7 +18,7 @@ Allowed fields: `["users", "loginsLast24H", "failedLoginsLast24H"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: authentik
|
||||
url: http://authentik.host.or.ip:22070
|
||||
key: api_token
|
||||
type: authentik
|
||||
url: http://authentik.host.or.ip:22070
|
||||
key: api_token
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["approvedPushes", "rejectedPushes", "filters", "indexers"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: autobrr
|
||||
url: http://autobrr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: autobrr
|
||||
url: http://autobrr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -15,12 +15,12 @@ You will need to generate a personal access token for an existing user, see the
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: azuredevops
|
||||
organization: myOrganization
|
||||
project: myProject
|
||||
definitionId: pipelineDefinitionId # required for pipelines
|
||||
branchName: branchName # optional for pipelines, leave empty for all
|
||||
userEmail: email # required for pull requests
|
||||
repositoryId: prRepositoryId # required for pull requests
|
||||
key: personalaccesstoken
|
||||
type: azuredevops
|
||||
organization: myOrganization
|
||||
project: myProject
|
||||
definitionId: pipelineDefinitionId # required for pipelines
|
||||
branchName: branchName # optional for pipelines, leave empty for all
|
||||
userEmail: email # required for pull requests
|
||||
repositoryId: prRepositoryId # required for pull requests
|
||||
key: personalaccesstoken
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["missingEpisodes", "missingMovies"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: bazarr
|
||||
url: http://bazarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: bazarr
|
||||
url: http://bazarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["upstreams", "requests", "requests_failed"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: caddy
|
||||
url: http://caddy.host.or.ip:adminport # default admin port is 2019
|
||||
type: caddy
|
||||
url: http://caddy.host.or.ip:adminport # default admin port is 2019
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["books", "authors", "categories", "series"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: calibreweb
|
||||
url: http://your.calibreweb.host:port
|
||||
username: username
|
||||
password: password
|
||||
type: calibreweb
|
||||
url: http://your.calibreweb.host:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ Find your API key under `Settings > API`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: changedetectionio
|
||||
url: http://changedetection.host.or.ip:port
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: changedetectionio
|
||||
url: http://changedetection.host.or.ip:port
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -5,6 +5,6 @@ description: Channels DVR Server Widget Configuration
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: channelsdvrserver
|
||||
url: http://192.168.1.55:8089
|
||||
type: channelsdvrserver
|
||||
url: http://192.168.1.55:8089
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["status", "origin_ip"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: cloudflared
|
||||
accountid: accountid # from zero trust dashboard url e.g. https://one.dash.cloudflare.com/<accountid>/home/quick-start
|
||||
tunnelid: tunnelid # found in tunnels dashboard under the tunnel name
|
||||
key: cloudflareapitoken # api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens
|
||||
type: cloudflared
|
||||
accountid: accountid # from zero trust dashboard url e.g. https://one.dash.cloudflare.com/<accountid>/home/quick-start
|
||||
tunnelid: tunnelid # found in tunnels dashboard under the tunnel name
|
||||
key: cloudflareapitoken # api token with `Account.Cloudflare Tunnel:Read` https://dash.cloudflare.com/profile/api-tokens
|
||||
```
|
||||
|
|
|
@ -9,18 +9,18 @@ Allowed fields: no configurable fields for this widget.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: coinmarketcap
|
||||
currency: GBP # Optional
|
||||
symbols: [BTC, LTC, ETH]
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
defaultinterval: 7d # Optional
|
||||
type: coinmarketcap
|
||||
currency: GBP # Optional
|
||||
symbols: [BTC, LTC, ETH]
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
defaultinterval: 7d # Optional
|
||||
```
|
||||
|
||||
You can also specify slugs instead of symbols (since symbols aren't garaunteed to be unique). If you supply both, slugs will be used. For example:
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: coinmarketcap
|
||||
slugs: [chia-network, uniswap]
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: coinmarketcap
|
||||
slugs: [chia-network, uniswap]
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,28 +9,28 @@ Fields need to be defined in the `mappings` section YAML object to correlate wit
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: customapi
|
||||
url: http://custom.api.host.or.ip:port/path/to/exact/api/endpoint
|
||||
refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
|
||||
username: username # auth - optional
|
||||
password: password # auth - optional
|
||||
method: GET # optional, e.g. POST
|
||||
headers: # optional, must be object, see below
|
||||
mappings:
|
||||
- field: key # needs to be YAML string or object
|
||||
label: Field 1
|
||||
format: text # optional - defaults to text
|
||||
- field: # needs to be YAML string or object
|
||||
path:
|
||||
to: key2
|
||||
format: number # optional - defaults to text
|
||||
label: Field 2
|
||||
- field: # needs to be YAML string or object
|
||||
path:
|
||||
to:
|
||||
another: key3
|
||||
label: Field 3
|
||||
format: percent # optional - defaults to text
|
||||
type: customapi
|
||||
url: http://custom.api.host.or.ip:port/path/to/exact/api/endpoint
|
||||
refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
|
||||
username: username # auth - optional
|
||||
password: password # auth - optional
|
||||
method: GET # optional, e.g. POST
|
||||
headers: # optional, must be object, see below
|
||||
mappings:
|
||||
- field: key # needs to be YAML string or object
|
||||
label: Field 1
|
||||
format: text # optional - defaults to text
|
||||
- field: # needs to be YAML string or object
|
||||
path:
|
||||
to: key2
|
||||
format: number # optional - defaults to text
|
||||
label: Field 2
|
||||
- field: # needs to be YAML string or object
|
||||
path:
|
||||
to:
|
||||
another: key3
|
||||
label: Field 3
|
||||
format: percent # optional - defaults to text
|
||||
```
|
||||
|
||||
Supported formats for the values are `text`, `number`, `float`, `percent`, `bytes` and `bitrate`.
|
||||
|
@ -41,22 +41,22 @@ For the following JSON object from the API:
|
|||
|
||||
```json
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Rick Sanchez",
|
||||
"status": "Alive",
|
||||
"species": "Human",
|
||||
"gender": "Male",
|
||||
"origin": {
|
||||
"name": "Earth (C-137)"
|
||||
"id": 1,
|
||||
"name": "Rick Sanchez",
|
||||
"status": "Alive",
|
||||
"species": "Human",
|
||||
"gender": "Male",
|
||||
"origin": {
|
||||
"name": "Earth (C-137)"
|
||||
},
|
||||
"locations": [
|
||||
{
|
||||
"name": "Earth (C-137)"
|
||||
},
|
||||
"locations": [
|
||||
{
|
||||
"name": "Earth (C-137)"
|
||||
},
|
||||
{
|
||||
"name": "Citadel of Ricks"
|
||||
}
|
||||
]
|
||||
{
|
||||
"name": "Citadel of Ricks"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -64,17 +64,17 @@ Define the `mappings` section as an aray, for example:
|
|||
|
||||
```yaml
|
||||
mappings:
|
||||
- field: name # Rick Sanchez
|
||||
label: Name
|
||||
- field: status # Alive
|
||||
label: Status
|
||||
- field:
|
||||
origin: name # Earth (C-137)
|
||||
label: Origin
|
||||
- field:
|
||||
locations:
|
||||
1: name # Citadel of Ricks
|
||||
label: Location
|
||||
- field: name # Rick Sanchez
|
||||
label: Name
|
||||
- field: status # Alive
|
||||
label: Status
|
||||
- field:
|
||||
origin: name # Earth (C-137)
|
||||
label: Origin
|
||||
- field:
|
||||
locations:
|
||||
1: name # Citadel of Ricks
|
||||
label: Location
|
||||
```
|
||||
|
||||
## Data Transformation
|
||||
|
@ -86,12 +86,12 @@ You can manipulate data with the following tools `remap`, `scale` and `suffix`,
|
|||
label: Field 4
|
||||
format: text
|
||||
remap:
|
||||
- value: 0
|
||||
to: None
|
||||
- value: 1
|
||||
to: Connected
|
||||
- any: true # will map all other values
|
||||
to: Unknown
|
||||
- value: 0
|
||||
to: None
|
||||
- value: 1
|
||||
to: Connected
|
||||
- any: true # will map all other values
|
||||
to: Unknown
|
||||
- field: key5
|
||||
label: Power
|
||||
format: float
|
||||
|
@ -105,5 +105,5 @@ Pass custom headers using the `headers` option, for example:
|
|||
|
||||
```yaml
|
||||
headers:
|
||||
X-API-Token: token
|
||||
X-API-Token: token
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: deluge
|
||||
url: http://deluge.host.or.ip
|
||||
password: password # webui password
|
||||
type: deluge
|
||||
url: http://deluge.host.or.ip
|
||||
password: password # webui password
|
||||
```
|
||||
|
|
|
@ -17,9 +17,9 @@ To access these system metrics you need to connect to the DiskStation with an ac
|
|||
4. On the `Permissions` tab check the top box for `No Access`, effectively prohibiting the user from accessing anything in the shared folders.
|
||||
5. Under `Applications` check the box next to `Deny` in the header to explicitly prohibit login to all applications.
|
||||
6. Now _only_ allow login to the `Download Station` application, either by
|
||||
- unchecking `Deny` in the respective row, or (if inheriting permission doesn't work because of other group settings)
|
||||
- checking `Allow` for this app, or
|
||||
- checking `By IP` for this app to limit the source of login attempts to one or more IP addresses/subnets.
|
||||
- unchecking `Deny` in the respective row, or (if inheriting permission doesn't work because of other group settings)
|
||||
- checking `Allow` for this app, or
|
||||
- checking `By IP` for this app to limit the source of login attempts to one or more IP addresses/subnets.
|
||||
7. When the `Preview` column shows `Allow` in the `Download Station` row, click `Save`.
|
||||
|
||||
Now configure the widget with the correct login information and test it.
|
||||
|
@ -28,9 +28,9 @@ If you encounter issues during testing, make sure to uncheck the option for auto
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: diskstation
|
||||
url: http://diskstation.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
volume: volume_N # optional
|
||||
type: diskstation
|
||||
url: http://diskstation.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
volume: volume_N # optional
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: downloadstation
|
||||
url: http://downloadstation.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: downloadstation
|
||||
url: http://downloadstation.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ As of v0.6.11 the widget supports fields `["movies", "series", "episodes", "song
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: emby
|
||||
url: http://emby.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableBlocks: true # optional, defaults to false
|
||||
enableNowPlaying: true # optional, defaults to true
|
||||
type: emby
|
||||
url: http://emby.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableBlocks: true # optional, defaults to false
|
||||
enableNowPlaying: true # optional, defaults to true
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["pv_power", "grid_power", "home_power", "charge_power]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: evcc
|
||||
url: http://evcc.host.or.ip:port
|
||||
type: evcc
|
||||
url: http://evcc.host.or.ip:port
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["queue", "processing", "processed", "time"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: fileflows
|
||||
url: http://your.fileflows.host:port
|
||||
type: fileflows
|
||||
url: http://your.fileflows.host:port
|
||||
```
|
||||
|
|
|
@ -7,8 +7,8 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: flood
|
||||
url: http://flood.host.or.ip
|
||||
username: username # if set
|
||||
password: password # if set
|
||||
type: flood
|
||||
url: http://flood.host.or.ip
|
||||
username: username # if set
|
||||
password: password # if set
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["subscriptions", "unread"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: freshrss
|
||||
url: http://freshrss.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: freshrss
|
||||
url: http://freshrss.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields (limited to a max of 4): `["status", "name", "map", "currentPlaye
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: gamedig
|
||||
serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list
|
||||
url: udp://server.host.or.ip:port
|
||||
type: gamedig
|
||||
serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list
|
||||
url: udp://server.host.or.ip:port
|
||||
```
|
||||
|
|
|
@ -17,7 +17,7 @@ Allowed fields: `["gross_percent_today", "gross_percent_1y", "gross_percent_max"
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: ghostfolio
|
||||
url: http://ghostfoliohost:port
|
||||
key: ghostfoliobearertoken
|
||||
type: ghostfolio
|
||||
url: http://ghostfoliohost:port
|
||||
key: ghostfoliobearertoken
|
||||
```
|
||||
|
|
|
@ -9,6 +9,6 @@ Allowed fields: `["public_ip", "region", "country"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: gluetun
|
||||
url: http://gluetun.host.or.ip
|
||||
type: gluetun
|
||||
url: http://gluetun.host.or.ip
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["apps", "clients", "messages"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: gotify
|
||||
url: http://gotify.host.or.ip
|
||||
key: clientoken
|
||||
type: gotify
|
||||
url: http://gotify.host.or.ip
|
||||
key: clientoken
|
||||
```
|
||||
|
|
|
@ -7,8 +7,8 @@ Allowed fields: `["dashboards", "datasources", "totalalerts", "alertstriggered"]
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: grafana
|
||||
url: http://grafana.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: grafana
|
||||
url: http://grafana.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["channels", "hd"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: hdhomerun
|
||||
url: http://hdhomerun.host.or.ip
|
||||
type: hdhomerun
|
||||
url: http://hdhomerun.host.or.ip
|
||||
```
|
||||
|
|
|
@ -13,8 +13,8 @@ Allowed fields: `["status", "last_ping"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: healthchecks
|
||||
url: http://healthchecks.host.or.ip:port
|
||||
key: <YOUR_API_KEY>
|
||||
uuid: <YOUR_CHECK_UUID>
|
||||
type: healthchecks
|
||||
url: http://healthchecks.host.or.ip:port
|
||||
key: <YOUR_API_KEY>
|
||||
uuid: <YOUR_CHECK_UUID>
|
||||
```
|
||||
|
|
|
@ -12,25 +12,25 @@ Allowed fields: `["people_home", "lights_on", "switches_on"]`.
|
|||
Up to a maximum of four custom states and/or templates can be queried via the `custom` property like in the example below.
|
||||
The `custom` property will have no effect as long as the `fields` property is defined.
|
||||
|
||||
- `state` will query the state of the specified `entity_id`
|
||||
- state labels and values can be user defined and may reference entity attributes in curly brackets
|
||||
- if no state label is defined it will default to `"{attributes.friendly_name}"`
|
||||
- if no state value is defined it will default to `"{state} {attributes.unit_of_measurement}"`
|
||||
- `template` will query the specified template, see (Home Assistant Templating)[https://www.home-assistant.io/docs/configuration/templating]
|
||||
- if no template label is defined it will be empty
|
||||
- `state` will query the state of the specified `entity_id`
|
||||
- state labels and values can be user defined and may reference entity attributes in curly brackets
|
||||
- if no state label is defined it will default to `"{attributes.friendly_name}"`
|
||||
- if no state value is defined it will default to `"{state} {attributes.unit_of_measurement}"`
|
||||
- `template` will query the specified template, see (Home Assistant Templating)[https://www.home-assistant.io/docs/configuration/templating]
|
||||
- if no template label is defined it will be empty
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: homeassistant
|
||||
url: http://homeassistant.host.or.ip:port
|
||||
key: access_token
|
||||
custom:
|
||||
- state: sensor.total_power
|
||||
- state: sensor.total_energy_today
|
||||
label: energy today
|
||||
- template: "{{ states.switch|selectattr('state','equalto','on')|list|length }}"
|
||||
label: switches on
|
||||
- state: weather.forecast_home
|
||||
label: wind speed
|
||||
value: "{attributes.wind_speed} {attributes.wind_speed_unit}"
|
||||
type: homeassistant
|
||||
url: http://homeassistant.host.or.ip:port
|
||||
key: access_token
|
||||
custom:
|
||||
- state: sensor.total_power
|
||||
- state: sensor.total_energy_today
|
||||
label: energy today
|
||||
- template: "{{ states.switch|selectattr('state','equalto','on')|list|length }}"
|
||||
label: switches on
|
||||
- state: weather.forecast_home
|
||||
label: wind speed
|
||||
value: "{attributes.wind_speed} {attributes.wind_speed_unit}"
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["updates", "child_bridges"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: homebridge
|
||||
url: http://homebridge.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: homebridge
|
||||
url: http://homebridge.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Note that API key must be from admin user.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: immich
|
||||
url: http://immich.host.or.ip
|
||||
key: adminapikeyadminapikeyadminapikey
|
||||
type: immich
|
||||
url: http://immich.host.or.ip
|
||||
key: adminapikeyadminapikeyadminapikey
|
||||
```
|
||||
|
|
|
@ -9,6 +9,6 @@ Allowed fields: `["configured", "errored"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: jackett
|
||||
url: http://jackett.host.or.ip
|
||||
type: jackett
|
||||
url: http://jackett.host.or.ip
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["downloadCount", "downloadTotalBytes","downloadBytesRemaining"
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: jdownloader
|
||||
username: JDownloader Username
|
||||
password: JDownloader Password
|
||||
client: Name of JDownloader Instance
|
||||
type: jdownloader
|
||||
username: JDownloader Username
|
||||
password: JDownloader Password
|
||||
client: Name of JDownloader Instance
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ As of v0.6.11 the widget supports fields `["movies", "series", "episodes", "song
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: jellyfin
|
||||
url: http://jellyfin.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableBlocks: true # optional, defaults to false
|
||||
enableNowPlaying: true # optional, defaults to true
|
||||
type: jellyfin
|
||||
url: http://jellyfin.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableBlocks: true # optional, defaults to false
|
||||
enableNowPlaying: true # optional, defaults to true
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["pending", "approved", "available"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: jellyseerr
|
||||
url: http://jellyseerr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: jellyseerr
|
||||
url: http://jellyseerr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["seriesCount", "totalFiles"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: kavita
|
||||
url: http://kavita.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: kavita
|
||||
url: http://kavita.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["libraries", "series", "books"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: komga
|
||||
url: http://komga.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: komga
|
||||
url: http://komga.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,10 +9,10 @@ You may optionally pass values for `snapshotHost` and / or `snapshotPath` to sel
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: kopia
|
||||
url: http://kopia.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
snapshotHost: hostname # optional
|
||||
snapshotPath: path # optional
|
||||
type: kopia
|
||||
url: http://kopia.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
snapshotHost: hostname # optional
|
||||
snapshotPath: path # optional
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["wanted", "queued", "artists"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: lidarr
|
||||
url: http://lidarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: lidarr
|
||||
url: http://lidarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,6 +9,6 @@ Allowed fields: `["user_count", "status_count", "domain_count"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: mastodon
|
||||
url: https://mastodon.host.name
|
||||
type: mastodon
|
||||
url: https://mastodon.host.name
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["recipes", "users", "categories", "tags"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: mealie
|
||||
url: http://mealie-frontend.host.or.ip
|
||||
key: mealieapitoken
|
||||
type: mealie
|
||||
url: http://mealie-frontend.host.or.ip
|
||||
key: mealieapitoken
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ Allowed fields: `["wanted", "queued", "series"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: medusa
|
||||
url: http://medusa.host.or.ip:port
|
||||
key: medusaapikeyapikeyapikeyapikeyapikey
|
||||
type: medusa
|
||||
url: http://medusa.host.or.ip:port
|
||||
key: medusaapikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["uptime", "cpuLoad", "memoryUsed", "numberOfLeases"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: mikrotik
|
||||
url: https://mikrotik.host.or.ip
|
||||
username: username
|
||||
password: password
|
||||
type: mikrotik
|
||||
url: https://mikrotik.host.or.ip
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["players", "version", "status"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: minecraft
|
||||
url: udp://minecraftserveripordomain:port
|
||||
type: minecraft
|
||||
url: udp://minecraftserveripordomain:port
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["unread", "read"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: miniflux
|
||||
url: http://miniflux.host.or.ip:port
|
||||
key: minifluxapikey
|
||||
type: miniflux
|
||||
url: http://miniflux.host.or.ip:port
|
||||
key: minifluxapikey
|
||||
```
|
||||
|
|
|
@ -9,6 +9,6 @@ Pass the stream URL from a service like [µStreamer](https://github.com/pikvm/us
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: mjpeg
|
||||
stream: http://mjpeg.host.or.ip/webcam/stream
|
||||
type: mjpeg
|
||||
stream: http://mjpeg.host.or.ip/webcam/stream
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["printer_state", "print_status", "print_progress", "layers"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: moonraker
|
||||
url: http://moonraker.host.or.ip:port
|
||||
type: moonraker
|
||||
url: http://moonraker.host.or.ip:port
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["series", "issues", "wanted"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: mylar
|
||||
url: http://mylar3.host.or.ip:port
|
||||
key: yourmylar3apikey
|
||||
type: mylar
|
||||
url: http://mylar3.host.or.ip:port
|
||||
key: yourmylar3apikey
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ Allowed fields: no configurable fields for this widget.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: navidrome
|
||||
url: http://navidrome.host.or.ip:port
|
||||
user: username
|
||||
token: token #md5(password + salt)
|
||||
salt: randomsalt
|
||||
type: navidrome
|
||||
url: http://navidrome.host.or.ip:port
|
||||
user: username
|
||||
token: token #md5(password + salt)
|
||||
salt: randomsalt
|
||||
```
|
||||
|
|
|
@ -11,15 +11,15 @@ Note "cpuload" and "memoryusage" were deprecated in v0.6.18 and a maximum of 4 f
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: nextcloud
|
||||
url: https://nextcloud.host.or.ip:port
|
||||
key: token
|
||||
type: nextcloud
|
||||
url: https://nextcloud.host.or.ip:port
|
||||
key: token
|
||||
```
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: nextcloud
|
||||
url: https://nextcloud.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: nextcloud
|
||||
url: https://nextcloud.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ Api key is found under Account > API, profile ID is found under Setup > Endpoint
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: nextdns
|
||||
profile: profileid
|
||||
key: yourapikeyhere
|
||||
type: nextdns
|
||||
profile: profileid
|
||||
key: yourapikeyhere
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["enabled", "disabled", "total"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: npm
|
||||
url: http://npm.host.or.ip
|
||||
username: admin_username
|
||||
password: admin_password
|
||||
type: npm
|
||||
url: http://npm.host.or.ip
|
||||
username: admin_username
|
||||
password: admin_password
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["rate", "remaining", "downloaded"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: nzbget
|
||||
url: http://nzbget.host.or.ip
|
||||
username: controlusername
|
||||
password: controlpassword
|
||||
type: nzbget
|
||||
url: http://nzbget.host.or.ip
|
||||
username: controlusername
|
||||
password: controlpassword
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ Allowed fields: `["printer_state", "temp_tool", "temp_bed", "job_completion"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: octoprint
|
||||
url: http://octoprint.host.or.ip:port
|
||||
key: youroctoprintapikey
|
||||
type: octoprint
|
||||
url: http://octoprint.host.or.ip:port
|
||||
key: youroctoprintapikey
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ Allowed fields: `["connectedAp", "activeUser", "alerts", "connectedGateways", "c
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: omada
|
||||
url: http://omada.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
site: sitename
|
||||
type: omada
|
||||
url: http://omada.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
site: sitename
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["pending", "approved", "available"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: ombi
|
||||
url: http://ombi.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: ombi
|
||||
url: http://ombi.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["yieldDay", "relativePower", "absolutePower", "limit"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: opendtu
|
||||
url: http://opendtu.host.or.ip
|
||||
type: opendtu
|
||||
url: http://opendtu.host.or.ip
|
||||
```
|
||||
|
|
|
@ -7,11 +7,11 @@ Provides useful information from your OpenMediaVault
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: openmediavault
|
||||
url: http://omv.host.or.ip
|
||||
username: admin
|
||||
password: pass
|
||||
method: services.getStatus # required
|
||||
type: openmediavault
|
||||
url: http://omv.host.or.ip
|
||||
username: admin
|
||||
password: pass
|
||||
method: services.getStatus # required
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
|
|
@ -5,8 +5,8 @@ description: OPNSense Widget Configuration
|
|||
|
||||
The API key & secret can be generated via the webui by creating a new user at _System/Access/Users_. Ensure "Generate a scrambled password to prevent local database logins for this user" is checked and then edit the effective privileges selecting **only**:
|
||||
|
||||
- Diagnostics: System Activity
|
||||
- Status: Traffic Graph
|
||||
- Diagnostics: System Activity
|
||||
- Status: Traffic Graph
|
||||
|
||||
Finally, create a new API key which will download an `apikey.txt` file with your key and secret in it. Use the values as the username and password fields, respectively, in your homepage config.
|
||||
|
||||
|
@ -14,8 +14,8 @@ Allowed fields: `["cpu", "memory", "wanUpload", "wanDownload"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: opnsense
|
||||
url: http://opnsense.host.or.ip
|
||||
username: key
|
||||
password: secret
|
||||
type: opnsense
|
||||
url: http://opnsense.host.or.ip
|
||||
username: key
|
||||
password: secret
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["pending", "approved", "available", "processing"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: overseerr
|
||||
url: http://overseerr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: overseerr
|
||||
url: http://overseerr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,15 +9,15 @@ Allowed fields: `["total", "inbox"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: paperlessngx
|
||||
url: http://paperlessngx.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
type: paperlessngx
|
||||
url: http://paperlessngx.host.or.ip:port
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: paperlessngx
|
||||
url: http://paperlessngx.host.or.ip:port
|
||||
key: token
|
||||
type: paperlessngx
|
||||
url: http://paperlessngx.host.or.ip:port
|
||||
key: token
|
||||
```
|
||||
|
|
|
@ -17,9 +17,9 @@ Allowed fields: `["load", "memory", "temp", "wanStatus", "wanIP", "disk"]` (maxi
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: pfsense
|
||||
url: http://pfsense.host.or.ip:port
|
||||
username: user
|
||||
password: pass
|
||||
wan: igb0
|
||||
type: pfsense
|
||||
url: http://pfsense.host.or.ip:port
|
||||
username: user
|
||||
password: pass
|
||||
wan: igb0
|
||||
```
|
||||
|
|
|
@ -7,8 +7,8 @@ Allowed fields: `["albums", "photos", "videos", "people"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: photoprism
|
||||
url: http://photoprism.host.or.ip:port
|
||||
username: admin
|
||||
password: password
|
||||
type: photoprism
|
||||
url: http://photoprism.host.or.ip:port
|
||||
username: admin
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -9,6 +9,6 @@ Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: pialert
|
||||
url: http://ip:port
|
||||
type: pialert
|
||||
url: http://ip:port
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ Allowed fields: `["queries", "blocked", "blocked_percent", "gravity"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: pihole
|
||||
url: http://pi.hole.or.ip
|
||||
key: yourpiholeapikey # optional
|
||||
type: pihole
|
||||
url: http://pi.hole.or.ip
|
||||
key: yourpiholeapikey # optional
|
||||
```
|
||||
|
||||
_Added in v0.1.0, udpated in v0.6.18_
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: no configurable fields for this widget.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: tautulli
|
||||
url: http://tautulli.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: tautulli
|
||||
url: http://tautulli.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["streams", "albums", "movies", "tv"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: plex
|
||||
url: http://plex.host.or.ip:32400
|
||||
key: mytokenhere # see https://www.plexopedia.com/plex-media-server/general/plex-token/
|
||||
type: plex
|
||||
url: http://plex.host.or.ip:32400
|
||||
key: mytokenhere # see https://www.plexopedia.com/plex-media-server/general/plex-token/
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["running", "stopped", "total"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: portainer
|
||||
url: https://portainer.host.or.ip:9443
|
||||
env: 1
|
||||
key: ptr_accesskeyaccesskeyaccesskeyaccesskey
|
||||
type: portainer
|
||||
url: https://portainer.host.or.ip:9443
|
||||
env: 1
|
||||
key: ptr_accesskeyaccesskeyaccesskeyaccesskey
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["targets_up", "targets_down", "targets_total"]`
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: prometheus
|
||||
url: http://prometheushost:port
|
||||
type: prometheus
|
||||
url: http://prometheushost:port
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["numberOfGrabs", "numberOfQueries", "numberOfFailGrabs", "numb
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: prowlarr
|
||||
url: http://prowlarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: prowlarr
|
||||
url: http://prowlarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -13,15 +13,15 @@ You will need to generate an API Token for new or an existing user. Here is an e
|
|||
4. Name the group something informative, like api-ro-users
|
||||
5. Click on the Permissions "folder"
|
||||
6. Click Add -> Group Permission
|
||||
- Path: /
|
||||
- Group: group from bullet 4 above
|
||||
- Role: PVEAuditor
|
||||
- Propagate: Checked
|
||||
- Path: /
|
||||
- Group: group from bullet 4 above
|
||||
- Role: PVEAuditor
|
||||
- Propagate: Checked
|
||||
7. Expand Permissions, click on Users
|
||||
8. Click the Add button
|
||||
- User name: something informative like `api`
|
||||
- Realm: Linux PAM standard authentication
|
||||
- Group: group from bullet 4 above
|
||||
- User name: something informative like `api`
|
||||
- Realm: Linux PAM standard authentication
|
||||
- Group: group from bullet 4 above
|
||||
9. Expand Permissions, click on API Tokens
|
||||
10. Click the Add button
|
||||
- User: user from bullet 8 above
|
||||
|
@ -42,9 +42,9 @@ You can set the optional `node` setting when you want to show metrics for a sing
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: proxmox
|
||||
url: https://proxmox.host.or.ip:8006
|
||||
username: api_token_id
|
||||
password: api_token_secret
|
||||
node: pve-1 # optional
|
||||
type: proxmox
|
||||
url: https://proxmox.host.or.ip:8006
|
||||
username: api_token_id
|
||||
password: api_token_secret
|
||||
node: pve-1 # optional
|
||||
```
|
||||
|
|
|
@ -7,8 +7,8 @@ Allowed fields: `["datastore_usage", "failed_tasks_24h", "cpu_usage", "memory_us
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: proxmoxbackupserver
|
||||
url: https://proxmoxbackupserver.host:port
|
||||
username: api_token_id
|
||||
password: api_token_secret
|
||||
type: proxmoxbackupserver
|
||||
url: https://proxmoxbackupserver.host:port
|
||||
username: api_token_id
|
||||
password: api_token_secret
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ Allowed fields: `["nodes", "servers"]`
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: pterodactyl
|
||||
url: http://pterodactylhost:port
|
||||
key: pterodactylapikey
|
||||
type: pterodactyl
|
||||
url: http://pterodactylhost:port
|
||||
key: pterodactylapikey
|
||||
```
|
||||
|
|
|
@ -7,8 +7,8 @@ Allowed fields: `["speed", "active", "queue", "total"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: pyload
|
||||
url: http://pyload.host.or.ip:port
|
||||
username: username
|
||||
password: password # only needed if set
|
||||
type: pyload
|
||||
url: http://pyload.host.or.ip:port
|
||||
username: username
|
||||
password: password # only needed if set
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: qbittorrent
|
||||
url: http://qbittorrent.host.or.ip
|
||||
username: username
|
||||
password: password
|
||||
type: qbittorrent
|
||||
url: http://qbittorrent.host.or.ip
|
||||
username: username
|
||||
password: password
|
||||
```
|
||||
|
|
|
@ -7,10 +7,10 @@ Allowed fields: `["cpuUsage", "memUsage", "systemTempC", "poolUsage", "volumeUsa
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: qnap
|
||||
url: http://qnap.host.or.ip:port
|
||||
username: user
|
||||
password: pass
|
||||
type: qnap
|
||||
url: http://qnap.host.or.ip:port
|
||||
username: user
|
||||
password: pass
|
||||
```
|
||||
|
||||
If the QNAP device has multiple volumes, the _poolUsage_ will be a sum of all volumes.
|
||||
|
|
|
@ -11,8 +11,8 @@ A detailed queue listing is disabled by default, but can be enabled with the `en
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: radarr
|
||||
url: http://radarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableQueue: true # optional, defaults to false
|
||||
type: radarr
|
||||
url: http://radarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableQueue: true # optional, defaults to false
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["wanted", "queued", "books"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: readarr
|
||||
url: http://readarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: readarr
|
||||
url: http://readarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -9,8 +9,8 @@ Allowed fields: `["active", "upload", "download"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: rutorrent
|
||||
url: http://rutorrent.host.or.ip
|
||||
username: username # optional, false if not used
|
||||
password: password # optional, false if not used
|
||||
type: rutorrent
|
||||
url: http://rutorrent.host.or.ip
|
||||
username: username # optional, false if not used
|
||||
password: password # optional, false if not used
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Allowed fields: `["rate", "queue", "timeleft"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: sabnzbd
|
||||
url: http://sabnzbd.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
type: sabnzbd
|
||||
url: http://sabnzbd.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["passed", "failed", "unknown"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: scrutiny
|
||||
url: http://scrutiny.host.or.ip
|
||||
type: scrutiny
|
||||
url: http://scrutiny.host.or.ip
|
||||
```
|
||||
|
|
|
@ -11,8 +11,8 @@ A detailed queue listing is disabled by default, but can be enabled with the `en
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: sonarr
|
||||
url: http://sonarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableQueue: true # optional, defaults to false
|
||||
type: sonarr
|
||||
url: http://sonarr.host.or.ip
|
||||
key: apikeyapikeyapikeyapikeyapikey
|
||||
enableQueue: true # optional, defaults to false
|
||||
```
|
||||
|
|
|
@ -11,6 +11,6 @@ Allowed fields: `["download", "upload", "ping"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: speedtest
|
||||
url: http://speedtest.host.or.ip
|
||||
type: speedtest
|
||||
url: http://speedtest.host.or.ip
|
||||
```
|
||||
|
|
|
@ -9,6 +9,6 @@ Allowed fields: `["numActiveSessions", "numConnections", "bytesProxied"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: strelaysrv
|
||||
url: http://syncthing.host.or.ip:22070
|
||||
type: strelaysrv
|
||||
url: http://syncthing.host.or.ip:22070
|
||||
```
|
||||
|
|
|
@ -11,7 +11,7 @@ Allowed fields: `["address", "last_seen", "expires"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: tailscale
|
||||
deviceid: deviceid
|
||||
key: tailscalekey
|
||||
type: tailscale
|
||||
deviceid: deviceid
|
||||
key: tailscalekey
|
||||
```
|
||||
|
|
|
@ -7,6 +7,6 @@ Allowed fields: `["queue", "processed", "errored", "saved"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: tdarr
|
||||
url: http://tdarr.host.or.ip
|
||||
type: tdarr
|
||||
url: http://tdarr.host.or.ip
|
||||
```
|
||||
|
|
|
@ -10,8 +10,8 @@ Allowed fields: `["routers", "services", "middleware"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: traefik
|
||||
url: http://traefik.host.or.ip
|
||||
username: username # optional
|
||||
password: password # optional
|
||||
type: traefik
|
||||
url: http://traefik.host.or.ip
|
||||
username: username # optional
|
||||
password: password # optional
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ Allowed fields: `["leech", "download", "seed", "upload"]`.
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: transmission
|
||||
url: http://transmission.host.or.ip
|
||||
username: username
|
||||
password: password
|
||||
rpcUrl: /transmission/ # Optional. Matches the value of "rpc-url" in your Transmission's settings.json file
|
||||
type: transmission
|
||||
url: http://transmission.host.or.ip
|
||||
username: username
|
||||
password: password
|
||||
rpcUrl: /transmission/ # Optional. Matches the value of "rpc-url" in your Transmission's settings.json file
|
||||
```
|
||||
|
|
|
@ -9,9 +9,9 @@ To create an API Key, follow [the official TrueNAS documentation](https://www.tr
|
|||
|
||||
```yaml
|
||||
widget:
|
||||
type: truenas
|
||||
url: http://truenas.host.or.ip
|
||||
username: user # not required if using api key
|
||||
password: pass # not required if using api key
|
||||
key: yourtruenasapikey # not required if using username / password
|
||||
type: truenas
|
||||
url: http://truenas.host.or.ip
|
||||
username: user # not required if using api key
|
||||
password: pass # not required if using api key
|
||||
key: yourtruenasapikey # not required if using username / password
|
||||
```
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue