mirror of
https://github.com/DI0IK/homepage-plus.git
synced 2025-07-07 04:38:46 +00:00
Merge branch 'dev'
This commit is contained in:
commit
6bae078a8d
75 changed files with 1106 additions and 312 deletions
|
@ -78,7 +78,7 @@ background:
|
|||
You can apply a blur filter to the service & bookmark cards. Note this option is incompatible with the background blur, saturate and brightness filters.
|
||||
|
||||
```yaml
|
||||
cardBlur: sm # sm, "", md, etc... see https://tailwindcss.com/docs/backdrop-blur
|
||||
cardBlur: xs # xs, md, etc... see https://tailwindcss.com/docs/backdrop-blur
|
||||
```
|
||||
|
||||
## Favicon
|
||||
|
@ -254,15 +254,29 @@ layout:
|
|||
columns: 4
|
||||
```
|
||||
|
||||
### Five Columns
|
||||
### Full Width
|
||||
|
||||
You can add a fifth column to services (when `style: columns` which is default) by adding:
|
||||
You can make homepage take up the entire window width by adding:
|
||||
|
||||
```yaml
|
||||
fiveColumns: true
|
||||
fullWidth: true
|
||||
```
|
||||
|
||||
By default homepage will max out at 4 columns for services with `columns` style
|
||||
### Maximum Group Columns
|
||||
|
||||
You can set the maximum number of columns of groups on larger screen sizes (note this is only for groups with the default `style: columns`, not groups with `stle: row`) by adding:
|
||||
|
||||
```yaml
|
||||
maxGroupColumns: 8 # default is 4 for services, 6 for bookmarks, max 8
|
||||
```
|
||||
|
||||
By default homepage will max out at 4 columns for services and 6 for bookmarks, thus the minimum for this setting is _5_. Of course, if you're setting this to higher numbers, you may want to consider enabling the [fullWidth](#full-width) option as well.
|
||||
|
||||
If you want to set the maximum columns for bookmark groups separately, you can do so by adding:
|
||||
|
||||
```yaml
|
||||
maxBookmarkGroupColumns: 6 # default is 6, max 8
|
||||
```
|
||||
|
||||
### Collapsible sections
|
||||
|
||||
|
|
|
@ -70,7 +70,9 @@ If, after correctly adding and mapping your custom icons via the [Icons](../conf
|
|||
|
||||
## Disabling IPv6
|
||||
|
||||
If you are having issues with certain widgets that are unable to reach public APIs (e.g. weather), you may need to disable IPv6 on your host machine. This can be done by adding the following to your `docker-compose.yml` file (or for docker run, the equivalent flag):
|
||||
If you are having issues with certain widgets that are unable to reach public APIs (e.g. weather), in certain setups you may need to disable IPv6. You can set the environment variable `HOMEPAGE_PROXY_DISABLE_IPV6` to `true` to disable IPv6 for the homepage proxy.
|
||||
|
||||
Alternatively, you can use the `sysctls` option in your docker-compose file to disable IPv6 for the homepage container completely:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
|
@ -79,12 +81,3 @@ services:
|
|||
sysctls:
|
||||
- net.ipv6.conf.all.disable_ipv6=1
|
||||
```
|
||||
|
||||
or disable IPv6 for the docker network:
|
||||
|
||||
```yaml
|
||||
networks:
|
||||
some_network:
|
||||
driver: bridge
|
||||
enable_ipv6: false
|
||||
```
|
||||
|
|
|
@ -19,27 +19,22 @@ widget:
|
|||
requestBody: # optional, can be string or object, see below
|
||||
display: # optional, default to block, see below
|
||||
mappings:
|
||||
- field: key # needs to be YAML string or object
|
||||
- field: key
|
||||
label: Field 1
|
||||
format: text # optional - defaults to text
|
||||
- field: # needs to be YAML string or object
|
||||
path:
|
||||
to: key2
|
||||
- field: path.to.key2
|
||||
format: number # optional - defaults to text
|
||||
label: Field 2
|
||||
- field: # needs to be YAML string or object
|
||||
path:
|
||||
to:
|
||||
another: key3
|
||||
- field: path.to.another.key3
|
||||
label: Field 3
|
||||
format: percent # optional - defaults to text
|
||||
- field: key # needs to be YAML string or object
|
||||
- field: key
|
||||
label: Field 4
|
||||
format: date # optional - defaults to text
|
||||
locale: nl # optional
|
||||
dateStyle: long # optional - defaults to "long". Allowed values: `["full", "long", "medium", "short"]`.
|
||||
timeStyle: medium # optional - Allowed values: `["full", "long", "medium", "short"]`.
|
||||
- field: key # needs to be YAML string or object
|
||||
- field: key
|
||||
label: Field 5
|
||||
format: relativeDate # optional - defaults to text
|
||||
locale: nl # optional
|
||||
|
@ -49,9 +44,7 @@ widget:
|
|||
label: Field 6
|
||||
format: text
|
||||
additionalField: # optional
|
||||
field:
|
||||
hourly:
|
||||
time: other key
|
||||
field: hourly.time.key
|
||||
color: theme # optional - defaults to "". Allowed values: `["theme", "adaptive", "black", "white"]`.
|
||||
format: date # optional
|
||||
- field: key
|
||||
|
@ -103,9 +96,16 @@ mappings:
|
|||
label: Name
|
||||
- field: status # Alive
|
||||
label: Status
|
||||
- field:
|
||||
origin: name # Earth (C-137)
|
||||
- field: origin.name # Earth (C-137)
|
||||
label: Origin
|
||||
- field: locations.1.name # Citadel of Ricks
|
||||
label: Location
|
||||
```
|
||||
|
||||
Note that older versions of the widget accepted fields as a yaml object, which is still supported. E.g.:
|
||||
|
||||
```yaml
|
||||
mappings:
|
||||
- field:
|
||||
locations:
|
||||
1: name # Citadel of Ricks
|
||||
|
@ -138,7 +138,15 @@ You can manipulate data with the following tools `remap`, `scale`, `prefix` and
|
|||
prefix: "$"
|
||||
```
|
||||
|
||||
## List View
|
||||
## Display Options
|
||||
|
||||
The widget supports different display modes that can be set using the `display` property.
|
||||
|
||||
### Block View (Default)
|
||||
|
||||
The default display mode is `block`, which shows fields in a block format.
|
||||
|
||||
### List View
|
||||
|
||||
You can change the default block view to a list view by setting the `display` option to `list`.
|
||||
|
||||
|
@ -162,13 +170,53 @@ The list view can optionally display an additional field next to the primary fie
|
|||
- any: true # will map all other values
|
||||
to: Unknown
|
||||
additionalField:
|
||||
field:
|
||||
hourly:
|
||||
time: key
|
||||
field: hourly.time.key
|
||||
color: theme
|
||||
format: date
|
||||
```
|
||||
|
||||
### Dynamic List View
|
||||
|
||||
To display a list of items from an array in the API response, set the `display` property to `dynamic-list` and configure the `mappings` object with the following properties:
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: customapi
|
||||
url: https://example.com/api/servers
|
||||
display: dynamic-list
|
||||
mappings:
|
||||
items: data # optional, the path to the array in the API response. Omit this option if the array is at the root level
|
||||
name: id # required, field in each item to use as the item name (left side)
|
||||
label: ip_address # required, field in each item to use as the item label (right side)
|
||||
limit: 5 # optional, limit the number of items to display
|
||||
target: https://example.com/server/{id} # optional, makes items clickable with template support
|
||||
```
|
||||
|
||||
This configuration would work with an API that returns a response like:
|
||||
|
||||
```json
|
||||
{
|
||||
"data": [
|
||||
{ "id": "server1", "name": "Server 1", "ip_address": "192.168.0.1" },
|
||||
{ "id": "server2", "name": "Server 2", "ip_address": "192.168.0.2" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
The widget would display a list with two items:
|
||||
|
||||
- "Server 1" on the left and "192.168.0.1" on the right, clickable to "https://example.com/server/server1"
|
||||
- "Server 2" on the left and "192.168.0.2" on the right, clickable to "https://example.com/server/server2"
|
||||
|
||||
For nested fields in the items, you can use dot notation:
|
||||
|
||||
```yaml
|
||||
mappings:
|
||||
items: data.results.servers
|
||||
name: details.id
|
||||
label: details.name
|
||||
```
|
||||
|
||||
## Custom Headers
|
||||
|
||||
Pass custom headers using the `headers` option, for example:
|
||||
|
|
|
@ -7,7 +7,7 @@ Learn more about [Gitea](https://gitea.com).
|
|||
|
||||
API token requires `notifications`, `repository` and `issue` permissions. See the [gitea documentation](https://docs.gitea.com/development/api-usage#generating-and-listing-api-tokens) for details on generating tokens.
|
||||
|
||||
Allowed fields: `["notifications", "issues", "pulls"]`.
|
||||
Allowed fields: `["repositories", "notifications", "issues", "pulls"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
|
|
|
@ -117,6 +117,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
|||
- [ruTorrent](rutorrent.md)
|
||||
- [SABnzbd](sabnzbd.md)
|
||||
- [Scrutiny](scrutiny.md)
|
||||
- [Slskd](slskd.md)
|
||||
- [Sonarr](sonarr.md)
|
||||
- [Speedtest Tracker](speedtest-tracker.md)
|
||||
- [Stash](stash.md)
|
||||
|
|
25
docs/widgets/services/slskd.md
Normal file
25
docs/widgets/services/slskd.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
title: Slskd
|
||||
description: Slskd Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Slskd](https://github.com/slskd/slskd).
|
||||
|
||||
Generate an API key for slskd with `openssl rand -base64 48`.
|
||||
Add it to your `path/to/config/slskd.yml` in `web > authentication > api_keys`:
|
||||
|
||||
```yaml
|
||||
homepage_widget:
|
||||
key: <generated key>
|
||||
role: readonly
|
||||
cidr: <homepage subnet>
|
||||
```
|
||||
|
||||
Allowed fields: `["slskStatus", "updateStatus", "downloads", "uploads", "sharedFiles"]` (maximum of 4).
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: slskd
|
||||
url: http[s]://slskd.host.or.ip[:5030]
|
||||
key: generatedapikey
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue