mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
132d8f4f6b | ||
|
|
c085cf1e72 | ||
|
|
ebb1a50e3f | ||
|
|
8f82976fe5 | ||
|
|
6da46dd3b1 | ||
|
|
5fc3bdee08 | ||
|
|
bcc867323f | ||
|
|
a46a234b76 | ||
|
|
f0df2122de | ||
|
|
ce695850bd | ||
|
|
8c12afced5 | ||
|
|
8c1e50d9e7 | ||
|
|
20f5134606 | ||
|
|
facc98018b | ||
|
|
581828d49a | ||
|
|
587027df37 | ||
|
|
85736c55c9 | ||
|
|
1f47ee8f11 | ||
|
|
1eb6ac6d90 | ||
|
|
295c6ea796 | ||
|
|
68c2b04090 | ||
|
|
1494458ba6 | ||
|
|
f7086c8aa3 | ||
|
|
59ccc90b2f | ||
|
|
1e9e911877 | ||
|
|
dc67024be2 | ||
|
|
b3591c3e69 | ||
|
|
9243187490 | ||
|
|
6b1080ad43 | ||
|
|
52a4f1a423 |
4
.github/DISCUSSION_TEMPLATE/support.yml
vendored
4
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@@ -4,7 +4,7 @@ body:
|
|||||||
value: |
|
value: |
|
||||||
### ⚠️ Before opening a discussion:
|
### ⚠️ Before opening a discussion:
|
||||||
|
|
||||||
- [Check the troubleshooting guide](https://gethomepage.dev/latest/troubleshooting/).
|
- [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/).
|
||||||
- [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions).
|
- [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions).
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
@@ -51,6 +51,6 @@ body:
|
|||||||
id: troubleshooting
|
id: troubleshooting
|
||||||
attributes:
|
attributes:
|
||||||
label: Troubleshooting
|
label: Troubleshooting
|
||||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/latest/more/troubleshooting/#service-widget-errors), if relevant.
|
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -3,7 +3,7 @@
|
|||||||
<!--
|
<!--
|
||||||
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate.
|
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate.
|
||||||
|
|
||||||
*** Please see the development guidelines for new widgets: https://gethomepage.dev/latest/more/development/#service-widget-guidelines
|
*** Please see the development guidelines for new widgets: https://gethomepage.dev/more/development/#service-widget-guidelines
|
||||||
*** If you do not follow these guidelines your PR will likely be closed without review.
|
*** If you do not follow these guidelines your PR will likely be closed without review.
|
||||||
|
|
||||||
New service widgets should include example(s) of relevant API output as well as updates to the docs for the new widget.
|
New service widgets should include example(s) of relevant API output as well as updates to the docs for the new widget.
|
||||||
@@ -26,6 +26,6 @@ What type of change does your PR introduce to Homepage?
|
|||||||
## Checklist:
|
## Checklist:
|
||||||
|
|
||||||
- [ ] If applicable, I have added corresponding documentation changes.
|
- [ ] If applicable, I have added corresponding documentation changes.
|
||||||
- [ ] If applicable, I have reviewed the [feature](https://gethomepage.dev/latest/more/development/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/latest/more/development/#service-widget-guidelines).
|
- [ ] If applicable, I have reviewed the [feature](https://gethomepage.dev/more/development/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/more/development/#service-widget-guidelines).
|
||||||
- [ ] I have checked that all code style checks pass using [pre-commit hooks](https://gethomepage.dev/latest/more/development/#code-formatting-with-pre-commit-hooks) and [linting checks](https://gethomepage.dev/latest/more/development/#code-linting).
|
- [ ] I have checked that all code style checks pass using [pre-commit hooks](https://gethomepage.dev/more/development/#code-formatting-with-pre-commit-hooks) and [linting checks](https://gethomepage.dev/more/development/#code-linting).
|
||||||
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
|
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
|
||||||
|
|||||||
6
.github/workflows/crowdin.yml
vendored
6
.github/workflows/crowdin.yml
vendored
@@ -8,7 +8,7 @@ on:
|
|||||||
paths: [
|
paths: [
|
||||||
'/public/locales/en/**',
|
'/public/locales/en/**',
|
||||||
]
|
]
|
||||||
branches: [ main ]
|
branches: [ dev ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
synchronize-with-crowdin:
|
synchronize-with-crowdin:
|
||||||
@@ -23,8 +23,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
upload_translations: false
|
upload_translations: false
|
||||||
download_translations: true
|
download_translations: true
|
||||||
crowdin_branch_name: main
|
crowdin_branch_name: dev
|
||||||
localization_branch_name: l10n_main
|
localization_branch_name: l10n_dev
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
||||||
|
|||||||
3
.github/workflows/docker-publish.yml
vendored
3
.github/workflows/docker-publish.yml
vendored
@@ -12,13 +12,14 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- feature/**
|
- feature/**
|
||||||
|
- dev
|
||||||
# Publish semver tags as releases.
|
# Publish semver tags as releases.
|
||||||
tags: [ 'v*.*.*' ]
|
tags: [ 'v*.*.*' ]
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'docs/**'
|
- 'docs/**'
|
||||||
- 'mkdocs.yml'
|
- 'mkdocs.yml'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: [ "dev" ]
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'docs/**'
|
- 'docs/**'
|
||||||
- 'mkdocs.yml'
|
- 'mkdocs.yml'
|
||||||
|
|||||||
26
.github/workflows/docs-publish.yml
vendored
26
.github/workflows/docs-publish.yml
vendored
@@ -50,7 +50,6 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
mkdocs-material-
|
mkdocs-material-
|
||||||
- run: sudo apt-get install pngquant
|
- run: sudo apt-get install pngquant
|
||||||
- run: pip install mike
|
|
||||||
- run: pip install mkdocs-material mkdocs-redirects "mkdocs-material[imaging]"
|
- run: pip install mkdocs-material mkdocs-redirects "mkdocs-material[imaging]"
|
||||||
- name: Test Docs Build
|
- name: Test Docs Build
|
||||||
run: MKINSIDERS=false mkdocs build
|
run: MKINSIDERS=false mkdocs build
|
||||||
@@ -62,8 +61,10 @@ jobs:
|
|||||||
- pre-commit
|
- pre-commit
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
- name: Configure Git Credentials
|
||||||
ref: main
|
run: |
|
||||||
|
git config user.name github-actions[bot]
|
||||||
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
@@ -75,24 +76,9 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
mkdocs-material-
|
mkdocs-material-
|
||||||
- run: sudo apt-get install pngquant
|
- run: sudo apt-get install pngquant
|
||||||
- run: pip install mike==2.0.0
|
|
||||||
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
|
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
|
||||||
- run: pip install mkdocs-redirects "mkdocs-material[imaging]"
|
- run: pip install mkdocs-redirects "mkdocs-material[imaging]"
|
||||||
- name: Set Git config
|
- name: Docs Deploy
|
||||||
run: |
|
run: MKINSIDERS=true mkdocs gh-deploy --force
|
||||||
git config --global user.name "GitHub Action"
|
|
||||||
git config --global user.email "action@github.com"
|
|
||||||
- name: Sync gh-pages
|
|
||||||
run: |
|
|
||||||
git fetch origin gh-pages
|
|
||||||
git checkout gh-pages
|
|
||||||
git pull origin gh-pages
|
|
||||||
git checkout main
|
|
||||||
- name: Docs Deploy for Main
|
|
||||||
if: github.ref == 'refs/heads/main'
|
|
||||||
run: MKINSIDERS=true mike deploy --update --push ${{github.ref_name}}
|
|
||||||
- name: Docs Deploy for Tags
|
|
||||||
if: github.ref != 'refs/heads/main'
|
|
||||||
run: MKINSIDERS=true mike deploy --update --push ${{github.ref_name}} latest
|
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||||
|
|||||||
@@ -38,11 +38,11 @@ People _love_ thorough bug reports. I'm not even kidding.
|
|||||||
|
|
||||||
## Development Guidelines
|
## Development Guidelines
|
||||||
|
|
||||||
Please see the [documentation regarding development](https://gethomepage.dev/latest/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/latest/more/development/#service-widget-guidelines) if you are considering making one.
|
Please see the [documentation regarding development](https://gethomepage.dev/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/more/development/#service-widget-guidelines) if you are considering making one.
|
||||||
|
|
||||||
## Use a Consistent Coding Style
|
## Use a Consistent Coding Style
|
||||||
|
|
||||||
Please see information in the docs regarding [code formatting with pre-commit hooks](https://gethomepage.dev/latest/more/development/#code-formatting-with-pre-commit-hooks).
|
Please see information in the docs regarding [code formatting with pre-commit hooks](https://gethomepage.dev/more/development/#code-formatting-with-pre-commit-hooks).
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<a href="https://discord.gg/k4ruYNrudu"><img alt="Discord" src="https://img.shields.io/discord/1019316731635834932"></a>
|
<a href="https://discord.gg/k4ruYNrudu"><img alt="Discord" src="https://img.shields.io/discord/1019316731635834932"></a>
|
||||||
|
|
||||||
<a href="http://gethomepage.dev/latest/" title="Docs"><img title="Docs" src="https://github.com/gethomepage/homepage/actions/workflows/docs-publish.yml/badge.svg"/></a>
|
<a href="https://gethomepage.dev/" title="Docs"><img title="Docs" src="https://github.com/gethomepage/homepage/actions/workflows/docs-publish.yml/badge.svg"/></a>
|
||||||
|
|
||||||
<a href="https://paypal.me/phelpsben" title="Donate"><img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/benphelps"></a>
|
<a href="https://paypal.me/phelpsben" title="Donate"><img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/benphelps"></a>
|
||||||
</p>
|
</p>
|
||||||
@@ -48,19 +48,19 @@ With features like quick search, bookmarks, weather support, a wide range of int
|
|||||||
|
|
||||||
## Docker Integration
|
## Docker Integration
|
||||||
|
|
||||||
Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the [Docker Service Discovery](https://gethomepage.dev/latest/configs/docker/#automatic-service-discovery) page for more information.
|
Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the [Docker Service Discovery](https://gethomepage.dev/configs/docker/#automatic-service-discovery) page for more information.
|
||||||
|
|
||||||
## Service Widgets
|
## Service Widgets
|
||||||
|
|
||||||
Homepage also has support for over 100 3rd party services, including all popular starr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd party APIs. See the [Service](https://gethomepage.dev/latest/widgets/) page for more information.
|
Homepage also has support for over 100 3rd party services, including all popular starr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd party APIs. See the [Service](https://gethomepage.dev/widgets/) page for more information.
|
||||||
|
|
||||||
## Information Widgets
|
## Information Widgets
|
||||||
|
|
||||||
Homepage has built-in support for a number of information providers, including weather, time, date, search, glances and more. System and status information presented at the top of the page. See the [Information Providers](https://gethomepage.dev/latest/widgets/) page for more information.
|
Homepage has built-in support for a number of information providers, including weather, time, date, search, glances and more. System and status information presented at the top of the page. See the [Information Providers](https://gethomepage.dev/widgets/) page for more information.
|
||||||
|
|
||||||
## Customization
|
## Customization
|
||||||
|
|
||||||
Homepage is highly customizable, with support for custom themes, custom CSS & JS, custom layouts, formatting, localization and more. See the [Settings](https://gethomepage.dev/latest/configs/settings/) page for more information.
|
Homepage is highly customizable, with support for custom themes, custom CSS & JS, custom layouts, formatting, localization and more. See the [Settings](https://gethomepage.dev/configs/settings/) page for more information.
|
||||||
|
|
||||||
# Getting Started
|
# Getting Started
|
||||||
|
|
||||||
@@ -170,7 +170,7 @@ If you have any questions, suggestions, or general issues, please start a discus
|
|||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
In addition to the docs, the [troubleshooting guide](https://gethomepage.dev/latest/troubleshooting/) can help reveal many basic config or network issues. If you're having a problem, it's a good place to start.
|
In addition to the docs, the [troubleshooting guide](https://gethomepage.dev/troubleshooting/) can help reveal many basic config or network issues. If you're having a problem, it's a good place to start.
|
||||||
|
|
||||||
## Contributing & Contributors
|
## Contributing & Contributors
|
||||||
|
|
||||||
|
|||||||
1
docs/CNAME
Normal file
1
docs/CNAME
Normal file
@@ -0,0 +1 @@
|
|||||||
|
gethomepage.dev
|
||||||
@@ -65,9 +65,13 @@ Services may have descriptions,
|
|||||||
|
|
||||||
Services may have an icon attached to them, you can use icons from [Dashboard Icons](https://github.com/walkxcode/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png` or with `.svg` to use the svg version.
|
Services may have an icon attached to them, you can use icons from [Dashboard Icons](https://github.com/walkxcode/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png` or with `.svg` to use the svg version.
|
||||||
|
|
||||||
You can also specify prefixed icons from [Material Design Icons](https://materialdesignicons.com) with `mdi-XX` or [Simple Icons](https://simpleicons.org/) with `si-XX`.
|
You can also specify prefixed icons from:
|
||||||
|
|
||||||
You can specify a custom color by adding a hex color code as suffix e.g. `mdi-XX-#f0d453` or `si-XX-#a712a2`.
|
- [Material Design Icons](https://pictogrammers.com/library/mdi/) with `mdi-XX`
|
||||||
|
- [Simple Icons](https://simpleicons.org/) with `si-XX`
|
||||||
|
- [selfh.st/icons](https://selfh.st/icons/) with `sh-XX` to use the png version or `sh-XX.svg/png/webp` for a specific version
|
||||||
|
|
||||||
|
You can specify a custom color for `mdi` and `si` icons by adding a hex color code as a suffix e.g. `mdi-XX-#f0d453` or `si-XX-#a712a2`.
|
||||||
|
|
||||||
To use a remote icon, use the absolute URL (e.g. `https://...`).
|
To use a remote icon, use the absolute URL (e.g. `https://...`).
|
||||||
|
|
||||||
@@ -171,7 +175,7 @@ Services may be connected to a Docker container, either running on the local mac
|
|||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
|
|
||||||
This can also be controlled with `showStats`. See [show docker stats](docker.md#show-docker-stats) for more information
|
This can also be controlled with `showStats`. See [show docker stats](docker.md#show-stats) for more information
|
||||||
|
|
||||||
<img width="1038" alt="Docker Stats Expanded" src="https://github.com/gethomepage/homepage/assets/88257202/f95fd595-449e-48ae-af67-fd89618904ec">
|
<img width="1038" alt="Docker Stats Expanded" src="https://github.com/gethomepage/homepage/assets/88257202/f95fd595-449e-48ae-af67-fd89618904ec">
|
||||||
|
|
||||||
|
|||||||
@@ -31,15 +31,15 @@ You may need to set the permissions of the folders to be able to edit the files.
|
|||||||
|
|
||||||
- To use the [Docker integration](../configs/docker.md), you only need to use the `container:` parameter. There is no need to set the server.
|
- To use the [Docker integration](../configs/docker.md), you only need to use the `container:` parameter. There is no need to set the server.
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
|
|
||||||
To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, `container:` will still need to be set. For example:
|
To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, `container:` will still need to be set. For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
- Plex:
|
- Plex:
|
||||||
icon: /icons/plex.png
|
icon: /icons/plex.png
|
||||||
href: https://app.plex.com
|
href: https://app.plex.com
|
||||||
container: plex
|
container: plex
|
||||||
```
|
```
|
||||||
|
|
||||||
- When you upload a new image into the **/images** folder, you will need to restart the container for it to show up in the WebUI. Please see the [service icons](../configs/services.md#icons) for more information.
|
- When you upload a new image into the **/images** folder, you will need to restart the container for it to show up in the WebUI. Please see the [service icons](../configs/services.md#icons) for more information.
|
||||||
|
|||||||
@@ -57,6 +57,11 @@
|
|||||||
--carbon-text-color: var(--md-typeset-color) !important;
|
--carbon-text-color: var(--md-typeset-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[data-md-color-scheme="default"] .carbon-text {
|
||||||
|
color: var(--md-code-fg-color) !important;
|
||||||
|
--carbon-text-color: #313131 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.md-typeset__table {
|
.md-typeset__table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ hide:
|
|||||||
|
|
||||||
All service widgets work essentially the same, that is, homepage makes a proxied call to an API made available by that service. The majority of the time widgets don't work it is a configuration issue. Of course, sometimes things do break. Some basic steps to try:
|
All service widgets work essentially the same, that is, homepage makes a proxied call to an API made available by that service. The majority of the time widgets don't work it is a configuration issue. Of course, sometimes things do break. Some basic steps to try:
|
||||||
|
|
||||||
1. Ensure that you follow the rule mentioned on https://gethomepage.dev/latest/configs/service-widgets/. **Unless otherwise noted, URLs should not end with a / or other API path. Each widget will handle the path on its own.**. This is very important as including a trailing slash can result in an error.
|
1. Ensure that you follow the rule mentioned on https://gethomepage.dev/configs/service-widgets/. **Unless otherwise noted, URLs should not end with a / or other API path. Each widget will handle the path on its own.**. This is very important as including a trailing slash can result in an error.
|
||||||
|
|
||||||
2. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.:
|
2. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.:
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ Learn more about [Changedetection.io](https://github.com/dgtlmoon/changedetectio
|
|||||||
|
|
||||||
Find your API key under `Settings > API`.
|
Find your API key under `Settings > API`.
|
||||||
|
|
||||||
|
Allowed fields: `["diffsDetected", "totalObserved"]`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
widget:
|
widget:
|
||||||
type: changedetectionio
|
type: changedetectionio
|
||||||
|
|||||||
@@ -11,8 +11,11 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun).
|
|||||||
|
|
||||||
Allowed fields: `["public_ip", "region", "country"]`.
|
Allowed fields: `["public_ip", "region", "country"]`.
|
||||||
|
|
||||||
|
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
widget:
|
widget:
|
||||||
type: gluetun
|
type: gluetun
|
||||||
url: http://gluetun.host.or.ip:port
|
url: http://gluetun.host.or.ip:port
|
||||||
|
key: gluetunkey # Not required if /v1/publicip/ip endpoint is configured with `auth = none`
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -59,7 +59,9 @@ You can also find a list of all available service widgets in the sidebar navigat
|
|||||||
- [Kopia](kopia.md)
|
- [Kopia](kopia.md)
|
||||||
- [Lidarr](lidarr.md)
|
- [Lidarr](lidarr.md)
|
||||||
- [Linkwarden](linkwarden.md)
|
- [Linkwarden](linkwarden.md)
|
||||||
|
- [Lubelogger](lubelogger.md)
|
||||||
- [Mastodon](mastodon.md)
|
- [Mastodon](mastodon.md)
|
||||||
|
- [Mailcow](mailcow.md)
|
||||||
- [Mealie](mealie.md)
|
- [Mealie](mealie.md)
|
||||||
- [Medusa](medusa.md)
|
- [Medusa](medusa.md)
|
||||||
- [Mikrotik](mikrotik.md)
|
- [Mikrotik](mikrotik.md)
|
||||||
|
|||||||
20
docs/widgets/services/lubelogger.md
Normal file
20
docs/widgets/services/lubelogger.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
title: LubeLogger
|
||||||
|
description: LubeLogger Widget Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn more about [LubeLogger](https://github.com/hargata/lubelog) (v1.3.7 or higher is required).
|
||||||
|
|
||||||
|
The widget comes in two 'flavors', one shows data for all vehicles or for just a specific vehicle with the `vehicleID` parameter.
|
||||||
|
|
||||||
|
Allowed fields: `["vehicles", "serviceRecords", "reminders"]`.
|
||||||
|
For the single-vehicle version: `["vehicle", "serviceRecords", "reminders", "nextReminder"]
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
widget:
|
||||||
|
type: lubelogger
|
||||||
|
url: https://lubelogger.host.or.ip
|
||||||
|
username: lubeloggerusername
|
||||||
|
password: lubeloggerpassword
|
||||||
|
vehicleID: 1 # optional, changes to single-vehicle version
|
||||||
|
```
|
||||||
15
docs/widgets/services/mailcow.md
Normal file
15
docs/widgets/services/mailcow.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: Mailcow
|
||||||
|
description: Mailcow Widget Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn more about [Mailcow](https://github.com/mailcow/mailcow-dockerized).
|
||||||
|
|
||||||
|
Allowed fields: `["domains", "mailboxes", "mails", "storage"]`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
widget:
|
||||||
|
type: mailcow
|
||||||
|
url: https://mailcow.host.or.ip
|
||||||
|
key: mailcowapikey
|
||||||
|
```
|
||||||
@@ -3,7 +3,9 @@ title: PhotoPrism
|
|||||||
description: PhotoPrism Widget Configuration
|
description: PhotoPrism Widget Configuration
|
||||||
---
|
---
|
||||||
|
|
||||||
Learn more about [PhotoPrism](https://github.com/photoprism/photoprism)..
|
Learn more about [PhotoPrism](https://github.com/photoprism/photoprism).
|
||||||
|
|
||||||
|
Authentication is possible via [app passwords](https://docs.photoprism.app/user-guide/settings/account/#apps-and-devices) or username/password.
|
||||||
|
|
||||||
Allowed fields: `["albums", "photos", "videos", "people"]`.
|
Allowed fields: `["albums", "photos", "videos", "people"]`.
|
||||||
|
|
||||||
@@ -11,6 +13,7 @@ Allowed fields: `["albums", "photos", "videos", "people"]`.
|
|||||||
widget:
|
widget:
|
||||||
type: photoprism
|
type: photoprism
|
||||||
url: http://photoprism.host.or.ip:port
|
url: http://photoprism.host.or.ip:port
|
||||||
username: admin
|
username: admin # required only if using username/password
|
||||||
password: password
|
password: password # required only if using username/password
|
||||||
|
key: # required only if using app passwords
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ description: PiHole Widget Configuration
|
|||||||
|
|
||||||
Learn more about [PiHole](https://github.com/pi-hole/pi-hole).
|
Learn more about [PiHole](https://github.com/pi-hole/pi-hole).
|
||||||
|
|
||||||
As of v2022.12 [PiHole requires the use of an API key](https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content) if an admin password is set. Older versions do not require any authentication even if the admin uses a password.
|
|
||||||
|
|
||||||
Allowed fields: `["queries", "blocked", "blocked_percent", "gravity"]`.
|
Allowed fields: `["queries", "blocked", "blocked_percent", "gravity"]`.
|
||||||
|
|
||||||
Note: by default the "blocked" and "blocked_percent" fields are merged e.g. "1,234 (15%)" but explicitly including the "blocked_percent" field will change them to display separately.
|
Note: by default the "blocked" and "blocked_percent" fields are merged e.g. "1,234 (15%)" but explicitly including the "blocked_percent" field will change them to display separately.
|
||||||
@@ -18,5 +16,3 @@ widget:
|
|||||||
version: 6 # required if running v6 or higher, defaults to 5
|
version: 6 # required if running v6 or higher, defaults to 5
|
||||||
key: yourpiholeapikey # optional
|
key: yourpiholeapikey # optional
|
||||||
```
|
```
|
||||||
|
|
||||||
_Added in v0.1.0, updated in v0.8.9_
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ nav:
|
|||||||
- widgets/services/crowdsec.md
|
- widgets/services/crowdsec.md
|
||||||
- widgets/services/customapi.md
|
- widgets/services/customapi.md
|
||||||
- widgets/services/deluge.md
|
- widgets/services/deluge.md
|
||||||
|
- widgets/services/develancacheui.md
|
||||||
- widgets/services/diskstation.md
|
- widgets/services/diskstation.md
|
||||||
- widgets/services/downloadstation.md
|
- widgets/services/downloadstation.md
|
||||||
- widgets/services/emby.md
|
- widgets/services/emby.md
|
||||||
@@ -81,7 +82,9 @@ nav:
|
|||||||
- widgets/services/kopia.md
|
- widgets/services/kopia.md
|
||||||
- widgets/services/lidarr.md
|
- widgets/services/lidarr.md
|
||||||
- widgets/services/linkwarden.md
|
- widgets/services/linkwarden.md
|
||||||
|
- widgets/services/lubelogger.md
|
||||||
- widgets/services/mastodon.md
|
- widgets/services/mastodon.md
|
||||||
|
- widgets/services/mailcow.md
|
||||||
- widgets/services/mealie.md
|
- widgets/services/mealie.md
|
||||||
- widgets/services/medusa.md
|
- widgets/services/medusa.md
|
||||||
- widgets/services/mikrotik.md
|
- widgets/services/mikrotik.md
|
||||||
@@ -231,8 +234,6 @@ extra_css:
|
|||||||
- "stylesheets/extra.css"
|
- "stylesheets/extra.css"
|
||||||
|
|
||||||
extra:
|
extra:
|
||||||
version:
|
|
||||||
provider: mike
|
|
||||||
social:
|
social:
|
||||||
- icon: fontawesome/brands/discord
|
- icon: fontawesome/brands/discord
|
||||||
link: https://discord.gg/k4ruYNrudu
|
link: https://discord.gg/k4ruYNrudu
|
||||||
|
|||||||
18
package-lock.json
generated
18
package-lock.json
generated
@@ -50,12 +50,12 @@
|
|||||||
"eslint-plugin-import": "^2.29.1",
|
"eslint-plugin-import": "^2.29.1",
|
||||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||||
"eslint-plugin-prettier": "^5.2.1",
|
"eslint-plugin-prettier": "^5.2.1",
|
||||||
"eslint-plugin-react": "^7.34.2",
|
"eslint-plugin-react": "^7.36.1",
|
||||||
"eslint-plugin-react-hooks": "^4.6.2",
|
"eslint-plugin-react-hooks": "^4.6.2",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"tailwind-scrollbar": "^3.0.5",
|
"tailwind-scrollbar": "^3.0.5",
|
||||||
"tailwindcss": "^3.4.3",
|
"tailwindcss": "^3.4.13",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
@@ -3285,11 +3285,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-react": {
|
"node_modules/eslint-plugin-react": {
|
||||||
"version": "7.35.2",
|
"version": "7.36.1",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.2.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz",
|
||||||
"integrity": "sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==",
|
"integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"array-includes": "^3.1.8",
|
"array-includes": "^3.1.8",
|
||||||
"array.prototype.findlast": "^1.2.5",
|
"array.prototype.findlast": "^1.2.5",
|
||||||
@@ -7721,11 +7720,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.4.10",
|
"version": "3.4.13",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz",
|
||||||
"integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
|
"integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alloc/quick-lru": "^5.2.0",
|
"@alloc/quick-lru": "^5.2.0",
|
||||||
"arg": "^5.0.2",
|
"arg": "^5.0.2",
|
||||||
|
|||||||
@@ -52,12 +52,12 @@
|
|||||||
"eslint-plugin-import": "^2.29.1",
|
"eslint-plugin-import": "^2.29.1",
|
||||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||||
"eslint-plugin-prettier": "^5.2.1",
|
"eslint-plugin-prettier": "^5.2.1",
|
||||||
"eslint-plugin-react": "^7.34.2",
|
"eslint-plugin-react": "^7.36.1",
|
||||||
"eslint-plugin-react-hooks": "^4.6.2",
|
"eslint-plugin-react-hooks": "^4.6.2",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.38",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"tailwind-scrollbar": "^3.0.5",
|
"tailwind-scrollbar": "^3.0.5",
|
||||||
"tailwindcss": "^3.4.3",
|
"tailwindcss": "^3.4.13",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
|
|||||||
41
pnpm-lock.yaml
generated
41
pnpm-lock.yaml
generated
@@ -108,7 +108,7 @@ importers:
|
|||||||
devDependencies:
|
devDependencies:
|
||||||
'@tailwindcss/forms':
|
'@tailwindcss/forms':
|
||||||
specifier: ^0.5.8
|
specifier: ^0.5.8
|
||||||
version: 0.5.9(tailwindcss@3.4.10)
|
version: 0.5.9(tailwindcss@3.4.13)
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: ^10.4.20
|
specifier: ^10.4.20
|
||||||
version: 10.4.20(postcss@8.4.45)
|
version: 10.4.20(postcss@8.4.45)
|
||||||
@@ -117,7 +117,7 @@ importers:
|
|||||||
version: 8.57.0
|
version: 8.57.0
|
||||||
eslint-config-airbnb:
|
eslint-config-airbnb:
|
||||||
specifier: ^19.0.4
|
specifier: ^19.0.4
|
||||||
version: 19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.35.2(eslint@8.57.0))(eslint@8.57.0)
|
version: 19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.36.1(eslint@8.57.0))(eslint@8.57.0)
|
||||||
eslint-config-next:
|
eslint-config-next:
|
||||||
specifier: ^14.2.3
|
specifier: ^14.2.3
|
||||||
version: 14.2.8(eslint@8.57.0)(typescript@5.5.4)
|
version: 14.2.8(eslint@8.57.0)(typescript@5.5.4)
|
||||||
@@ -134,8 +134,8 @@ importers:
|
|||||||
specifier: ^5.2.1
|
specifier: ^5.2.1
|
||||||
version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3)
|
version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3)
|
||||||
eslint-plugin-react:
|
eslint-plugin-react:
|
||||||
specifier: ^7.34.2
|
specifier: ^7.36.1
|
||||||
version: 7.35.2(eslint@8.57.0)
|
version: 7.36.1(eslint@8.57.0)
|
||||||
eslint-plugin-react-hooks:
|
eslint-plugin-react-hooks:
|
||||||
specifier: ^4.6.2
|
specifier: ^4.6.2
|
||||||
version: 4.6.2(eslint@8.57.0)
|
version: 4.6.2(eslint@8.57.0)
|
||||||
@@ -147,10 +147,10 @@ importers:
|
|||||||
version: 3.3.3
|
version: 3.3.3
|
||||||
tailwind-scrollbar:
|
tailwind-scrollbar:
|
||||||
specifier: ^3.0.5
|
specifier: ^3.0.5
|
||||||
version: 3.1.0(tailwindcss@3.4.10)
|
version: 3.1.0(tailwindcss@3.4.13)
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: ^3.4.3
|
specifier: ^3.4.13
|
||||||
version: 3.4.10
|
version: 3.4.13
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.4.5
|
specifier: ^5.4.5
|
||||||
version: 5.5.4
|
version: 5.5.4
|
||||||
@@ -1134,8 +1134,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
|
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
|
||||||
|
|
||||||
eslint-plugin-react@7.35.2:
|
eslint-plugin-react@7.36.1:
|
||||||
resolution: {integrity: sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==}
|
resolution: {integrity: sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
|
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
|
||||||
@@ -1242,6 +1242,7 @@ packages:
|
|||||||
follow-redirects@1.15.8:
|
follow-redirects@1.15.8:
|
||||||
resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==}
|
resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
|
deprecated: Browser detection issues fixed in v1.15.9
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
debug: '*'
|
debug: '*'
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
@@ -2506,8 +2507,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
tailwindcss: 3.x
|
tailwindcss: 3.x
|
||||||
|
|
||||||
tailwindcss@3.4.10:
|
tailwindcss@3.4.13:
|
||||||
resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==}
|
resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -2952,10 +2953,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
defer-to-connect: 2.0.1
|
defer-to-connect: 2.0.1
|
||||||
|
|
||||||
'@tailwindcss/forms@0.5.9(tailwindcss@3.4.10)':
|
'@tailwindcss/forms@0.5.9(tailwindcss@3.4.13)':
|
||||||
dependencies:
|
dependencies:
|
||||||
mini-svg-data-uri: 1.4.4
|
mini-svg-data-uri: 1.4.4
|
||||||
tailwindcss: 3.4.10
|
tailwindcss: 3.4.13
|
||||||
|
|
||||||
'@tanstack/react-virtual@3.10.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@tanstack/react-virtual@3.10.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3764,13 +3765,13 @@ snapshots:
|
|||||||
object.entries: 1.1.8
|
object.entries: 1.1.8
|
||||||
semver: 6.3.1
|
semver: 6.3.1
|
||||||
|
|
||||||
eslint-config-airbnb@19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.35.2(eslint@8.57.0))(eslint@8.57.0):
|
eslint-config-airbnb@19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.36.1(eslint@8.57.0))(eslint@8.57.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0)
|
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0)
|
||||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
||||||
eslint-plugin-react: 7.35.2(eslint@8.57.0)
|
eslint-plugin-react: 7.36.1(eslint@8.57.0)
|
||||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
||||||
object.assign: 4.1.5
|
object.assign: 4.1.5
|
||||||
object.entries: 1.1.8
|
object.entries: 1.1.8
|
||||||
@@ -3786,7 +3787,7 @@ snapshots:
|
|||||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
||||||
eslint-plugin-react: 7.35.2(eslint@8.57.0)
|
eslint-plugin-react: 7.36.1(eslint@8.57.0)
|
||||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.5.4
|
||||||
@@ -3898,7 +3899,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
|
|
||||||
eslint-plugin-react@7.35.2(eslint@8.57.0):
|
eslint-plugin-react@7.36.1(eslint@8.57.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
array-includes: 3.1.8
|
array-includes: 3.1.8
|
||||||
array.prototype.findlast: 1.2.5
|
array.prototype.findlast: 1.2.5
|
||||||
@@ -5349,11 +5350,11 @@ snapshots:
|
|||||||
|
|
||||||
systeminformation@5.23.5: {}
|
systeminformation@5.23.5: {}
|
||||||
|
|
||||||
tailwind-scrollbar@3.1.0(tailwindcss@3.4.10):
|
tailwind-scrollbar@3.1.0(tailwindcss@3.4.13):
|
||||||
dependencies:
|
dependencies:
|
||||||
tailwindcss: 3.4.10
|
tailwindcss: 3.4.13
|
||||||
|
|
||||||
tailwindcss@3.4.10:
|
tailwindcss@3.4.13:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@alloc/quick-lru': 5.2.0
|
'@alloc/quick-lru': 5.2.0
|
||||||
arg: 5.0.2
|
arg: 5.0.2
|
||||||
|
|||||||
@@ -325,15 +325,15 @@
|
|||||||
},
|
},
|
||||||
"technitium": {
|
"technitium": {
|
||||||
"totalQueries": "Navraë",
|
"totalQueries": "Navraë",
|
||||||
"totalNoError": "Success",
|
"totalNoError": "Sukses",
|
||||||
"totalServerFailure": "Failures",
|
"totalServerFailure": "Mislukkings",
|
||||||
"totalNxDomain": "NX Domains",
|
"totalNxDomain": "NX-domeine",
|
||||||
"totalRefused": "Refused",
|
"totalRefused": "Geweier",
|
||||||
"totalAuthoritative": "Authoritative",
|
"totalAuthoritative": "Gesaghebbend",
|
||||||
"totalRecursive": "Recursive",
|
"totalRecursive": "Rekursief",
|
||||||
"totalCached": "Cached",
|
"totalCached": "Gekas",
|
||||||
"totalBlocked": "Geblok",
|
"totalBlocked": "Geblok",
|
||||||
"totalDropped": "Dropped",
|
"totalDropped": "Geval",
|
||||||
"totalClients": "Kliënte"
|
"totalClients": "Kliënte"
|
||||||
},
|
},
|
||||||
"tdarr": {
|
"tdarr": {
|
||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Skermskote",
|
"screenshots": "Skermskote",
|
||||||
"totalfilesize": "Totale Grootte"
|
"totalfilesize": "Totale Grootte"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domeine",
|
||||||
|
"mailboxes": "Posbusse",
|
||||||
|
"mails": "E-posse",
|
||||||
|
"storage": "Bergplek"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Waarskuwings",
|
"warnings": "Waarskuwings",
|
||||||
"criticals": "Kritici"
|
"criticals": "Kritici"
|
||||||
@@ -933,11 +939,19 @@
|
|||||||
"tags": "Merkers"
|
"tags": "Merkers"
|
||||||
},
|
},
|
||||||
"zabbix": {
|
"zabbix": {
|
||||||
"unclassified": "Not classified",
|
"unclassified": "Nie geklassifiseer nie",
|
||||||
"information": "Informasie",
|
"information": "Informasie",
|
||||||
"warning": "Warning",
|
"warning": "Waarskuwing",
|
||||||
"average": "Average",
|
"average": "Gemiddeld",
|
||||||
"high": "High",
|
"high": "Hoog",
|
||||||
"disaster": "Disaster"
|
"disaster": "Ramp"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "لقطات شاشة",
|
"screenshots": "لقطات شاشة",
|
||||||
"totalfilesize": "الحجم الكلي"
|
"totalfilesize": "الحجم الكلي"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "مجالات",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "التخزين"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "تحذيرات",
|
"warnings": "تحذيرات",
|
||||||
"criticals": "حرج"
|
"criticals": "حرج"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "متوسط",
|
"average": "متوسط",
|
||||||
"high": "عالي",
|
"high": "عالي",
|
||||||
"disaster": "كارثة"
|
"disaster": "كارثة"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Dominis",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Emmagatzematge"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Avisos",
|
"warnings": "Avisos",
|
||||||
"criticals": "Crítics"
|
"criticals": "Crítics"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domény",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Úložiště"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domæner",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Lager"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Advarsler",
|
"warnings": "Advarsler",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Bildschirmfotos",
|
"screenshots": "Bildschirmfotos",
|
||||||
"totalfilesize": "Gesamtgröße"
|
"totalfilesize": "Gesamtgröße"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domänen",
|
||||||
|
"mailboxes": "Postfächer",
|
||||||
|
"mails": "E-Mails",
|
||||||
|
"storage": "Speicher"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnungen",
|
"warnings": "Warnungen",
|
||||||
"criticals": "Kritisch"
|
"criticals": "Kritisch"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Durchschnitt",
|
"average": "Durchschnitt",
|
||||||
"high": "Hoch",
|
"high": "Hoch",
|
||||||
"disaster": "Katastrophe"
|
"disaster": "Katastrophe"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Fahrzeug",
|
||||||
|
"vehicles": "Fahrzeuge",
|
||||||
|
"serviceRecords": "Wartungseinträge",
|
||||||
|
"reminders": "Erinnerungen",
|
||||||
|
"nextReminder": "Nächste Erinnerung",
|
||||||
|
"none": "Keine"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Τομείς",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Αποθηκευτικός χώρος"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -325,15 +325,15 @@
|
|||||||
},
|
},
|
||||||
"technitium": {
|
"technitium": {
|
||||||
"totalQueries": "Consultas",
|
"totalQueries": "Consultas",
|
||||||
"totalNoError": "Success",
|
"totalNoError": "Éxitos",
|
||||||
"totalServerFailure": "Failures",
|
"totalServerFailure": "Fallas",
|
||||||
"totalNxDomain": "NX Domains",
|
"totalNxDomain": "Dominios NX",
|
||||||
"totalRefused": "Refused",
|
"totalRefused": "Rechazados",
|
||||||
"totalAuthoritative": "Authoritative",
|
"totalAuthoritative": "Autoritarios",
|
||||||
"totalRecursive": "Recursive",
|
"totalRecursive": "Recursivos",
|
||||||
"totalCached": "Cached",
|
"totalCached": "En caché",
|
||||||
"totalBlocked": "Bloqueado",
|
"totalBlocked": "Bloqueado",
|
||||||
"totalDropped": "Dropped",
|
"totalDropped": "Descartados",
|
||||||
"totalClients": "Clientes"
|
"totalClients": "Clientes"
|
||||||
},
|
},
|
||||||
"tdarr": {
|
"tdarr": {
|
||||||
@@ -844,11 +844,17 @@
|
|||||||
},
|
},
|
||||||
"romm": {
|
"romm": {
|
||||||
"platforms": "Plataformas",
|
"platforms": "Plataformas",
|
||||||
"totalRoms": "Games",
|
"totalRoms": "Juegos",
|
||||||
"saves": "Saves",
|
"saves": "Guardados",
|
||||||
"states": "States",
|
"states": "Estados",
|
||||||
"screenshots": "Screenshots",
|
"screenshots": "Capturas de pantalla",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Tamaño total"
|
||||||
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Dominios",
|
||||||
|
"mailboxes": "Buzones de correo",
|
||||||
|
"mails": "Correos",
|
||||||
|
"storage": "Almacenamiento"
|
||||||
},
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Advertencias",
|
"warnings": "Advertencias",
|
||||||
@@ -933,11 +939,19 @@
|
|||||||
"tags": "Etiquetas"
|
"tags": "Etiquetas"
|
||||||
},
|
},
|
||||||
"zabbix": {
|
"zabbix": {
|
||||||
"unclassified": "Not classified",
|
"unclassified": "No clasificado",
|
||||||
"information": "Información",
|
"information": "Información",
|
||||||
"warning": "Warning",
|
"warning": "Advertencia",
|
||||||
"average": "Average",
|
"average": "Promedio",
|
||||||
"high": "High",
|
"high": "Alto",
|
||||||
"disaster": "Disaster"
|
"disaster": "Desastre"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehículo",
|
||||||
|
"vehicles": "Vehículos",
|
||||||
|
"serviceRecords": "Registros de servicio",
|
||||||
|
"reminders": "Recordatorios",
|
||||||
|
"nextReminder": "Siguiente recordatorio",
|
||||||
|
"none": "Nada"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Verkkotunnuksia",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domaines",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Stockage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Avertissements",
|
"warnings": "Avertissements",
|
||||||
"criticals": "Urgent"
|
"criticals": "Urgent"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domene",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Spremište"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Upozorenja",
|
"warnings": "Upozorenja",
|
||||||
"criticals": "Kritično"
|
"criticals": "Kritično"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domainek",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Tárhely"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Figyelmeztetések",
|
"warnings": "Figyelmeztetések",
|
||||||
"criticals": "Kritikusok"
|
"criticals": "Kritikusok"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Jármű",
|
||||||
|
"vehicles": "Járművek",
|
||||||
|
"serviceRecords": "Szolgáltatások nyílvántartása",
|
||||||
|
"reminders": "Emlékeztetők",
|
||||||
|
"nextReminder": "Következő emlékeztető",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Jumlah Domain",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Penyimpanan"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Peringatan",
|
"warnings": "Peringatan",
|
||||||
"criticals": "Kritis"
|
"criticals": "Kritis"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domini",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Archiviazione"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Avvisi",
|
"warnings": "Avvisi",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "スクリーンショット",
|
"screenshots": "スクリーンショット",
|
||||||
"totalfilesize": "合計サイズ"
|
"totalfilesize": "合計サイズ"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "ドメイン",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "ストレージ"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "警告",
|
"warnings": "警告",
|
||||||
"criticals": "重大"
|
"criticals": "重大"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "平均",
|
"average": "平均",
|
||||||
"high": "高い",
|
"high": "高い",
|
||||||
"disaster": "災害"
|
"disaster": "災害"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,7 +130,7 @@
|
|||||||
},
|
},
|
||||||
"freshrss": {
|
"freshrss": {
|
||||||
"subscriptions": "구독",
|
"subscriptions": "구독",
|
||||||
"unread": "읽지 않음"
|
"unread": "미열람"
|
||||||
},
|
},
|
||||||
"fritzbox": {
|
"fritzbox": {
|
||||||
"connectionStatus": "상태",
|
"connectionStatus": "상태",
|
||||||
@@ -376,7 +376,7 @@
|
|||||||
"numberOfFailQueries": "Fail Queries"
|
"numberOfFailQueries": "Fail Queries"
|
||||||
},
|
},
|
||||||
"jackett": {
|
"jackett": {
|
||||||
"configured": "Configured",
|
"configured": "구성됨",
|
||||||
"errored": "오류"
|
"errored": "오류"
|
||||||
},
|
},
|
||||||
"strelaysrv": {
|
"strelaysrv": {
|
||||||
@@ -404,12 +404,12 @@
|
|||||||
},
|
},
|
||||||
"miniflux": {
|
"miniflux": {
|
||||||
"read": "읽음",
|
"read": "읽음",
|
||||||
"unread": "읽지 않음"
|
"unread": "미열람"
|
||||||
},
|
},
|
||||||
"authentik": {
|
"authentik": {
|
||||||
"users": "사용자",
|
"users": "사용자",
|
||||||
"loginsLast24H": "Logins (24h)",
|
"loginsLast24H": "로그인 (24h)",
|
||||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
"failedLoginsLast24H": "실패한 로그인 (24h)"
|
||||||
},
|
},
|
||||||
"proxmox": {
|
"proxmox": {
|
||||||
"mem": "MEM",
|
"mem": "MEM",
|
||||||
@@ -538,9 +538,9 @@
|
|||||||
},
|
},
|
||||||
"tubearchivist": {
|
"tubearchivist": {
|
||||||
"downloads": "대기열",
|
"downloads": "대기열",
|
||||||
"videos": "Videos",
|
"videos": "동영상",
|
||||||
"channels": "Channels",
|
"channels": "채널",
|
||||||
"playlists": "Playlists"
|
"playlists": "재생 목록"
|
||||||
},
|
},
|
||||||
"truenas": {
|
"truenas": {
|
||||||
"load": "System Load",
|
"load": "System Load",
|
||||||
@@ -559,7 +559,7 @@
|
|||||||
"country": "Country"
|
"country": "Country"
|
||||||
},
|
},
|
||||||
"hdhomerun": {
|
"hdhomerun": {
|
||||||
"channels": "Channels",
|
"channels": "채널",
|
||||||
"hd": "HD",
|
"hd": "HD",
|
||||||
"tunerCount": "Tuners",
|
"tunerCount": "Tuners",
|
||||||
"channelNumber": "채널",
|
"channelNumber": "채널",
|
||||||
@@ -648,9 +648,9 @@
|
|||||||
},
|
},
|
||||||
"immich": {
|
"immich": {
|
||||||
"users": "사용자",
|
"users": "사용자",
|
||||||
"photos": "Photos",
|
"photos": "사진",
|
||||||
"videos": "Videos",
|
"videos": "동영상",
|
||||||
"storage": "Storage"
|
"storage": "저장됨"
|
||||||
},
|
},
|
||||||
"uptimekuma": {
|
"uptimekuma": {
|
||||||
"up": "Sites Up",
|
"up": "Sites Up",
|
||||||
@@ -663,10 +663,10 @@
|
|||||||
"series": "시리즈",
|
"series": "시리즈",
|
||||||
"archives": "Archives",
|
"archives": "Archives",
|
||||||
"chapters": "Chapters",
|
"chapters": "Chapters",
|
||||||
"categories": "Categories"
|
"categories": "분류"
|
||||||
},
|
},
|
||||||
"komga": {
|
"komga": {
|
||||||
"libraries": "Libraries",
|
"libraries": "서재",
|
||||||
"series": "시리즈",
|
"series": "시리즈",
|
||||||
"books": "책"
|
"books": "책"
|
||||||
},
|
},
|
||||||
@@ -682,8 +682,8 @@
|
|||||||
},
|
},
|
||||||
"photoprism": {
|
"photoprism": {
|
||||||
"albums": "Albums",
|
"albums": "Albums",
|
||||||
"photos": "Photos",
|
"photos": "사진",
|
||||||
"videos": "Videos",
|
"videos": "동영상",
|
||||||
"people": "People"
|
"people": "People"
|
||||||
},
|
},
|
||||||
"fileflows": {
|
"fileflows": {
|
||||||
@@ -699,12 +699,12 @@
|
|||||||
"alertstriggered": "Alerts Triggered"
|
"alertstriggered": "Alerts Triggered"
|
||||||
},
|
},
|
||||||
"nextcloud": {
|
"nextcloud": {
|
||||||
"cpuload": "Cpu Load",
|
"cpuload": "CPU 부하량",
|
||||||
"memoryusage": "Memory Usage",
|
"memoryusage": "메모리 사용량",
|
||||||
"freespace": "Free Space",
|
"freespace": "여유 공간",
|
||||||
"activeusers": "Active Users",
|
"activeusers": "활성 유저",
|
||||||
"numfiles": "Files",
|
"numfiles": "파일",
|
||||||
"numshares": "Shared Items"
|
"numshares": "공유된 항목"
|
||||||
},
|
},
|
||||||
"kopia": {
|
"kopia": {
|
||||||
"status": "상태",
|
"status": "상태",
|
||||||
@@ -754,8 +754,8 @@
|
|||||||
},
|
},
|
||||||
"calibreweb": {
|
"calibreweb": {
|
||||||
"books": "책",
|
"books": "책",
|
||||||
"authors": "Authors",
|
"authors": "저자",
|
||||||
"categories": "Categories",
|
"categories": "분류",
|
||||||
"series": "시리즈"
|
"series": "시리즈"
|
||||||
},
|
},
|
||||||
"jdownloader": {
|
"jdownloader": {
|
||||||
@@ -766,7 +766,7 @@
|
|||||||
},
|
},
|
||||||
"kavita": {
|
"kavita": {
|
||||||
"seriesCount": "시리즈",
|
"seriesCount": "시리즈",
|
||||||
"totalFiles": "Files"
|
"totalFiles": "파일"
|
||||||
},
|
},
|
||||||
"azuredevops": {
|
"azuredevops": {
|
||||||
"result": "Result",
|
"result": "Result",
|
||||||
@@ -802,7 +802,7 @@
|
|||||||
"mealie": {
|
"mealie": {
|
||||||
"recipes": "Recipes",
|
"recipes": "Recipes",
|
||||||
"users": "사용자",
|
"users": "사용자",
|
||||||
"categories": "Categories",
|
"categories": "분류",
|
||||||
"tags": "태그"
|
"tags": "태그"
|
||||||
},
|
},
|
||||||
"openmediavault": {
|
"openmediavault": {
|
||||||
@@ -843,12 +843,18 @@
|
|||||||
"noEventsFound": "No events found"
|
"noEventsFound": "No events found"
|
||||||
},
|
},
|
||||||
"romm": {
|
"romm": {
|
||||||
"platforms": "Platforms",
|
"platforms": "기종",
|
||||||
"totalRoms": "Games",
|
"totalRoms": "게임",
|
||||||
"saves": "Saves",
|
"saves": "세이브",
|
||||||
"states": "States",
|
"states": "스테이트",
|
||||||
"screenshots": "Screenshots",
|
"screenshots": "스크린샷",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "전체 용량"
|
||||||
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "저장됨"
|
||||||
},
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
@@ -857,7 +863,7 @@
|
|||||||
"plantit": {
|
"plantit": {
|
||||||
"events": "Events",
|
"events": "Events",
|
||||||
"plants": "Plants",
|
"plants": "Plants",
|
||||||
"photos": "Photos",
|
"photos": "사진",
|
||||||
"species": "Species"
|
"species": "Species"
|
||||||
},
|
},
|
||||||
"gitea": {
|
"gitea": {
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domain",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Amaran",
|
"warnings": "Amaran",
|
||||||
"criticals": "Kritikal"
|
"criticals": "Kritikal"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots ",
|
"screenshots": "Screenshots ",
|
||||||
"totalfilesize": "Totale grootte"
|
"totalfilesize": "Totale grootte"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domeinen",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Opslag"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Waarschuwingen",
|
"warnings": "Waarschuwingen",
|
||||||
"criticals": "Kritiek"
|
"criticals": "Kritiek"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domener",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Lagring"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Advarsler",
|
"warnings": "Advarsler",
|
||||||
"criticals": "Kritiske"
|
"criticals": "Kritiske"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -463,8 +463,8 @@
|
|||||||
"51-night": "Lekka mżawka",
|
"51-night": "Lekka mżawka",
|
||||||
"53-day": "Mżawka",
|
"53-day": "Mżawka",
|
||||||
"53-night": "Mżawka",
|
"53-night": "Mżawka",
|
||||||
"55-day": "Ciężka mżawka",
|
"55-day": "Gęsta mżawka",
|
||||||
"55-night": "Ciężka mżawka",
|
"55-night": "Gęsta mżawka",
|
||||||
"56-day": "Lekko chłodna mżawka",
|
"56-day": "Lekko chłodna mżawka",
|
||||||
"56-night": "Lekko chłodna mżawka",
|
"56-night": "Lekko chłodna mżawka",
|
||||||
"57-day": "Chłodna mżawka",
|
"57-day": "Chłodna mżawka",
|
||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domeny",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Pamięć"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Ostrzeżenia",
|
"warnings": "Ostrzeżenia",
|
||||||
"criticals": "Krytyczny"
|
"criticals": "Krytyczny"
|
||||||
@@ -905,7 +911,7 @@
|
|||||||
"total": "Całkowite"
|
"total": "Całkowite"
|
||||||
},
|
},
|
||||||
"swagdashboard": {
|
"swagdashboard": {
|
||||||
"proxied": "Poprzez proxy",
|
"proxied": "Proxy",
|
||||||
"auth": "Z uwietrzytelnieniem",
|
"auth": "Z uwietrzytelnieniem",
|
||||||
"outdated": "Nieaktualne",
|
"outdated": "Nieaktualne",
|
||||||
"banned": "Zbanowano"
|
"banned": "Zbanowano"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domínios",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Armazenamento"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Avisos",
|
"warnings": "Avisos",
|
||||||
"criticals": "Críticos"
|
"criticals": "Críticos"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domínios",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Armazenamento"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Alertas",
|
"warnings": "Alertas",
|
||||||
"criticals": "Críticos"
|
"criticals": "Críticos"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domenii",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Домены",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Хранилище"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Предупреждения",
|
"warnings": "Предупреждения",
|
||||||
"criticals": "Критические"
|
"criticals": "Критические"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domény",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Úložisko"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Upozornenia",
|
"warnings": "Upozornenia",
|
||||||
"criticals": "Kritické"
|
"criticals": "Kritické"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Posnetki zaslona",
|
"screenshots": "Posnetki zaslona",
|
||||||
"totalfilesize": "Skupna velikost"
|
"totalfilesize": "Skupna velikost"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domene",
|
||||||
|
"mailboxes": "Nabiralniki",
|
||||||
|
"mails": "Pošta",
|
||||||
|
"storage": "Shramba"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Opozorila",
|
"warnings": "Opozorila",
|
||||||
"criticals": "Kritično"
|
"criticals": "Kritično"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Povprečno",
|
"average": "Povprečno",
|
||||||
"high": "Visoko",
|
"high": "Visoko",
|
||||||
"disaster": "Katastrofa"
|
"disaster": "Katastrofa"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vozilo",
|
||||||
|
"vehicles": "Vozila",
|
||||||
|
"serviceRecords": "Zapisi servisov",
|
||||||
|
"reminders": "Opomniki",
|
||||||
|
"nextReminder": "Naslednji opomnik",
|
||||||
|
"none": "Brez"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "డొమైన్లు",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Ekran görüntüleri",
|
"screenshots": "Ekran görüntüleri",
|
||||||
"totalfilesize": "Toplam Kapasite"
|
"totalfilesize": "Toplam Kapasite"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Etki Alanları",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Depo"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Uyarılar",
|
"warnings": "Uyarılar",
|
||||||
"criticals": "Kritik"
|
"criticals": "Kritik"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Ortalama",
|
"average": "Ortalama",
|
||||||
"high": "Yüksek",
|
"high": "Yüksek",
|
||||||
"disaster": "Felaket"
|
"disaster": "Felaket"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Домени",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Сховище"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Попередження",
|
"warnings": "Попередження",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"ping": "Ping",
|
"ping": "Ping",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"up": "Up",
|
"up": "Up",
|
||||||
"not_available": "Not Available"
|
"not_available": "Không khả dụng"
|
||||||
},
|
},
|
||||||
"siteMonitor": {
|
"siteMonitor": {
|
||||||
"http_status": "HTTP status",
|
"http_status": "HTTP status",
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
"response": "Response",
|
"response": "Response",
|
||||||
"down": "Down",
|
"down": "Down",
|
||||||
"up": "Up",
|
"up": "Up",
|
||||||
"not_available": "Not Available"
|
"not_available": "Không khả dụng"
|
||||||
},
|
},
|
||||||
"emby": {
|
"emby": {
|
||||||
"playing": "Đang chơi",
|
"playing": "Đang chơi",
|
||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "Domains",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "Storage"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "Warnings",
|
"warnings": "Warnings",
|
||||||
"criticals": "Criticals"
|
"criticals": "Criticals"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "域",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "儲存空間"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "警告",
|
"warnings": "警告",
|
||||||
"criticals": "嚴重"
|
"criticals": "嚴重"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,8 +54,8 @@
|
|||||||
"uptime": "运行时间",
|
"uptime": "运行时间",
|
||||||
"days": "天",
|
"days": "天",
|
||||||
"wan": "WAN",
|
"wan": "WAN",
|
||||||
"lan": "LAN",
|
"lan": "局域网",
|
||||||
"wlan": "WLAN",
|
"wlan": "无线局域网",
|
||||||
"devices": "设备",
|
"devices": "设备",
|
||||||
"lan_devices": "LAN 设备",
|
"lan_devices": "LAN 设备",
|
||||||
"wlan_devices": "无线局域网设备",
|
"wlan_devices": "无线局域网设备",
|
||||||
@@ -325,15 +325,15 @@
|
|||||||
},
|
},
|
||||||
"technitium": {
|
"technitium": {
|
||||||
"totalQueries": "查询",
|
"totalQueries": "查询",
|
||||||
"totalNoError": "Success",
|
"totalNoError": "成功",
|
||||||
"totalServerFailure": "Failures",
|
"totalServerFailure": "失败",
|
||||||
"totalNxDomain": "NX Domains",
|
"totalNxDomain": "NX Domains",
|
||||||
"totalRefused": "Refused",
|
"totalRefused": "已拒绝",
|
||||||
"totalAuthoritative": "Authoritative",
|
"totalAuthoritative": "权威",
|
||||||
"totalRecursive": "Recursive",
|
"totalRecursive": "递归",
|
||||||
"totalCached": "Cached",
|
"totalCached": "缓存",
|
||||||
"totalBlocked": "阻止",
|
"totalBlocked": "阻止",
|
||||||
"totalDropped": "Dropped",
|
"totalDropped": "丢弃",
|
||||||
"totalClients": "客户端"
|
"totalClients": "客户端"
|
||||||
},
|
},
|
||||||
"tdarr": {
|
"tdarr": {
|
||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "域",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "储存空间"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "警告",
|
"warnings": "警告",
|
||||||
"criticals": "严重"
|
"criticals": "严重"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -850,6 +850,12 @@
|
|||||||
"screenshots": "Screenshots",
|
"screenshots": "Screenshots",
|
||||||
"totalfilesize": "Total Size"
|
"totalfilesize": "Total Size"
|
||||||
},
|
},
|
||||||
|
"mailcow": {
|
||||||
|
"domains": "網域",
|
||||||
|
"mailboxes": "Mailboxes",
|
||||||
|
"mails": "Mails",
|
||||||
|
"storage": "儲存空間"
|
||||||
|
},
|
||||||
"netdata": {
|
"netdata": {
|
||||||
"warnings": "警告",
|
"warnings": "警告",
|
||||||
"criticals": "嚴重"
|
"criticals": "嚴重"
|
||||||
@@ -939,5 +945,13 @@
|
|||||||
"average": "Average",
|
"average": "Average",
|
||||||
"high": "High",
|
"high": "High",
|
||||||
"disaster": "Disaster"
|
"disaster": "Disaster"
|
||||||
|
},
|
||||||
|
"lubelogger": {
|
||||||
|
"vehicle": "Vehicle",
|
||||||
|
"vehicles": "Vehicles",
|
||||||
|
"serviceRecords": "Service Records",
|
||||||
|
"reminders": "Reminders",
|
||||||
|
"nextReminder": "Next Reminder",
|
||||||
|
"none": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,35 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
|||||||
// check mdi- or si- prefixed icons
|
// check mdi- or si- prefixed icons
|
||||||
const prefix = icon.split("-")[0];
|
const prefix = icon.split("-")[0];
|
||||||
|
|
||||||
|
if (prefix === "sh") {
|
||||||
|
const iconName = icon.replace("sh-", "").replace(".svg", "").replace(".png", "").replace(".webp", "");
|
||||||
|
|
||||||
|
let extension;
|
||||||
|
if (icon.endsWith(".svg")) {
|
||||||
|
extension = "svg";
|
||||||
|
} else if (icon.endsWith(".webp")) {
|
||||||
|
extension = "webp";
|
||||||
|
} else {
|
||||||
|
extension = "png";
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Image
|
||||||
|
src={`https://cdn.jsdelivr.net/gh/selfhst/icons@main/${extension}/${iconName}.${extension}`}
|
||||||
|
width={width}
|
||||||
|
height={height}
|
||||||
|
style={{
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
objectFit: "contain",
|
||||||
|
maxHeight: "100%",
|
||||||
|
maxWidth: "100%",
|
||||||
|
}}
|
||||||
|
alt={alt}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (prefix in iconSetURLs) {
|
if (prefix in iconSetURLs) {
|
||||||
// default to theme setting
|
// default to theme setting
|
||||||
let iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
|
let iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
# For configuration options and examples, please see:
|
# For configuration options and examples, please see:
|
||||||
# https://gethomepage.dev/latest/configs/bookmarks
|
# https://gethomepage.dev/configs/bookmarks
|
||||||
|
|
||||||
- Developer:
|
- Developer:
|
||||||
- Github:
|
- Github:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
# For configuration options and examples, please see:
|
# For configuration options and examples, please see:
|
||||||
# https://gethomepage.dev/latest/configs/docker/
|
# https://gethomepage.dev/configs/docker/
|
||||||
|
|
||||||
# my-docker:
|
# my-docker:
|
||||||
# host: 127.0.0.1
|
# host: 127.0.0.1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
# For configuration options and examples, please see:
|
# For configuration options and examples, please see:
|
||||||
# https://gethomepage.dev/latest/configs/services
|
# https://gethomepage.dev/configs/services
|
||||||
|
|
||||||
- My First Group:
|
- My First Group:
|
||||||
- My First Service:
|
- My First Service:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
# For configuration options and examples, please see:
|
# For configuration options and examples, please see:
|
||||||
# https://gethomepage.dev/latest/configs/settings
|
# https://gethomepage.dev/configs/settings
|
||||||
|
|
||||||
providers:
|
providers:
|
||||||
openweathermap: openweathermapapikey
|
openweathermap: openweathermapapikey
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
# For configuration options and examples, please see:
|
# For configuration options and examples, please see:
|
||||||
# https://gethomepage.dev/latest/configs/service-widgets
|
# https://gethomepage.dev/configs/service-widgets
|
||||||
|
|
||||||
- resources:
|
- resources:
|
||||||
cpu: true
|
cpu: true
|
||||||
|
|||||||
@@ -442,6 +442,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
namespace,
|
namespace,
|
||||||
podSelector,
|
podSelector,
|
||||||
|
|
||||||
|
// lubelogger
|
||||||
|
vehicleID,
|
||||||
|
|
||||||
// mjpeg
|
// mjpeg
|
||||||
fit,
|
fit,
|
||||||
stream,
|
stream,
|
||||||
@@ -627,6 +630,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
if (type === "technitium") {
|
if (type === "technitium") {
|
||||||
if (range !== undefined) cleanedService.widget.range = range;
|
if (range !== undefined) cleanedService.widget.range = range;
|
||||||
}
|
}
|
||||||
|
if (type === "lubelogger") {
|
||||||
|
if (vehicleID !== undefined) cleanedService.widget.vehicleID = vehicleID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cleanedService;
|
return cleanedService;
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ export async function sendJsonRpcRequest(url, method, params, widget) {
|
|||||||
accept: "application/json",
|
accept: "application/json",
|
||||||
};
|
};
|
||||||
|
|
||||||
if (widget.username && widget.password) {
|
if (widget?.username && widget?.password) {
|
||||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (widget.key) {
|
if (widget?.key) {
|
||||||
headers.Authorization = `Bearer ${widget.key}`;
|
headers.Authorization = `Bearer ${widget.key}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ const components = {
|
|||||||
kopia: dynamic(() => import("./kopia/component")),
|
kopia: dynamic(() => import("./kopia/component")),
|
||||||
lidarr: dynamic(() => import("./lidarr/component")),
|
lidarr: dynamic(() => import("./lidarr/component")),
|
||||||
linkwarden: dynamic(() => import("./linkwarden/component")),
|
linkwarden: dynamic(() => import("./linkwarden/component")),
|
||||||
|
lubelogger: dynamic(() => import("./lubelogger/component")),
|
||||||
|
mailcow: dynamic(() => import("./mailcow/component")),
|
||||||
mastodon: dynamic(() => import("./mastodon/component")),
|
mastodon: dynamic(() => import("./mastodon/component")),
|
||||||
mealie: dynamic(() => import("./mealie/component")),
|
mealie: dynamic(() => import("./mealie/component")),
|
||||||
medusa: dynamic(() => import("./medusa/component")),
|
medusa: dynamic(() => import("./medusa/component")),
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ import useWidgetAPI from "utils/proxy/use-widget-api";
|
|||||||
|
|
||||||
function getPerformancePercent(t, performanceRange) {
|
function getPerformancePercent(t, performanceRange) {
|
||||||
// ghostfolio v2.79.0 changed to grossPerformancePercentage
|
// ghostfolio v2.79.0 changed to grossPerformancePercentage
|
||||||
|
// ghostfolio v2.106.0 changed to netPerformancePercentageWithCurrencyEffect
|
||||||
const percent =
|
const percent =
|
||||||
|
performanceRange.performance.netPerformancePercentageWithCurrencyEffect ??
|
||||||
performanceRange.performance.grossPerformancePercentage ??
|
performanceRange.performance.grossPerformancePercentage ??
|
||||||
performanceRange.performance.currentGrossPerformancePercent;
|
performanceRange.performance.currentGrossPerformancePercent;
|
||||||
return `${percent > 0 ? "+" : ""}${t("common.percent", {
|
return `${percent > 0 ? "+" : ""}${t("common.percent", {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||||
|
|
||||||
const widget = {
|
const widget = {
|
||||||
api: "{url}/v1/{endpoint}",
|
api: "{url}/v1/{endpoint}",
|
||||||
proxyHandler: genericProxyHandler,
|
proxyHandler: credentialedProxyHandler,
|
||||||
|
|
||||||
mappings: {
|
mappings: {
|
||||||
ip: {
|
ip: {
|
||||||
|
|||||||
65
src/widgets/lubelogger/component.jsx
Normal file
65
src/widgets/lubelogger/component.jsx
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import Block from "components/services/widget/block";
|
||||||
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
export default function Component({ service }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const { widget } = service;
|
||||||
|
let { data: vehicleInfo, error } = useWidgetAPI(widget, "vehicleinfo");
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
return <Container service={service} error={error} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!vehicleInfo) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="lubelogger.vehicles" />
|
||||||
|
<Block label="lubelogger.serviceRecords" />
|
||||||
|
<Block label="lubelogger.reminders" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { vehicleID } = widget;
|
||||||
|
if (vehicleID) {
|
||||||
|
vehicleInfo = vehicleInfo.filter((v) => v.vehicleData.id === vehicleID);
|
||||||
|
}
|
||||||
|
const totalReminders = vehicleInfo.reduce(
|
||||||
|
(acc, val) => acc + val.veryUrgentReminderCount + val.urgentReminderCount + val.notUrgentReminderCount,
|
||||||
|
0,
|
||||||
|
);
|
||||||
|
const totalServiceRecords = vehicleInfo.reduce((acc, val) => acc + val.serviceRecordCount, 0);
|
||||||
|
|
||||||
|
if (vehicleID) {
|
||||||
|
if (vehicleInfo.length === 0) {
|
||||||
|
error = { message: "Vehicle not found" };
|
||||||
|
return <Container service={service} error={error} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
const nextReminder = vehicleInfo[0].nextReminder
|
||||||
|
? t("common.date", { value: vehicleInfo[0].nextReminder.dueDate })
|
||||||
|
: t("lubelogger.none");
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block
|
||||||
|
label="lubelogger.vehicle"
|
||||||
|
value={`${vehicleInfo[0].vehicleData.year} ${vehicleInfo[0].vehicleData.model}`}
|
||||||
|
/>
|
||||||
|
<Block label="lubelogger.serviceRecords" value={totalServiceRecords} />
|
||||||
|
<Block label="lubelogger.reminders" value={totalReminders} />
|
||||||
|
<Block label="lubelogger.nextReminder" value={nextReminder} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="lubelogger.vehicles" value={vehicleInfo.length} />
|
||||||
|
<Block label="lubelogger.serviceRecords" value={totalServiceRecords} />
|
||||||
|
<Block label="lubelogger.reminders" value={totalReminders} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
14
src/widgets/lubelogger/widget.js
Normal file
14
src/widgets/lubelogger/widget.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/api/{endpoint}",
|
||||||
|
proxyHandler: genericProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
vehicleinfo: {
|
||||||
|
endpoint: "vehicle/info",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
40
src/widgets/mailcow/component.jsx
Normal file
40
src/widgets/mailcow/component.jsx
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import { useTranslation } from "next-i18next";
|
||||||
|
|
||||||
|
import Container from "components/services/widget/container";
|
||||||
|
import Block from "components/services/widget/block";
|
||||||
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||||
|
|
||||||
|
export default function Component({ service }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const { widget } = service;
|
||||||
|
const { data: resultData, error: resultError } = useWidgetAPI(widget, "domains");
|
||||||
|
|
||||||
|
if (resultError || (resultData && Object.keys(resultData).length === 0)) {
|
||||||
|
return <Container service={service} error={resultError ?? { message: "No domains found" }} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!resultData) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="mailcow.mailboxes" />
|
||||||
|
<Block label="mailcow.aliases" />
|
||||||
|
<Block label="mailcow.quarantined" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const domains = resultData.length;
|
||||||
|
const mailboxes = resultData.reduce((acc, val) => acc + val.mboxes_in_domain, 0);
|
||||||
|
const mails = resultData.reduce((acc, val) => acc + val.msgs_total, 0);
|
||||||
|
const storage = resultData.reduce((acc, val) => acc + val.bytes_total, 0);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="mailcow.domains" value={t("common.number", { value: domains })} />
|
||||||
|
<Block label="mailcow.mailboxes" value={t("common.number", { value: mailboxes })} />
|
||||||
|
<Block label="mailcow.mails" value={t("common.number", { value: mails })} />
|
||||||
|
<Block label="mailcow.storage" value={t("common.bytes", { value: storage })} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
14
src/widgets/mailcow/widget.js
Normal file
14
src/widgets/mailcow/widget.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import credentialedProxyHandler from "../../utils/proxy/handlers/credentialed";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/api/v1/get/{endpoint}",
|
||||||
|
proxyHandler: credentialedProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
domains: {
|
||||||
|
endpoint: "domain/all",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
@@ -10,7 +10,7 @@ const widget = {
|
|||||||
validate: ["cpu-load", "free-memory", "total-memory", "uptime"],
|
validate: ["cpu-load", "free-memory", "total-memory", "uptime"],
|
||||||
},
|
},
|
||||||
leases: {
|
leases: {
|
||||||
endpoint: "ip/dhcp-server/lease",
|
endpoint: "ip/dhcp-server/lease?.proplist=address",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,6 +4,12 @@ const widget = {
|
|||||||
api: "{url}/jsonrpc",
|
api: "{url}/jsonrpc",
|
||||||
proxyHandler: jsonrpcProxyHandler,
|
proxyHandler: jsonrpcProxyHandler,
|
||||||
allowedEndpoints: /status/,
|
allowedEndpoints: /status/,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
status: {
|
||||||
|
endpoint: "status",
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default widget;
|
export default widget;
|
||||||
|
|||||||
@@ -32,6 +32,11 @@ export default async function photoprismProxyHandler(req, res) {
|
|||||||
username: widget.username,
|
username: widget.username,
|
||||||
password: widget.password,
|
password: widget.password,
|
||||||
});
|
});
|
||||||
|
} else if (widget.key) {
|
||||||
|
params.headers.Authorization = `Bearer ${widget.key}`;
|
||||||
|
params.body = JSON.stringify({
|
||||||
|
authToken: widget.key,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const [status, contentType, data] = await httpProxy(url, params);
|
const [status, contentType, data] = await httpProxy(url, params);
|
||||||
|
|||||||
@@ -57,23 +57,27 @@ export default async function piholeProxyHandler(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pihole v6
|
// pihole v6
|
||||||
if (!cache.get(`${sessionSIDCacheKey}.${service}`)) {
|
if (!cache.get(`${sessionSIDCacheKey}.${service}`) && widget.key) {
|
||||||
await login(widget, service);
|
await login(widget, service);
|
||||||
}
|
}
|
||||||
|
|
||||||
const sid = cache.get(`${sessionSIDCacheKey}.${service}`);
|
const sid = cache.get(`${sessionSIDCacheKey}.${service}`);
|
||||||
if (!sid) {
|
if (widget.key && !sid) {
|
||||||
return res.status(500).json({ error: "Failed to authenticate with Pi-hole" });
|
return res.status(500).json({ error: "Failed to authenticate with Pi-hole" });
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
logger.debug("Calling Pi-hole API endpoint: %s", endpoint);
|
logger.debug("Calling Pi-hole API endpoint: %s", endpoint);
|
||||||
|
const headers = {
|
||||||
[status, , data] = await httpProxy(formatApiCall(widgets[widget.type].api, { ...widget, endpoint }), {
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
"X-FTL-SID": sid,
|
};
|
||||||
},
|
if (sid) {
|
||||||
|
headers["X-FTL-SID"] = sid;
|
||||||
|
} else {
|
||||||
|
logger.debug("Pi-hole request is unauthenticated");
|
||||||
|
}
|
||||||
|
[status, , data] = await httpProxy(formatApiCall(widgets[widget.type].api, { ...widget, endpoint }), {
|
||||||
|
headers,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (status !== 200) {
|
if (status !== 200) {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export default function Component({ service }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const datastoreUsage = (datastoreData.data[0].used / datastoreData.data[0].total) * 100;
|
const datastoreUsage = datastoreData.data ? (datastoreData.data[0].used / datastoreData.data[0].total) * 100 : 0;
|
||||||
const cpuUsage = hostData.data.cpu * 100;
|
const cpuUsage = hostData.data.cpu * 100;
|
||||||
const memoryUsage = (hostData.data.memory.used / hostData.data.memory.total) * 100;
|
const memoryUsage = (hostData.data.memory.used / hostData.data.memory.total) * 100;
|
||||||
const failedTasks = tasksData.total >= 100 ? "99+" : tasksData.total;
|
const failedTasks = tasksData.total >= 100 ? "99+" : tasksData.total;
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export default function Component({ service }) {
|
|||||||
|
|
||||||
function toPercent(value, total) {
|
function toPercent(value, total) {
|
||||||
return t("common.percent", {
|
return t("common.percent", {
|
||||||
value: !Number.isNaN(value / total) ? value / total : 0,
|
value: !Number.isNaN(value / total) ? 100 * (value / total) : 0,
|
||||||
maximumFractionDigits: 2,
|
maximumFractionDigits: 2,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -64,55 +64,64 @@ export default function Component({ service }) {
|
|||||||
<Block
|
<Block
|
||||||
label="technitium.totalNoError"
|
label="technitium.totalNoError"
|
||||||
value={`${t("common.number", { value: statsData.totalNoError })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalNoError })} (${toPercent(
|
||||||
statsData.totalNoError / statsData.totalQueries,
|
statsData.totalNoError,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalServerFailure"
|
label="technitium.totalServerFailure"
|
||||||
value={`${t("common.number", { value: statsData.totalServerFailure })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalServerFailure })} (${toPercent(
|
||||||
statsData.totalServerFailure / statsData.totalQueries,
|
statsData.totalServerFailure,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalNxDomain"
|
label="technitium.totalNxDomain"
|
||||||
value={`${t("common.number", { value: statsData.totalNxDomain })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalNxDomain })} (${toPercent(
|
||||||
statsData.totalNxDomain / statsData.totalQueries,
|
statsData.totalNxDomain,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalRefused"
|
label="technitium.totalRefused"
|
||||||
value={`${t("common.number", { value: statsData.totalRefused })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalRefused })} (${toPercent(
|
||||||
statsData.totalRefused / statsData.totalQueries,
|
statsData.totalRefused,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalAuthoritative"
|
label="technitium.totalAuthoritative"
|
||||||
value={`${t("common.number", { value: statsData.totalAuthoritative })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalAuthoritative })} (${toPercent(
|
||||||
statsData.totalAuthoritative / statsData.totalQueries,
|
statsData.totalAuthoritative,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalRecursive"
|
label="technitium.totalRecursive"
|
||||||
value={`${t("common.number", { value: statsData.totalRecursive })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalRecursive })} (${toPercent(
|
||||||
statsData.totalRecursive / statsData.totalQueries,
|
statsData.totalRecursive,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalCached"
|
label="technitium.totalCached"
|
||||||
value={`${t("common.number", { value: statsData.totalCached })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalCached })} (${toPercent(
|
||||||
statsData.totalCached / statsData.totalQueries,
|
statsData.totalCached,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalBlocked"
|
label="technitium.totalBlocked"
|
||||||
value={`${t("common.number", { value: statsData.totalBlocked })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalBlocked })} (${toPercent(
|
||||||
statsData.totalBlocked / statsData.totalQueries,
|
statsData.totalBlocked,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="technitium.totalDropped"
|
label="technitium.totalDropped"
|
||||||
value={`${t("common.number", { value: statsData.totalDropped })} (${toPercent(
|
value={`${t("common.number", { value: statsData.totalDropped })} (${toPercent(
|
||||||
statsData.totalDropped / statsData.totalQueries,
|
statsData.totalDropped,
|
||||||
|
statsData.totalQueries,
|
||||||
)})`}
|
)})`}
|
||||||
/>
|
/>
|
||||||
<Block label="technitium.totalClients" value={`${t("common.number", { value: statsData.totalClients })}`} />
|
<Block label="technitium.totalClients" value={`${t("common.number", { value: statsData.totalClients })}`} />
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const widget = {
|
|||||||
endpoint: "dashboard/stats/get",
|
endpoint: "dashboard/stats/get",
|
||||||
validate: ["response", "status"],
|
validate: ["response", "status"],
|
||||||
params: ["type"],
|
params: ["type"],
|
||||||
map: (data) => asJson(data).response.stats,
|
map: (data) => asJson(data).response?.stats,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ import komga from "./komga/widget";
|
|||||||
import kopia from "./kopia/widget";
|
import kopia from "./kopia/widget";
|
||||||
import lidarr from "./lidarr/widget";
|
import lidarr from "./lidarr/widget";
|
||||||
import linkwarden from "./linkwarden/widget";
|
import linkwarden from "./linkwarden/widget";
|
||||||
|
import lubelogger from "./lubelogger/widget";
|
||||||
|
import mailcow from "./mailcow/widget";
|
||||||
import mastodon from "./mastodon/widget";
|
import mastodon from "./mastodon/widget";
|
||||||
import mealie from "./mealie/widget";
|
import mealie from "./mealie/widget";
|
||||||
import medusa from "./medusa/widget";
|
import medusa from "./medusa/widget";
|
||||||
@@ -173,6 +175,8 @@ const widgets = {
|
|||||||
kopia,
|
kopia,
|
||||||
lidarr,
|
lidarr,
|
||||||
linkwarden,
|
linkwarden,
|
||||||
|
lubelogger,
|
||||||
|
mailcow,
|
||||||
mastodon,
|
mastodon,
|
||||||
mealie,
|
mealie,
|
||||||
medusa,
|
medusa,
|
||||||
|
|||||||
Reference in New Issue
Block a user