mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Compare commits
67 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
794ec127cd | ||
|
|
912ae0adfc | ||
|
|
7c3dcf20ef | ||
|
|
c12a5c01f6 | ||
|
|
6fd2b6b6dc | ||
|
|
bf0a766302 | ||
|
|
be4da9d010 | ||
|
|
b7ca6244dd | ||
|
|
e6cf86ed4a | ||
|
|
3736c1fcab | ||
|
|
3af86ffebb | ||
|
|
0aea6a6c3f | ||
|
|
261c907f52 | ||
|
|
2a6debbc79 | ||
|
|
e9a31bafab | ||
|
|
bf2efce74d | ||
|
|
7cbba1ff90 | ||
|
|
c347677402 | ||
|
|
fd75f22e16 | ||
|
|
aac573a48d | ||
|
|
2245cdda55 | ||
|
|
cf9109384e | ||
|
|
db1fb4b899 | ||
|
|
20048ff567 | ||
|
|
e6c7692677 | ||
|
|
19bdc0ec34 | ||
|
|
cd8c224ffa | ||
|
|
b1ca6b8e1a | ||
|
|
3fd8247a40 | ||
|
|
798ca3dea9 | ||
|
|
5c5b6f17d9 | ||
|
|
8e6c7ec152 | ||
|
|
2cc38b9a4f | ||
|
|
50aa416612 | ||
|
|
96bd6eedc2 | ||
|
|
d12b0d5a53 | ||
|
|
e2d6794d12 | ||
|
|
50ccb0b14d | ||
|
|
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 |
6
.github/DISCUSSION_TEMPLATE/support.yml
vendored
6
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@@ -4,8 +4,8 @@ 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) (including closed ones!).
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
attributes:
|
attributes:
|
||||||
@@ -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 }}
|
||||||
|
|||||||
20
.github/workflows/reaction-comments.yml
vendored
Normal file
20
.github/workflows/reaction-comments.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
name: 'Reaction Comments'
|
||||||
|
|
||||||
|
on:
|
||||||
|
issue_comment:
|
||||||
|
types: [created, edited]
|
||||||
|
pull_request_review_comment:
|
||||||
|
types: [created, edited]
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
action:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: dessant/reaction-comments@v4
|
||||||
@@ -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">
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ icon: simple/docker
|
|||||||
You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm.
|
You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
!!! danger
|
!!! warning
|
||||||
|
|
||||||
Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN.
|
Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN.
|
||||||
|
|
||||||
|
|||||||
@@ -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.:
|
||||||
|
|
||||||
|
|||||||
@@ -48,15 +48,14 @@ self-hosted / open-source alternative, we ask that any widgets, etc. are develop
|
|||||||
|
|
||||||
## New Feature Guidelines
|
## New Feature Guidelines
|
||||||
|
|
||||||
- New features should be linked to an existing feature request with at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
|
- New features should usually be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
|
||||||
- If you have ideas for a larger feature, please open a discussion first.
|
- If you have ideas for a larger feature you may want to open a discussion first.
|
||||||
- Please note that though it is a requirement, a discussion with 10 'up-votes' in no way guarantees that a PR will be merged.
|
|
||||||
|
|
||||||
## Service Widget Guidelines
|
## Service Widget Guidelines
|
||||||
|
|
||||||
To ensure cohesiveness of various widgets, the following should be used as a guide for developing new widgets:
|
To ensure cohesiveness of various widgets, the following should be used as a guide for developing new widgets:
|
||||||
|
|
||||||
- Please only submit widgets that have been requested and have at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users.
|
- Please only submit widgets that target a feature request discussion with at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users.
|
||||||
- Note that we reserve the right to decline widgets for projects that are very young (eg < ~1y) or those with a small reach (eg low GitHub stars). Again, this is in an effort to keep overall widget maintenance under control.
|
- Note that we reserve the right to decline widgets for projects that are very young (eg < ~1y) or those with a small reach (eg low GitHub stars). Again, this is in an effort to keep overall widget maintenance under control.
|
||||||
- Widgets should be only one row of blocks
|
- Widgets should be only one row of blocks
|
||||||
- Widgets should be no more than 4 blocks wide and generally conform to the styling / design choices of other widgets
|
- Widgets should be no more than 4 blocks wide and generally conform to the styling / design choices of other widgets
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ Homepage provides a set of common translations that you can use in your widgets.
|
|||||||
| `common.ms` | `1,000 ms` | Format a number in milliseconds. |
|
| `common.ms` | `1,000 ms` | Format a number in milliseconds. |
|
||||||
| `common.date` | `2024-01-01` | Format a date. |
|
| `common.date` | `2024-01-01` | Format a date. |
|
||||||
| `common.relativeDate` | `1 day ago` | Format a relative date. |
|
| `common.relativeDate` | `1 day ago` | Format a relative date. |
|
||||||
| `common.uptime` | `1 day, 1 hour` | Format an uptime. |
|
| `common.duration` | `1 day, 1 hour` | Format an duration. |
|
||||||
|
|
||||||
### Text
|
### Text
|
||||||
|
|
||||||
|
|||||||
20
docs/widgets/services/beszel.md
Normal file
20
docs/widgets/services/beszel.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
title: Beszel
|
||||||
|
description: Beszel Widget Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn more about [Beszel]()
|
||||||
|
|
||||||
|
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
|
||||||
|
|
||||||
|
Allowed fields for 'overview' mode: `["systems", "up"]`
|
||||||
|
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
widget:
|
||||||
|
type: beszel
|
||||||
|
url: http://beszel.host.or.ip
|
||||||
|
username: username # email
|
||||||
|
password: password
|
||||||
|
systemId: systemId # optional
|
||||||
|
```
|
||||||
@@ -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`
|
||||||
```
|
```
|
||||||
|
|||||||
19
docs/widgets/services/headscale.md
Normal file
19
docs/widgets/services/headscale.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
title: Headscale
|
||||||
|
description: Headscale Widget Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn more about [Headscale](https://headscale.net/).
|
||||||
|
|
||||||
|
You will need to generate an API access token from the [command line](https://headscale.net/ref/remote-cli/#create-an-api-key) using `headscale apikeys create` command.
|
||||||
|
|
||||||
|
To find your node ID, you can use `headscale nodes list` command.
|
||||||
|
|
||||||
|
Allowed fields: `["name", "address", "last_seen", "status"]`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
widget:
|
||||||
|
type: headscale
|
||||||
|
nodeId: nodeid
|
||||||
|
key: headscaleapiaccesstoken
|
||||||
|
```
|
||||||
@@ -5,6 +5,11 @@ description: Immich Widget Configuration
|
|||||||
|
|
||||||
Learn more about [Immich](https://github.com/immich-app/immich).
|
Learn more about [Immich](https://github.com/immich-app/immich).
|
||||||
|
|
||||||
|
| Immich Version | Homepage Widget Version |
|
||||||
|
| -------------- | ----------------------- |
|
||||||
|
| < v1.118 | 1 (default) |
|
||||||
|
| >= v1.118 | 2 |
|
||||||
|
|
||||||
Find your API key under `Account Settings > API Keys`.
|
Find your API key under `Account Settings > API Keys`.
|
||||||
|
|
||||||
Allowed fields: `["users" ,"photos", "videos", "storage"]`.
|
Allowed fields: `["users" ,"photos", "videos", "storage"]`.
|
||||||
@@ -16,4 +21,5 @@ widget:
|
|||||||
type: immich
|
type: immich
|
||||||
url: http://immich.host.or.ip
|
url: http://immich.host.or.ip
|
||||||
key: adminapikeyadminapikeyadminapikey
|
key: adminapikeyadminapikeyadminapikey
|
||||||
|
version: 2 # optional, default is 1
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
|||||||
- [Autobrr](autobrr.md)
|
- [Autobrr](autobrr.md)
|
||||||
- [Azure DevOps](azuredevops.md)
|
- [Azure DevOps](azuredevops.md)
|
||||||
- [Bazarr](bazarr.md)
|
- [Bazarr](bazarr.md)
|
||||||
|
- [Beszel](beszel.md)
|
||||||
- [Caddy](caddy.md)
|
- [Caddy](caddy.md)
|
||||||
- [Calendar](calendar.md)
|
- [Calendar](calendar.md)
|
||||||
- [Calibre-Web](calibre-web.md)
|
- [Calibre-Web](calibre-web.md)
|
||||||
@@ -44,6 +45,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
|||||||
- [Gotify](gotify.md)
|
- [Gotify](gotify.md)
|
||||||
- [Grafana](grafana.md)
|
- [Grafana](grafana.md)
|
||||||
- [HDHomeRun](hdhomerun.md)
|
- [HDHomeRun](hdhomerun.md)
|
||||||
|
- [Headscale](headscale.md)
|
||||||
- [Healthchecks](healthchecks.md)
|
- [Healthchecks](healthchecks.md)
|
||||||
- [Home Assistant](homeassistant.md)
|
- [Home Assistant](homeassistant.md)
|
||||||
- [HomeBox](homebox.md)
|
- [HomeBox](homebox.md)
|
||||||
@@ -59,7 +61,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)
|
||||||
@@ -126,6 +130,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
|||||||
- [Uptime Kuma](uptime-kuma.md)
|
- [Uptime Kuma](uptime-kuma.md)
|
||||||
- [UptimeRobot](uptimerobot.md)
|
- [UptimeRobot](uptimerobot.md)
|
||||||
- [UrBackup](urbackup.md)
|
- [UrBackup](urbackup.md)
|
||||||
|
- [Vikunja](vikunja.md)
|
||||||
- [Watchtower](watchtower.md)
|
- [Watchtower](watchtower.md)
|
||||||
- [WGEasy](wgeasy.md)
|
- [WGEasy](wgeasy.md)
|
||||||
- [WhatsUpDocker](whatsupdocker.md)
|
- [WhatsUpDocker](whatsupdocker.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
|
||||||
|
```
|
||||||
@@ -9,8 +9,11 @@ _Note that the project was renamed from PiAlert to NetAlertX._
|
|||||||
|
|
||||||
Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`.
|
Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`.
|
||||||
|
|
||||||
|
If you have enabled a password on your NetAlertX instance, you will need to provide the `SYNC_api_token` as the `key` in your config.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
widget:
|
widget:
|
||||||
type: netalertx
|
type: netalertx
|
||||||
url: http://ip:port
|
url: http://ip:port
|
||||||
|
key: netalertxsyncapitoken # optional, only if password is enabled
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -16,7 +14,5 @@ widget:
|
|||||||
type: pihole
|
type: pihole
|
||||||
url: http://pi.hole.or.ip
|
url: http://pi.hole.or.ip
|
||||||
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, in v6 can be your password or app password
|
||||||
```
|
```
|
||||||
|
|
||||||
_Added in v0.1.0, updated in v0.8.9_
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Learn more about [Unifi Controller](https://ui.com/).
|
|||||||
|
|
||||||
_(Find the Unifi Controller information widget [here](../info/unifi_controller.md))_
|
_(Find the Unifi Controller information widget [here](../info/unifi_controller.md))_
|
||||||
|
|
||||||
You can display general connectivity status from your Unifi (Network) Controller. When authenticating you will want to use an account that has at least read privileges.
|
You can display general connectivity status from your Unifi (Network) Controller. When authenticating you will want to use a local account that has at least read privileges.
|
||||||
|
|
||||||
An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller.
|
An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller.
|
||||||
|
|
||||||
|
|||||||
18
docs/widgets/services/vikunja.md
Normal file
18
docs/widgets/services/vikunja.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: Vikunja
|
||||||
|
description: Vikunja Widget Configuration
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn more about [Vikunja](https://vikunja.io).
|
||||||
|
|
||||||
|
Allowed fields: `["projects", "tasks7d", "tasksOverdue", "tasksInProgress"]`.
|
||||||
|
|
||||||
|
A list of the next 5 tasks ordered by due date is disabled by default, but can be enabled with the `enableTaskList` option.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
widget:
|
||||||
|
type: vikunja
|
||||||
|
url: http[s]://vikunja.host.or.ip[:port]
|
||||||
|
key: vikunjaapikey
|
||||||
|
enableTaskList: true # optional, defaults to false
|
||||||
|
```
|
||||||
@@ -37,6 +37,7 @@ nav:
|
|||||||
- widgets/services/autobrr.md
|
- widgets/services/autobrr.md
|
||||||
- widgets/services/azuredevops.md
|
- widgets/services/azuredevops.md
|
||||||
- widgets/services/bazarr.md
|
- widgets/services/bazarr.md
|
||||||
|
- widgets/services/beszel.md
|
||||||
- widgets/services/caddy.md
|
- widgets/services/caddy.md
|
||||||
- widgets/services/calendar.md
|
- widgets/services/calendar.md
|
||||||
- widgets/services/calibre-web.md
|
- widgets/services/calibre-web.md
|
||||||
@@ -47,6 +48,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
|
||||||
@@ -66,6 +68,7 @@ nav:
|
|||||||
- widgets/services/gotify.md
|
- widgets/services/gotify.md
|
||||||
- widgets/services/grafana.md
|
- widgets/services/grafana.md
|
||||||
- widgets/services/hdhomerun.md
|
- widgets/services/hdhomerun.md
|
||||||
|
- widgets/services/headscale.md
|
||||||
- widgets/services/healthchecks.md
|
- widgets/services/healthchecks.md
|
||||||
- widgets/services/homeassistant.md
|
- widgets/services/homeassistant.md
|
||||||
- widgets/services/homebox.md
|
- widgets/services/homebox.md
|
||||||
@@ -81,7 +84,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
|
||||||
@@ -148,6 +153,7 @@ nav:
|
|||||||
- widgets/services/uptime-kuma.md
|
- widgets/services/uptime-kuma.md
|
||||||
- widgets/services/uptimerobot.md
|
- widgets/services/uptimerobot.md
|
||||||
- widgets/services/urbackup.md
|
- widgets/services/urbackup.md
|
||||||
|
- widgets/services/vikunja.md
|
||||||
- widgets/services/watchtower.md
|
- widgets/services/watchtower.md
|
||||||
- widgets/services/wgeasy.md
|
- widgets/services/wgeasy.md
|
||||||
- widgets/services/whatsupdocker.md
|
- widgets/services/whatsupdocker.md
|
||||||
@@ -231,8 +237,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
|
||||||
|
|||||||
@@ -84,12 +84,12 @@ function prettyBytes(number, options) {
|
|||||||
return `${prefix + numberString} ${unit}`;
|
return `${prefix + numberString} ${unit}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function uptime(uptimeInSeconds, i18next) {
|
function duration(durationInSeconds, i18next) {
|
||||||
const mo = Math.floor(uptimeInSeconds / (3600 * 24 * 31));
|
const mo = Math.floor(durationInSeconds / (3600 * 24 * 31));
|
||||||
const d = Math.floor((uptimeInSeconds % (3600 * 24 * 31)) / (3600 * 24));
|
const d = Math.floor((durationInSeconds % (3600 * 24 * 31)) / (3600 * 24));
|
||||||
const h = Math.floor((uptimeInSeconds % (3600 * 24)) / 3600);
|
const h = Math.floor((durationInSeconds % (3600 * 24)) / 3600);
|
||||||
const m = Math.floor((uptimeInSeconds % 3600) / 60);
|
const m = Math.floor((durationInSeconds % 3600) / 60);
|
||||||
const s = Math.floor(uptimeInSeconds % 60);
|
const s = Math.floor(durationInSeconds % 60);
|
||||||
|
|
||||||
const moDisplay = mo > 0 ? mo + i18next.t("common.months") : "";
|
const moDisplay = mo > 0 ? mo + i18next.t("common.months") : "";
|
||||||
const dDisplay = d > 0 ? d + i18next.t("common.days") : "";
|
const dDisplay = d > 0 ? d + i18next.t("common.days") : "";
|
||||||
@@ -156,7 +156,7 @@ module.exports = {
|
|||||||
i18next.services.formatter.add("relativeDate", (value, lng, options) =>
|
i18next.services.formatter.add("relativeDate", (value, lng, options) =>
|
||||||
relativeDate(new Date(value), new Intl.RelativeTimeFormat(lng, { ...options })),
|
relativeDate(new Date(value), new Intl.RelativeTimeFormat(lng, { ...options })),
|
||||||
);
|
);
|
||||||
i18next.services.formatter.add("uptime", (value, lng) => uptime(value, i18next));
|
i18next.services.formatter.add("duration", (value, lng) => duration(value, i18next));
|
||||||
},
|
},
|
||||||
type: "3rdParty",
|
type: "3rdParty",
|
||||||
},
|
},
|
||||||
|
|||||||
118
package-lock.json
generated
118
package-lock.json
generated
@@ -14,7 +14,7 @@
|
|||||||
"classnames": "^2.5.1",
|
"classnames": "^2.5.1",
|
||||||
"compare-versions": "^6.1.0",
|
"compare-versions": "^6.1.0",
|
||||||
"dockerode": "^4.0.2",
|
"dockerode": "^4.0.2",
|
||||||
"follow-redirects": "^1.15.6",
|
"follow-redirects": "^1.15.9",
|
||||||
"gamedig": "^5.1.2",
|
"gamedig": "^5.1.2",
|
||||||
"i18next": "^21.10.0",
|
"i18next": "^21.10.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
@@ -36,27 +36,27 @@
|
|||||||
"swr": "^1.3.0",
|
"swr": "^1.3.0",
|
||||||
"systeminformation": "^5.23.2",
|
"systeminformation": "^5.23.2",
|
||||||
"tough-cookie": "^4.1.3",
|
"tough-cookie": "^4.1.3",
|
||||||
"urbackup-server-api": "^0.52.0",
|
"urbackup-server-api": "^0.52.1",
|
||||||
"winston": "^3.11.0",
|
"winston": "^3.11.0",
|
||||||
"xml-js": "^1.6.11"
|
"xml-js": "^1.6.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/forms": "^0.5.8",
|
"@tailwindcss/forms": "^0.5.8",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.1",
|
||||||
"eslint-config-airbnb": "^19.0.4",
|
"eslint-config-airbnb": "^19.0.4",
|
||||||
"eslint-config-next": "^14.2.3",
|
"eslint-config-next": "^14.2.3",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-import": "^2.29.1",
|
"eslint-plugin-import": "^2.31.0",
|
||||||
"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.37.1",
|
||||||
"eslint-plugin-react-hooks": "^4.6.2",
|
"eslint-plugin-react-hooks": "^4.6.2",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.47",
|
||||||
"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.14",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.6.3"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"osx-temperature-sensor": "^1.0.8"
|
"osx-temperature-sensor": "^1.0.8"
|
||||||
@@ -164,11 +164,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/js": {
|
"node_modules/@eslint/js": {
|
||||||
"version": "8.57.0",
|
"version": "8.57.1",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
|
||||||
"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
|
"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
}
|
}
|
||||||
@@ -191,14 +190,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@humanwhocodes/config-array": {
|
"node_modules/@humanwhocodes/config-array": {
|
||||||
"version": "0.11.14",
|
"version": "0.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
|
||||||
"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
|
"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
|
||||||
"deprecated": "Use @eslint/config-array instead",
|
"deprecated": "Use @eslint/config-array instead",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@humanwhocodes/object-schema": "^2.0.2",
|
"@humanwhocodes/object-schema": "^2.0.3",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"minimatch": "^3.0.5"
|
"minimatch": "^3.0.5"
|
||||||
},
|
},
|
||||||
@@ -225,8 +223,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
|
||||||
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
|
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
|
||||||
"deprecated": "Use @eslint/object-schema instead",
|
"deprecated": "Use @eslint/object-schema instead",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"license": "BSD-3-Clause"
|
|
||||||
},
|
},
|
||||||
"node_modules/@isaacs/cliui": {
|
"node_modules/@isaacs/cliui": {
|
||||||
"version": "8.0.2",
|
"version": "8.0.2",
|
||||||
@@ -2942,17 +2939,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint": {
|
"node_modules/eslint": {
|
||||||
"version": "8.57.0",
|
"version": "8.57.1",
|
||||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
|
||||||
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
|
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.2.0",
|
"@eslint-community/eslint-utils": "^4.2.0",
|
||||||
"@eslint-community/regexpp": "^4.6.1",
|
"@eslint-community/regexpp": "^4.6.1",
|
||||||
"@eslint/eslintrc": "^2.1.4",
|
"@eslint/eslintrc": "^2.1.4",
|
||||||
"@eslint/js": "8.57.0",
|
"@eslint/js": "8.57.1",
|
||||||
"@humanwhocodes/config-array": "^0.11.14",
|
"@humanwhocodes/config-array": "^0.13.0",
|
||||||
"@humanwhocodes/module-importer": "^1.0.1",
|
"@humanwhocodes/module-importer": "^1.0.1",
|
||||||
"@nodelib/fs.walk": "^1.2.8",
|
"@nodelib/fs.walk": "^1.2.8",
|
||||||
"@ungap/structured-clone": "^1.2.0",
|
"@ungap/structured-clone": "^1.2.0",
|
||||||
@@ -3139,11 +3135,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-module-utils": {
|
"node_modules/eslint-module-utils": {
|
||||||
"version": "2.9.0",
|
"version": "2.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
|
||||||
"integrity": "sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==",
|
"integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": "^3.2.7"
|
"debug": "^3.2.7"
|
||||||
},
|
},
|
||||||
@@ -3167,11 +3162,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-import": {
|
"node_modules/eslint-plugin-import": {
|
||||||
"version": "2.30.0",
|
"version": "2.31.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
|
||||||
"integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==",
|
"integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@rtsao/scc": "^1.1.0",
|
"@rtsao/scc": "^1.1.0",
|
||||||
"array-includes": "^3.1.8",
|
"array-includes": "^3.1.8",
|
||||||
@@ -3181,7 +3175,7 @@
|
|||||||
"debug": "^3.2.7",
|
"debug": "^3.2.7",
|
||||||
"doctrine": "^2.1.0",
|
"doctrine": "^2.1.0",
|
||||||
"eslint-import-resolver-node": "^0.3.9",
|
"eslint-import-resolver-node": "^0.3.9",
|
||||||
"eslint-module-utils": "^2.9.0",
|
"eslint-module-utils": "^2.12.0",
|
||||||
"hasown": "^2.0.2",
|
"hasown": "^2.0.2",
|
||||||
"is-core-module": "^2.15.1",
|
"is-core-module": "^2.15.1",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
@@ -3190,13 +3184,14 @@
|
|||||||
"object.groupby": "^1.0.3",
|
"object.groupby": "^1.0.3",
|
||||||
"object.values": "^1.2.0",
|
"object.values": "^1.2.0",
|
||||||
"semver": "^6.3.1",
|
"semver": "^6.3.1",
|
||||||
|
"string.prototype.trimend": "^1.0.8",
|
||||||
"tsconfig-paths": "^3.15.0"
|
"tsconfig-paths": "^3.15.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
|
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-import/node_modules/debug": {
|
"node_modules/eslint-plugin-import/node_modules/debug": {
|
||||||
@@ -3285,11 +3280,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint-plugin-react": {
|
"node_modules/eslint-plugin-react": {
|
||||||
"version": "7.35.2",
|
"version": "7.37.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.37.1.tgz",
|
||||||
"integrity": "sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==",
|
"integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
|
||||||
"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",
|
||||||
@@ -3659,16 +3653,15 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/follow-redirects": {
|
"node_modules/follow-redirects": {
|
||||||
"version": "1.15.8",
|
"version": "1.15.9",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.8.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
|
||||||
"integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==",
|
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4.0"
|
"node": ">=4.0"
|
||||||
},
|
},
|
||||||
@@ -6193,9 +6186,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.45",
|
"version": "8.4.47",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
|
||||||
"integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==",
|
"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -6211,11 +6204,10 @@
|
|||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.7",
|
"nanoid": "^3.3.7",
|
||||||
"picocolors": "^1.0.1",
|
"picocolors": "^1.1.0",
|
||||||
"source-map-js": "^1.2.0"
|
"source-map-js": "^1.2.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^10 || ^12 || >=14"
|
"node": "^10 || ^12 || >=14"
|
||||||
@@ -7189,10 +7181,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/source-map-js": {
|
"node_modules/source-map-js": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
||||||
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
|
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
@@ -7721,11 +7712,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.4.10",
|
"version": "3.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",
|
||||||
"integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
|
"integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==",
|
||||||
"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",
|
||||||
@@ -8111,11 +8101,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.5.4",
|
"version": "5.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
|
||||||
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
@@ -8196,10 +8185,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/urbackup-server-api": {
|
"node_modules/urbackup-server-api": {
|
||||||
"version": "0.52.0",
|
"version": "0.52.1",
|
||||||
"resolved": "https://registry.npmjs.org/urbackup-server-api/-/urbackup-server-api-0.52.0.tgz",
|
"resolved": "https://registry.npmjs.org/urbackup-server-api/-/urbackup-server-api-0.52.1.tgz",
|
||||||
"integrity": "sha512-KfroCFZEWCuCkWye1F1JwI2fkO1za/Mf1a8TNGTujzxU0ZGzDqhA1zCOcvV97q7nH1TKFNpw5tMZ06fSCKv2UA==",
|
"integrity": "sha512-gAxF9MdXxnceqUr/1Uj2LuGZQb/bvZ3Ply9zH/UTSWGkwKL5C0qMPrBvKRyTHbPMG/NBuHF6BzavkF7GNvOLew==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async-mutex": "^0.5.0",
|
"async-mutex": "^0.5.0",
|
||||||
"node-fetch": "^2.7.0"
|
"node-fetch": "^2.7.0"
|
||||||
|
|||||||
16
package.json
16
package.json
@@ -16,7 +16,7 @@
|
|||||||
"classnames": "^2.5.1",
|
"classnames": "^2.5.1",
|
||||||
"compare-versions": "^6.1.0",
|
"compare-versions": "^6.1.0",
|
||||||
"dockerode": "^4.0.2",
|
"dockerode": "^4.0.2",
|
||||||
"follow-redirects": "^1.15.6",
|
"follow-redirects": "^1.15.9",
|
||||||
"gamedig": "^5.1.2",
|
"gamedig": "^5.1.2",
|
||||||
"i18next": "^21.10.0",
|
"i18next": "^21.10.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
@@ -38,27 +38,27 @@
|
|||||||
"swr": "^1.3.0",
|
"swr": "^1.3.0",
|
||||||
"systeminformation": "^5.23.2",
|
"systeminformation": "^5.23.2",
|
||||||
"tough-cookie": "^4.1.3",
|
"tough-cookie": "^4.1.3",
|
||||||
"urbackup-server-api": "^0.52.0",
|
"urbackup-server-api": "^0.52.1",
|
||||||
"winston": "^3.11.0",
|
"winston": "^3.11.0",
|
||||||
"xml-js": "^1.6.11"
|
"xml-js": "^1.6.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/forms": "^0.5.8",
|
"@tailwindcss/forms": "^0.5.8",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.1",
|
||||||
"eslint-config-airbnb": "^19.0.4",
|
"eslint-config-airbnb": "^19.0.4",
|
||||||
"eslint-config-next": "^14.2.3",
|
"eslint-config-next": "^14.2.3",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-import": "^2.29.1",
|
"eslint-plugin-import": "^2.31.0",
|
||||||
"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.37.1",
|
||||||
"eslint-plugin-react-hooks": "^4.6.2",
|
"eslint-plugin-react-hooks": "^4.6.2",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "^8.4.47",
|
||||||
"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.14",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.6.3"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"osx-temperature-sensor": "^1.0.8"
|
"osx-temperature-sensor": "^1.0.8"
|
||||||
|
|||||||
336
pnpm-lock.yaml
generated
336
pnpm-lock.yaml
generated
@@ -27,8 +27,8 @@ importers:
|
|||||||
specifier: ^4.0.2
|
specifier: ^4.0.2
|
||||||
version: 4.0.2
|
version: 4.0.2
|
||||||
follow-redirects:
|
follow-redirects:
|
||||||
specifier: ^1.15.6
|
specifier: ^1.15.9
|
||||||
version: 1.15.8
|
version: 1.15.9
|
||||||
gamedig:
|
gamedig:
|
||||||
specifier: ^5.1.2
|
specifier: ^5.1.2
|
||||||
version: 5.1.3
|
version: 5.1.3
|
||||||
@@ -93,8 +93,8 @@ importers:
|
|||||||
specifier: ^4.1.3
|
specifier: ^4.1.3
|
||||||
version: 4.1.4
|
version: 4.1.4
|
||||||
urbackup-server-api:
|
urbackup-server-api:
|
||||||
specifier: ^0.52.0
|
specifier: ^0.52.1
|
||||||
version: 0.52.0
|
version: 0.52.1
|
||||||
winston:
|
winston:
|
||||||
specifier: ^3.11.0
|
specifier: ^3.11.0
|
||||||
version: 3.14.2
|
version: 3.14.2
|
||||||
@@ -108,52 +108,52 @@ 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.14)
|
||||||
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.47)
|
||||||
eslint:
|
eslint:
|
||||||
specifier: ^8.57.0
|
specifier: ^8.57.1
|
||||||
version: 8.57.0
|
version: 8.57.1
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.1(eslint@8.57.1))(eslint@8.57.1)
|
||||||
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.1)(typescript@5.6.3)
|
||||||
eslint-config-prettier:
|
eslint-config-prettier:
|
||||||
specifier: ^9.1.0
|
specifier: ^9.1.0
|
||||||
version: 9.1.0(eslint@8.57.0)
|
version: 9.1.0(eslint@8.57.1)
|
||||||
eslint-plugin-import:
|
eslint-plugin-import:
|
||||||
specifier: ^2.29.1
|
specifier: ^2.31.0
|
||||||
version: 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)
|
version: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||||
eslint-plugin-jsx-a11y:
|
eslint-plugin-jsx-a11y:
|
||||||
specifier: ^6.8.0
|
specifier: ^6.8.0
|
||||||
version: 6.10.0(eslint@8.57.0)
|
version: 6.10.0(eslint@8.57.1)
|
||||||
eslint-plugin-prettier:
|
eslint-plugin-prettier:
|
||||||
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.1))(eslint@8.57.1)(prettier@3.3.3)
|
||||||
eslint-plugin-react:
|
eslint-plugin-react:
|
||||||
specifier: ^7.34.2
|
specifier: ^7.37.1
|
||||||
version: 7.35.2(eslint@8.57.0)
|
version: 7.37.1(eslint@8.57.1)
|
||||||
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.1)
|
||||||
postcss:
|
postcss:
|
||||||
specifier: ^8.4.38
|
specifier: ^8.4.47
|
||||||
version: 8.4.45
|
version: 8.4.47
|
||||||
prettier:
|
prettier:
|
||||||
specifier: ^3.2.5
|
specifier: ^3.2.5
|
||||||
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.14)
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: ^3.4.3
|
specifier: ^3.4.14
|
||||||
version: 3.4.10
|
version: 3.4.14
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.4.5
|
specifier: ^5.6.3
|
||||||
version: 5.5.4
|
version: 5.6.3
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -189,8 +189,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
|
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
|
||||||
'@eslint/js@8.57.0':
|
'@eslint/js@8.57.1':
|
||||||
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
|
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
|
||||||
'@headlessui/react@1.7.19':
|
'@headlessui/react@1.7.19':
|
||||||
@@ -200,8 +200,8 @@ packages:
|
|||||||
react: ^16 || ^17 || ^18
|
react: ^16 || ^17 || ^18
|
||||||
react-dom: ^16 || ^17 || ^18
|
react-dom: ^16 || ^17 || ^18
|
||||||
|
|
||||||
'@humanwhocodes/config-array@0.11.14':
|
'@humanwhocodes/config-array@0.13.0':
|
||||||
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
|
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
|
||||||
engines: {node: '>=10.10.0'}
|
engines: {node: '>=10.10.0'}
|
||||||
deprecated: Use @eslint/config-array instead
|
deprecated: Use @eslint/config-array instead
|
||||||
|
|
||||||
@@ -1077,6 +1077,27 @@ packages:
|
|||||||
eslint-plugin-import-x:
|
eslint-plugin-import-x:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
eslint-module-utils@2.12.0:
|
||||||
|
resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
peerDependencies:
|
||||||
|
'@typescript-eslint/parser': '*'
|
||||||
|
eslint: '*'
|
||||||
|
eslint-import-resolver-node: '*'
|
||||||
|
eslint-import-resolver-typescript: '*'
|
||||||
|
eslint-import-resolver-webpack: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@typescript-eslint/parser':
|
||||||
|
optional: true
|
||||||
|
eslint:
|
||||||
|
optional: true
|
||||||
|
eslint-import-resolver-node:
|
||||||
|
optional: true
|
||||||
|
eslint-import-resolver-typescript:
|
||||||
|
optional: true
|
||||||
|
eslint-import-resolver-webpack:
|
||||||
|
optional: true
|
||||||
|
|
||||||
eslint-module-utils@2.9.0:
|
eslint-module-utils@2.9.0:
|
||||||
resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==}
|
resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -1098,12 +1119,12 @@ packages:
|
|||||||
eslint-import-resolver-webpack:
|
eslint-import-resolver-webpack:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-import@2.30.0:
|
eslint-plugin-import@2.31.0:
|
||||||
resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==}
|
resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@typescript-eslint/parser': '*'
|
'@typescript-eslint/parser': '*'
|
||||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@typescript-eslint/parser':
|
'@typescript-eslint/parser':
|
||||||
optional: true
|
optional: true
|
||||||
@@ -1134,8 +1155,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.37.1:
|
||||||
resolution: {integrity: sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==}
|
resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==}
|
||||||
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
|
||||||
@@ -1148,9 +1169,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
|
||||||
eslint@8.57.0:
|
eslint@8.57.1:
|
||||||
resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
|
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
espree@9.6.1:
|
espree@9.6.1:
|
||||||
@@ -1239,8 +1261,8 @@ packages:
|
|||||||
fn.name@1.1.0:
|
fn.name@1.1.0:
|
||||||
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
|
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
|
||||||
|
|
||||||
follow-redirects@1.15.8:
|
follow-redirects@1.15.9:
|
||||||
resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==}
|
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
debug: '*'
|
debug: '*'
|
||||||
@@ -2095,8 +2117,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
|
resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
|
||||||
postcss@8.4.45:
|
postcss@8.4.47:
|
||||||
resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==}
|
resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
|
||||||
prelude-ls@1.2.1:
|
prelude-ls@1.2.1:
|
||||||
@@ -2371,6 +2393,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
source-map-js@1.2.1:
|
||||||
|
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
split-ca@1.0.1:
|
split-ca@1.0.1:
|
||||||
resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==}
|
resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==}
|
||||||
|
|
||||||
@@ -2506,8 +2532,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
tailwindcss: 3.x
|
tailwindcss: 3.x
|
||||||
|
|
||||||
tailwindcss@3.4.10:
|
tailwindcss@3.4.14:
|
||||||
resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==}
|
resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -2620,8 +2646,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
|
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
typescript@5.5.4:
|
typescript@5.6.3:
|
||||||
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
|
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
|
||||||
engines: {node: '>=14.17'}
|
engines: {node: '>=14.17'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -2645,8 +2671,8 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
browserslist: '>= 4.21.0'
|
browserslist: '>= 4.21.0'
|
||||||
|
|
||||||
urbackup-server-api@0.52.0:
|
urbackup-server-api@0.52.1:
|
||||||
resolution: {integrity: sha512-KfroCFZEWCuCkWye1F1JwI2fkO1za/Mf1a8TNGTujzxU0ZGzDqhA1zCOcvV97q7nH1TKFNpw5tMZ06fSCKv2UA==}
|
resolution: {integrity: sha512-gAxF9MdXxnceqUr/1Uj2LuGZQb/bvZ3Ply9zH/UTSWGkwKL5C0qMPrBvKRyTHbPMG/NBuHF6BzavkF7GNvOLew==}
|
||||||
|
|
||||||
uri-js@4.4.1:
|
uri-js@4.4.1:
|
||||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||||
@@ -2784,9 +2810,9 @@ snapshots:
|
|||||||
enabled: 2.0.0
|
enabled: 2.0.0
|
||||||
kuler: 2.0.0
|
kuler: 2.0.0
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
|
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.11.0': {}
|
'@eslint-community/regexpp@4.11.0': {}
|
||||||
@@ -2805,7 +2831,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@eslint/js@8.57.0': {}
|
'@eslint/js@8.57.1': {}
|
||||||
|
|
||||||
'@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -2814,7 +2840,7 @@ snapshots:
|
|||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
|
|
||||||
'@humanwhocodes/config-array@0.11.14':
|
'@humanwhocodes/config-array@0.13.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@humanwhocodes/object-schema': 2.0.3
|
'@humanwhocodes/object-schema': 2.0.3
|
||||||
debug: 4.3.6
|
debug: 4.3.6
|
||||||
@@ -2952,10 +2978,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.14)':
|
||||||
dependencies:
|
dependencies:
|
||||||
mini-svg-data-uri: 1.4.4
|
mini-svg-data-uri: 1.4.4
|
||||||
tailwindcss: 3.4.10
|
tailwindcss: 3.4.14
|
||||||
|
|
||||||
'@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:
|
||||||
@@ -3011,36 +3037,36 @@ snapshots:
|
|||||||
|
|
||||||
'@types/triple-beam@1.3.5': {}
|
'@types/triple-beam@1.3.5': {}
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
|
'@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.11.0
|
'@eslint-community/regexpp': 4.11.0
|
||||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
'@typescript-eslint/scope-manager': 7.2.0
|
'@typescript-eslint/scope-manager': 7.2.0
|
||||||
'@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/type-utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
'@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
'@typescript-eslint/visitor-keys': 7.2.0
|
'@typescript-eslint/visitor-keys': 7.2.0
|
||||||
debug: 4.3.6
|
debug: 4.3.6
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.2
|
ignore: 5.3.2
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
semver: 7.6.3
|
semver: 7.6.3
|
||||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4)':
|
'@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 7.2.0
|
'@typescript-eslint/scope-manager': 7.2.0
|
||||||
'@typescript-eslint/types': 7.2.0
|
'@typescript-eslint/types': 7.2.0
|
||||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4)
|
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
|
||||||
'@typescript-eslint/visitor-keys': 7.2.0
|
'@typescript-eslint/visitor-keys': 7.2.0
|
||||||
debug: 4.3.6
|
debug: 4.3.6
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -3049,21 +3075,21 @@ snapshots:
|
|||||||
'@typescript-eslint/types': 7.2.0
|
'@typescript-eslint/types': 7.2.0
|
||||||
'@typescript-eslint/visitor-keys': 7.2.0
|
'@typescript-eslint/visitor-keys': 7.2.0
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)':
|
'@typescript-eslint/type-utils@7.2.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4)
|
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
|
||||||
'@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
debug: 4.3.6
|
debug: 4.3.6
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/types@7.2.0': {}
|
'@typescript-eslint/types@7.2.0': {}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.4)':
|
'@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 7.2.0
|
'@typescript-eslint/types': 7.2.0
|
||||||
'@typescript-eslint/visitor-keys': 7.2.0
|
'@typescript-eslint/visitor-keys': 7.2.0
|
||||||
@@ -3072,21 +3098,21 @@ snapshots:
|
|||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
minimatch: 9.0.3
|
minimatch: 9.0.3
|
||||||
semver: 7.6.3
|
semver: 7.6.3
|
||||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)':
|
'@typescript-eslint/utils@7.2.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
|
||||||
'@types/json-schema': 7.0.15
|
'@types/json-schema': 7.0.15
|
||||||
'@types/semver': 7.5.8
|
'@types/semver': 7.5.8
|
||||||
'@typescript-eslint/scope-manager': 7.2.0
|
'@typescript-eslint/scope-manager': 7.2.0
|
||||||
'@typescript-eslint/types': 7.2.0
|
'@typescript-eslint/types': 7.2.0
|
||||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4)
|
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
semver: 7.6.3
|
semver: 7.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -3220,14 +3246,14 @@ snapshots:
|
|||||||
|
|
||||||
asynckit@0.4.0: {}
|
asynckit@0.4.0: {}
|
||||||
|
|
||||||
autoprefixer@10.4.20(postcss@8.4.45):
|
autoprefixer@10.4.20(postcss@8.4.47):
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist: 4.23.3
|
browserslist: 4.23.3
|
||||||
caniuse-lite: 1.0.30001657
|
caniuse-lite: 1.0.30001657
|
||||||
fraction.js: 4.3.7
|
fraction.js: 4.3.7
|
||||||
normalize-range: 0.1.2
|
normalize-range: 0.1.2
|
||||||
picocolors: 1.1.0
|
picocolors: 1.1.0
|
||||||
postcss: 8.4.45
|
postcss: 8.4.47
|
||||||
postcss-value-parser: 4.2.0
|
postcss-value-parser: 4.2.0
|
||||||
|
|
||||||
available-typed-arrays@1.0.7:
|
available-typed-arrays@1.0.7:
|
||||||
@@ -3755,49 +3781,49 @@ snapshots:
|
|||||||
|
|
||||||
escape-string-regexp@4.0.0: {}
|
escape-string-regexp@4.0.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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
confusing-browser-globals: 1.0.11
|
confusing-browser-globals: 1.0.11
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||||
object.assign: 4.1.5
|
object.assign: 4.1.5
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.1(eslint@8.57.1))(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1)
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
|
||||||
eslint-plugin-react: 7.35.2(eslint@8.57.0)
|
eslint-plugin-react: 7.37.1(eslint@8.57.1)
|
||||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1)
|
||||||
object.assign: 4.1.5
|
object.assign: 4.1.5
|
||||||
object.entries: 1.1.8
|
object.entries: 1.1.8
|
||||||
|
|
||||||
eslint-config-next@14.2.8(eslint@8.57.0)(typescript@5.5.4):
|
eslint-config-next@14.2.8(eslint@8.57.1)(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@next/eslint-plugin-next': 14.2.8
|
'@next/eslint-plugin-next': 14.2.8
|
||||||
'@rushstack/eslint-patch': 1.10.4
|
'@rushstack/eslint-patch': 1.10.4
|
||||||
'@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)
|
||||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
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.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
|
||||||
eslint-plugin-react: 7.35.2(eslint@8.57.0)
|
eslint-plugin-react: 7.37.1(eslint@8.57.1)
|
||||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.6.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint-import-resolver-webpack
|
- eslint-import-resolver-webpack
|
||||||
- eslint-plugin-import-x
|
- eslint-plugin-import-x
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-config-prettier@9.1.0(eslint@8.57.0):
|
eslint-config-prettier@9.1.0(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
|
|
||||||
eslint-import-resolver-node@0.3.9:
|
eslint-import-resolver-node@0.3.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3807,37 +3833,48 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
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.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nolyfill/is-core-module': 1.0.39
|
'@nolyfill/is-core-module': 1.0.39
|
||||||
debug: 4.3.6
|
debug: 4.3.6
|
||||||
enhanced-resolve: 5.17.1
|
enhanced-resolve: 5.17.1
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(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@8.57.0)
|
eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
get-tsconfig: 4.8.0
|
get-tsconfig: 4.8.0
|
||||||
is-bun-module: 1.1.0
|
is-bun-module: 1.1.0
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
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.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@typescript-eslint/parser'
|
- '@typescript-eslint/parser'
|
||||||
- eslint-import-resolver-node
|
- eslint-import-resolver-node
|
||||||
- eslint-import-resolver-webpack
|
- eslint-import-resolver-webpack
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-module-utils@2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(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@8.57.0):
|
eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7
|
debug: 3.2.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
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.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
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-module-utils@2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1):
|
||||||
|
dependencies:
|
||||||
|
debug: 3.2.7
|
||||||
|
optionalDependencies:
|
||||||
|
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
|
eslint: 8.57.1
|
||||||
|
eslint-import-resolver-node: 0.3.9
|
||||||
|
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rtsao/scc': 1.1.0
|
'@rtsao/scc': 1.1.0
|
||||||
array-includes: 3.1.8
|
array-includes: 3.1.8
|
||||||
@@ -3846,9 +3883,9 @@ snapshots:
|
|||||||
array.prototype.flatmap: 1.3.2
|
array.prototype.flatmap: 1.3.2
|
||||||
debug: 3.2.7
|
debug: 3.2.7
|
||||||
doctrine: 2.1.0
|
doctrine: 2.1.0
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(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@8.57.0)
|
eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
is-core-module: 2.15.1
|
is-core-module: 2.15.1
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
@@ -3857,15 +3894,16 @@ snapshots:
|
|||||||
object.groupby: 1.0.3
|
object.groupby: 1.0.3
|
||||||
object.values: 1.2.0
|
object.values: 1.2.0
|
||||||
semver: 6.3.1
|
semver: 6.3.1
|
||||||
|
string.prototype.trimend: 1.0.8
|
||||||
tsconfig-paths: 3.15.0
|
tsconfig-paths: 3.15.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint-import-resolver-typescript
|
- eslint-import-resolver-typescript
|
||||||
- eslint-import-resolver-webpack
|
- eslint-import-resolver-webpack
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0):
|
eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
aria-query: 5.1.3
|
aria-query: 5.1.3
|
||||||
array-includes: 3.1.8
|
array-includes: 3.1.8
|
||||||
@@ -3876,7 +3914,7 @@ snapshots:
|
|||||||
damerau-levenshtein: 1.0.8
|
damerau-levenshtein: 1.0.8
|
||||||
emoji-regex: 9.2.2
|
emoji-regex: 9.2.2
|
||||||
es-iterator-helpers: 1.0.19
|
es-iterator-helpers: 1.0.19
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
jsx-ast-utils: 3.3.5
|
jsx-ast-utils: 3.3.5
|
||||||
language-tags: 1.0.9
|
language-tags: 1.0.9
|
||||||
@@ -3885,20 +3923,20 @@ snapshots:
|
|||||||
safe-regex-test: 1.0.3
|
safe-regex-test: 1.0.3
|
||||||
string.prototype.includes: 2.0.0
|
string.prototype.includes: 2.0.0
|
||||||
|
|
||||||
eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3):
|
eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
prettier: 3.3.3
|
prettier: 3.3.3
|
||||||
prettier-linter-helpers: 1.0.0
|
prettier-linter-helpers: 1.0.0
|
||||||
synckit: 0.9.1
|
synckit: 0.9.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
eslint-config-prettier: 9.1.0(eslint@8.57.0)
|
eslint-config-prettier: 9.1.0(eslint@8.57.1)
|
||||||
|
|
||||||
eslint-plugin-react-hooks@4.6.2(eslint@8.57.0):
|
eslint-plugin-react-hooks@4.6.2(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
|
|
||||||
eslint-plugin-react@7.35.2(eslint@8.57.0):
|
eslint-plugin-react@7.37.1(eslint@8.57.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
array-includes: 3.1.8
|
array-includes: 3.1.8
|
||||||
array.prototype.findlast: 1.2.5
|
array.prototype.findlast: 1.2.5
|
||||||
@@ -3906,7 +3944,7 @@ snapshots:
|
|||||||
array.prototype.tosorted: 1.1.4
|
array.prototype.tosorted: 1.1.4
|
||||||
doctrine: 2.1.0
|
doctrine: 2.1.0
|
||||||
es-iterator-helpers: 1.0.19
|
es-iterator-helpers: 1.0.19
|
||||||
eslint: 8.57.0
|
eslint: 8.57.1
|
||||||
estraverse: 5.3.0
|
estraverse: 5.3.0
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
jsx-ast-utils: 3.3.5
|
jsx-ast-utils: 3.3.5
|
||||||
@@ -3927,13 +3965,13 @@ snapshots:
|
|||||||
|
|
||||||
eslint-visitor-keys@3.4.3: {}
|
eslint-visitor-keys@3.4.3: {}
|
||||||
|
|
||||||
eslint@8.57.0:
|
eslint@8.57.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
|
||||||
'@eslint-community/regexpp': 4.11.0
|
'@eslint-community/regexpp': 4.11.0
|
||||||
'@eslint/eslintrc': 2.1.4
|
'@eslint/eslintrc': 2.1.4
|
||||||
'@eslint/js': 8.57.0
|
'@eslint/js': 8.57.1
|
||||||
'@humanwhocodes/config-array': 0.11.14
|
'@humanwhocodes/config-array': 0.13.0
|
||||||
'@humanwhocodes/module-importer': 1.0.1
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
'@nodelib/fs.walk': 1.2.8
|
'@nodelib/fs.walk': 1.2.8
|
||||||
'@ungap/structured-clone': 1.2.0
|
'@ungap/structured-clone': 1.2.0
|
||||||
@@ -4055,7 +4093,7 @@ snapshots:
|
|||||||
|
|
||||||
fn.name@1.1.0: {}
|
fn.name@1.1.0: {}
|
||||||
|
|
||||||
follow-redirects@1.15.8: {}
|
follow-redirects@1.15.9: {}
|
||||||
|
|
||||||
for-each@0.3.3:
|
for-each@0.3.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4854,28 +4892,28 @@ snapshots:
|
|||||||
|
|
||||||
possible-typed-array-names@1.0.0: {}
|
possible-typed-array-names@1.0.0: {}
|
||||||
|
|
||||||
postcss-import@15.1.0(postcss@8.4.45):
|
postcss-import@15.1.0(postcss@8.4.47):
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss: 8.4.45
|
postcss: 8.4.47
|
||||||
postcss-value-parser: 4.2.0
|
postcss-value-parser: 4.2.0
|
||||||
read-cache: 1.0.0
|
read-cache: 1.0.0
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
|
|
||||||
postcss-js@4.0.1(postcss@8.4.45):
|
postcss-js@4.0.1(postcss@8.4.47):
|
||||||
dependencies:
|
dependencies:
|
||||||
camelcase-css: 2.0.1
|
camelcase-css: 2.0.1
|
||||||
postcss: 8.4.45
|
postcss: 8.4.47
|
||||||
|
|
||||||
postcss-load-config@4.0.2(postcss@8.4.45):
|
postcss-load-config@4.0.2(postcss@8.4.47):
|
||||||
dependencies:
|
dependencies:
|
||||||
lilconfig: 3.1.2
|
lilconfig: 3.1.2
|
||||||
yaml: 2.5.1
|
yaml: 2.5.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
postcss: 8.4.45
|
postcss: 8.4.47
|
||||||
|
|
||||||
postcss-nested@6.2.0(postcss@8.4.45):
|
postcss-nested@6.2.0(postcss@8.4.47):
|
||||||
dependencies:
|
dependencies:
|
||||||
postcss: 8.4.45
|
postcss: 8.4.47
|
||||||
postcss-selector-parser: 6.1.2
|
postcss-selector-parser: 6.1.2
|
||||||
|
|
||||||
postcss-selector-parser@6.1.2:
|
postcss-selector-parser@6.1.2:
|
||||||
@@ -4891,11 +4929,11 @@ snapshots:
|
|||||||
picocolors: 1.1.0
|
picocolors: 1.1.0
|
||||||
source-map-js: 1.2.0
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
postcss@8.4.45:
|
postcss@8.4.47:
|
||||||
dependencies:
|
dependencies:
|
||||||
nanoid: 3.3.7
|
nanoid: 3.3.7
|
||||||
picocolors: 1.1.0
|
picocolors: 1.1.0
|
||||||
source-map-js: 1.2.0
|
source-map-js: 1.2.1
|
||||||
|
|
||||||
prelude-ls@1.2.1: {}
|
prelude-ls@1.2.1: {}
|
||||||
|
|
||||||
@@ -5201,6 +5239,8 @@ snapshots:
|
|||||||
|
|
||||||
source-map-js@1.2.0: {}
|
source-map-js@1.2.0: {}
|
||||||
|
|
||||||
|
source-map-js@1.2.1: {}
|
||||||
|
|
||||||
split-ca@1.0.1: {}
|
split-ca@1.0.1: {}
|
||||||
|
|
||||||
ssh2@1.15.0:
|
ssh2@1.15.0:
|
||||||
@@ -5349,11 +5389,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.14):
|
||||||
dependencies:
|
dependencies:
|
||||||
tailwindcss: 3.4.10
|
tailwindcss: 3.4.14
|
||||||
|
|
||||||
tailwindcss@3.4.10:
|
tailwindcss@3.4.14:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@alloc/quick-lru': 5.2.0
|
'@alloc/quick-lru': 5.2.0
|
||||||
arg: 5.0.2
|
arg: 5.0.2
|
||||||
@@ -5369,11 +5409,11 @@ snapshots:
|
|||||||
normalize-path: 3.0.0
|
normalize-path: 3.0.0
|
||||||
object-hash: 3.0.0
|
object-hash: 3.0.0
|
||||||
picocolors: 1.1.0
|
picocolors: 1.1.0
|
||||||
postcss: 8.4.45
|
postcss: 8.4.47
|
||||||
postcss-import: 15.1.0(postcss@8.4.45)
|
postcss-import: 15.1.0(postcss@8.4.47)
|
||||||
postcss-js: 4.0.1(postcss@8.4.45)
|
postcss-js: 4.0.1(postcss@8.4.47)
|
||||||
postcss-load-config: 4.0.2(postcss@8.4.45)
|
postcss-load-config: 4.0.2(postcss@8.4.47)
|
||||||
postcss-nested: 6.2.0(postcss@8.4.45)
|
postcss-nested: 6.2.0(postcss@8.4.47)
|
||||||
postcss-selector-parser: 6.1.2
|
postcss-selector-parser: 6.1.2
|
||||||
resolve: 1.22.8
|
resolve: 1.22.8
|
||||||
sucrase: 3.35.0
|
sucrase: 3.35.0
|
||||||
@@ -5448,9 +5488,9 @@ snapshots:
|
|||||||
|
|
||||||
triple-beam@1.4.1: {}
|
triple-beam@1.4.1: {}
|
||||||
|
|
||||||
ts-api-utils@1.3.0(typescript@5.5.4):
|
ts-api-utils@1.3.0(typescript@5.6.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.5.4
|
typescript: 5.6.3
|
||||||
|
|
||||||
ts-interface-checker@0.1.13: {}
|
ts-interface-checker@0.1.13: {}
|
||||||
|
|
||||||
@@ -5509,7 +5549,7 @@ snapshots:
|
|||||||
is-typed-array: 1.1.13
|
is-typed-array: 1.1.13
|
||||||
possible-typed-array-names: 1.0.0
|
possible-typed-array-names: 1.0.0
|
||||||
|
|
||||||
typescript@5.5.4: {}
|
typescript@5.6.3: {}
|
||||||
|
|
||||||
unbox-primitive@1.0.2:
|
unbox-primitive@1.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5530,7 +5570,7 @@ snapshots:
|
|||||||
escalade: 3.2.0
|
escalade: 3.2.0
|
||||||
picocolors: 1.1.0
|
picocolors: 1.1.0
|
||||||
|
|
||||||
urbackup-server-api@0.52.0:
|
urbackup-server-api@0.52.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
async-mutex: 0.5.0
|
async-mutex: 0.5.0
|
||||||
node-fetch: 2.7.0
|
node-fetch: 2.7.0
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
"ms": "{{value, number}}",
|
"ms": "{{value, number}}",
|
||||||
"date": "{{value, date}}",
|
"date": "{{value, date}}",
|
||||||
"relativeDate": "{{value, relativeDate}}",
|
"relativeDate": "{{value, relativeDate}}",
|
||||||
"uptime": "{{value, uptime}}",
|
"duration": "{{value, duration}}",
|
||||||
"months": "mo",
|
"months": "mo",
|
||||||
"days": "d",
|
"days": "d",
|
||||||
"hours": "h",
|
"hours": "h",
|
||||||
@@ -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,38 @@
|
|||||||
"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"
|
||||||
|
},
|
||||||
|
"vikunja": {
|
||||||
|
"projects": "Active Projects",
|
||||||
|
"tasks7d": "Tasks Due This Week",
|
||||||
|
"tasksOverdue": "Overdue Tasks",
|
||||||
|
"tasksInProgress": "Tasks In Progress"
|
||||||
|
},
|
||||||
|
"headscale": {
|
||||||
|
"name": "Name",
|
||||||
|
"address": "Address",
|
||||||
|
"last_seen": "Last Seen",
|
||||||
|
"status": "Status",
|
||||||
|
"online": "Online",
|
||||||
|
"offline": "Offline"
|
||||||
|
},
|
||||||
|
"beszel": {
|
||||||
|
"name": "Name",
|
||||||
|
"systems": "Systems",
|
||||||
|
"up": "Up",
|
||||||
|
"status": "Status",
|
||||||
|
"updated": "Updated",
|
||||||
|
"cpu": "CPU",
|
||||||
|
"memory": "MEM",
|
||||||
|
"disk": "Disk",
|
||||||
|
"network": "NET"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export default function BookmarksGroup({ bookmarks, layout, disableCollapse, gro
|
|||||||
className={classNames(
|
className={classNames(
|
||||||
"bookmark-group",
|
"bookmark-group",
|
||||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
||||||
layout?.header === false ? "flex-1 px-1 -my-1" : "flex-1 p-1",
|
layout?.header === false ? "flex-1 px-1 -my-1 overflow-hidden" : "flex-1 p-1 overflow-hidden",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export default function Item({ bookmark }) {
|
|||||||
<a
|
<a
|
||||||
href={bookmark.href}
|
href={bookmark.href}
|
||||||
title={bookmark.name}
|
title={bookmark.name}
|
||||||
|
rel="noreferrer"
|
||||||
target={bookmark.target ?? settings.target ?? "_blank"}
|
target={bookmark.target ?? settings.target ?? "_blank"}
|
||||||
className={classNames(
|
className={classNames(
|
||||||
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
|
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
|
||||||
@@ -28,9 +29,9 @@ export default function Item({ bookmark }) {
|
|||||||
)}
|
)}
|
||||||
{!bookmark.icon && bookmark.abbr}
|
{!bookmark.icon && bookmark.abbr}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 flex items-center justify-between rounded-r-md bookmark-text">
|
<div className="flex-1 overflow-hidden flex items-center justify-between rounded-r-md bookmark-text">
|
||||||
<div className="flex-1 grow pl-3 py-2 text-xs bookmark-name">{bookmark.name}</div>
|
<div className="pl-3 py-2 text-xs bookmark-name">{bookmark.name}</div>
|
||||||
<div className="px-2 py-2 truncate text-theme-500 dark:text-theme-300 text-xs bookmark-description">
|
<div className="shrink truncate px-2 py-2 text-theme-500 dark:text-theme-300 text-xs bookmark-description">
|
||||||
{description}
|
{description}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -98,6 +98,12 @@ export default function QuickLaunch({ servicesAndBookmarks, searchString, setSea
|
|||||||
} else if (event.key === "ArrowUp" && currentItemIndex > 0) {
|
} else if (event.key === "ArrowUp" && currentItemIndex > 0) {
|
||||||
setCurrentItemIndex(currentItemIndex - 1);
|
setCurrentItemIndex(currentItemIndex - 1);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
} else if (
|
||||||
|
event.key === "ArrowRight" &&
|
||||||
|
results[currentItemIndex] &&
|
||||||
|
results[currentItemIndex].type === "searchSuggestion"
|
||||||
|
) {
|
||||||
|
setSearchString(results[currentItemIndex].name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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", "");
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export default function Uptime({ refresh = 1500 }) {
|
|||||||
return (
|
return (
|
||||||
<Resource
|
<Resource
|
||||||
icon={FaRegClock}
|
icon={FaRegClock}
|
||||||
value={t("common.uptime", { value: data.uptime })}
|
value={t("common.duration", { value: data.uptime })}
|
||||||
label={t("resources.uptime")}
|
label={t("resources.uptime")}
|
||||||
percentage={percent}
|
percentage={percent}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export default function Document() {
|
|||||||
name="description"
|
name="description"
|
||||||
content="A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
content="A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
||||||
/>
|
/>
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="mobile-web-app-capable" content="yes" />
|
||||||
<link rel="manifest" href="/site.webmanifest?v=4" crossOrigin="use-credentials" />
|
<link rel="manifest" href="/site.webmanifest?v=4" crossOrigin="use-credentials" />
|
||||||
</Head>
|
</Head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export default async function handler(req, res) {
|
|||||||
|
|
||||||
if (!widget) {
|
if (!widget) {
|
||||||
logger.debug("Unknown proxy service type: %s", type);
|
logger.debug("Unknown proxy service type: %s", type);
|
||||||
return res.status(403).json({ error: "Unkown proxy service type" });
|
return res.status(403).json({ error: "Unknown proxy service type" });
|
||||||
}
|
}
|
||||||
|
|
||||||
const serviceProxyHandler = widget.proxyHandler || genericProxyHandler;
|
const serviceProxyHandler = widget.proxyHandler || genericProxyHandler;
|
||||||
@@ -107,7 +107,7 @@ export default async function handler(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("Unknown proxy service type: %s", type);
|
logger.debug("Unknown proxy service type: %s", type);
|
||||||
return res.status(403).json({ error: "Unkown proxy service type" });
|
return res.status(403).json({ error: "Unknown proxy service type" });
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e) logger.error(e);
|
if (e) logger.error(e);
|
||||||
return res.status(500).send({ error: "Unexpected error" });
|
return res.status(500).send({ error: "Unexpected error" });
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import cachedFetch from "utils/proxy/cached-fetch";
|
|||||||
|
|
||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
const { latitude, longitude, units, cache, timezone } = req.query;
|
const { latitude, longitude, units, cache, timezone } = req.query;
|
||||||
const degrees = units === "imperial" ? "fahrenheit" : "celsius";
|
const degrees = units === "metric" ? "celsius" : "fahrenheit";
|
||||||
const timezeone = timezone ?? "auto";
|
const timezeone = timezone ?? "auto";
|
||||||
const apiUrl = `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}&daily=sunrise,sunset¤t_weather=true&temperature_unit=${degrees}&timezone=${timezeone}`;
|
const apiUrl = `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}&daily=sunrise,sunset¤t_weather=true&temperature_unit=${degrees}&timezone=${timezeone}`;
|
||||||
return res.send(await cachedFetch(apiUrl, cache));
|
return res.send(await cachedFetch(apiUrl, cache));
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -368,6 +368,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
repositoryId,
|
repositoryId,
|
||||||
userEmail,
|
userEmail,
|
||||||
|
|
||||||
|
// beszel
|
||||||
|
systemId,
|
||||||
|
|
||||||
// calendar
|
// calendar
|
||||||
firstDayInWeek,
|
firstDayInWeek,
|
||||||
integrations,
|
integrations,
|
||||||
@@ -406,7 +409,7 @@ export function cleanServiceGroups(groups) {
|
|||||||
// frigate
|
// frigate
|
||||||
enableRecentEvents,
|
enableRecentEvents,
|
||||||
|
|
||||||
// glances, mealie, pihole, pfsense
|
// glances, immich, mealie, pihole, pfsense
|
||||||
version,
|
version,
|
||||||
|
|
||||||
// glances
|
// glances
|
||||||
@@ -442,6 +445,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
namespace,
|
namespace,
|
||||||
podSelector,
|
podSelector,
|
||||||
|
|
||||||
|
// lubelogger
|
||||||
|
vehicleID,
|
||||||
|
|
||||||
// mjpeg
|
// mjpeg
|
||||||
fit,
|
fit,
|
||||||
stream,
|
stream,
|
||||||
@@ -475,6 +481,9 @@ export function cleanServiceGroups(groups) {
|
|||||||
// unifi
|
// unifi
|
||||||
site,
|
site,
|
||||||
|
|
||||||
|
// vikunja
|
||||||
|
enableTaskList,
|
||||||
|
|
||||||
// wgeasy
|
// wgeasy
|
||||||
threshold,
|
threshold,
|
||||||
|
|
||||||
@@ -505,6 +514,10 @@ export function cleanServiceGroups(groups) {
|
|||||||
if (repositoryId) cleanedService.widget.repositoryId = repositoryId;
|
if (repositoryId) cleanedService.widget.repositoryId = repositoryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type === "beszel") {
|
||||||
|
if (systemId) cleanedService.widget.systemId = systemId;
|
||||||
|
}
|
||||||
|
|
||||||
if (type === "coinmarketcap") {
|
if (type === "coinmarketcap") {
|
||||||
if (currency) cleanedService.widget.currency = currency;
|
if (currency) cleanedService.widget.currency = currency;
|
||||||
if (symbols) cleanedService.widget.symbols = symbols;
|
if (symbols) cleanedService.widget.symbols = symbols;
|
||||||
@@ -565,8 +578,8 @@ export function cleanServiceGroups(groups) {
|
|||||||
if (snapshotHost) cleanedService.widget.snapshotHost = snapshotHost;
|
if (snapshotHost) cleanedService.widget.snapshotHost = snapshotHost;
|
||||||
if (snapshotPath) cleanedService.widget.snapshotPath = snapshotPath;
|
if (snapshotPath) cleanedService.widget.snapshotPath = snapshotPath;
|
||||||
}
|
}
|
||||||
if (["glances", "mealie", "pfsense", "pihole"].includes(type)) {
|
if (["glances", "immich", "mealie", "pfsense", "pihole"].includes(type)) {
|
||||||
if (version) cleanedService.widget.version = version;
|
if (version) cleanedService.widget.version = parseInt(version, 10);
|
||||||
}
|
}
|
||||||
if (type === "glances") {
|
if (type === "glances") {
|
||||||
if (metric) cleanedService.widget.metric = metric;
|
if (metric) cleanedService.widget.metric = metric;
|
||||||
@@ -627,6 +640,12 @@ 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 = parseInt(vehicleID, 10);
|
||||||
|
}
|
||||||
|
if (type === "vikunja") {
|
||||||
|
if (enableTaskList !== undefined) cleanedService.widget.enableTaskList = !!enableTaskList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cleanedService;
|
return cleanedService;
|
||||||
|
|||||||
@@ -39,11 +39,14 @@ export default async function credentialedProxyHandler(req, res, map) {
|
|||||||
"authentik",
|
"authentik",
|
||||||
"cloudflared",
|
"cloudflared",
|
||||||
"ghostfolio",
|
"ghostfolio",
|
||||||
|
"headscale",
|
||||||
"linkwarden",
|
"linkwarden",
|
||||||
"mealie",
|
"mealie",
|
||||||
|
"netalertx",
|
||||||
"tailscale",
|
"tailscale",
|
||||||
"tandoor",
|
"tandoor",
|
||||||
"pterodactyl",
|
"pterodactyl",
|
||||||
|
"vikunja",
|
||||||
].includes(widget.type)
|
].includes(widget.type)
|
||||||
) {
|
) {
|
||||||
headers.Authorization = `Bearer ${widget.key}`;
|
headers.Authorization = `Bearer ${widget.key}`;
|
||||||
|
|||||||
@@ -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}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,11 +39,8 @@ export default function Component({ service }) {
|
|||||||
<Block label="audiobookshelf.podcasts" value={t("common.number", { value: totalPodcasts })} />
|
<Block label="audiobookshelf.podcasts" value={t("common.number", { value: totalPodcasts })} />
|
||||||
<Block
|
<Block
|
||||||
label="audiobookshelf.podcastsDuration"
|
label="audiobookshelf.podcastsDuration"
|
||||||
value={t("common.number", {
|
value={t("common.duration", {
|
||||||
value: totalPodcastsDuration / 60,
|
value: totalPodcastsDuration,
|
||||||
maximumFractionDigits: 0,
|
|
||||||
style: "unit",
|
|
||||||
unit: "minute",
|
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
<Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} />
|
<Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} />
|
||||||
|
|||||||
60
src/widgets/beszel/component.jsx
Normal file
60
src/widgets/beszel/component.jsx
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
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 { systemId } = widget;
|
||||||
|
|
||||||
|
const { data: systems, error: systemsError } = useWidgetAPI(widget, "systems");
|
||||||
|
|
||||||
|
const MAX_ALLOWED_FIELDS = 4;
|
||||||
|
if (!widget.fields?.length > 0) {
|
||||||
|
widget.fields = systemId ? ["name", "status", "cpu", "memory"] : ["systems", "up"];
|
||||||
|
}
|
||||||
|
if (widget.fields?.length > MAX_ALLOWED_FIELDS) {
|
||||||
|
widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (systemsError) {
|
||||||
|
return <Container service={service} error={systemsError} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!systems) {
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="beszel.systems" />
|
||||||
|
<Block label="beszel.up" />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (systemId) {
|
||||||
|
const system = systems.items.find((item) => item.id === systemId);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="beszel.name" value={system.name} />
|
||||||
|
<Block label="beszel.status" value={t(`beszel.${system.status}`)} />
|
||||||
|
<Block label="beszel.updated" value={t("common.relativeDate", { value: system.updated })} />
|
||||||
|
<Block label="beszel.cpu" value={t("common.percent", { value: system.info.cpu, maximumFractionDigits: 2 })} />
|
||||||
|
<Block label="beszel.memory" value={t("common.percent", { value: system.info.mp, maximumFractionDigits: 2 })} />
|
||||||
|
<Block label="beszel.disk" value={t("common.percent", { value: system.info.dp, maximumFractionDigits: 2 })} />
|
||||||
|
<Block label="beszel.network" value={t("common.percent", { value: system.info.b, maximumFractionDigits: 2 })} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const upTotal = systems.items.filter((item) => item.status === "up").length;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Container service={service}>
|
||||||
|
<Block label="beszel.systems" value={systems.totalItems} />
|
||||||
|
<Block label="beszel.up" value={`${upTotal} / ${systems.totalItems}`} />
|
||||||
|
</Container>
|
||||||
|
);
|
||||||
|
}
|
||||||
99
src/widgets/beszel/proxy.js
Normal file
99
src/widgets/beszel/proxy.js
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
import cache from "memory-cache";
|
||||||
|
|
||||||
|
import getServiceWidget from "utils/config/service-helpers";
|
||||||
|
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||||
|
import { httpProxy } from "utils/proxy/http";
|
||||||
|
import widgets from "widgets/widgets";
|
||||||
|
import createLogger from "utils/logger";
|
||||||
|
|
||||||
|
const proxyName = "beszelProxyHandler";
|
||||||
|
const tokenCacheKey = `${proxyName}__token`;
|
||||||
|
const logger = createLogger(proxyName);
|
||||||
|
|
||||||
|
async function login(loginUrl, username, password, service) {
|
||||||
|
const authResponse = await httpProxy(loginUrl, {
|
||||||
|
method: "POST",
|
||||||
|
body: JSON.stringify({ identity: username, password }),
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const status = authResponse[0];
|
||||||
|
let data = authResponse[2];
|
||||||
|
try {
|
||||||
|
data = JSON.parse(Buffer.from(authResponse[2]).toString());
|
||||||
|
|
||||||
|
if (status === 200) {
|
||||||
|
cache.put(`${tokenCacheKey}.${service}`, data.token);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
logger.error(`Error ${status} logging into beszel`, JSON.stringify(authResponse[2]));
|
||||||
|
}
|
||||||
|
return [status, data.token ?? data];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function beszelProxyHandler(req, res) {
|
||||||
|
const { group, service, endpoint } = req.query;
|
||||||
|
|
||||||
|
if (group && service) {
|
||||||
|
const widget = await getServiceWidget(group, service);
|
||||||
|
|
||||||
|
if (!widgets?.[widget.type]?.api) {
|
||||||
|
return res.status(403).json({ error: "Service does not support API calls" });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (widget) {
|
||||||
|
const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget }));
|
||||||
|
const loginUrl = formatApiCall(widgets[widget.type].api, { endpoint: "admins/auth-with-password", ...widget });
|
||||||
|
|
||||||
|
let status;
|
||||||
|
let data;
|
||||||
|
|
||||||
|
let token = cache.get(`${tokenCacheKey}.${service}`);
|
||||||
|
if (!token) {
|
||||||
|
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||||
|
if (status !== 200) {
|
||||||
|
logger.debug(`HTTTP ${status} logging into npm api: ${token}`);
|
||||||
|
return res.status(status).send(token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[status, , data] = await httpProxy(url, {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
Authorization: `Bearer ${token}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (status === 403) {
|
||||||
|
logger.debug(`HTTTP ${status} retrieving data from npm api, logging in and trying again.`);
|
||||||
|
cache.del(`${tokenCacheKey}.${service}`);
|
||||||
|
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||||
|
|
||||||
|
if (status !== 200) {
|
||||||
|
logger.debug(`HTTTP ${status} logging into npm api: ${data}`);
|
||||||
|
return res.status(status).send(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
[status, , data] = await httpProxy(url, {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
Authorization: `Bearer ${token}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status !== 200) {
|
||||||
|
return res.status(status).send(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.send(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||||
|
}
|
||||||
14
src/widgets/beszel/widget.js
Normal file
14
src/widgets/beszel/widget.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import beszelProxyHandler from "./proxy";
|
||||||
|
|
||||||
|
const widget = {
|
||||||
|
api: "{url}/api/{endpoint}",
|
||||||
|
proxyHandler: beszelProxyHandler,
|
||||||
|
|
||||||
|
mappings: {
|
||||||
|
systems: {
|
||||||
|
endpoint: "collections/systems/records?page=1&perPage=500&sort=%2Bcreated",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default widget;
|
||||||
@@ -8,6 +8,7 @@ const components = {
|
|||||||
autobrr: dynamic(() => import("./autobrr/component")),
|
autobrr: dynamic(() => import("./autobrr/component")),
|
||||||
azuredevops: dynamic(() => import("./azuredevops/component")),
|
azuredevops: dynamic(() => import("./azuredevops/component")),
|
||||||
bazarr: dynamic(() => import("./bazarr/component")),
|
bazarr: dynamic(() => import("./bazarr/component")),
|
||||||
|
beszel: dynamic(() => import("./beszel/component")),
|
||||||
caddy: dynamic(() => import("./caddy/component")),
|
caddy: dynamic(() => import("./caddy/component")),
|
||||||
calendar: dynamic(() => import("./calendar/component")),
|
calendar: dynamic(() => import("./calendar/component")),
|
||||||
calibreweb: dynamic(() => import("./calibreweb/component")),
|
calibreweb: dynamic(() => import("./calibreweb/component")),
|
||||||
@@ -41,6 +42,7 @@ const components = {
|
|||||||
gotify: dynamic(() => import("./gotify/component")),
|
gotify: dynamic(() => import("./gotify/component")),
|
||||||
grafana: dynamic(() => import("./grafana/component")),
|
grafana: dynamic(() => import("./grafana/component")),
|
||||||
hdhomerun: dynamic(() => import("./hdhomerun/component")),
|
hdhomerun: dynamic(() => import("./hdhomerun/component")),
|
||||||
|
headscale: dynamic(() => import("./headscale/component")),
|
||||||
peanut: dynamic(() => import("./peanut/component")),
|
peanut: dynamic(() => import("./peanut/component")),
|
||||||
homeassistant: dynamic(() => import("./homeassistant/component")),
|
homeassistant: dynamic(() => import("./homeassistant/component")),
|
||||||
homebox: dynamic(() => import("./homebox/component")),
|
homebox: dynamic(() => import("./homebox/component")),
|
||||||
@@ -56,6 +58,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")),
|
||||||
@@ -123,6 +127,7 @@ const components = {
|
|||||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||||
uptimerobot: dynamic(() => import("./uptimerobot/component")),
|
uptimerobot: dynamic(() => import("./uptimerobot/component")),
|
||||||
urbackup: dynamic(() => import("./urbackup/component")),
|
urbackup: dynamic(() => import("./urbackup/component")),
|
||||||
|
vikunja: dynamic(() => import("./vikunja/component")),
|
||||||
watchtower: dynamic(() => import("./watchtower/component")),
|
watchtower: dynamic(() => import("./watchtower/component")),
|
||||||
wgeasy: dynamic(() => import("./wgeasy/component")),
|
wgeasy: dynamic(() => import("./wgeasy/component")),
|
||||||
whatsupdocker: dynamic(() => import("./whatsupdocker/component")),
|
whatsupdocker: dynamic(() => import("./whatsupdocker/component")),
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export default function Component({ service }) {
|
|||||||
/>
|
/>
|
||||||
<Block
|
<Block
|
||||||
label="frigate.uptime"
|
label="frigate.uptime"
|
||||||
value={t("common.uptime", {
|
value={t("common.duration", {
|
||||||
value: data.uptime,
|
value: data.uptime,
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ export default function Component({ service }) {
|
|||||||
return (
|
return (
|
||||||
<Container service={service}>
|
<Container service={service}>
|
||||||
<Block label="fritzbox.connectionStatus" value={t(`fritzbox.connectionStatus${fritzboxData.connectionStatus}`)} />
|
<Block label="fritzbox.connectionStatus" value={t(`fritzbox.connectionStatus${fritzboxData.connectionStatus}`)} />
|
||||||
<Block label="fritzbox.uptime" value={t("common.uptime", { value: fritzboxData.uptime })} />
|
<Block label="fritzbox.uptime" value={t("common.duration", { value: fritzboxData.uptime })} />
|
||||||
<Block label="fritzbox.maxDown" value={t("common.byterate", { value: fritzboxData.maxDown / 8, decimals: 1 })} />
|
<Block label="fritzbox.maxDown" value={t("common.byterate", { value: fritzboxData.maxDown / 8, decimals: 1 })} />
|
||||||
<Block label="fritzbox.maxUp" value={t("common.byterate", { value: fritzboxData.maxUp / 8, decimals: 1 })} />
|
<Block label="fritzbox.maxUp" value={t("common.byterate", { value: fritzboxData.maxUp / 8, decimals: 1 })} />
|
||||||
<Block label="fritzbox.down" value={t("common.byterate", { value: fritzboxData.down, decimals: 1 })} />
|
<Block label="fritzbox.down" value={t("common.byterate", { value: fritzboxData.down, decimals: 1 })} />
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user