Compare commits

...

322 Commits

Author SHA1 Message Date
shamoon
f607d806d0 Bump version to 1.4.4 2025-08-08 11:32:46 -04:00
shamoon
c0ddb5f816 Merge branch 'dev' 2025-08-08 11:32:29 -04:00
github-actions[bot]
fc563532e1 New Crowdin translations by GitHub Action (#5626)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-08 11:28:06 -04:00
shamoon
98248903c6 Enhancement: support Tandoor v2 api structure (#5646) 2025-08-06 15:57:02 -04:00
shamoon
5870111d11 Enhancement: Auto-request geolocation if permission already granted (#5638) 2025-08-04 23:16:22 -04:00
shamoon
bb23c25690 Fix: try to restore iframe transparency by restoring light scheme (#5637) 2025-08-04 23:01:26 -04:00
shamoon
4084c8dafc Add fields to trilium docs 2025-08-04 14:52:10 -04:00
Matan Heimann
cb1dde1b79 Documentation: fix missing references to Wallos documentation doc (#5633)
Co-authored-by: MH <m@terramail.co>
2025-08-04 14:50:15 -04:00
shamoon
1691711a52 Bump version to 1.4.3 2025-08-03 11:02:00 -04:00
shamoon
b5d8f6c01c Merge branch 'dev' 2025-08-03 11:01:44 -04:00
github-actions[bot]
db86b5408a New Crowdin translations by GitHub Action (#5614)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-03 11:01:23 -04:00
shamoon
4be2c2868b Fix bg opacity calculation (#5622) 2025-08-03 10:52:45 -04:00
Yann Hodiesne
c6197a9f92 Fix: properly handle UptimeRobot errors (#5621) 2025-08-03 10:50:26 -04:00
shamoon
dd861d7d1c Enhancement: handle evcc 0.207 breaking change (#5619) 2025-08-03 08:12:19 -04:00
shamoon
e65f8c46f9 Update package.json 2025-08-02 18:52:19 -04:00
shamoon
082e1316c1 Fix: set body background color (#5611) 2025-08-02 17:44:35 -04:00
shamoon
a4b5e72d82 Fix: properly handle classlist with light theme (#5612) 2025-08-02 17:38:00 -04:00
shamoon
0e79501ddc Bump version to 1.4.1 2025-08-02 08:42:07 -04:00
shamoon
4814ee48ef Merge branch 'dev' 2025-08-02 08:40:54 -04:00
github-actions[bot]
5b7a36666c New Crowdin translations by GitHub Action (#5370)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-02 08:23:50 -04:00
shamoon
75b27a644b Update immich.md 2025-08-02 08:11:47 -04:00
dependabot[bot]
b3bde11e3a Chore(deps-dev): Bump postcss from 8.5.3 to 8.5.6 (#5600)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-02 03:44:51 +00:00
dependabot[bot]
8fdf2b074c Chore(deps): Bump dockerode from 4.0.4 to 4.0.7 (#5599)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-02 03:28:51 +00:00
dependabot[bot]
20c4400a9b Chore(deps): Bump next from 15.3.1 to 15.4.5 (#5601)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-02 03:06:10 +00:00
dependabot[bot]
1a7e57bfb6 Chore(deps-dev): Bump eslint-plugin-import from 2.31.0 to 2.32.0 (#5598)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-02 02:58:21 +00:00
dependabot[bot]
07f70a79be Chore(deps): Bump follow-redirects from 1.15.9 to 1.15.11 (#5597)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-02 02:49:30 +00:00
shamoon
a2e3aa7085 Refactor background image rendering in Wrapper 2025-08-01 20:51:40 -04:00
shamoon
085d91b3f7 Ensure full viewport height for inner wrapper 2025-08-01 08:59:14 -04:00
shamoon
9417929c99 Fix background application from ssr 2025-08-01 08:17:23 -04:00
shamoon
6bc5f0f499 Fix: revert to default background opacity to 0 2025-07-29 21:37:17 -04:00
shamoon
fa2efb1ac9 Fix: fix error handling in Portainer Kubernetes widget (#5584) 2025-07-27 23:07:37 -04:00
shamoon
8c4e73e122 Fixhancement: restore native scrolling, background (#5573) 2025-07-25 18:01:03 -07:00
Albin Médoc
0c000c1ecd Feature: Filebrowser service widget (#5546)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-07-25 17:08:43 -07:00
shamoon
bbb013e0ce Fix: Handle Romm v3.10.0 filesize breaking change (#5565) 2025-07-24 14:03:01 -07:00
Matan Heimann
d581d70d1a Feature: wallos service widget (#5562)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-07-24 06:07:26 +00:00
AdamWHY2K
612d05fd4d Enhancement: Add extra details to jellyfin's now playing music (#5557) 2025-07-22 18:06:04 +00:00
Chris
0d6ecae51b Fix: fix cpu percent for Proxmox stats (#5528) 2025-07-20 16:42:53 -07:00
shamoon
c48cf71d59 Docs: Add missing pages 2025-07-17 11:39:52 -07:00
shamoon
7f630fd77f Remove insiders 2025-07-16 22:10:36 -07:00
lowcarbdev
aa942dbd73 Documentation: Add Download Station to the list of allowed Synology applications (#5517) 2025-07-15 21:54:08 -07:00
shamoon
7426a12cdf Bump version to 1.4.0 2025-07-15 09:38:15 -07:00
shamoon
cbf2e1a509 Merge branch 'dev' 2025-07-15 09:32:52 -07:00
shamoon
d0165326a6 Tweak: Improve ownership check and chown handling for .next dir (#5513) 2025-07-15 06:56:46 -07:00
Oriano de Stefani
dba3a1f893 Enhancement: support for new grafana alerting api (#5476)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-07-12 08:36:13 -07:00
shamoon
f5ecd6d787 Fix: fix glances info when cpu = 0 (#5506) 2025-07-11 19:47:31 -07:00
Đức
1d990ef7c7 Fix: increase color popover z-index (#5489) 2025-07-07 09:29:48 -07:00
dependabot[bot]
767e7c58b4 Chore(deps): Bump react-i18next from 11.18.6 to 15.5.3 (#5470)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:58:43 -07:00
dependabot[bot]
c393982e84 Chore(deps-dev): Bump eslint-plugin-prettier from 5.2.6 to 5.5.1 (#5471)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 17:26:59 +00:00
dependabot[bot]
927b943fa4 Chore(deps-dev): Bump prettier from 3.5.3 to 3.6.2 (#5468)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 16:59:47 +00:00
dependabot[bot]
50f6d5f0e7 Chore(deps): Bump systeminformation from 5.25.11 to 5.27.7 (#5469)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 16:36:48 +00:00
dependabot[bot]
0482bf7b17 Chore(deps-dev): Bump eslint-plugin-react-hooks from 5.1.0 to 5.2.0 (#5467)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 09:25:23 -07:00
AdamWHY2K
e215e7d70e Enhancement: sort qBittorrent leechProgress (#5456) 2025-06-28 14:23:02 -07:00
Mark McKinney
0a44a2dade Enhancement: add links to sonarr and radarr calendar widget items (#5448) 2025-06-26 05:30:00 +00:00
shamoon
0fe76b5af8 Enhancement: include ua for outlook ical integrations (#5444) 2025-06-23 11:30:34 -07:00
shamoon
e51db24418 Update launch configuration 2025-06-23 11:06:30 -07:00
shamoon
1a1039194c Move up glacnes info background 2025-06-22 17:48:53 -07:00
shamoon
00bb1a3f37 Enhancement: improve glances info widget spacing (#5425) 2025-06-13 10:18:26 -07:00
Albin Médoc
73aa2018a8 Enhancement: add kubernetes support to portainer widget (#5414)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-06-13 07:17:20 +00:00
Andrew Ensley
8ce9e57ed8 Enhancement: Komodo widget (#5407)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-06-11 16:05:53 +00:00
shamoon
6e16adc460 Change: preserve trailing slash in custom api calls (#5410) 2025-06-10 16:02:48 -07:00
shamoon
352c54ecc4 Remove inaccurate POST examples from authoring docs 2025-06-10 13:52:08 -07:00
André Bürger
a64c83209a Enhancement: add enableMediaControl flag to hide play/pause controls for emby/jellyfin (#5402) 2025-06-09 09:41:48 -07:00
Jayden
1147fc858f Documentation: fix beszel documentation typo (#5400) 2025-06-09 06:34:19 -07:00
shamoon
fcfb9c2237 Fix typo in k8s error logging 2025-06-08 06:51:17 -07:00
shamoon
34bffe980a Change: use glances rss instead of data for process memory reporting (#5392) 2025-06-07 15:49:07 -07:00
Albin Médoc
5759596a37 Feature: Proxmox status & stats integration (#5385)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-06-06 07:25:21 -07:00
shamoon
30abf4e422 Add k8s yaml to validate 2025-06-05 20:51:31 -07:00
Jon Fuller
0e96778740 Feature: Trilium Service widget (#5380)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-06-05 03:29:43 +00:00
dependabot[bot]
fc99a0d1db Chore(deps-dev): Bump tailwind-scrollbar from 4.0.1 to 4.0.2 (#5366)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 00:18:49 +00:00
dependabot[bot]
417d69d39d Chore(deps): Bump luxon from 3.5.0 to 3.6.1 (#5365)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 00:01:52 +00:00
dependabot[bot]
8f4013012a Chore(deps-dev): Bump prettier from 3.5.2 to 3.5.3 (#5368)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 23:47:34 +00:00
shamoon
0c6c40dae7 Development: specify pnpm version (#5364) 2025-06-01 16:36:08 -07:00
shamoon
1a46baae69 Bump version to 1.3.2 2025-06-01 11:58:58 -07:00
shamoon
0fa3d7e57b Fix: fix gluetun port_forwarded detection (#5362) 2025-06-01 11:58:44 -07:00
shamoon
be7e1115cc Allow ci for all changes to allow requiring checks to pass 2025-06-01 10:33:22 -07:00
shamoon
dc0fede4d2 Bump version to 1.3.1 2025-06-01 09:48:02 -07:00
shamoon
7850fe4651 Fix: make gluetun port_forwarded opt-in (#5345) 2025-06-01 09:10:18 -07:00
shamoon
524cb7695c Enhancement: support breaking changes in wg-easy v15 (#5343) 2025-05-31 22:08:49 -07:00
shamoon
35be5559b3 Merge branch 'dev' 2025-05-31 18:51:54 -07:00
shamoon
75ff2e674f Bump version to 1.3.0 2025-05-31 18:51:22 -07:00
github-actions[bot]
edab958328 New Crowdin translations by GitHub Action (#5228)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-31 18:51:04 -07:00
Octavian Dinu
2334021da0 Documentation: fix port typo in docker.md (#5333) 2025-05-30 16:35:49 -07:00
shamoon
1079d33ad1 Update support template 2025-05-28 11:03:44 -07:00
Tim Englart
42c69db7da Fix: glances info widget system data out of bounds (#5316) 2025-05-24 07:59:07 -07:00
shamoon
27a392dcce Chore: improve PUID/PGID support (#5314) 2025-05-23 19:39:14 -07:00
shamoon
74c2a2462b Fix lint 2025-05-22 19:17:27 -07:00
Dmitry Chumak
0d47fa8215 Enhancement: Checkmk widget (#5301)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-22 10:07:53 -07:00
shamoon
ee07a7dcbe Fix: remove non-working pathPrefix option for docker connections 2025-05-22 09:45:18 -07:00
Florian Apolloner
6cf3abd45e Enhancement: Support more docker API connection options. (#5304) 2025-05-22 07:35:29 -07:00
shamoon
ea37ab2f78 Enhancement: support nested services via labels for mixed layout-only groups (#5295) 2025-05-20 23:29:22 -07:00
shamoon
564a0880b0 Chore: approve sharp build script 2025-05-20 19:31:45 -07:00
hank
f8768711da Fix: refresh beszel token if empty list is returned (#5292)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-20 17:40:59 -07:00
Ben Scholer
6abb3d8758 Documentation: fix typo in settings (#5287) 2025-05-18 10:36:56 -07:00
Marcin Grabda
3f160cc4ae Enhancement: support specifying protocol for Docker Socket Proxy (#5285)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-18 07:02:35 -07:00
shamoon
81547f8806 Chore: disable default provenance attestations to try and fix manifest issues
https://github.com/orgs/community/discussions/45969
2025-05-15 20:19:02 -07:00
Jasper
d5f66e12fc Enhancement: Add port_forwarded field to Gluetun widget (#2262) 2025-05-12 08:16:13 -07:00
shamoon
9c7e177b4f Documentation: fix references to common.json file 2025-05-09 00:56:41 -07:00
Adam
49ad01733c Documentation: fix jdownloader widget documentation (#5252) 2025-05-08 13:19:37 -07:00
Garrett
6c82883fa9 Enhancement: respect search engine order from config (#5250) 2025-05-08 00:40:51 -07:00
Matheus Vellone
3c6f99d5ae Chore: change to ical.js for ical parsing (#5241)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-07 08:20:04 -07:00
shamoon
b28cc0b7f6 Fix: ensure https protocol with docker tls (#5248) 2025-05-06 07:54:45 -07:00
InsertDisc
2509d8c235 Enhancement: add optional token parameter for gamedig (#5245)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-05 09:02:47 -07:00
Ryan
a0868e3201 Documentation: add data store option to PBS widget (#5243) 2025-05-03 15:02:29 -07:00
Zlendy
7e8752243c Feature: Jellystat widget (#5185)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-03 08:26:56 -07:00
Tersius Kuhne
41dc2e77cb Documentation: update Gateway API HttpRoute documentation (#5239)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-05-02 19:03:31 -07:00
dependabot[bot]
8b50296dad Chore(deps-dev): Bump eslint-plugin-prettier from 5.2.3 to 5.2.6 (#5232)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 21:45:20 +00:00
dependabot[bot]
61a669c85d Chore(deps): Bump next from 15.2.4 to 15.3.1 (#5231)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 14:44:41 -07:00
dependabot[bot]
af7803fd04 Chore(deps-dev): Bump eslint from 9.21.0 to 9.25.1 (#5230)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 14:43:39 -07:00
dependabot[bot]
937cecf24e Chore(deps): Bump recharts from 2.15.1 to 2.15.3 (#5234)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 14:42:27 -07:00
shamoon
c562016cce Merge branch 'dev' 2025-04-28 10:43:58 -07:00
shamoon
2376184b14 Bump version to 1.2.0 2025-04-28 10:43:35 -07:00
github-actions[bot]
7272823d20 New Crowdin translations by GitHub Action (#5092)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-28 10:43:35 -07:00
shamoon
3223b1fb87 Merge branch 'dev' 2025-04-28 08:24:26 -07:00
github-actions[bot]
38f60a7566 New Crowdin translations by GitHub Action (#5092)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-28 08:23:41 -07:00
shamoon
63e521ae93 Merge branch 'dev' 2025-04-28 08:21:29 -07:00
shamoon
cf54c7b824 Bump version to 1.1.2 2025-04-28 08:20:50 -07:00
choehn86
4a9ca62efd Enhancement: Add support for specifying a datastore to PBS widget (#4614)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-04-28 08:00:02 -07:00
Rayan Mestiri
a35da39c03 Enhancement: add label formatting for dynamic-list customapi widget (#5217) 2025-04-25 01:11:03 -07:00
xethlyx
d99c3cb691 Fix: kubernetes statistics not respecting selector (#5199) 2025-04-20 17:39:56 -07:00
Kevin Stone
1fe4f49771 Fix: Longhorn still showing Total despite total: false (#5200) 2025-04-20 17:39:25 -07:00
dependabot[bot]
0a1bf3b2be Chore(deps): Bump next from 15.2.3 to 15.2.4 (#5159)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-08 15:08:54 -07:00
shamoon
23e9982a7a Documentation: clarify unique subgroups requirement 2025-04-08 13:57:15 -07:00
shamoon
e2c997f29d Change: install iputils-ping inside docker image (#5153) 2025-04-07 23:59:22 -07:00
shamoon
ae9fbdcb8b Chore: change hoarder widget to karakeep (#5143) 2025-04-05 23:54:48 -07:00
FromTheCToTheG
a60dbb7abc Documentation: add info re proxmox backup server key (#5122)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-04-03 07:29:53 -07:00
shamoon
6597ec566b Fix translation issue 2025-04-01 09:52:33 -07:00
shamoon
52399e21e1 Fix depth issue with t 2025-04-01 09:48:28 -07:00
dependabot[bot]
dbc26e835c Chore(deps): Bump swr from 1.3.0 to 2.3.3 (#5111)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 09:36:44 -07:00
dependabot[bot]
a59ee5a605 Chore(deps-dev): Bump eslint-config-next from 15.1.7 to 15.2.4 (#5113)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 09:32:05 -07:00
dependabot[bot]
f46568ec2a Chore(deps-dev): Bump eslint-config-prettier from 10.0.2 to 10.1.1 (#5112)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 09:24:46 -07:00
dependabot[bot]
5e946ed2c2 Chore(deps-dev): Bump postcss from 8.5.2 to 8.5.3 (#5110)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 09:24:24 -07:00
dependabot[bot]
6741eb723d Chore(deps): Bump i18next from 21.10.0 to 24.2.3 (#5109)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 09:22:36 -07:00
RoboMagus
1666106dcd Chore: add more Docker Semver Tags (#5107)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-31 06:44:17 -07:00
shamoon
eda06965fa Chore: add organize imports to pre-commit (#5104) 2025-03-30 21:40:03 -07:00
shamoon
954ab54493 Speed up CI: Skip unnecessary build steps, optimize caching etc (#5098) 2025-03-30 08:52:23 -07:00
Chris
30cb893354 Fix: remove unneeded import from Hoarder widget.js (#5097) 2025-03-29 19:49:53 -07:00
shamoon
4567427b9c Enhancement: add shvl fallback for custom api dynamic list (#5091) 2025-03-28 16:32:56 -07:00
Matheus Vellone
ee7e8fab61 Fix: support shvl on customapi dynamic list target (#5081)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-28 16:29:23 -07:00
shamoon
313835c0e6 Bump version to 1.1.1 2025-03-27 20:20:02 -07:00
shamoon
999dade861 Fix: add fallback for shvl syntax (#5080) 2025-03-27 20:16:50 -07:00
shamoon
2cabe77b55 Fix: add fallback for shvl syntax 2025-03-27 20:15:39 -07:00
shamoon
0a50d5a6aa Merge branch 'main' into dev 2025-03-27 13:27:26 -07:00
shamoon
e19dcc2729 Only deploy docs from main branch 2025-03-27 13:27:20 -07:00
shamoon
cadf1433af Bump version to 1.1.0 2025-03-27 13:22:02 -07:00
shamoon
6bae078a8d Merge branch 'dev' 2025-03-27 13:21:45 -07:00
github-actions[bot]
77bbdc6a04 New Crowdin translations by GitHub Action (#5010)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-27 13:21:33 -07:00
shamoon
1f8fd1c69d Add install pnpm to source instructions 2025-03-23 07:11:20 -07:00
dependabot[bot]
5d557844cc Chore(deps): Bump next from 15.1.7 to 15.2.3 (#5055)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-22 07:49:16 -07:00
chiragkrishna
a4b07b91fe Enhancement: Add Repositories field to Gitea (#5053)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-22 07:45:27 -07:00
Chris
d853bbfe44 Feature: Slskd Service Widget (#5045)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-20 21:46:54 -07:00
IhatemyISP
7fd5e6ccb1 Tweak: change moonraker widget standby output (#4060)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-19 16:26:49 -07:00
shamoon
aed602ad70 Tweak: try to reduce rootless startup time (#5037) 2025-03-18 19:29:43 -07:00
shamoon
fa28a11658 Fix: include new backdrop-blur-xs option (#5030) 2025-03-17 23:30:07 -07:00
shamoon
a3b693e2b6 Support maxBookmarkGroupColumns too 2025-03-17 13:03:04 -07:00
shamoon
708c4e64d1 Tweak this 2025-03-17 12:47:34 -07:00
shamoon
11a6b5d0b8 Enhancement: support maximum group cols up 8 (#5022) 2025-03-17 12:32:09 -07:00
shamoon
ce0102eb6f Enhancement: support full width container (#5021) 2025-03-17 12:25:10 -07:00
shamoon
42f1ed3c47 Update customapi.md 2025-03-17 11:49:35 -07:00
shamoon
dca23e8547 Enhancement: support shvl syntax for customapi fields (#5020) 2025-03-17 11:47:55 -07:00
morliont
8d20f22932 Enhancement: support dynamic list rendering in custom api widget (#5012)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-17 11:30:01 -07:00
shamoon
071b5275bc Documentation: fix install page buttons 2025-03-17 11:19:27 -07:00
shamoon
de9c015f7f Fix: fix minecraft players after move to minecraftstatuspinger (#5017) 2025-03-17 07:24:12 -07:00
shamoon
b4dc53c7c0 Feature: allow disable ipv6 in proxy, refactor cacheFetch to use proxy (#5011) 2025-03-16 20:09:34 -07:00
shamoon
934ad3a6f1 Fix: remove medusa widget trailing slash (#5007) 2025-03-16 15:33:38 -07:00
shamoon
6fbe080b28 Bump version to 1.0.4 2025-03-16 14:13:12 -07:00
shamoon
4047f8d6e8 Merge branch 'dev' 2025-03-16 14:12:45 -07:00
github-actions[bot]
59cd5564f8 New Crowdin translations by GitHub Action (#4985)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-16 14:12:30 -07:00
shamoon
5f19e4af91 Fix: fix custom quicklaunch search without search widget (#5003) 2025-03-16 13:12:20 -07:00
shamoon
5ea46881ee Fix: re-add tailwind css safelist (#4999) 2025-03-16 08:32:27 -07:00
shamoon
9545757bb9 Fix: fix bookmark heights again (#4997) 2025-03-16 07:33:30 -07:00
shamoon
95507aab54 Change: re-enable k8s ingress by default (#4988) 2025-03-16 02:35:43 -07:00
shamoon
564dfb7ce3 Add k3d ingress setting and HOMEPAGE_ALLOWED_HOSTS 2025-03-15 21:05:11 -07:00
shamoon
7b72442114 Update index.md 2025-03-15 16:29:02 -07:00
shamoon
65370a7668 Fix: fix Kubernetes stats in v1.0.0 (#4984)
Co-authored-by: djeinstine <2105133+djeinstine@users.noreply.github.com>
2025-03-15 16:23:29 -07:00
shamoon
6e9339b14c Chore: update minecraftstatuspinger to 1.2.2 (#4982) 2025-03-15 15:30:21 -07:00
shamoon
241c786710 Merge branch 'main' into dev 2025-03-15 10:18:34 -07:00
shamoon
801ce479d8 Add links to docs 2025-03-15 10:18:26 -07:00
shamoon
16730ffec2 Merge branch 'main' into dev 2025-03-15 09:46:36 -07:00
shamoon
b35dd80e8c Improve docs 2025-03-15 09:46:23 -07:00
shamoon
82b159bf14 Improve docs 2025-03-15 09:30:10 -07:00
shamoon
6292a0709c Bump version to 1.0.3 2025-03-15 07:43:43 -07:00
shamoon
42af93bef3 Merge branch 'dev' 2025-03-15 07:43:30 -07:00
Xavier Alexander
964991781c Documentation: add HOMEPAGE_ALLOWED_HOSTS to k8s docs (#4969) 2025-03-15 07:40:26 -07:00
shamoon
607a14083e Fix: jellyfin handle empty episode numbers (#4970) 2025-03-15 07:38:35 -07:00
shamoon
133a0a6539 Fix this 2025-03-15 07:31:15 -07:00
shamoon
0d0f465e16 Update index.md 2025-03-15 07:16:42 -07:00
shamoon
16c1b2da9b Enhancement: allow disabling host header checking (#4967) 2025-03-15 07:14:41 -07:00
shamoon
4761a56b3d Remove reference to helm chart 2025-03-15 07:13:23 -07:00
shamoon
9d40b67d49 Change: prefer IPv4 in docker image (#4954) 2025-03-14 22:51:07 -07:00
shamoon
97f4bcbdb0 Documentation: note disable ipv6 2025-03-14 22:35:47 -07:00
brikim
ea1375e575 Fix: correct units for speedtest tracker API v2 (#4950)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-14 22:02:13 -07:00
shamoon
733a3140d1 Documentation: note komga api key 2025-03-14 21:16:20 -07:00
shamoon
b5ac617597 Fix: fix kavita API body with key (#4948) 2025-03-14 21:09:46 -07:00
shamoon
9b06212a92 Fix: wrapping in bookmarks (#4945) 2025-03-14 18:29:27 -07:00
shamoon
6b4182ab96 Merge branch 'dev' 2025-03-14 18:16:55 -07:00
shamoon
8656b8e2f1 Revert hostname change 2025-03-14 18:16:45 -07:00
shamoon
dd8e9270f2 bump version 2025-03-14 17:59:05 -07:00
shamoon
90dd8e5967 Update index.md 2025-03-14 16:59:52 -07:00
shamoon
6fca9e342d Bump version to 1.0.1 2025-03-14 15:42:56 -07:00
shamoon
66a8b1c21e Just remove hostname 2025-03-14 15:13:08 -07:00
shamoon
a0dc8c9ccb Fix: fix larger breakpoint (#4935) 2025-03-14 14:20:33 -07:00
shamoon
8190260400 Fix: fix plex total size with larger libraries (#4933) 2025-03-14 14:12:33 -07:00
shamoon
7ced73b206 Merge branch 'main' into dev 2025-03-14 12:49:46 -07:00
shamoon
a2f4dd289b Update README.md 2025-03-14 12:48:03 -07:00
shamoon
0c7cac74ea Update docker.md 2025-03-14 12:47:32 -07:00
shamoon
d81fcee31f Merge branch 'main' into dev 2025-03-14 12:31:20 -07:00
shamoon
f7889eab27 Clarify port 2025-03-14 12:31:10 -07:00
shamoon
91518d972d Update index.md 2025-03-14 12:30:22 -07:00
shamoon
a090f98fab Add HOMEPAGE_ALLOWED_HOSTS to readme 2025-03-14 12:30:22 -07:00
shamoon
5629440acf Fix: fix fiveColumns option (#4924) 2025-03-14 12:20:10 -07:00
shamoon
471800d5bc Update index.md 2025-03-14 12:18:57 -07:00
shamoon
6ab57b7b14 Update middleware.js 2025-03-14 11:58:44 -07:00
shamoon
f767ff047f Add HOMEPAGE_ALLOWED_HOSTS to readme 2025-03-14 11:23:52 -07:00
shamoon
26242d657d Bump version to 1.0.0 2025-03-14 09:00:34 -07:00
shamoon
3ff61cfad6 Merge branch 'dev' 2025-03-14 09:00:16 -07:00
github-actions[bot]
9c1ac747be New Crowdin translations by GitHub Action (#4599)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-14 08:45:52 -07:00
shamoon
859bd459a8 Feature: cache release data, allow disable release checking (#4917) 2025-03-14 08:34:59 -07:00
Chris
544b9aef2f Feature: Hoarder service widget (#4913) 2025-03-12 06:46:01 -07:00
shamoon
bea02fc8c7 Update Dockerfile 2025-03-11 13:56:20 -07:00
shamoon
1f282a1a93 Chore: migrate to pnpm only (#4907) 2025-03-11 09:41:25 -07:00
shamoon
bb5cb36491 Fix: fix another tailwind automatic error 2025-03-11 07:11:57 -07:00
Jason Sallis
9a6489c117 Documentation: correct documentation for multiple widgets in docker labels (#4766) 2025-03-11 00:59:24 -07:00
shamoon
955baf9cb1 Fix: better display tubearchivist error detail 2025-03-10 23:59:57 -07:00
shamoon
e9630afa30 Chore: add plex container size to requests (#4903) 2025-03-10 13:42:49 -07:00
shamoon
4c91dfa71b Enhancement: support automatic service discovery services with layout-only nesting (#4900) 2025-03-10 09:45:50 -07:00
shamoon
f33ff582fd Fix: fix incorrect backdrop-blur automatic change 2025-03-10 00:02:10 -07:00
Julian Nodorp
b8b5c1a4cb Fix: fix k8s get nodes error log (#4887) 2025-03-07 06:57:40 -08:00
shamoon
03cd98b1d6 Fix: use 'real_usage' for synology diskstation memory stats (#4880) 2025-03-05 09:43:23 -08:00
shamoon
f7def5c2ce Handle very long pihole session lengths 2025-03-04 18:39:53 -08:00
shamoon
d26ec27942 Enhancement: support komga API keys, breaking API changes (#4874) 2025-03-04 08:16:10 -08:00
shamoon
548b5f8081 Fix: fix pi-hole cache expiration 2025-03-03 23:21:42 -08:00
shamoon
b466be684f Fix: correct omada widget connectedGateways (#4872) 2025-03-03 17:57:01 -08:00
Arthur Leclerc
99cde187d8 Fix: return all http routes of a namespace (k8s) (#4865)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-02 22:36:16 -08:00
shamoon
d55a5e5efe Chore: upgrade to tailwind v4 (#4863) 2025-03-02 08:42:57 -08:00
Nicu Pavel
fdf405fe0a Feature: Add APC UPS widget (#4840)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-03-02 07:33:44 -08:00
dependabot[bot]
9b8dd94aae Chore(deps): Bump tough-cookie from 4.1.4 to 5.1.2 (#4857)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 11:26:46 -08:00
dependabot[bot]
8b1f1c391f Chore(deps-dev): Bump eslint from 9.20.1 to 9.21.0 (#4858)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 11:26:15 -08:00
shamoon
a8961c3345 Enhancement: support new unifi network api and api key (#4860) 2025-03-01 11:25:34 -08:00
dependabot[bot]
7f910814f8 Chore(deps-dev): Bump prettier from 3.5.1 to 3.5.2 (#4859)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 09:40:17 -08:00
dependabot[bot]
862b0e5821 Chore(deps-dev): Bump eslint-config-prettier from 9.1.0 to 10.0.2 (#4856)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 09:35:21 -08:00
dependabot[bot]
d682b6a4bf Chore(deps): Bump docker/setup-qemu-action from 3.5.0 to 3.6.0 (#4848)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 12:22:58 -08:00
Georges-Antoine Assi
bee16c7eb6 Documentation: remove auth info from romm widget (#4846) 2025-02-27 20:18:57 -08:00
shamoon
9097da2341 Update http.js 2025-02-27 16:50:25 -08:00
shamoon
58391ff33f Fix: subtract inactive_file from glances container memory usage (#4844) 2025-02-27 09:16:14 -08:00
dependabot[bot]
666d075ec4 Chore(deps): Bump docker/setup-qemu-action from 3.4.0 to 3.5.0 (#4836)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-26 09:07:06 -08:00
shamoon
7b7c7a5b80 Documentation: allowed hosts section 2025-02-21 20:29:52 -08:00
shamoon
1dd5a9e1b0 Enhancement: better handle recurring events poorly handled by ical library (#4807) 2025-02-20 11:29:43 -08:00
Brandon McFarlin
0fd4ac17cd Documentation: add auth documentation to PeaNUT (#4803) 2025-02-19 14:58:56 -08:00
shamoon
94738e2c0d Update reaction-comments.yml 2025-02-18 16:32:32 -08:00
shamoon
1c24bd7449 Chore: another big deps update (#4795) 2025-02-18 16:16:53 -08:00
dependabot[bot]
2881114816 Chore(deps): Bump jsonpath-plus from 10.2.0 to 10.3.0 (#4794)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-18 15:29:21 -08:00
shamoon
f1ec02fb6f Make heads up clearer 2025-02-18 10:19:18 -08:00
shamoon
68480a65db Enhancement: support API key for Kavita (#4784) 2025-02-18 00:29:36 -08:00
shamoon
63b9d395dd Update api-helpers.js 2025-02-17 21:47:55 -08:00
shamoon
a5bdfd92d7 Enhancement: improve try to prune trailing slashes (#4783) 2025-02-17 21:44:52 -08:00
shamoon
48e2c494eb Update index.md 2025-02-17 21:39:03 -08:00
shamoon
d95709de95 Merge branch 'main' into dev 2025-02-17 21:38:17 -08:00
Oleh Astappiev
cf90312089 Fixhancement: add an option to fritzbox widget to display IPv6 (#4778)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-16 17:10:16 -08:00
Jason Sallis
bcdd4a149b Documentation: correct documentation for multiple widgets in docker labels (#4766) 2025-02-15 09:27:04 -08:00
shamoon
96af6cf804 CI: Add back the PR exclusion for registry login 2025-02-15 09:27:04 -08:00
Dudley
b63d740ed1 Enhancement: support gamedig numplayers (#4760)
Co-Authored-By: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-15 09:27:04 -08:00
shamoon
fea4b27bb4 CI: Bump qemu action, move login earlier 2025-02-13 12:55:18 -08:00
shamoon
455103a9f1 Fix: correct k8s node response 2025-02-13 10:31:25 -08:00
Brett Dudo
277fbe8051 Fix: handle possible null reference in k8s gateway api (#4752)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-12 21:44:49 -08:00
shamoon
477392aa29 Documentation: add beszel superuser note 2025-02-12 16:10:19 -08:00
shamoon
e46377f461 Enhancement: better tz parsing of ical recurring events (#4749) 2025-02-12 07:38:36 -08:00
shamoon
f283b83e6e Update support.yml 2025-02-11 23:46:12 -08:00
shamoon
0a1265455b Update index.md 2025-02-11 23:40:36 -08:00
shamoon
05af70d11b [BREAKING] Enhancement: require host validation (#4744) 2025-02-11 21:30:00 -08:00
djeinstine
91d5fc8e42 Enhancement: support for Kubernetes gateway API (#4643)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
Co-authored-by: lyons <gittea.sand@gmail.com>
Co-authored-by: Brett Dudo <brett@dudo.io>
2025-02-11 18:57:22 -08:00
Randall Hand
2a95f88cdf Fix: Timezone-aware Date comparison for Calendar integration (#4742)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-11 18:52:32 -08:00
shamoon
0615799c6c Chore: upgrade kubernetes/client-node (#4715) 2025-02-06 16:12:42 -08:00
shamoon
839f6d4baf Enhancement: use datasets for truenas pools (#4716) 2025-02-06 16:12:09 -08:00
shamoon
cc6fe63d40 Fix nesting with unsorted groups (#4711) 2025-02-04 20:45:39 -08:00
shamoon
ae500fd983 Update getting-started.md 2025-02-04 09:36:41 -08:00
shamoon
873c265205 Enhancement: filter prometheus API endpoint for active only (#4701) 2025-02-03 08:56:40 -08:00
shamoon
07dff4c8a5 Enhancement: support speedtest v1.2 API (#4695) 2025-02-02 19:11:08 -08:00
Marc Zottner
cbacf458b2 Fix: correct package version number (#4691) 2025-02-02 08:05:25 -08:00
Amjad Alsharafi
cae304b7eb Feature: Firefly widget (#4683)
Signed-off-by: Amjad Alsharafi <26300843+Amjad50@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-01 19:40:21 -08:00
shamoon
e6a821ecc3 Bind all addreses in docker container 2025-01-27 10:50:44 -08:00
shamoon
49036a9738 Fix: fix semver detection bug 2025-01-27 00:23:20 -08:00
shamoon
0197b449ed [BREAKING] Chore: update to next v15 (#4661) 2025-01-26 00:20:41 -08:00
shamoon
dc3382447c Fix: fix overlap with glances charts in multi-widgets (#4653) 2025-01-24 16:53:14 -08:00
shamoon
6beaf665fb Development: pnpm lint on ci (#4646) 2025-01-23 21:38:23 -08:00
shamoon
b9622f75b0 Fix: generic proxy error data display 2025-01-21 07:13:12 -08:00
shamoon
cd8c7d9016 Documentation: add note about multiwidget with k8s 2025-01-20 21:25:45 -08:00
shamoon
9021182c2c Documentation: add note about ping on underlying host 2025-01-20 21:20:58 -08:00
shamoon
fe462a71d6 Fix: handle evcc breaking change (#4630) 2025-01-20 07:55:26 -08:00
Jesse Houston
1e556e105d Documentation: add note about clearing UniFi cache non-docker (#4585) 2025-01-08 15:42:38 -08:00
shamoon
b5f4daa8ef Fix: fix bing search logo (#4571) 2025-01-06 07:25:14 -08:00
shamoon
fd50241e2a Update errorboundry.jsx 2025-01-06 00:53:10 -08:00
Bjorn Lammers
6a0fbba407 Chore: migrate dashboard-icons to homarr-labs (#4564) 2025-01-05 13:45:15 -08:00
shamoon
2ee5fd123b code style 2025-01-05 07:58:28 -08:00
shamoon
86a13817df Merge branch 'main' into dev 2025-01-05 07:57:05 -08:00
Adi Vaknin
2f7d948a5c Fix: quick launch not showing nested services (#4561)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-05 07:56:12 -08:00
shamoon
1b79e51194 Update source.md 2025-01-04 22:13:28 -08:00
Martin Bjeldbak Madsen
2d98ac30f2 Documentation: update gluetun apikey config instructions (#4554)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-02 21:07:55 -08:00
shamoon
1a85175b15 Fix: toggle light / dark makes background white (#4553) 2025-01-02 19:13:14 -08:00
Peder Toftegaard Olsen
6f429a6a4b Enhancement: add duration format to customapi widget (#4549)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-02 19:11:33 -08:00
shamoon
3020a2d1fd Fix: better fs height (#4552) 2025-01-02 18:56:48 -08:00
shamoon
a6e85240c6 Update getting-started.md 2025-01-02 17:13:48 -08:00
shamoon
98e816204a Update getting-started.md 2025-01-02 17:13:36 -08:00
shamoon
a0b5ac318a Update PULL_REQUEST_TEMPLATE.md 2025-01-02 16:34:24 -08:00
shamoon
101461b7b5 Update getting-started.md 2025-01-02 16:26:15 -08:00
shamoon
ba6f50f21d Merge branch 'main' into dev 2025-01-02 16:26:01 -08:00
shamoon
dd3a229559 Update getting-started.md 2025-01-02 16:25:32 -08:00
dependabot[bot]
630d5024ac Chore(deps): Bump systeminformation from 5.23.8 to 5.24.3 (#4546)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 08:35:15 -08:00
dependabot[bot]
d239687e2e Chore(deps): Bump react-icons from 4.12.0 to 5.4.0 (#4536)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 08:34:05 -08:00
dependabot[bot]
81a3dfbfe4 Chore(deps-dev): Bump tailwindcss from 3.4.14 to 3.4.17 (#4537)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 08:33:37 -08:00
dependabot[bot]
034720f47a Chore(deps-dev): Bump eslint-plugin-react from 7.37.2 to 7.37.3 (#4534)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 08:33:23 -08:00
shamoon
0717607a97 Merge branch dev into main 2024-12-31 21:48:49 -08:00
github-actions[bot]
ee5442c15c New Crowdin translations by GitHub Action (#4506) 2024-12-31 21:48:12 -08:00
shamoon
b2158b0921 Fix: incorrect weekyear for events (#4519) 2024-12-30 11:26:04 -08:00
shamoon
a158866ca1 Feature: meta description setting (#4513) 2024-12-28 21:12:20 -08:00
shamoon
4f27ffbe2d Change: make region optional for gluetun api response (#4512) 2024-12-28 20:53:43 -08:00
shamoon
10bc8a15a9 Update support.yml 2024-12-28 16:50:23 -08:00
Per Mortensen
5d63b3d212 Fix: include all Beszel status localization strings (#4504) 2024-12-28 07:35:22 -08:00
shamoon
43decb0ed9 Fix: correct iconsOnly bookmark group spacing (#4502) 2024-12-27 16:11:47 -08:00
shamoon
e4d42b5393 FIx: glances containers header position (#4496) 2024-12-26 14:51:11 -08:00
shamoon
f717e59085 Enhancement: support 'nice name' for beszel system ID (#4495) 2024-12-26 11:07:33 -08:00
shamoon
fd05ae377c Enhancement: Better handle some beszel errors (#4493) 2024-12-25 12:17:10 -08:00
shamoon
d0937fe6a8 Updated requirements 2024-12-14 23:02:11 -08:00
456 changed files with 19750 additions and 22024 deletions

View File

@@ -1,3 +0,0 @@
{
"presets": ["next/babel"]
}

View File

@@ -16,11 +16,11 @@
**/compose*
**/Dockerfile*
**/node_modules
!.next/standalone/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
**/.next
README.md
config/
k3d/

View File

@@ -1,5 +1,9 @@
{
"extends": ["airbnb", "next/core-web-vitals", "prettier"],
"extends": [
"next/core-web-vitals",
"prettier",
"plugin:react-hooks/recommended"
],
"plugins": ["prettier"],
"rules": {
"import/no-cycle": [
@@ -27,5 +31,12 @@
"paths": ["src"]
}
}
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"modules": true
}
}
}

View File

@@ -4,7 +4,7 @@ body:
value: |
### ⚠️ Before opening a discussion:
- [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/).
- [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/) and include the output of all steps below.
- [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
id: description
@@ -51,6 +51,14 @@ body:
id: troubleshooting
attributes:
label: Troubleshooting
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
description: Please include output from your [troubleshooting steps](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
validations:
required: true
- type: markdown
attributes:
value: |
## ⚠️ STOP ⚠️
Before you submit this support request, please ensure you have entered your configuration files and actually followed the steps from the troubleshooting guide linked above *and posted the output*, if relevant. The troubleshooting steps often help to solve the problem or at least can help figure it out.
*Please remember that this project is maintained by regular people **just like you**, so if you don't take the time to fill out the requested information, don't expect a reply back.*

View File

@@ -6,6 +6,7 @@
==================== STOP ====
⚠️ Before opening this pull request please review the guidelines in the checklist below.
If this PR does not meet those guidelines it will not be accepted, and everyone will be sad.
-->
@@ -14,9 +15,6 @@ If this PR does not meet those guidelines it will not be accepted, and everyone
<!--
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/more/development/#service-widget-guidelines
*** 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.
-->
@@ -30,13 +28,13 @@ What type of change does your PR introduce to Homepage?
- [ ] New service widget
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] New feature or enhancement (non-breaking change which adds functionality)
- [ ] Documentation only
- [ ] Other (please explain)
## Checklist:
- [ ] If applicable, I have added corresponding documentation changes.
- [ ] 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).
- [ ] If applicable, I have reviewed the [feature / enhancement](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/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.

View File

@@ -1,9 +1,4 @@
name: Docker
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Docker CI
on:
schedule:
@@ -13,94 +8,61 @@ on:
- main
- feature/**
- dev
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
paths-ignore:
- 'docs/**'
- 'mkdocs.yml'
pull_request:
branches: [ "dev" ]
paths-ignore:
- 'docs/**'
- 'mkdocs.yml'
merge_group:
env:
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
jobs:
pre-commit:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
-
name: Checkout repository
- name: Checkout repository
uses: actions/checkout@v4
-
name: Install python
- name: Install python
uses: actions/setup-python@v5
with:
python-version: 3.x
-
name: Check files
- name: Check files
uses: pre-commit/action@v3.0.1
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Lint frontend
run: pnpm run lint
build:
name: Docker Build & Push
if: github.repository == 'gethomepage/homepage'
if: github.repository == 'gethomepage/homepage'
runs-on: self-hosted
needs:
- pre-commit
needs: [ pre-commit ]
permissions:
contents: read
packages: write
# This is used to complete the identity challenge
# with sigstore/fulcio when running outside of PRs.
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Setup QEMU
# https://github.com/marketplace/actions/docker-setup-buildx#with-qemu
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
# Workaround: https://github.com/docker/build-push-action/issues/461
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
# This step is being disabled because the runner is on a self-hosted machine
# where the cache will stick between runs.
# - name: Cache Docker layers
# uses: actions/cache@v3
# with:
# path: /tmp/.buildx-cache
# key: ${{ runner.os }}-buildx-${{ github.sha }}
# restore-keys: |
# ${{ runner.os }}-buildx-
# Login against a Docker registry except on PR
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Extract metadata (tags, labels) for Docker
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v5
@@ -108,11 +70,68 @@ jobs:
images: |
${{ env.IMAGE_NAME }}
ghcr.io/${{ env.IMAGE_NAME }}
tags: |
# Default tags
type=schedule,pattern=nightly
type=ref,event=branch
type=ref,event=tag
# Versioning tags
type=semver,pattern=v{{version}}
type=semver,pattern=v{{major}}.{{minor}}
type=semver,pattern=v{{major}}
flavor: |
latest=auto
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Next.js build cache
uses: actions/cache@v4
with:
path: .next/cache
key: nextjs-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('**/*.js', '**/*.jsx') }}
restore-keys: |
nextjs-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Build app
run: |
NEXT_PUBLIC_BUILDTIME="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}" \
NEXT_PUBLIC_VERSION="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}" \
NEXT_PUBLIC_REVISION="${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}" \
pnpm run build
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup QEMU
uses: docker/setup-qemu-action@v3.6.0
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v6
@@ -122,18 +141,16 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
CI=true
BUILDTIME=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
# https://github.com/docker/setup-qemu-action#about
# platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
platforms: linux/amd64,linux/arm64
provenance: false
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
# https://github.com/docker/build-push-action/issues/252 / https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache

View File

@@ -4,13 +4,7 @@ on:
push:
tags: ["v*.*.*"]
branches: ["main"]
paths:
- "docs/**"
- "mkdocs.yml"
pull_request:
paths:
- "docs/**"
- "mkdocs.yml"
merge_group:
workflow_dispatch:
@@ -32,7 +26,7 @@ jobs:
uses: pre-commit/action@v3.0.1
test:
name: Test Build
name: Test Build Docs
if: github.repository == 'gethomepage/homepage' && github.event_name == 'pull_request'
runs-on: ubuntu-latest
needs:
@@ -54,8 +48,8 @@ jobs:
- name: Test Docs Build
run: MKINSIDERS=false mkdocs build
deploy:
name: Build & Deploy
if: github.repository == 'gethomepage/homepage' && github.event_name != 'pull_request'
name: Build & Deploy Docs
if: github.repository == 'gethomepage/homepage' && github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- pre-commit

View File

@@ -5,8 +5,6 @@ on:
types: [created, edited]
pull_request_review_comment:
types: [created, edited]
schedule:
- cron: '0 0 * * *'
permissions:
actions: write

View File

@@ -9,11 +9,14 @@ repos:
- id: check-yaml
exclude: "(^mkdocs\\.yml$)"
- id: check-added-large-files
- repo: https://github.com/pre-commit/mirrors-prettier
rev: 'v3.0.3'
- repo: https://github.com/rbubley/mirrors-prettier
rev: 'v3.3.3'
hooks:
- id: prettier
types_or:
- javascript
- markdown
- jsx
additional_dependencies:
- prettier@3.3.3
- 'prettier-plugin-organize-imports@4.1.0'

View File

@@ -1 +0,0 @@
{}

5
.prettierrc.js Normal file
View File

@@ -0,0 +1,5 @@
const config = {
plugins: [require("prettier-plugin-organize-imports")],
};
module.exports = config;

32
.vscode/launch.json vendored
View File

@@ -1,19 +1,31 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Next.js: debug full stack",
"name": "Debug homepage",
"type": "node",
"request": "launch",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/next",
"serverReadyAction": {
"pattern": "started server on .+, url: (https?://.+)",
"uriFormat": "%s",
"action": "debugWithChrome"
"runtimeExecutable": "pnpm",
"runtimeArgs": ["run", "dev"],
"env": {
"LOG_LEVEL": "debug"
},
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"serverReadyAction":{
"pattern": ".*http://localhost:3000.*",
"action": "startDebugging",
"name": "Launch Chromium",
"killOnServerStop": true,
}
},
{
"name": "Launch Chromium",
"type": "chrome",
"request": "launch",
"url": "http://localhost:3000",
"urlFilter": "http://localhost:3000",
"webRoot": "${workspaceFolder}",
"trace": true
}
]
}

View File

@@ -63,7 +63,7 @@ The homepage team appreciates all effort and interest from the community in fili
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
- Discussions with a marked answer will be automatically closed.
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
- Feature requests that do not meet the following thresholds will be closed: 5 "up-votes" after 180 days of inactivity or 10 "up-votes" after 365 days.
- Feature requests that do not meet the following thresholds will be closed: 10 "up-votes" after 180 days of inactivity or 20 "up-votes" after 365 days.
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.

View File

@@ -1,66 +1,63 @@
# syntax = docker/dockerfile:latest
# Install dependencies only when needed
FROM docker.io/node:18-alpine AS deps
# =========================
# Builder Stage
# =========================
FROM node:22-slim AS builder
WORKDIR /app
COPY --link package.json pnpm-lock.yaml* ./
SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
RUN apk add --no-cache libc6-compat \
&& apk add --no-cache --virtual .gyp python3 make g++ \
&& npm install -g pnpm
RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store"
RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm install -r --offline
# Rebuild the source code only when needed
FROM docker.io/node:18-alpine AS builder
WORKDIR /app
# Setup
RUN mkdir config
COPY . .
ARG CI
ARG BUILDTIME
ARG VERSION
ARG REVISION
ENV CI=$CI
COPY --link --from=deps /app/node_modules ./node_modules/
COPY . .
# Install and build only outside CI
RUN if [ "$CI" != "true" ]; then \
corepack enable && corepack prepare pnpm@latest --activate && \
pnpm install --frozen-lockfile --prefer-offline && \
NEXT_TELEMETRY_DISABLED=1 \
NEXT_PUBLIC_BUILDTIME=$BUILDTIME \
NEXT_PUBLIC_VERSION=$VERSION \
NEXT_PUBLIC_REVISION=$REVISION \
pnpm run build; \
else \
echo "✅ Using prebuilt app from CI context"; \
fi
SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
RUN npm run telemetry \
&& mkdir config \
&& NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
# Production image, copy all the files and run next
FROM docker.io/node:18-alpine AS runner
LABEL org.opencontainers.image.title "Homepage"
LABEL org.opencontainers.image.description "A self-hosted services landing page, with docker and service integrations."
# =========================
# Runtime Stage
# =========================
FROM node:22-alpine AS runner
LABEL org.opencontainers.image.title="Homepage"
LABEL org.opencontainers.image.description="A self-hosted services landing page, with docker and service integrations."
LABEL org.opencontainers.image.url="https://github.com/gethomepage/homepage"
LABEL org.opencontainers.image.documentation='https://github.com/gethomepage/homepage/wiki'
LABEL org.opencontainers.image.source='https://github.com/gethomepage/homepage'
LABEL org.opencontainers.image.licenses='Apache-2.0'
ENV NODE_ENV production
# Setup
WORKDIR /app
# Copy files from context (this allows the files to copy before the builder stage is done).
COPY --link --chown=1000:1000 package.json next.config.js ./
# Copy some files from context
COPY --link --chown=1000:1000 /public ./public/
# Copy files from builder
COPY --link --from=builder --chown=1000:1000 /app/.next/standalone ./
COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static/
COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/
RUN apk add --no-cache su-exec
# Copy only necessary files from the build stage
COPY --link --from=builder --chown=1000:1000 /app/.next/standalone/ ./
COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static
ENV PORT 3000
RUN apk add --no-cache su-exec iputils-ping shadow
ENV NODE_ENV=production
ENV HOSTNAME=0.0.0.0
ENV PORT=3000
EXPOSE $PORT
HEALTHCHECK --interval=10s --timeout=3s --start-period=20s \
CMD wget --no-verbose --tries=1 --spider --no-check-certificate http://localhost:$PORT/api/healthcheck || exit 1
CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:$PORT/api/healthcheck || exit 1
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node", "server.js"]

View File

@@ -10,7 +10,7 @@ RUN <<EOF
apk add libc6-compat
apk add --virtual .gyp python3 make g++
npm install -g pnpm
npm install -g next
pnpm install -g next
EOF
RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store pnpm fetch | grep -v "cross-device link not permitted\|Falling back to copying packages from store"

View File

@@ -38,7 +38,7 @@ With features like quick search, bookmarks, weather support, a wide range of int
- **Fast** - The site is statically generated at build time for instant load times.
- **Secure** - All API requests to backend services are proxied, keeping your API keys hidden. Constantly reviewed for security by the community.
- **For Everyone** - Images built for AMD64, ARM64, ARMv7, and ARMv6.
- **For Everyone** - Images built for AMD64, ARM64.
- **Full i18n** - Support for over 40 languages.
- **Service & Web Bookmarks** - Add custom links to the homepage.
- **Docker Integration** - Container status and stats. Automatic service discovery via labels.
@@ -80,6 +80,7 @@ services:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
environment:
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
PUID: 1000 # optional, your user id
PGID: 1000 # optional, your group id
ports:
@@ -94,6 +95,7 @@ or docker run:
```bash
docker run --name homepage \
-e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev \
-e PUID=1000 \
-e PGID=1000 \
-p 3000:3000 \
@@ -111,7 +113,7 @@ First, clone the repository:
git clone https://github.com/gethomepage/homepage.git
```
Then install dependencies and build the production bundle (I'm using pnpm here, you can use npm or yarn if you like):
Then install dependencies and build the production bundle:
```bash
pnpm install

View File

@@ -12,10 +12,49 @@ export PGID=${PGID:-0}
export HOMEPAGE_BUILDTIME=$(date +%s)
# Set privileges for /app but only if pid 1 user is root and we are dropping privileges.
# If container is run as an unprivileged user, it means owner already handled ownership setup on their own.
# Running chown in that case (as non-root) will cause error
[ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ] && chown -R ${PUID}:${PGID} /app
# Check ownership before chown
if [ -e /app/config ]; then
CURRENT_UID=$(stat -c %u /app/config)
CURRENT_GID=$(stat -c %g /app/config)
if [ "$CURRENT_UID" -ne "$PUID" ] || [ "$CURRENT_GID" -ne "$PGID" ]; then
echo "Fixing ownership of /app/config"
if ! chown -R "$PUID:$PGID" /app/config 2>/dev/null; then
echo "Warning: Could not chown /app/config; continuing anyway"
fi
else
echo "/app/config already owned by correct UID/GID, skipping chown"
fi
else
echo "/app/config does not exist; skipping ownership check"
fi
# Ensure /app/config/logs exists and is owned
if [ -n "$PUID" ] && [ -n "$PGID" ]; then
mkdir -p /app/config/logs 2>/dev/null || true
if [ -d /app/config/logs ]; then
LOG_UID=$(stat -c %u /app/config/logs)
LOG_GID=$(stat -c %g /app/config/logs)
if [ "$LOG_UID" -ne "$PUID" ] || [ "$LOG_GID" -ne "$PGID" ]; then
echo "Fixing ownership of /app/config/logs"
chown -R "$PUID:$PGID" /app/config/logs 2>/dev/null || echo "Warning: Could not chown /app/config/logs"
fi
fi
fi
if [ -d /app/.next ]; then
CURRENT_UID=$(stat -c %u /app/.next)
CURRENT_GID=$(stat -c %g /app/.next)
if [ "$PUID" -ne 0 ] && ([ "$CURRENT_UID" -ne "$PUID" ] || [ "$CURRENT_GID" -ne "$PGID" ]); then
echo "Fixing ownership of /app/.next"
if ! chown -R "$PUID:$PGID" /app/.next 2>/dev/null; then
echo "Warning: Could not chown /app/.next; continuing anyway"
fi
else
echo "/app/.next already owned by correct UID/GID or running as root, skipping chown"
fi
fi
# Drop privileges (when asked to) if root, otherwise run as current user
if [ "$(id -u)" == "0" ] && [ "${PUID}" != "0" ]; then

View File

@@ -1,3 +0,0 @@
.md-typeset[data-page-id="landing"] .md-header-anchor {
display: none;
}

View File

@@ -20,7 +20,7 @@ Since Docker supports connecting with TLS and client certificate authentication,
```yaml
my-remote-docker:
host: 192.168.0.101
port: 275
port: 2375
tls:
keyFile: tls/key.pem
caFile: tls/ca.pem
@@ -66,6 +66,30 @@ my-docker:
port: 2375
```
Use `protocol: https` if youre connecting through a reverse proxy (e.g., Traefik) that serves the Docker API over HTTPS:
```yaml
my-docker:
host: dockerproxy
port: 443
protocol: https
```
!!! note
Note: This does not require TLS certificates if the proxy handles encryption. Do not use `protocol: https` unless youre sure the target host supports HTTPS.
You can also include `headers` for the connection, for example, if you are using a reverse proxy that requires authentication:
```yaml
my-docker:
host: dockerproxy
port: 443
protocol: https
headers:
Authorization: Basic <base64-encoded-credentials>
```
## Using Socket Directly
If you'd rather use the socket directly, first make sure that you're passing the local socket into the Docker container.
@@ -157,12 +181,12 @@ Multiple widgets can be specified by incrementing the index, e.g.
```yaml
labels: ...
- homepage.widget[0].type=emby
- homepage.widget[0].url=http://emby.home
- homepage.widget[0].key=yourembyapikeyhere
- homepage.widget[1].type=uptimekuma
- homepage.widget[1].url=http://uptimekuma.home
- homepage.widget[1].slug=youreventslughere
- homepage.widgets[0].type=emby
- homepage.widgets[0].url=http://emby.home
- homepage.widgets[0].key=yourembyapikeyhere
- homepage.widgets[1].type=uptimekuma
- homepage.widgets[1].url=http://uptimekuma.home
- homepage.widgets[1].slug=youreventslughere
```
You can add specify fields for e.g. the [CustomAPI](../widgets/services/customapi.md) widget by using array-style dot notation:

View File

@@ -8,6 +8,7 @@ The Kubernetes connectivity has the following requirements:
- Kubernetes 1.19+
- Metrics Service
- An Ingress controller
- Optionally: Gateway-API
The Kubernetes connection is configured in the `kubernetes.yaml` file. There are 3 modes to choose from:
@@ -19,6 +20,22 @@ The Kubernetes connection is configured in the `kubernetes.yaml` file. There are
mode: default
```
To configure Kubernetes gateway-api, ingress or ingressRoute service discovery, add one or multiple of the following settings.
Example settings:
```yaml
ingress: true # default, enable ingress only
```
or
```yaml
ingress: true # default, enable ingress
traefik: true # enable traefik ingressRoute
gateway: true # enable gateway-api
```
## Services
Once the Kubernetes connection is configured, individual services can be configured to pull statistics. Only CPU and Memory are currently supported.
@@ -142,6 +159,22 @@ spec:
If the `href` attribute is not present, Homepage will ignore the specific IngressRoute.
### Gateway API HttpRoute support
Homepage also features automatic service discovery for Gateway API. Service definitions are read by annotating the HttpRoute custom resource definition and are indentical to the Ingress example as defined in [Automatic Service Discovery](#automatic-service-discovery).
To enable Gateway API HttpRoute update `kubernetes.yaml` to include:
```
gateway: true # enable gateway-api
```
#### Using the unoffocial helm chart?
If you are using the unofficial helm chart ensure that the `ClusterRole` has required permissions for `gateway.networking.k8s.io`.
See [ClusterRole and ClusterRoleBinding](../installation/k8s.md#clusterrole-and-clusterrolebinding)
## Caveats
Similarly to Docker service discovery, there currently is no rigid ordering to discovered services and discovered services will be displayed above those specified in the `services.yaml`.

79
docs/configs/proxmox.md Normal file
View File

@@ -0,0 +1,79 @@
---
title: Proxmox
description: Proxmox Configuration
---
The Proxmox connection is configured in the `proxmox.yaml` file. See [Create token](#create-token) section below for details on how to generate the required API token.
```yaml
url: https://proxmox.host.or.ip:8006
token: username@pam!Token ID
secret: secret
```
## Services
Once the Proxmox connection is configured, individual services can be configured to pull statistics of VMs or LXCs. Only CPU and Memory are currently supported.
### Configuration Options
- `proxmoxNode`: The name of the Proxmox node where your VM/LXC is running
- `proxmoxVMID`: The ID of the Proxmox VM or LXC container
- `proxmoxType`: (Optional) The type of Proxmox virtual machine. Defaults to `qemu` for VMs, but can be set to `lxc` for LXC containers
#### Examples
For a QEMU VM (default):
```yaml
- HomeAssistant:
icon: home-assistant.png
href: http://homeassistant.local/
description: Home automation
proxmoxNode: pve
proxmoxVMID: 101
# proxmoxType: qemu # This is the default, so it can be omitted
```
For an LXC container:
```yaml
- Nginx:
icon: nginx.png
href: http://nginx.local/
description: Web server
proxmoxNode: pve
proxmoxVMID: 200
proxmoxType: lxc
```
## Create token
You will need to generate an API Token for new or an existing user. Here is an example of how to do this for a new user.
1. Navigate to the Proxmox portal, click on Datacenter
2. Expand Permissions, click on Groups
3. Click the Create button
4. Name the group something informative, like api-ro-users
5. Click on the Permissions "folder"
6. Click Add -> Group Permission
- Path: /
- Group: group from bullet 4 above
- Role: PVEAuditor
- Propagate: Checked
7. Expand Permissions, click on Users
8. Click the Add button
- User name: something informative like `api`
- Realm: Linux PAM standard authentication
- Group: group from bullet 4 above
9. Expand Permissions, click on API Tokens
10. Click the Add button
- User: user from bullet 8 above
- Token ID: something informative like the application or purpose like `homepage`
- Privilege Separation: Checked
11. Go back to the "Permissions" menu
12. Click Add -> API Token Permission
- Path: /
- API Token: select the Token ID created in Step 10
- Role: PVE Auditor
- Propagate: Checked

View File

@@ -97,6 +97,10 @@ Each service can have multiple widgets attached to it, for example:
slug: statuspageslug
```
!!! note
Multiple widgets per service are not yet supported with Kubernetes ingress annotations.
#### Field Visibility
Each widget can optionally provide a list of which fields should be visible via the `fields` widget property. If no fields are specified, then all fields will be displayed. The `fields` property must be a valid YAML array of strings. As an example, here is the entry for Sonarr showing only a couple of fields.
@@ -134,7 +138,7 @@ Services may have descriptions,
## Icons
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/homarr-labs/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png`, `.webp` or `.svg` to specify the desired version.
You can also specify prefixed icons from:
@@ -178,6 +182,10 @@ To use a local icon, first create a Docker mount to `/app/public/icons` and then
Services may have an optional `ping` property that allows you to monitor the availability of an external host. As of v0.8.0, the ping feature attempts to use a true (ICMP) ping command on the underlying host. Currently, only IPv4 is supported.
!!! note
Because ping uses the ping command on the underlying host, in some cases you may need to install e.g. the `iputils-ping` package on the host system.
```yaml
- Group A:
- Sonarr:

View File

@@ -13,6 +13,14 @@ You can customize the title of the page if you'd like.
title: My Awesome Homepage
```
## Description
You can customize the description of the page if you'd like.
```yaml
description: A description of my awesome homepage
```
## Start URL
You can customize the start_url as required for installable apps. The default is "/".
@@ -70,7 +78,7 @@ background:
You can apply a blur filter to the service & bookmark cards. Note this option is incompatible with the background blur, saturate and brightness filters.
```yaml
cardBlur: sm # sm, "", md, etc... see https://tailwindcss.com/docs/backdrop-blur
cardBlur: xs # xs, md, etc... see https://tailwindcss.com/docs/backdrop-blur
```
## Favicon
@@ -93,7 +101,7 @@ theme: dark # or light
## Color Palette
You can configured a fixed color palette (and disable the palette switcher) by passing the `color` option, like so:
You can configure a fixed color palette (and disable the palette switcher) by passing the `color` option, like so:
```yaml
color: slate
@@ -246,15 +254,29 @@ layout:
columns: 4
```
### Five Columns
### Full Width
You can add a fifth column to services (when `style: columns` which is default) by adding:
You can make homepage take up the entire window width by adding:
```yaml
fiveColumns: true
fullWidth: true
```
By default homepage will max out at 4 columns for services with `columns` style
### Maximum Group Columns
You can set the maximum number of columns of groups on larger screen sizes (note this is only for groups with the default `style: columns`, not groups with `stle: row`) by adding:
```yaml
maxGroupColumns: 8 # default is 4 for services, 6 for bookmarks, max 8
```
By default homepage will max out at 4 columns for services and 6 for bookmarks, thus the minimum for this setting is _5_. Of course, if you're setting this to higher numbers, you may want to consider enabling the [fullWidth](#full-width) option as well.
If you want to set the maximum columns for bookmark groups separately, you can do so by adding:
```yaml
maxBookmarkGroupColumns: 6 # default is 6, max 8
```
### Collapsible sections
@@ -439,7 +461,7 @@ quicklaunch:
suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q=
```
## Homepage Version
## Homepage Version & Update Checking
By default the release version is displayed at the bottom of the page. To hide this, use the `hideVersion` setting, like so:
@@ -447,6 +469,12 @@ By default the release version is displayed at the bottom of the page. To hide t
hideVersion: true
```
You can disable checking for new versions from GitHub (enabled by default) with:
```yaml
disableUpdateCheck: true
```
## Log Path
By default the homepage logfile is written to the a `logs` subdirectory of the `config` folder. In order to customize this path, you can set the `logpath` setting. A `logs` folder will be created in that location where the logfile will be written.

View File

@@ -15,6 +15,8 @@ services:
volumes:
- /path/to/config:/app/config # Make sure your local config directory exists
- /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations
environment:
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
```
### Running as non-root
@@ -36,6 +38,7 @@ services:
- /path/to/config:/app/config # Make sure your local config directory exists
- /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations, see alternative methods
environment:
HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
PUID: $PUID
PGID: $PGID
```
@@ -43,7 +46,7 @@ services:
### With Docker Run
```bash
docker run -p 3000:3000 -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest
docker run -p 3000:3000 -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/gethomepage/homepage:latest
```
### Using Environment Secrets

View File

@@ -4,27 +4,37 @@ description: Docs intro
icon: simple/docker
---
<p>
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>
!!! warning
!!! info
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.
<br>
<div class="grid cards" style="margin: 0 auto;" markdown>
:simple-docker: [&nbsp; Install on Docker :octicons-arrow-right-24:](docker.md)
[:simple-docker: &nbsp; Install on Docker :octicons-arrow-right-24:](docker.md)
{ .card }
:simple-kubernetes: [&nbsp; Install on Kubernetes :octicons-arrow-right-24:](k8s.md)
[:simple-kubernetes: &nbsp; Install on Kubernetes :octicons-arrow-right-24:](k8s.md)
{ .card }
:simple-unraid: [&nbsp; Install on UNRAID :octicons-arrow-right-24:](unraid.md)
[:simple-unraid: &nbsp; Install on UNRAID :octicons-arrow-right-24:](unraid.md)
{ .card }
:simple-nextdotjs: [&nbsp; Building from source :octicons-arrow-right-24:](source.md)
[:simple-nextdotjs: &nbsp; Building from source :octicons-arrow-right-24:](source.md)
{ .card }
</div>
### `HOMEPAGE_ALLOWED_HOSTS`
As of v1.0 there is one required environment variable to access homepage via a URL other than `localhost`, <code>HOMEPAGE_ALLOWED_HOSTS</code>. The setting helps prevent certain kinds of attacks when retrieving data from the homepage API proxy.
The value is a comma-separated (no spaces) list of allowed hosts (sometimes with the port) that can host your homepage install. See the [docker](docker.md), [kubernetes](k8s.md) and [source](source.md) installation pages for more information about where / how to set the variable.
`localhost:3000` and `127.0.0.1:3000` are always included, but you can add a domain or IP address to this list to allow that host such as `HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev,192.168.1.2:1234`, etc.
If you are seeing errors about host validation, check the homepage logs and ensure that the host exactly as output in the logs is in the `HOMEPAGE_ALLOWED_HOSTS` list.
This can be disabled by setting `HOMEPAGE_ALLOWED_HOSTS` to `*` but this is not recommended.

View File

@@ -3,85 +3,6 @@ title: Kubernetes Installation
description: Install on Kubernetes
---
## Install with Helm
There is an [unofficial helm chart](https://github.com/jameswynn/helm-charts/tree/main/charts/homepage) that creates all the necessary manifests, including the service account and RBAC entities necessary for service discovery.
```sh
helm repo add jameswynn https://jameswynn.github.io/helm-charts
helm install homepage jameswynn/homepage -f values.yaml
```
The helm chart allows for all the configurations to be inlined directly in your `values.yaml`:
```yaml
config:
bookmarks:
- Developer:
- Github:
- abbr: GH
href: https://github.com/
services:
- My First Group:
- My First Service:
href: http://localhost/
description: Homepage is awesome
- My Second Group:
- My Second Service:
href: http://localhost/
description: Homepage is the best
- My Third Group:
- My Third Service:
href: http://localhost/
description: Homepage is 😎
widgets:
# show the kubernetes widget, with the cluster summary and individual nodes
- kubernetes:
cluster:
show: true
cpu: true
memory: true
showLabel: true
label: "cluster"
nodes:
show: true
cpu: true
memory: true
showLabel: true
- search:
provider: duckduckgo
target: _blank
kubernetes:
mode: cluster
settings:
# The service account is necessary to allow discovery of other services
serviceAccount:
create: true
name: homepage
# This enables the service account to access the necessary resources
enableRbac: true
ingress:
main:
enabled: true
annotations:
# Example annotations to add Homepage to your Homepage!
gethomepage.dev/enabled: "true"
gethomepage.dev/name: "Homepage"
gethomepage.dev/description: "Dynamically Detected Homepage"
gethomepage.dev/group: "Dynamic"
gethomepage.dev/icon: "homepage.png"
hosts:
- host: homepage.example.com
paths:
- path: /
pathType: Prefix
```
## Install with Kubernetes Manifests
If you don't want to use the unofficial Helm chart, you can also create your own Kubernetes manifest(s) and apply them with `kubectl apply -f filename.yaml`.
@@ -216,6 +137,14 @@ rules:
verbs:
- get
- list
- apiGroups:
- gateway.networking.k8s.io
resources:
- httproutes
- gateways
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
@@ -294,6 +223,9 @@ spec:
- name: homepage
image: "ghcr.io/gethomepage/homepage:latest"
imagePullPolicy: Always
env:
- name: HOMEPAGE_ALLOWED_HOSTS
value: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
ports:
- name: http
containerPort: 3000

View File

@@ -9,7 +9,13 @@ First, clone the repository:
git clone https://github.com/gethomepage/homepage.git
```
Then install dependencies and build the production bundle (I'm using pnpm here, you can use npm or yarn if you like):
If `pnpm` is not installed, install it:
```bash
npm install -g pnpm
```
Then install dependencies and build the production bundle:
```bash
pnpm install
@@ -21,5 +27,9 @@ If this is your first time starting, copy the `src/skeleton` directory to `confi
Finally, run the server:
```bash
pnpm start
HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:1234 pnpm start
```
When updating homepage versions you will need to re-build the static files i.e. repeat the process above.
See [HOMEPAGE_ALLOWED_HOSTS](index.md#homepage_allowed_hosts) for more information on this environment variable.

View File

@@ -286,3 +286,13 @@ body[data-md-color-scheme="default"] {
.md-tabs__link {
transform: translateZ(0);
}
.grid.cards .card {
padding: 0;
}
.grid.cards .card a {
display: block;
padding: 0.8rem;
text-decoration: none;
}

View File

@@ -12,14 +12,17 @@ hide:
- Check config/logs/homepage.log, on docker simply e.g. `docker logs homepage`. This may provide some insight into the reason for an error.
- Check the browser error console, this can also sometimes provide useful information.
- Consider setting the `ENV` variable `LOG_LEVEL` to `debug`.
- If certain widgets are failing when connecting to public APIs, consider [disabling IPv6](#disabling-ipv6).
## Service Widget Errors
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 check:
1. **URLs should not end with a / or other API path. Each widget will handle the path on its own.**. Including a trailing slash can result in an error.
1. URLs should not end with a / or other API path. Each widget will handle the path on its own.
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. All services with a widget require a unique name as well as a unique group (and all subgroups) name.
3. 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.:
```
docker exec homepage ping SERVICEIPORDOMAIN
@@ -27,7 +30,7 @@ All service widgets work essentially the same, that is, homepage makes a proxied
If your homepage install (container) cannot reach the service then you need to figure out why, for example in Docker this can mean putting the two containers on the same network, checking firewall issues, etc.
3. If you have verified that homepage can in fact reach the service then you can also check the API output using e.g. `curl`, which is often helpful if you do need to file a bug report. Again, depending on your networking setup this may need to be run from _inside the container_ as IP / hostname resolution can differ inside vs outside.
4. If you have verified that homepage can in fact reach the service then you can also check the API output using e.g. `curl`, which is often helpful if you do need to file a bug report. Again, depending on your networking setup this may need to be run from _inside the container_ as IP / hostname resolution can differ inside vs outside.
!!! note
@@ -64,3 +67,17 @@ All service widgets work essentially the same, that is, homepage makes a proxied
## Missing custom icons
If, after correctly adding and mapping your custom icons via the [Icons](../configs/services.md#icons) instructions, you are still unable to see your icons please try recreating your container.
## Disabling IPv6
If you are having issues with certain widgets that are unable to reach public APIs (e.g. weather), in certain setups you may need to disable IPv6. You can set the environment variable `HOMEPAGE_PROXY_DISABLE_IPV6` to `true` to disable IPv6 for the homepage proxy.
Alternatively, you can use the `sysctls` option in your docker-compose file to disable IPv6 for the homepage container completely:
```yaml
services:
homepage:
...
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
```

View File

@@ -46,9 +46,9 @@ See the [pre-commit documentation](https://pre-commit.com/#install) to get start
In general, homepage is meant to be a dashboard for 'self-hosted' services and we believe it is a small way we can help showcase this kind of software. While exceptions are made, mostly when there is no viable
self-hosted / open-source alternative, we ask that any widgets, etc. are developed primarily for a self-hosted tool.
## New Feature Guidelines
## New Feature or Enhancement Guidelines {#new-feature-guidelines}
- New features should 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.
- New features or enhancements, **no matter how small**, must be linked to an existing feature request with some comments or 'up-votes' that demonstrate community interest. 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 you may want to open a discussion first.
## Service Widget Guidelines

View File

@@ -225,20 +225,8 @@ const widgetExample = {
#### `method`
The `method` property is a string that represents the HTTP method that should be used to make the API request. The default value is `GET`.
```js
const widgetExample = {
api: "{url}/api/{endpoint}",
mappings: {
// `/api/stats`
stats: {
endpoint: "stats",
method: "POST",
},
},
};
```
The `method` represents the HTTP method that should be used to make the API request. The default value is `GET`. Note that `POST` requests are not allowed via the
widget API and require the use of a custom proxy.
#### `headers`
@@ -251,7 +239,6 @@ const widgetExample = {
// `/api/stats`
stats: {
endpoint: "stats",
method: "POST",
headers: {
"Content-Type": "application/json",
},
@@ -271,7 +258,6 @@ const widgetExample = {
// `/api/graphql`
stats: {
endpoint: "graphql",
method: "POST",
body: {
query: `
query {

View File

@@ -34,7 +34,7 @@ Homepage uses the [next-i18next](https://github.com/i18next/next-i18next) librar
Homepage uses translated and localized strings for **all text and numerical content** in widgets. English is the default language, and other languages can be added via [Crowdin](https://crowdin.com/project/gethomepage). To add the English translations for your widget, follow these steps:
Open the `public/locales/en/common.js` file.
Open the `public/locales/en/common.json` file.
Add a new object for your widget to the bottom of the list, like this:

View File

@@ -150,7 +150,7 @@ This will render the widget with placeholders for the data, i.e., a skeleton vie
!!! tip "Translation Tips"
The `label` prop in the `Block` component corresponds to the translation key we defined earlier in the `common.js` file. All text and numerical content should be translated.
The `label` prop in the `Block` component corresponds to the translation key we defined earlier in the `common.json` file. All text and numerical content should be translated.
---

View File

@@ -22,9 +22,8 @@ An optional 'site' parameter can be supplied, if it is not the widget will use t
```yaml
- unifi_console:
url: https://unifi.host.or.ip:port
site: Site Name # optional
username: user
password: pass
site: Site Name # optional
key: unifiapikey # required if using API key instead of username/password
```
_Added in v0.4.18, updated in 0.6.7_

View File

@@ -0,0 +1,16 @@
---
title: APC UPS Monitoring
description: Lightweight monitoring widget for APC UPSs using apcupsd daemon
---
This widget extracts UPS information from an apcupsd daemon.
Only works for [APC/Schneider](https://www.se.com/us/en/product-range/61915-smartups/#products) UPS products.
[!NOTE]
By default apcupsd daemon is bound to 127.0.0.1. Edit `/etc/apcupsd.conf` and change `NISIP` to an IP accessible from your homepage docker (usually your internal LAN interface).
```yaml
widget:
type: apcups
url: tcp://your.acpupsd.host:3551
```

View File

@@ -7,7 +7,9 @@ Learn more about [Beszel](https://github.com/henrygd/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.
The `systemID` in the `id` field on the collections page of Beszel.
The `systemID` is the `id` field on the collections page of Beszel under the PocketBase admin panel. You can also use the 'nice name' from the Beszel UI.
A "superuser" is currently required to access the data from the Beszel API.
Allowed fields for 'overview' mode: `["systems", "up"]`
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`

View File

@@ -22,6 +22,7 @@ widget:
service_group: Media # group name where widget exists
service_name: Sonarr # service name for that widget
color: teal # optional - defaults to pre-defined color for the service (teal for sonarr)
baseUrl: https://sonarr.domain.url # optional - adds links to sonarr/radarr pages
params: # optional - additional params for the service
unmonitored: true # optional - defaults to false, used with *arr stack
- type: ical # Show calendar events from another service

View File

@@ -0,0 +1,17 @@
---
title: Checkmk
description: Checkmk Widget Configuration
---
Learn more about [Checkmk](https://github.com/Checkmk/checkmk).
To setup authentication, follow the official [Checkmk API](https://docs.checkmk.com/latest/en/rest_api.html?lquery=api#bearerauth) documentation.
```yaml
widget:
type: checkmk
url: http://checkmk.host.or.ip:port
site: your-site-name-cla-by-default
username: username
password: password
```

View File

@@ -19,27 +19,22 @@ widget:
requestBody: # optional, can be string or object, see below
display: # optional, default to block, see below
mappings:
- field: key # needs to be YAML string or object
- field: key
label: Field 1
format: text # optional - defaults to text
- field: # needs to be YAML string or object
path:
to: key2
- field: path.to.key2
format: number # optional - defaults to text
label: Field 2
- field: # needs to be YAML string or object
path:
to:
another: key3
- field: path.to.another.key3
label: Field 3
format: percent # optional - defaults to text
- field: key # needs to be YAML string or object
- field: key
label: Field 4
format: date # optional - defaults to text
locale: nl # optional
dateStyle: long # optional - defaults to "long". Allowed values: `["full", "long", "medium", "short"]`.
timeStyle: medium # optional - Allowed values: `["full", "long", "medium", "short"]`.
- field: key # needs to be YAML string or object
- field: key
label: Field 5
format: relativeDate # optional - defaults to text
locale: nl # optional
@@ -49,9 +44,7 @@ widget:
label: Field 6
format: text
additionalField: # optional
field:
hourly:
time: other key
field: hourly.time.key
color: theme # optional - defaults to "". Allowed values: `["theme", "adaptive", "black", "white"]`.
format: date # optional
- field: key
@@ -62,10 +55,12 @@ widget:
format: size
```
Supported formats for the values are `text`, `number`, `float`, `percent`, `bytes`, `bitrate`, `size`, `date` and `relativeDate`.
Supported formats for the values are `text`, `number`, `float`, `percent`, `duration`, `bytes`, `bitrate`, `size`, `date` and `relativeDate`.
The `dateStyle` and `timeStyle` options of the `date` format are passed directly to [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat) and the `style` and `numeric` options of `relativeDate` are passed to [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).
The `duration` format expects the duration to be specified in seconds. The `scale` transformation tool can be used if a conversion is required.
The `size` format will return the length of the array or string, or the number of keys in an object. This is then formatted as `number`.
## Example
@@ -101,9 +96,16 @@ mappings:
label: Name
- field: status # Alive
label: Status
- field:
origin: name # Earth (C-137)
- field: origin.name # Earth (C-137)
label: Origin
- field: locations.1.name # Citadel of Ricks
label: Location
```
Note that older versions of the widget accepted fields as a yaml object, which is still supported. E.g.:
```yaml
mappings:
- field:
locations:
1: name # Citadel of Ricks
@@ -136,7 +138,15 @@ You can manipulate data with the following tools `remap`, `scale`, `prefix` and
prefix: "$"
```
## List View
## Display Options
The widget supports different display modes that can be set using the `display` property.
### Block View (Default)
The default display mode is `block`, which shows fields in a block format.
### List View
You can change the default block view to a list view by setting the `display` option to `list`.
@@ -160,13 +170,54 @@ The list view can optionally display an additional field next to the primary fie
- any: true # will map all other values
to: Unknown
additionalField:
field:
hourly:
time: key
field: hourly.time.key
color: theme
format: date
```
### Dynamic List View
To display a list of items from an array in the API response, set the `display` property to `dynamic-list` and configure the `mappings` object with the following properties:
```yaml
widget:
type: customapi
url: https://example.com/api/servers
display: dynamic-list
mappings:
items: data # optional, the path to the array in the API response. Omit this option if the array is at the root level
name: id # required, field in each item to use as the item name (left side)
label: ip_address # required, field in each item to use as the item label (right side)
limit: 5 # optional, limit the number of items to display
format: text # optional - format of the label field
target: https://example.com/server/{id} # optional, makes items clickable with template support
```
This configuration would work with an API that returns a response like:
```json
{
"data": [
{ "id": "server1", "name": "Server 1", "ip_address": "192.168.0.1" },
{ "id": "server2", "name": "Server 2", "ip_address": "192.168.0.2" }
]
}
```
The widget would display a list with two items:
- "Server 1" on the left and "192.168.0.1" on the right, clickable to "https://example.com/server/server1"
- "Server 2" on the left and "192.168.0.2" on the right, clickable to "https://example.com/server/server2"
For nested fields in the items, you can use dot notation:
```yaml
mappings:
items: data.results.servers
name: details.id
label: details.name
```
## Custom Headers
Pass custom headers using the `headers` option, for example:

View File

@@ -18,7 +18,7 @@ To access these system metrics you need to connect to the DiskStation (`DSM`) wi
3. Under the `User Groups` tab of the user config dialogue check the box for `Administrators`.
4. On the `Permissions` tab check the top box for `No Access`, effectively prohibiting the user from accessing anything in the shared folders.
5. Under `Applications` check the box next to `Deny` in the header to explicitly prohibit login to all applications.
6. Now _only_ allow login to the `DSM` application, either by
6. Now _only_ allow login to the `DSM` and `Download Station` applications, either by
- unchecking `Deny` in the respective row, or (if inheriting permission doesn't work because of other group settings)
- checking `Allow` for this app, or
- checking `By IP` for this app to limit the source of login attempts to one or more IP addresses/subnets.

View File

@@ -17,6 +17,7 @@ widget:
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
enableUser: true # optional, defaults to false
enableMediaControl: false # optional, defaults to true
showEpisodeNumber: true # optional, defaults to false
expandOneStreamToTwoRows: false # optional, defaults to true
```

View File

@@ -0,0 +1,19 @@
---
title: Filebrowser
description: Filebrowser Widget Configuration
---
Learn more about [Filebrowser](https://filebrowser.org).
If you are using [Proxy header authentication](https://filebrowser.org/configuration/authentication-method#proxy-header) you have to set `authHeader` and `username`.
Allowed fields: `["available", "used", "total"]`.
```yaml
widget:
type: filebrowser
url: http://filebrowserhostorip:port
username: username
password: password
authHeader: X-My-Header # If using Proxy header authentication
```

View File

@@ -0,0 +1,17 @@
---
title: Firefly III
description: Firefly III Widget Configuration
---
Learn more about [Firefly III](https://www.firefly-iii.org/).
Find your API key under `Options > Profile > OAuth > Personal Access Tokens`.
Allowed fields: `["networth" ,"budget"]`.
```yaml
widget:
type: firefly
url: https://firefly.host.or.ip
key: personalaccesstoken.personalaccesstoken.personalaccesstoken
```

View File

@@ -13,7 +13,7 @@ Home Network > Network > Network Settings > Access Settings in the Home Network
Credentials are not needed and, as such, you may want to consider using `http` instead of `https` as those requests are significantly faster.
Allowed fields (limited to a max of 4): `["connectionStatus", "uptime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress"]`.
Allowed fields (limited to a max of 4): `["connectionStatus", "uptime", "maxDown", "maxUp", "down", "up", "received", "sent", "externalIPAddress", "externalIPv6Address", "externalIPv6Prefix"]`.
```yaml
widget:

View File

@@ -14,4 +14,5 @@ widget:
type: gamedig
serverType: csgo # see https://github.com/gamedig/node-gamedig#games-list
url: udp://server.host.or.ip:port
gameToken: # optional, a token used by gamedig with certain games
```

View File

@@ -7,7 +7,7 @@ Learn more about [Gitea](https://gitea.com).
API token requires `notifications`, `repository` and `issue` permissions. See the [gitea documentation](https://docs.gitea.com/development/api-usage#generating-and-listing-api-tokens) for details on generating tokens.
Allowed fields: `["notifications", "issues", "pulls"]`.
Allowed fields: `["repositories", "notifications", "issues", "pulls"]`.
```yaml
widget:

View File

@@ -9,9 +9,10 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun).
Requires [HTTP control server options](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md) to be enabled. By default this runs on port `8000`.
Allowed fields: `["public_ip", "region", "country"]`.
Allowed fields: `["public_ip", "region", "country", "port_forwarded"]`.
Default 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).
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication). Note that to use the api key method, you must add the route `GET /v1/publicip/ip` to the `routes` array in your Gluetun config.toml. Similarly, if you want to include the `port_forwarded` field, you must add the route `GET /v1/openvpn/portforwarded` to your Gluetun config.toml.
```yaml
widget:

View File

@@ -5,11 +5,18 @@ description: Grafana Widget Configuration
Learn more about [Grafana](https://github.com/grafana/grafana).
| Grafana Version | Homepage Widget Version |
| --------------- | ----------------------- |
| <= v10.4 | 1 (default) |
| > v10.4 | 2 |
Allowed fields: `["dashboards", "datasources", "totalalerts", "alertstriggered"]`.
```yaml
widget:
type: grafana
version: 2 # optional, default is 1
alerts: alertmanager # optional, default is grafana
url: http://grafana.host.or.ip:port
username: username
password: password

View File

@@ -14,8 +14,6 @@ Find your API key under `Account Settings > API Keys`.
Allowed fields: `["users" ,"photos", "videos", "storage"]`.
Note that API key must be from admin user.
```yaml
widget:
type: immich

View File

@@ -8,6 +8,7 @@ search:
You can also find a list of all available service widgets in the sidebar navigation.
- [Adguard Home](adguard-home.md)
- [APC UPS](apcups.md)
- [ArgoCD](argocd.md)
- [Atsumeru](atsumeru.md)
- [Audiobookshelf](audiobookshelf.md)
@@ -21,6 +22,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [Calibre-Web](calibre-web.md)
- [ChangeDetection.io](changedetectionio.md)
- [Channels DVR Server](channelsdvrserver.md)
- [Checkmk](checkmk.md)
- [Cloudflared](cloudflared.md)
- [Coin Market Cap](coin-market-cap.md)
- [CrowdSec](crowdsec.md)
@@ -32,7 +34,9 @@ You can also find a list of all available service widgets in the sidebar navigat
- [Emby](emby.md)
- [ESPHome](esphome.md)
- [EVCC](evcc.md)
- [Filebrowser](filebrowser.md)
- [Fileflows](fileflows.md)
- [Firefly III](firefly.md)
- [Flood](flood.md)
- [FreshRSS](freshrss.md)
- [Frigate](frigate.md)
@@ -49,6 +53,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [HDHomeRun](hdhomerun.md)
- [Headscale](headscale.md)
- [Healthchecks](healthchecks.md)
- [Karakeep](karakeep.md)
- [Home Assistant](homeassistant.md)
- [HomeBox](homebox.md)
- [Homebridge](homebridge.md)
@@ -58,8 +63,10 @@ You can also find a list of all available service widgets in the sidebar navigat
- [JDownloader](jdownloader.md)
- [Jellyfin](jellyfin.md)
- [Jellyseerr](jellyseerr.md)
- [Jellystat](jellystat.md)
- [Kavita](kavita.md)
- [Komga](komga.md)
- [Komodo](komodo.md)
- [Kopia](kopia.md)
- [Lidarr](lidarr.md)
- [Linkwarden](linkwarden.md)
@@ -114,6 +121,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [ruTorrent](rutorrent.md)
- [SABnzbd](sabnzbd.md)
- [Scrutiny](scrutiny.md)
- [Slskd](slskd.md)
- [Sonarr](sonarr.md)
- [Speedtest Tracker](speedtest-tracker.md)
- [Stash](stash.md)
@@ -126,6 +134,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [TDarr](tdarr.md)
- [Traefik](traefik.md)
- [Transmission](transmission.md)
- [Trilium](trilium.md)
- [TrueNAS](truenas.md)
- [TubeArchivist](tubearchivist.md)
- [UniFi Controller](unifi-controller.md)
@@ -134,6 +143,7 @@ You can also find a list of all available service widgets in the sidebar navigat
- [UptimeRobot](uptimerobot.md)
- [UrBackup](urbackup.md)
- [Vikunja](vikunja.md)
- [Wallos](wallos.md)
- [Watchtower](watchtower.md)
- [WGEasy](wgeasy.md)
- [WhatsUpDocker](whatsupdocker.md)

View File

@@ -1,6 +1,6 @@
---
title: JDownloader
description: NextPVR Widget Configuration
description: JDownloader Widget Configuration
---
Learn more about [JDownloader](https://jdownloader.org/).

View File

@@ -17,6 +17,7 @@ widget:
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
enableUser: true # optional, defaults to false
enableMediaControl: false # optional, defaults to true
showEpisodeNumber: true # optional, defaults to false
expandOneStreamToTwoRows: false # optional, defaults to true
```

View File

@@ -0,0 +1,18 @@
---
title: Jellystat
description: Jellystat Widget Configuration
---
Learn more about [Jellystat](https://github.com/CyferShepard/Jellystat). The widget supports (at least) Jellystat version 1.1.6
You can create an API key from inside Jellystat at `Settings > API Key`.
Allowed fields: `["songs", "movies", "episodes", "other"]`.
```yaml
widget:
type: jellystat
url: http://jellystat.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
days: 30 # optional, defaults to 30
```

View File

@@ -0,0 +1,17 @@
---
title: Karakeep
description: Karakeep Widget Configuration
---
Learn more about [Karakeep](https://karakeep.app) (formerly known as Hoarder).
Generate an API key for your user at `User Settings > API Keys`.
Allowed fields: `["bookmarks", "favorites", "archived", "highlights", "lists", "tags"]` (maximum of 4).
```yaml
widget:
type: karakeep
url: http[s]://karakeep.host.or.ip[:port]
key: karakeep_api_key
```

View File

@@ -15,4 +15,5 @@ widget:
url: http://kavita.host.or.ip:port
username: username
password: password
key: kavitaapikey # Optional, e.g. if not using username and password
```

View File

@@ -9,10 +9,16 @@ Uses the same username and password used to login from the web.
Allowed fields: `["libraries", "series", "books"]`.
| Komga API Version | Homepage Widget Version |
| ----------------- | ----------------------- |
| < v2 | 1 (default) |
| >= v2 | 2 |
```yaml
widget:
type: komga
url: http://komga.host.or.ip:port
username: username
password: password
key: komgaapikey # optional
```

View File

@@ -0,0 +1,22 @@
---
title: Komodo
description: Komodo Widget Configuration
---
This widget shows either details about all containers or stacks (if `showStacks` is true) managed by [Komodo](https://komo.do/) or the number of running servers, containers and stacks when `showSummary` is enabled.
The api key and secret can be found in the Komodo settings.
Allowed fields (max 4): `["total", "running", "stopped", "unhealthy", "unknown"]`.
Allowed fields with `showStacks` (max 4): `["total", "running", "down", "unhealthy", "unknown"]`.
Allowed fields with `showSummary`: `["servers", "stacks", "containers"]`.
```yaml
widget:
type: komodo
url: http://komodo.hostname.or.ip:port
key: K-xxxxxx...
secret: S-xxxxxx...
showSummary: true # optional, default: false
showStacks: true # optional, default: false
```

View File

@@ -20,4 +20,6 @@ widget:
type: peanut
url: http://peanut.host.or.ip:port
key: nameofyourups
username: username # only needed if set
password: password # only needed if set
```

View File

@@ -7,12 +7,16 @@ Learn more about [Portainer](https://github.com/portainer/portainer).
You'll need to make sure you have the correct environment set for the integration to work properly. From the Environments section inside of Portainer, click the one you'd like to connect to and observe the ID at the end of the URL (should be), something like `#!/endpoints/1`, here `1` is the value to set as the `env` value. In order to generate an API key, please follow the steps outlined here https://docs.portainer.io/api/access.
Allowed fields: `["running", "stopped", "total"]`.
Allowed fields:
- For Docker mode (default): `["running", "stopped", "total"]`
- For Kubernetes mode (`kubernetes: true`): `["applications", "services", "namespaces"]`
```yaml
widget:
type: portainer
url: https://portainer.host.or.ip:9443
env: 1
kubernetes: true # optional, defaults to false
key: ptr_accesskeyaccesskeyaccesskeyaccesskey
```

View File

@@ -7,34 +7,7 @@ Learn more about [Proxmox](https://www.proxmox.com/en/).
This widget shows the running and total counts of both QEMU VMs and LX Containers in the Proxmox cluster. It also shows the CPU and memory usage of the first node in the cluster.
You will need to generate an API Token for new or an existing user. Here is an example of how to do this for a new user.
1. Navigate to the Proxmox portal, click on Datacenter
2. Expand Permissions, click on Groups
3. Click the Create button
4. Name the group something informative, like api-ro-users
5. Click on the Permissions "folder"
6. Click Add -> Group Permission
- Path: /
- Group: group from bullet 4 above
- Role: PVEAuditor
- Propagate: Checked
7. Expand Permissions, click on Users
8. Click the Add button
- User name: something informative like `api`
- Realm: Linux PAM standard authentication
- Group: group from bullet 4 above
9. Expand Permissions, click on API Tokens
10. Click the Add button
- User: user from bullet 8 above
- Token ID: something informative like the application or purpose like `homepage`
- Privilege Separation: Checked
11. Go back to the "Permissions" menu
12. Click Add -> API Token Permission
- Path: /
- API Token: select the Token ID created in Step 10
- Role: PVE Auditor
- Propagate: Checked
See the [Proxmox configuration documentation](../../configs/proxmox.md#create-token) for details on creating API tokens.
Use `username@pam!Token ID` as the `username` (e.g `api@pam!homepage`) setting and `Secret` as the `password` setting.

View File

@@ -5,6 +5,8 @@ description: Proxmox Backup Server Widget Configuration
Learn more about [Proxmox Backup Server](https://www.proxmox.com/en/proxmox-backup-server/overview).
Create a user and an API token similar to the [Proxmox VE description](proxmox.md). The "Audit" role is required for both the user and token (not group).
Allowed fields: `["datastore_usage", "failed_tasks_24h", "cpu_usage", "memory_usage"]`.
```yaml
@@ -13,4 +15,5 @@ widget:
url: https://proxmoxbackupserver.host:port
username: api_token_id
password: api_token_secret
datastore: datastore_name #optional; if ommitted, will display a combination of all datastores used / total
```

View File

@@ -10,7 +10,5 @@ If more than (4) fields are provided, only the first (4) will be used.
widget:
type: romm
url: http://romm.host.or.ip
username: username # optional
password: password # optional
fields: ["platforms", "totalRoms", "saves", "states"] # optional - default fields shown
```

View File

@@ -0,0 +1,25 @@
---
title: Slskd
description: Slskd Widget Configuration
---
Learn more about [Slskd](https://github.com/slskd/slskd).
Generate an API key for slskd with `openssl rand -base64 48`.
Add it to your `path/to/config/slskd.yml` in `web > authentication > api_keys`:
```yaml
homepage_widget:
key: <generated key>
role: readonly
cidr: <homepage subnet>
```
Allowed fields: `["slskStatus", "updateStatus", "downloads", "uploads", "sharedFiles"]` (maximum of 4).
```yaml
widget:
type: slskd
url: http[s]://slskd.host.or.ip[:5030]
key: generatedapikey
```

View File

@@ -8,7 +8,12 @@ Learn more about [Speedtest Tracker](https://github.com/alexjustesen/speedtest-t
No extra configuration is required.
This widget is compatible with both [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker) and [henrywhitaker3/Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker).
Version 1 of the widget is compatible with both [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker) and [henrywhitaker3/Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker), while version 2 is only compatible with [alexjustesen/speedtest-tracker](https://github.com/alexjustesen/speedtest-tracker).
| Speedtest Version (AJ) | Speedtest Version (HW) | Homepage Widget Version |
| ---------------------- | ---------------------- | ----------------------- |
| < 1.2.1 | ≤ 1.12.0 | 1 (default) |
| >= 1.2.1 | N/A | 2 |
Allowed fields: `["download", "upload", "ping"]`.
@@ -16,5 +21,7 @@ Allowed fields: `["download", "upload", "ping"]`.
widget:
type: speedtest
url: http://speedtest.host.or.ip
version: 1 # optional, default is 1
key: speedtestapikey # required for version 2
bitratePrecision: 3 # optional, default is 0
```

View File

@@ -0,0 +1,19 @@
---
title: Trilium
description: Trilium Widget Configuration
---
Learn more about [Trilium](https://github.com/TriliumNext/Notes).
This widget is compatible with [TriliumNext](https://github.com/TriliumNext/Notes) versions >= [v0.94.0](https://github.com/TriliumNext/Notes/releases/tag/v0.94.0).
Find (or create) your ETAPI key under `Options > ETAPI > Create new ETAPI token`.
Allowed fields: `["version", "notesCount", "dbSize"]`
```yaml
widget:
type: trilium
url: https://trilium.host.or.ip
key: etapi_token
```

View File

@@ -19,15 +19,14 @@ Allowed fields: `["uptime", "wan", "lan", "lan_users", "lan_devices", "wlan", "w
!!! hint
If you enter e.g. incorrect credentials and receive an "API Error", you may need to recreate the container to clear the cache.
If you enter e.g. incorrect credentials and receive an "API Error", you may need to recreate the container or restart the service to clear the cache.
```yaml
widget:
type: unifi
url: https://unifi.host.or.ip:port
username: username
password: password
site: Site Name # optional
username: user
password: pass
key: unifiapikey # required if using API key instead of username/password
```
_Added in v0.4.18, updated in 0.6.7_

View File

@@ -0,0 +1,23 @@
---
title: Wallos
description: Wallos Widget Configuration
---
Learn more about [Wallos](https://github.com/ellite/wallos).
If you're using more than one currency to record subscriptions then you should also have your "Fixer API" key set-up (`Settings > Fixer API Key`).
> **Please Note:** The monthly cost displayed is the total cost of subscriptions in that month, **not** the _"monthly"_ average cost.
Get your API key under `Profile > API Key`.
Allowed fields: `["activeSubscriptions", "nextRenewingSubscription", "previousMonthlyCost", "thisMonthlyCost", "nextMonthlyCost"]`.
Default fields: `["activeSubscriptions", "nextRenewingSubscription", "thisMonthlyCost", "nextMonthlyCost"]`.
```yaml
widget:
type: wallos
url: http://wallos.host.or.ip
key: apikeyapikeyapikeyapikeyapikey
```

View File

@@ -11,10 +11,17 @@ Note: by default `["connected", "enabled", "total"]` are displayed.
To detect if a device is connected the time since the last handshake is queried. `threshold` is the time to wait in minutes since the last handshake to consider a device connected. Default is 2 minutes.
| Wg-Easy API Version | Homepage Widget Version |
| ------------------- | ----------------------- |
| < v15 | 1 (default) |
| >= v15 | 2 |
```yaml
widget:
type: wgeasy
url: http://wg.easy.or.ip
version: 2 # optional, default is 1
username: yourwgusername # required for v15 and above
password: yourwgeasypassword
threshold: 2 # optional
```

View File

@@ -46,6 +46,10 @@ config:
docker:
settings:
env:
- name: HOMEPAGE_ALLOWED_HOSTS
value: "homepage.k3d.localhost:8080"
serviceAccount:
create: true
name: homepage

View File

@@ -23,6 +23,12 @@ Set the `mode` in the `kubernetes.yaml` to `cluster`.
mode: default
```
To enable Kubernetes gateway-api compatibility, set `route` to `gateway`.
```yaml
route: gateway
```
## Widgets
The Kubernetes widget can show a high-level overview of the cluster,

View File

@@ -25,12 +25,14 @@ nav:
- configs/services.md
- configs/kubernetes.md
- configs/docker.md
- configs/proxmox.md
- configs/custom-css-js.md
- "Widgets":
- widgets/index.md
- "Service Widgets":
- widgets/services/index.md
- widgets/services/adguard-home.md
- widgets/services/apcups.md
- widgets/services/argocd.md
- widgets/services/atsumeru.md
- widgets/services/audiobookshelf.md
@@ -44,6 +46,7 @@ nav:
- widgets/services/calibre-web.md
- widgets/services/changedetectionio.md
- widgets/services/channelsdvrserver.md
- widgets/services/checkmk.md
- widgets/services/cloudflared.md
- widgets/services/coin-market-cap.md
- widgets/services/crowdsec.md
@@ -55,7 +58,9 @@ nav:
- widgets/services/emby.md
- widgets/services/esphome.md
- widgets/services/evcc.md
- widgets/services/filebrowser.md
- widgets/services/fileflows.md
- widgets/services/firefly.md
- widgets/services/flood.md
- widgets/services/freshrss.md
- widgets/services/frigate.md
@@ -72,6 +77,7 @@ nav:
- widgets/services/hdhomerun.md
- widgets/services/headscale.md
- widgets/services/healthchecks.md
- widgets/services/karakeep.md
- widgets/services/homeassistant.md
- widgets/services/homebox.md
- widgets/services/homebridge.md
@@ -81,8 +87,10 @@ nav:
- widgets/services/jdownloader.md
- widgets/services/jellyfin.md
- widgets/services/jellyseerr.md
- widgets/services/jellystat.md
- widgets/services/kavita.md
- widgets/services/komga.md
- widgets/services/komodo.md
- widgets/services/kopia.md
- widgets/services/lidarr.md
- widgets/services/linkwarden.md
@@ -137,6 +145,7 @@ nav:
- widgets/services/rutorrent.md
- widgets/services/sabnzbd.md
- widgets/services/scrutiny.md
- widgets/services/slskd.md
- widgets/services/sonarr.md
- widgets/services/speedtest-tracker.md
- widgets/services/spoolman.md
@@ -151,6 +160,7 @@ nav:
- widgets/services/tdarr.md
- widgets/services/traefik.md
- widgets/services/transmission.md
- widgets/services/trilium.md
- widgets/services/truenas.md
- widgets/services/tubearchivist.md
- widgets/services/unifi-controller.md
@@ -159,6 +169,7 @@ nav:
- widgets/services/uptimerobot.md
- widgets/services/urbackup.md
- widgets/services/vikunja.md
- widgets/services/wallos.md
- widgets/services/watchtower.md
- widgets/services/wgeasy.md
- widgets/services/whatsupdocker.md

View File

@@ -131,8 +131,8 @@ module.exports = {
? BIBIT_UNITS
: BIT_UNITS
: options.binary
? BIBYTE_UNITS
: BYTE_UNITS;
? BIBYTE_UNITS
: BYTE_UNITS;
if (value === 0) return `0 ${sizes[0]}/s`;

8660
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,9 @@
{
"name": "homepage",
"version": "0.9.6",
"version": "1.4.4",
"private": true,
"scripts": {
"preinstall": "npx only-allow pnpm",
"dev": "next dev",
"build": "next build",
"start": "next start",
@@ -10,57 +11,68 @@
"telemetry": "next telemetry disable"
},
"dependencies": {
"@headlessui/react": "^1.7.18",
"@kubernetes/client-node": "^0.17.1",
"cal-parser": "^1.0.2",
"@headlessui/react": "^1.7.19",
"@kubernetes/client-node": "^1.0.0",
"classnames": "^2.5.1",
"compare-versions": "^6.1.0",
"dockerode": "^4.0.2",
"follow-redirects": "^1.15.9",
"gamedig": "^5.1.4",
"i18next": "^21.10.0",
"compare-versions": "^6.1.1",
"dockerode": "^4.0.7",
"follow-redirects": "^1.15.11",
"gamedig": "^5.2.0",
"i18next": "^24.2.3",
"ical.js": "^2.1.0",
"js-yaml": "^4.1.0",
"json-rpc-2.0": "^1.7.0",
"luxon": "^3.5.0",
"luxon": "^3.6.1",
"memory-cache": "^0.2.0",
"minecraft-ping-js": "^1.0.2",
"next": "^12.3.4",
"minecraftstatuspinger": "^1.2.2",
"next": "^15.4.5",
"next-i18next": "^12.1.0",
"ping": "^0.4.4",
"pretty-bytes": "^6.1.1",
"raw-body": "^3.0.0",
"react": "^18.3.1",
"react-dom": "^18.2.0",
"react-i18next": "^11.18.6",
"react-icons": "^4.12.0",
"recharts": "^2.12.6",
"rrule": "^2.8.1",
"swr": "^1.3.0",
"systeminformation": "^5.23.8",
"tough-cookie": "^4.1.3",
"urbackup-server-api": "^0.52.1",
"winston": "^3.11.0",
"react-dom": "^18.3.1",
"react-i18next": "^15.5.3",
"react-icons": "^5.4.0",
"recharts": "^2.15.3",
"swr": "^2.3.3",
"systeminformation": "^5.27.7",
"tough-cookie": "^5.1.2",
"urbackup-server-api": "^0.8.9",
"winston": "^3.17.0",
"xml-js": "^1.6.11"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.8",
"autoprefixer": "^10.4.20",
"eslint": "^8.57.1",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-next": "^14.2.3",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^4.6.2",
"postcss": "^8.4.47",
"prettier": "^3.2.5",
"tailwind-scrollbar": "^3.0.5",
"tailwindcss": "^3.4.14",
"typescript": "^5.6.3"
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/postcss": "^4.0.9",
"eslint": "^9.25.1",
"eslint-config-next": "^15.2.4",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "^5.5.1",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.2.0",
"postcss": "^8.5.6",
"prettier": "^3.6.2",
"prettier-plugin-organize-imports": "^4.1.0",
"tailwind-scrollbar": "^4.0.2",
"tailwindcss": "^4.0.9",
"typescript": "^5.7.3"
},
"optionalDependencies": {
"osx-temperature-sensor": "^1.0.8"
},
"packageManager": "pnpm@10.8.1",
"devEngines": {
"packageManager": {
"name": "pnpm",
"version": "10.8.1"
}
},
"pnpm": {
"onlyBuiltDependencies": [
"sharp"
]
}
}

4953
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,5 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
"@tailwindcss/postcss": {},
},
};

View File

@@ -108,8 +108,8 @@
"songs": "Liedjies"
},
"esphome": {
"offline": "Vanlyn",
"offline_alt": "Vanlyn",
"offline": "Vanlyn af",
"offline_alt": "Vanlyn af",
"online": "Aanlyn",
"total": "Totaal",
"unknown": "Onbekend"
@@ -148,7 +148,9 @@
"up": "Op",
"received": "Ontvang",
"sent": "Gestuur",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Voorvoegsel"
},
"caddy": {
"upstreams": "Stroomop",
@@ -176,7 +178,7 @@
"connectedAp": "Gekoppelde APs",
"activeUser": "Aktiewe toestelle",
"alerts": "Waarskuwings",
"connectedGateway": "Gekoppelde poorte",
"connectedGateways": "Gekoppelde poorte",
"connectedSwitches": "Gekoppelde skakelaars"
},
"nzbget": {
@@ -187,7 +189,7 @@
"plex": {
"streams": "Aktiewe Strome",
"albums": "Albums",
"movies": "Flieks",
"movies": "Movies",
"tv": "TV Programme"
},
"sabnzbd": {
@@ -240,15 +242,15 @@
"wanted": "Gesoek",
"queued": "In ry",
"series": "Reekse",
"queue": "Tou",
"queue": "Toustaan",
"unknown": "Onbekend"
},
"radarr": {
"wanted": "Gesoek",
"missing": "Vermis",
"queued": "In ry",
"movies": "Flieks",
"queue": "Tou",
"movies": "Movies",
"queue": "Toustaan",
"unknown": "Onbekend"
},
"lidarr": {
@@ -300,7 +302,7 @@
"latency": "Latensie"
},
"speedtest": {
"upload": "Laai Op",
"upload": "Oplaai",
"download": "Aflaai",
"ping": "Pieng"
},
@@ -357,8 +359,14 @@
"services": "Dienste",
"middleware": "Filtreerprogramme"
},
"trilium": {
"version": "Weergawe",
"notesCount": "Notas",
"dbSize": "Databasis Grootte",
"unknown": "Onbekend"
},
"navidrome": {
"nothing_streaming": "Geen aktiewe strome nie",
"nothing_streaming": "Geen Aktiewe Strome",
"please_wait": "Wag Asseblief"
},
"npm": {
@@ -387,7 +395,7 @@
},
"jackett": {
"configured": "Opgestel",
"errored": "Fout"
"errored": "Gefout"
},
"strelaysrv": {
"numActiveSessions": "Sessies",
@@ -410,7 +418,7 @@
"version": "Weergawe",
"status": "Status",
"up": "Aanlyn",
"down": "Vanlyn"
"down": "Vanlyn af"
},
"miniflux": {
"read": "Gelees",
@@ -547,7 +555,7 @@
"indexers": "Indekseerders"
},
"tubearchivist": {
"downloads": "Tou",
"downloads": "Toustaan",
"videos": "Videos",
"channels": "Kanale",
"playlists": "Snitlyste"
@@ -555,7 +563,7 @@
"truenas": {
"load": "Stelsellading",
"uptime": "Optyd",
"alerts": "Waarskuwings"
"alerts": "Opletberigte"
},
"pyload": {
"speed": "Spoed",
@@ -566,7 +574,8 @@
"gluetun": {
"public_ip": "Publieke IP",
"region": "Streek",
"country": "Land"
"country": "Land",
"port_forwarded": "Poort Aangestuur"
},
"hdhomerun": {
"channels": "Kanale",
@@ -702,6 +711,10 @@
"processed": "Verwerk",
"time": "Tyd"
},
"firefly": {
"networth": "Netto Waarde",
"budget": "Begroting"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Databronne",
@@ -760,7 +773,7 @@
},
"whatsupdocker": {
"monitoring": "Monitering",
"updates": "Opdatering"
"updates": "Opdaterings"
},
"calibreweb": {
"books": "Boeke",
@@ -794,7 +807,7 @@
"gamedig": {
"status": "Status",
"online": "Aanlyn",
"offline": "Vanlyn",
"offline": "Vanlyn af",
"name": "Naam",
"map": "Kaart",
"currentPlayers": "Huidige Spelers",
@@ -850,7 +863,8 @@
"physicalRelease": "Fisiese Vrylating",
"digitalRelease": "Digitale Vrylating",
"noEventsToday": "Geen gebeure vir vandag nie!",
"noEventsFound": "Geen gebeure gevind nie"
"noEventsFound": "Geen gebeure gevind nie",
"errorWhenLoadingData": "Fout tydens laai van kalenderdata"
},
"romm": {
"platforms": "Platform",
@@ -864,7 +878,7 @@
"domains": "Domeine",
"mailboxes": "Posbusse",
"mails": "E-posse",
"storage": "Bergplek"
"storage": "Stoor plek"
},
"netdata": {
"warnings": "Waarskuwings",
@@ -879,7 +893,8 @@
"gitea": {
"notifications": "Kennisgewings",
"issues": "Kwessies",
"pulls": "Trek Versoeke"
"pulls": "Trek Versoeke",
"repositories": "Bewaarplekke"
},
"stash": {
"scenes": "Tonele",
@@ -893,7 +908,7 @@
"galleries": "Galerye",
"performers": "Kunstenaars",
"studios": "Ateljees",
"movies": "Flieks",
"movies": "Movies",
"tags": "Merkers",
"oCount": "O Tel"
},
@@ -911,13 +926,13 @@
"totalValue": "Totale Waarde"
},
"crowdsec": {
"alerts": "Waarskuwings",
"alerts": "Opletberigte",
"bans": "Verbanne"
},
"wgeasy": {
"connected": "Gekoppel",
"enabled": "Geaktiveer",
"disabled": "Onaktief",
"disabled": "Gediaktiveer",
"total": "Totaal"
},
"swagdashboard": {
@@ -929,7 +944,7 @@
"myspeed": {
"ping": "Pieng",
"download": "Aflaai",
"upload": "Laai Op"
"upload": "Oplaai"
},
"stocks": {
"stocks": "Aandele",
@@ -950,7 +965,7 @@
},
"zabbix": {
"unclassified": "Nie geklassifiseer nie",
"information": "Informasie",
"information": "Inligting",
"warning": "Waarskuwing",
"average": "Gemiddeld",
"high": "Hoog",
@@ -973,7 +988,7 @@
"headscale": {
"name": "Naam",
"address": "Adres",
"last_seen": "Laaste Gesien",
"last_seen": "Laas gesien",
"status": "Status",
"online": "Aanlyn",
"offline": "Vanlyn"
@@ -982,6 +997,9 @@
"name": "Naam",
"systems": "Stelsels",
"up": "Op",
"down": "Af",
"paused": "Onderbreek",
"pending": "Afwagtend",
"status": "Status",
"updated": "Opgedateer",
"cpu": "SVE",
@@ -996,7 +1014,7 @@
"healthy": "Gesond",
"degraded": "Gedegradeer",
"progressing": "Vorderend",
"missing": "Vermis",
"missing": "Afwesig",
"suspended": "Geskors"
},
"spoolman": {
@@ -1007,5 +1025,63 @@
"issues": "Kwessies",
"merges": "Saamvleg Versoeke",
"projects": "Projekte"
},
"apcups": {
"status": "Status",
"load": "Las",
"bcharge": "Batterylading",
"timeleft": "Oorblywende Tyd"
},
"karakeep": {
"bookmarks": "Boekmerke",
"favorites": "Gunstelinge",
"archived": "Geargiveer",
"highlights": "Hoogtepunte",
"lists": "Lyste",
"tags": "Merkers"
},
"slskd": {
"slskStatus": "Netwerk",
"connected": "Gekoppel",
"disconnected": "Ontkoppel",
"updateStatus": "Opdateer",
"update_yes": "Beskikbaar",
"update_no": "Op Datum",
"downloads": "Aflaaie",
"uploads": "Oplaaie",
"sharedFiles": "Lêers"
},
"jellystat": {
"songs": "Liedjies",
"movies": "Movies",
"episodes": "Episode",
"other": "Ander"
},
"checkmk": {
"serviceErrors": "Diensprobleme",
"hostErrors": "Gasheerprobleme"
},
"komodo": {
"total": "Totaal",
"running": "Lopend",
"stopped": "Gestop",
"down": "Af",
"unhealthy": "Ongesond",
"unknown": "Onbekend",
"servers": "Bedieners",
"stacks": "Stapels",
"containers": "Houers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -61,15 +61,15 @@
"wlan_devices": "WLAN Enheder",
"lan_users": "LAN Brugere",
"wlan_users": "WLAN Brugere",
"up": "OP",
"up": "UP",
"down": "NED",
"wait": "Vent venligst",
"wait": "Please wait",
"empty_data": "Subsystem status ukendt"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "RAM",
"mem": "MEM",
"cpu": "CPU",
"running": "Kører",
"offline": "Offline",
@@ -83,7 +83,7 @@
"partial": "Delvis"
},
"ping": {
"error": "Fejl",
"error": "Error",
"ping": "Ping",
"down": "Ned",
"up": "Op",
@@ -91,11 +91,11 @@
},
"siteMonitor": {
"http_status": "HTTP-status",
"error": "Fejl",
"error": "Error",
"response": "Response",
"down": "Ned",
"up": "Op",
"not_available": "Ikke tilgængelig"
"down": "Down",
"up": "Up",
"not_available": "Not Available"
},
"emby": {
"playing": "Afspiller",
@@ -112,7 +112,7 @@
"offline_alt": "Offline",
"online": "Online",
"total": "Total",
"unknown": "Ukendt"
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Produktion",
@@ -141,14 +141,16 @@
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"uptime": "Oppetid",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Ned",
"up": "Op",
"down": "Down",
"up": "Up",
"received": "Modtaget",
"sent": "Sendt",
"externalIPAddress": "Ekstern IP"
"externalIPAddress": "Ekstern IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -166,17 +168,17 @@
"passes": "Bestået"
},
"tautulli": {
"playing": "Afspiller",
"transcoding": "Transcoder",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "Ingen Aktive Streams",
"no_active": "No Active Streams",
"plex_connection_error": "Tjek Plex-forbindelse"
},
"omada": {
"connectedAp": "Forbundne APs",
"activeUser": "Aktive enheder",
"alerts": "Advarsler",
"connectedGateway": "Forbundne gateways",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Forbundne switches"
},
"nzbget": {
@@ -187,11 +189,11 @@
"plex": {
"streams": "Aktive Streams",
"albums": "Albums",
"movies": "Film",
"movies": "Movies",
"tv": "TV-Shows"
},
"sabnzbd": {
"rate": "Sats",
"rate": "Rate",
"queue": "Kø",
"timeleft": "Resterende tid"
},
@@ -239,26 +241,26 @@
"sonarr": {
"wanted": "Ønsket",
"queued": "I Kø",
"series": "Serier",
"queue": "",
"unknown": "Ukendt"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Ønsket",
"wanted": "Wanted",
"missing": "Mangler",
"queued": "I Kø",
"movies": "Film",
"queue": "",
"unknown": "Ukendt"
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Ønsket",
"queued": "I Kø",
"wanted": "Wanted",
"queued": "Queued",
"artists": "Artister"
},
"readarr": {
"wanted": "Ønsket",
"queued": "I Kø",
"wanted": "Wanted",
"queued": "Queued",
"books": "Bøger"
},
"bazarr": {
@@ -271,15 +273,15 @@
"available": "Tilgængelig"
},
"jellyseerr": {
"pending": "Afventer",
"approved": "Godkendt",
"available": "Tilgængelig"
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"overseerr": {
"pending": "Afventer",
"pending": "Pending",
"processing": "Behandler",
"approved": "Godkendt",
"available": "Tilgængelig"
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Total",
@@ -294,8 +296,8 @@
"gravity": "Tyngdekraft"
},
"adguard": {
"queries": "Forespørgsler",
"blocked": "Blokerede",
"queries": "Queries",
"blocked": "Blocked",
"filtered": "Filtreret",
"latency": "Latenstid"
},
@@ -305,15 +307,15 @@
"ping": "Ping"
},
"portainer": {
"running": "Kører",
"running": "Running",
"stopped": "Stoppede",
"total": "Total"
},
"suwayomi": {
"download": "Hentet",
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Læst",
"unread": "Ulæst",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
@@ -334,7 +336,7 @@
"ago": "{{value}} Siden"
},
"technitium": {
"totalQueries": "Forespørgsler",
"totalQueries": "Queries",
"totalNoError": "Success",
"totalServerFailure": "Failures",
"totalNxDomain": "NX Domains",
@@ -342,12 +344,12 @@
"totalAuthoritative": "Authoritative",
"totalRecursive": "Recursive",
"totalCached": "Cached",
"totalBlocked": "Blokerede",
"totalBlocked": "Blocked",
"totalDropped": "Dropped",
"totalClients": "Klienter"
},
"tdarr": {
"queue": "",
"queue": "Queue",
"processed": "Behandlet",
"errored": "Fejlet",
"saved": "Gemt"
@@ -357,8 +359,14 @@
"services": "Tjenester",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "Ingen Aktive Streams",
"nothing_streaming": "No Active Streams",
"please_wait": "Vent venligst"
},
"npm": {
@@ -375,35 +383,35 @@
},
"gotify": {
"apps": "Applikationer",
"clients": "Klienter",
"clients": "Clients",
"messages": "Beskeder"
},
"prowlarr": {
"enableIndexers": "Indeksører",
"numberOfGrabs": "Grab",
"numberOfQueries": "Forespørgsler",
"numberOfQueries": "Queries",
"numberOfFailGrabs": "Fejl Grabs",
"numberOfFailQueries": "Fejl Forespørgsler"
},
"jackett": {
"configured": "Konfigureret",
"errored": "Fejlet"
"errored": "Errored"
},
"strelaysrv": {
"numActiveSessions": "Sessioner",
"numConnections": "Forbindelser",
"dataRelayed": "Videresendt",
"transferRate": "Sats"
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Brugere",
"user_count": "Users",
"status_count": "Indlæg",
"domain_count": "Domæner"
},
"medusa": {
"wanted": "Ønsket",
"queued": "I Kø",
"series": "Serier"
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Afspillere",
@@ -414,34 +422,34 @@
},
"miniflux": {
"read": "Læst",
"unread": "Ulæst"
"unread": "Unread"
},
"authentik": {
"users": "Brugere",
"users": "Users",
"loginsLast24H": "Login (24 timer)",
"failedLoginsLast24H": "Mislykkede logins (24 timer)"
},
"proxmox": {
"mem": "RAM",
"mem": "MEM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "VMs"
},
"glances": {
"cpu": "CPU",
"load": "Belastning",
"wait": "Vent venligst",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Advar",
"uptime": "OP",
"uptime": "UP",
"total": "Total",
"free": "Fri",
"used": "Brugt",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "t",
"hours": "h",
"crit": "Crit",
"read": "Læst",
"read": "Read",
"write": "Skriv",
"gpu": "GPU",
"mem": "Ram",
@@ -462,57 +470,57 @@
"1-day": "Overvejende Solrigt",
"1-night": "Overvejende Skyfrit",
"2-day": "Delvist Overskyet",
"2-night": "Delvist Overskyet",
"2-night": "Partly Cloudy",
"3-day": "Skyet",
"3-night": "Skyet",
"3-night": "Cloudy",
"45-day": "Tåget",
"45-night": "Tåget",
"48-day": "Tåget",
"48-night": "Tåget",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Let Støvregn",
"51-night": "Let Støvregn",
"51-night": "Light Drizzle",
"53-day": "Støvregn",
"53-night": "Støvregn",
"53-night": "Drizzle",
"55-day": "Kraftig Støvregn",
"55-night": "Kraftig Støvregn",
"55-night": "Heavy Drizzle",
"56-day": "Let Frysende Støvregn",
"56-night": "Let Frysende Støvregn",
"56-night": "Light Freezing Drizzle",
"57-day": "Frysende Støvregn",
"57-night": "Frysende Støvregn",
"57-night": "Freezing Drizzle",
"61-day": "Let Regn",
"61-night": "Let Regn",
"61-night": "Light Rain",
"63-day": "Regn",
"63-night": "Regn",
"63-night": "Rain",
"65-day": "Kraftig Regn",
"65-night": "Kraftig Regn",
"65-night": "Heavy Rain",
"66-day": "Frysende Regn",
"66-night": "Frysende Regn",
"67-day": "Frysende Regn",
"67-night": "Frysende Regn",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "Let Sne",
"71-night": "Let Sne",
"71-night": "Light Snow",
"73-day": "Sne",
"73-night": "Sne",
"73-night": "Snow",
"75-day": "Kraftig Sne",
"75-night": "Kraftig Sne",
"75-night": "Heavy Snow",
"77-day": "Snekorn",
"77-night": "Snekorn",
"77-night": "Snow Grains",
"80-day": "Lette Byger",
"80-night": "Lette Byger",
"80-night": "Light Showers",
"81-day": "Byger",
"81-night": "Byger",
"81-night": "Showers",
"82-day": "Kraftige Byger",
"82-night": "Kraftige Byger",
"82-night": "Heavy Showers",
"85-day": "Snebyger",
"85-night": "Snebyger",
"86-day": "Snebyger",
"86-night": "Snebyger",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "Tordenvejr",
"95-night": "Tordenvejr",
"95-night": "Thunderstorm",
"96-day": "Tordenvejr Med Hagl",
"96-night": "Tordenvejr Med Hagl",
"99-day": "Tordenvejr Med Hagl",
"99-night": "Tordenvejr Med Hagl"
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
},
"homebridge": {
"available_update": "System",
@@ -521,15 +529,15 @@
"up_to_date": "Opdateret",
"child_bridges": "Underbroer",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Op",
"pending": "Afventer",
"down": "Ned"
"up": "Up",
"pending": "Pending",
"down": "Down"
},
"healthchecks": {
"new": "Ny",
"up": "Op",
"up": "Up",
"grace": "Henstandsperiode",
"down": "Ned",
"down": "Down",
"paused": "Pause",
"status": "Status",
"last_ping": "Sidste Ping",
@@ -541,35 +549,36 @@
"containers_failed": "Fejlet"
},
"autobrr": {
"approvedPushes": "Godkendt",
"approvedPushes": "Approved",
"rejectedPushes": "Afviste",
"filters": "Filtre",
"indexers": "Indeksører"
"indexers": "Indexers"
},
"tubearchivist": {
"downloads": "",
"downloads": "Queue",
"videos": "Videoer",
"channels": "Kanaler",
"playlists": "Afspilningslister"
},
"truenas": {
"load": "Systembelastning",
"uptime": "Oppetid",
"alerts": "Advarsler"
"uptime": "Uptime",
"alerts": "Alerts"
},
"pyload": {
"speed": "Hastighed",
"active": "Aktive",
"queue": "",
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Offentlig IP",
"region": "Område",
"country": "Land"
"country": "Land",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Kanaler",
"channels": "Channels",
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
@@ -582,8 +591,8 @@
},
"scrutiny": {
"passed": "Bestået",
"failed": "Fejlet",
"unknown": "Ukendt"
"failed": "Failed",
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Indbakke",
@@ -598,18 +607,18 @@
"low_battery": "Lavt batteriniveau"
},
"nextdns": {
"wait": "Vent venligst",
"wait": "Please Wait",
"no_devices": "Ingen Enhedsdata Modtaget"
},
"mikrotik": {
"cpuLoad": "CPU Belastning",
"memoryUsed": "Hukommelse Brugt",
"uptime": "Oppetid",
"uptime": "Uptime",
"numberOfLeases": "Leasinger"
},
"xteve": {
"streams_all": "Alle Streams",
"streams_active": "Aktive Streams",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Kanaler"
},
"opendtu": {
@@ -619,7 +628,7 @@
"limit": "Begrænsning"
},
"opnsense": {
"cpu": "CPU Belastning",
"cpu": "CPU Load",
"memory": "Aktiv Hukommelse",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
@@ -644,8 +653,8 @@
"load": "Belastning Gns",
"memory": "Hukommelse Forbrug",
"wanStatus": "WAN Status",
"up": "Op",
"down": "Ned",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Forbrug",
"wanIP": "WAN IP"
@@ -657,51 +666,55 @@
"memory_usage": "Hukommelse"
},
"immich": {
"users": "Brugere",
"users": "Users",
"photos": "Billeder",
"videos": "Videoer",
"videos": "Videos",
"storage": "Lager"
},
"uptimekuma": {
"up": "Sider Oppe",
"down": "Sider Nede",
"uptime": "Oppetid",
"uptime": "Uptime",
"incident": "Hændelse",
"m": "m"
},
"atsumeru": {
"series": "Serier",
"series": "Series",
"archives": "Arkiver",
"chapters": "Kapitler",
"categories": "Kategorier"
},
"komga": {
"libraries": "Biblioteker",
"series": "Serier",
"books": "Bøger"
"series": "Series",
"books": "Books"
},
"diskstation": {
"days": "Dage",
"uptime": "Oppetid",
"volumeAvailable": "Tilgængelig"
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"mylar": {
"series": "Serier",
"series": "Series",
"issues": "Problemer",
"wanted": "Ønsket"
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
"photos": "Billeder",
"videos": "Videoer",
"photos": "Photos",
"videos": "Videos",
"people": "Mennesker"
},
"fileflows": {
"queue": "",
"processing": "Behandler",
"processed": "Behandlet",
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Tid"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Kontrolpanel",
"datasources": "Data Kilder",
@@ -721,7 +734,7 @@
"size": "Størrelse",
"lastrun": "Sidst Kørt",
"nextrun": "Næste Kørsel",
"failed": "Fejlet"
"failed": "Failed"
},
"unmanic": {
"active_workers": "Aktive Arbejdere",
@@ -738,20 +751,20 @@
"targets_total": "Totale Mål"
},
"gatus": {
"up": "Sider Oppe",
"down": "Sider Nede",
"uptime": "Oppetid"
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": {
"gross_percent_today": "I dag",
"gross_percent_today": "Today",
"gross_percent_1y": "Et År",
"gross_percent_max": "Altid"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Bøger",
"books": "Books",
"podcastsDuration": "Varighed",
"booksDuration": "Varighed"
"booksDuration": "Duration"
},
"homeassistant": {
"people_home": "Personer Hjemme",
@@ -760,23 +773,23 @@
},
"whatsupdocker": {
"monitoring": "Overvåger",
"updates": "Opdateringer"
"updates": "Updates"
},
"calibreweb": {
"books": "Bøger",
"books": "Books",
"authors": "Forfattere",
"categories": "Kategorier",
"series": "Serier"
"categories": "Categories",
"series": "Series"
},
"jdownloader": {
"downloadCount": "",
"downloadBytesRemaining": "Manglende",
"downloadTotalBytes": "Størrelse",
"downloadSpeed": "Hastighed"
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
"kavita": {
"seriesCount": "Serier",
"totalFiles": "Filer"
"seriesCount": "Series",
"totalFiles": "Files"
},
"azuredevops": {
"result": "Resultat",
@@ -784,12 +797,12 @@
"buildId": "Build ID",
"succeeded": "Lykkedes",
"notStarted": "Ikke Startet",
"failed": "Fejlet",
"failed": "Failed",
"canceled": "Annulleret",
"inProgress": "I Gang",
"totalPrs": "Total PRs",
"myPrs": "Mine PRs",
"approved": "Godkendt"
"approved": "Approved"
},
"gamedig": {
"status": "Status",
@@ -798,7 +811,7 @@
"name": "Navn",
"map": "Kort",
"currentPlayers": "Nuværende Spillere",
"players": "Afspillere",
"players": "Players",
"maxPlayers": "Maks spillere",
"bots": "Bots",
"ping": "Ping"
@@ -811,46 +824,47 @@
},
"mealie": {
"recipes": "Opskrifter",
"users": "Brugere",
"categories": "Kategorier",
"users": "Users",
"categories": "Categories",
"tags": "Tags"
},
"openmediavault": {
"downloading": "Downloader",
"total": "Total",
"running": "Kører",
"stopped": "Stoppede",
"passed": "Bestået",
"failed": "Fejlet"
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
"failed": "Failed"
},
"openwrt": {
"uptime": "Oppetid",
"uptime": "Uptime",
"cpuLoad": "CPU Load Avg (5m)",
"up": "Op",
"down": "Ned",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "Modtaget"
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Status",
"uptime": "Oppetid",
"uptime": "Uptime",
"lastDown": "Seneste Nedetid",
"downDuration": "Nedetid Varighed",
"sitesUp": "Sider Oppe",
"sitesDown": "Sider Nede",
"paused": "Pause",
"sitesUp": "Sites Up",
"sitesDown": "Sites Down",
"paused": "Paused",
"notyetchecked": "Endnu Ikke Kontrolleret",
"up": "Op",
"up": "Up",
"seemsdown": "Synes Ned",
"down": "Ned",
"unknown": "Ukendt"
"down": "Down",
"unknown": "Unknown"
},
"calendar": {
"inCinemas": "I biografen",
"physicalRelease": "Fysisk udgivelse",
"digitalRelease": "Digitale udgivelser",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforme",
@@ -861,10 +875,10 @@
"totalfilesize": "Total Size"
},
"mailcow": {
"domains": "Domæner",
"domains": "Domains",
"mailboxes": "Mailboxes",
"mails": "Mails",
"storage": "Lager"
"storage": "Storage"
},
"netdata": {
"warnings": "Advarsler",
@@ -873,13 +887,14 @@
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "Billeder",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Problemer",
"pulls": "Pull Requests"
"issues": "Issues",
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -893,13 +908,13 @@
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"movies": "Film",
"movies": "Movies",
"tags": "Tags",
"oCount": "O Count"
},
"tandoor": {
"users": "Brugere",
"recipes": "Opskrifter",
"users": "Users",
"recipes": "Recipes",
"keywords": "Keywords"
},
"homebox": {
@@ -907,17 +922,17 @@
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Brugere",
"users": "Users",
"totalValue": "Total Value"
},
"crowdsec": {
"alerts": "Advarsler",
"alerts": "Alerts",
"bans": "Bans"
},
"wgeasy": {
"connected": "Connected",
"enabled": "Aktiveret",
"disabled": "Deaktiveret",
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Total"
},
"swagdashboard": {
@@ -940,7 +955,7 @@
},
"frigate": {
"cameras": "Cameras",
"uptime": "Oppetid",
"uptime": "Uptime",
"version": "Version"
},
"linkwarden": {
@@ -971,21 +986,24 @@
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "Navn",
"address": "Adresse",
"last_seen": "Sidst Set",
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Navn",
"name": "Name",
"systems": "Systems",
"up": "Op",
"up": "Up",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Opdateret",
"updated": "Updated",
"cpu": "CPU",
"memory": "RAM",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
},
@@ -993,10 +1011,10 @@
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sund",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Mangler",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
@@ -1004,8 +1022,66 @@
},
"gitlab": {
"groups": "Groups",
"issues": "Problemer",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

View File

@@ -47,7 +47,7 @@
"load": "Last",
"temp": "TEMP",
"max": "Max",
"uptime": "UP"
"uptime": "BETRIEBSZEIT"
},
"unifi": {
"users": "Benutzer",
@@ -61,7 +61,7 @@
"wlan_devices": "WLAN-Geräte",
"lan_users": "LAN-Benutzer",
"wlan_users": "WLAN-Benutzer",
"up": "UP",
"up": "Gesendet",
"down": "EMPFANGEN",
"wait": "Bitte warten",
"empty_data": "Subsystem-Status unbekannt"
@@ -85,16 +85,16 @@
"ping": {
"error": "Fehler",
"ping": "Ping",
"down": "Empfangen",
"up": "Senden",
"down": "Offline",
"up": "Online",
"not_available": "Nicht verfügbar"
},
"siteMonitor": {
"http_status": "HTTP-Status",
"error": "Fehler",
"response": "Antwort",
"down": "Empfangen",
"up": "Senden",
"down": "Online",
"up": "Offline",
"not_available": "Nicht verfügbar"
},
"emby": {
@@ -111,7 +111,7 @@
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Gesamt",
"total": "Total",
"unknown": "Unbekannt"
},
"evcc": {
@@ -144,11 +144,13 @@
"uptime": "Betriebszeit",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Empfangen",
"up": "Senden",
"down": "Download",
"up": "Upload",
"received": "Empfangen",
"sent": "Gesendet",
"externalIPAddress": "Externe IP"
"externalIPAddress": "Externe IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Präfix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -163,10 +165,10 @@
"shows": "Serien",
"recordings": "Aufnahmen",
"scheduled": "Geplant",
"passes": "Pässe"
"passes": "Durchläufe"
},
"tautulli": {
"playing": "Wiedergabe",
"playing": "Spielt",
"transcoding": "Transcodiert",
"bitrate": "Bitrate",
"no_active": "Keine aktiven Streams",
@@ -176,7 +178,7 @@
"connectedAp": "Verbundene APs",
"activeUser": "Aktive Geräte",
"alerts": "Warnungen",
"connectedGateway": "Verbundene Gateways",
"connectedGateways": "Verbundene Gateways",
"connectedSwitches": "Verbundene Switche"
},
"nzbget": {
@@ -191,7 +193,7 @@
"tv": "TV-Serien"
},
"sabnzbd": {
"rate": "Datenrate",
"rate": "Rate",
"queue": "Warteschlange",
"timeleft": "Verbleibende Zeit"
},
@@ -271,18 +273,18 @@
"available": "Verfügbar"
},
"jellyseerr": {
"pending": "Ausstehend",
"pending": "Wartend",
"approved": "Genehmigt",
"available": "Verfügbar"
},
"overseerr": {
"pending": "Ausstehend",
"pending": "Wartend",
"processing": "Wird verarbeitet",
"approved": "Genehmigt",
"available": "Verfügbar"
},
"netalertx": {
"total": "Gesamt",
"total": "Total",
"connected": "Verbunden",
"new_devices": "Neue Geräte",
"down_alerts": "Down-Warnungen"
@@ -307,7 +309,7 @@
"portainer": {
"running": "Wird ausgeführt",
"stopped": "Gestoppt",
"total": "Gesamt"
"total": "Total"
},
"suwayomi": {
"download": "Heruntergeladen",
@@ -350,13 +352,19 @@
"queue": "Warteschlange",
"processed": "Verarbeitet",
"errored": "Fehlgeschlagen",
"saved": "Gespeichert"
"saved": "Eingespart"
},
"traefik": {
"routers": "Router",
"services": "Dienste",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notizen",
"dbSize": "Datenbankgröße",
"unknown": "Unbekannt"
},
"navidrome": {
"nothing_streaming": "Keine aktiven Streams",
"please_wait": "Bitte warten"
@@ -364,7 +372,7 @@
"npm": {
"enabled": "Aktiviert",
"disabled": "Deaktiviert",
"total": "Gesamt"
"total": "Total"
},
"coinmarketcap": {
"configure": "Konfiguriere eine oder mehrere Kryptowährungen zur Beobachtung",
@@ -375,7 +383,7 @@
},
"gotify": {
"apps": "Programme",
"clients": "Benutzer",
"clients": "Endgeräte",
"messages": "Nachrichten"
},
"prowlarr": {
@@ -393,7 +401,7 @@
"numActiveSessions": "Sitzungen",
"numConnections": "Verbindungen",
"dataRelayed": "Weitergeleitet",
"transferRate": "Datenrate"
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Benutzer",
@@ -431,21 +439,21 @@
"cpu": "CPU",
"load": "Last",
"wait": "Bitte warten",
"temp": "TEMP",
"temp": "Temp",
"_temp": "Temperatur",
"warn": "Warnung",
"uptime": "UP",
"total": "Gesamt",
"uptime": "Betriebszeit",
"total": "Total",
"free": "Frei",
"used": "In Benutzung",
"used": "Benutzt",
"days": "d",
"hours": "h",
"crit": "Krit",
"read": "Gelesen",
"read": "Lesen",
"write": "Schreiben",
"gpu": "GPU",
"mem": "RAM",
"swap": "Swap"
"swap": "Auslagerung"
},
"quicklaunch": {
"bookmark": "Lesezeichen",
@@ -466,37 +474,37 @@
"3-day": "Bewölkt",
"3-night": "Bewölkt",
"45-day": "neblig",
"45-night": "neblig",
"48-day": "neblig",
"48-night": "neblig",
"45-night": "Nebel",
"48-day": "Nebel",
"48-night": "Nebel",
"51-day": "leichter Nieselregen",
"51-night": "leichter Nieselregen",
"51-night": "Leichter Nieselregen",
"53-day": "Nieselregen",
"53-night": "Nieselregen",
"55-day": "starker Nieselregen",
"55-night": "starker Nieselregen",
"55-night": "Starker Nieselregen",
"56-day": "leichter gefrierender Nieselregen",
"56-night": "leichter gefrierender Nieselregen",
"56-night": "Leicht gefrierender Nieselregen",
"57-day": "gefrierender Nieselregen",
"57-night": "gefrierender Nieselregen",
"57-night": "Gefrierender Nieselregen",
"61-day": "leichter Regen",
"61-night": "leichter Regen",
"61-night": "Leichter Regen",
"63-day": "Regen",
"63-night": "Regen",
"65-day": "starker Regen",
"65-night": "starker Regen",
"65-night": "Starker Regen",
"66-day": "Gefrierender Regen",
"66-night": "Gefrierender Regen",
"67-day": "Gefrierender Regen",
"67-night": "Gefrierender Regen",
"71-day": "Leichter Schneefall",
"71-night": "Leichter Schneefall",
"71-night": "Leichter Schnee",
"73-day": "Schnee",
"73-night": "Schnee",
"75-day": "Starker Schneefall",
"75-night": "Starker Schneefall",
"75-night": "Starker Schnee",
"77-day": "Schneegriesel",
"77-night": "Schneegriesel",
"77-night": "Schneekörner",
"80-day": "Leichte Schauer",
"80-night": "Leichte Schauer",
"81-day": "Schauer",
@@ -508,11 +516,11 @@
"86-day": "Schneeschauer",
"86-night": "Schneeschauer",
"95-day": "Gewitter",
"95-night": "Gewitter",
"95-night": "Sturm",
"96-day": "Gewitter mit Hagel",
"96-night": "Gewitter mit Hagel",
"99-day": "Gewitter mit Hagel",
"99-night": "Gewitter mit Hagel"
"96-night": "Sturm mit Hagel",
"99-day": "Sturm mit Hagel",
"99-night": "Sturm mit Hagel"
},
"homebridge": {
"available_update": "System",
@@ -521,15 +529,15 @@
"up_to_date": "Aktuell",
"child_bridges": "Unter-Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Senden",
"pending": "Ausstehend",
"down": "Empfangen"
"up": "Online",
"pending": "Wartend",
"down": "Offline"
},
"healthchecks": {
"new": "Neu",
"up": "Senden",
"up": "Online",
"grace": "In Karenzzeit",
"down": "Empfangen",
"down": "Offline",
"paused": "Pausiert",
"status": "Status",
"last_ping": "Letzter Ping",
@@ -544,7 +552,7 @@
"approvedPushes": "Genehmigt",
"rejectedPushes": "Abgelehnt",
"filters": "Filter",
"indexers": "Indexer"
"indexers": "Indexierer"
},
"tubearchivist": {
"downloads": "Warteschlange",
@@ -555,18 +563,19 @@
"truenas": {
"load": "Systemlast",
"uptime": "Betriebszeit",
"alerts": "Warnungen"
"alerts": "Alarme"
},
"pyload": {
"speed": "Datenrate",
"active": "Aktiv",
"queue": "Warteschlange",
"total": "Gesamt"
"total": "Total"
},
"gluetun": {
"public_ip": "Öffentliche IP",
"region": "Region",
"country": "Land"
"country": "Land",
"port_forwarded": "Port weitergeleitet"
},
"hdhomerun": {
"channels": "Kanäle",
@@ -582,12 +591,12 @@
},
"scrutiny": {
"passed": "Bestanden",
"failed": "Fehlgeschlagen",
"failed": "Fehlerhaft",
"unknown": "Unbekannt"
},
"paperlessngx": {
"inbox": "Posteingang",
"total": "Gesamt"
"total": "Total"
},
"peanut": {
"battery_charge": "Akkuladung",
@@ -619,7 +628,7 @@
"limit": "Grenze"
},
"opnsense": {
"cpu": "CPU-Auslastung",
"cpu": "CPU-Last",
"memory": "Aktiver RAM",
"wanUpload": "WAN-Upload",
"wanDownload": "WAN-Download"
@@ -644,9 +653,9 @@
"load": "Durchschnittliche Last",
"memory": "Speichernutzung",
"wanStatus": "WAN-Status",
"up": "Senden",
"down": "Empfangen",
"temp": "Temperatur",
"up": "Online",
"down": "Offline",
"temp": "Temp",
"disk": "Datenträgernutzung",
"wanIP": "WAN-IP"
},
@@ -663,11 +672,11 @@
"storage": "Speicher"
},
"uptimekuma": {
"up": "Seiten verfügbar",
"down": "Seiten nicht verfügbar",
"up": "Up",
"down": "Down",
"uptime": "Betriebszeit",
"incident": "Vorfall",
"m": "min"
"m": "m"
},
"atsumeru": {
"series": "Serien",
@@ -699,9 +708,13 @@
"fileflows": {
"queue": "Warteschlange",
"processing": "Wird verarbeitet",
"processed": "Verarbeitet",
"processed": "Wird verarbeitet",
"time": "Zeit"
},
"firefly": {
"networth": "Reinvermögen",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Datenquellen",
@@ -721,7 +734,7 @@
"size": "Größe",
"lastrun": "Letzter Durchlauf",
"nextrun": "Nächster Durchlauf",
"failed": "Fehlgeschlagen"
"failed": "Fehlerhaft"
},
"unmanic": {
"active_workers": "Aktive Worker",
@@ -738,8 +751,8 @@
"targets_total": "Alle Ziele"
},
"gatus": {
"up": "Seiten verfügbar",
"down": "Seiten nicht verfügbar",
"up": "Seiten online",
"down": "Seiten offline",
"uptime": "Betriebszeit"
},
"ghostfolio": {
@@ -772,7 +785,7 @@
"downloadCount": "Warteschlange",
"downloadBytesRemaining": "Verbleibend",
"downloadTotalBytes": "Größe",
"downloadSpeed": "Datenrate"
"downloadSpeed": "Geschwindigkeit"
},
"kavita": {
"seriesCount": "Serien",
@@ -784,7 +797,7 @@
"buildId": "Build-ID",
"succeeded": "Erfolgreich",
"notStarted": "Nicht gestartet",
"failed": "Fehlgeschlagen",
"failed": "Fehlerhaft",
"canceled": "Abgebrochen",
"inProgress": "In Bearbeitung",
"totalPrs": "PRs gesamt",
@@ -817,17 +830,17 @@
},
"openmediavault": {
"downloading": "Wird heruntergeladen",
"total": "Gesamt",
"total": "Total",
"running": "Wird ausgeführt",
"stopped": "Gestoppt",
"passed": "Bestanden",
"failed": "Fehlgeschlagen"
"passed": "Erfolgreich",
"failed": "Fehlerhaft"
},
"openwrt": {
"uptime": "Betriebszeit",
"cpuLoad": "CPU-Last (5 min-Durchschnitt)",
"up": "Senden",
"down": "Empfangen",
"up": "Online",
"down": "Offline",
"bytesTx": "Übertragen",
"bytesRx": "Empfangen"
},
@@ -836,13 +849,13 @@
"uptime": "Betriebszeit",
"lastDown": "Letzter Ausfall",
"downDuration": "Ausfalldauer",
"sitesUp": "Seiten verfügbar",
"sitesDown": "Seiten nicht verfügbar",
"sitesUp": "Seiten online",
"sitesDown": "Seiten offline",
"paused": "Pausiert",
"notyetchecked": "Noch nicht geprüft",
"up": "Senden",
"up": "Online",
"seemsdown": "Scheint nicht verfügbar",
"down": "Empfangen",
"down": "Unbekannt",
"unknown": "Unbekannt"
},
"calendar": {
@@ -850,7 +863,8 @@
"physicalRelease": "Physische Version",
"digitalRelease": "Digitale Version",
"noEventsToday": "Heute keine Ereignisse!",
"noEventsFound": "Keine Termine gefunden"
"noEventsFound": "Keine Termine gefunden",
"errorWhenLoadingData": "Fehler beim Laden der Kalenderdaten"
},
"romm": {
"platforms": "Plattformen",
@@ -861,7 +875,7 @@
"totalfilesize": "Gesamtgröße"
},
"mailcow": {
"domains": "Domänen",
"domains": "Domains",
"mailboxes": "Postfächer",
"mails": "E-Mails",
"storage": "Speicher"
@@ -879,7 +893,8 @@
"gitea": {
"notifications": "Benachrichtigungen",
"issues": "Probleme",
"pulls": "Pull-Requests"
"pulls": "Pull-Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Szenen",
@@ -894,7 +909,7 @@
"performers": "Darsteller",
"studios": "Studios",
"movies": "Filme",
"tags": "Schlagwörter",
"tags": "Tags",
"oCount": "O-Anzahl"
},
"tandoor": {
@@ -911,14 +926,14 @@
"totalValue": "Gesamtwert"
},
"crowdsec": {
"alerts": "Warnungen",
"alerts": "Alarme",
"bans": "Banns"
},
"wgeasy": {
"connected": "Verbunden",
"enabled": "Aktiviert",
"disabled": "Deaktiviert",
"total": "Gesamt"
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
@@ -946,11 +961,11 @@
"linkwarden": {
"links": "Links",
"collections": "Sammlungen",
"tags": "Schlagwörter"
"tags": "Tags"
},
"zabbix": {
"unclassified": "Nicht klassifiziert",
"information": "Informationen",
"information": "Information",
"warning": "Warnung",
"average": "Durchschnitt",
"high": "Hoch",
@@ -981,9 +996,12 @@
"beszel": {
"name": "Name",
"systems": "Systeme",
"up": "Senden",
"up": "Offline",
"down": "Offline",
"paused": "Pausiert",
"pending": "Wartend",
"status": "Status",
"updated": "Aktualisiert",
"updated": "Aktuell",
"cpu": "CPU",
"memory": "RAM",
"disk": "Festplatte",
@@ -993,19 +1011,77 @@
"apps": "Anwendungen",
"synced": "Synchronisiert",
"outOfSync": "Nicht mehr synchronisiert",
"healthy": "Fehlerfrei",
"healthy": "Gesund",
"degraded": "Beeinträchtigt",
"progressing": "Fortschritt",
"missing": "Fehlend",
"suspended": "Unterbrochen"
},
"spoolman": {
"loading": "Wird geladen"
"loading": "Lädt"
},
"gitlab": {
"groups": "Gruppen",
"issues": "Probleme",
"merges": "Merge Requests",
"projects": "Projekte"
},
"apcups": {
"status": "Status",
"load": "Last",
"bcharge": "Batterieladung",
"timeleft": "Verbleibende Zeit"
},
"karakeep": {
"bookmarks": "Lesezeichen",
"favorites": "Favoriten",
"archived": "Archiviert",
"highlights": "Highlights",
"lists": "Listen",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Netzwerk",
"connected": "Verbunden",
"disconnected": "Getrennt",
"updateStatus": "Update",
"update_yes": "Verfügbar",
"update_no": "Aktuell",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Dateien"
},
"jellystat": {
"songs": "Songs",
"movies": "Filme",
"episodes": "Episoden",
"other": "Andere"
},
"checkmk": {
"serviceErrors": "Dienstprobleme",
"hostErrors": "Hostprobleme"
},
"komodo": {
"total": "Gesamt",
"running": "Aktiv",
"stopped": "Angehalten",
"down": "Inaktiv",
"unhealthy": "Fehlerhaft",
"unknown": "Unbekannt",
"servers": "Server",
"stacks": "Stacks",
"containers": "Container"
},
"filebrowser": {
"available": "Verfügbar",
"used": "Benutzt",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Abonnements",
"thisMonthlyCost": "Dieser Monat",
"nextMonthlyCost": "Nächster Monat",
"previousMonthlyCost": "Vorh. Monat",
"nextRenewingSubscription": "Nächste Zahlung"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -148,7 +148,9 @@
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -176,7 +178,7 @@
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
@@ -357,6 +359,12 @@
"services": "Services",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
@@ -566,7 +574,8 @@
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"country": "Country",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Channels",
@@ -702,6 +711,10 @@
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
@@ -850,7 +863,8 @@
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforms",
@@ -877,9 +891,10 @@
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -982,6 +997,9 @@
"name": "Name",
"systems": "Systems",
"up": "Up",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
@@ -1007,5 +1025,63 @@
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge":"Battery Charge",
"timeleft":"Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

View File

@@ -63,14 +63,14 @@
"wlan_users": "WLAN-Uzantoj",
"up": "UP",
"down": "DOWN",
"wait": "Bonvolu atendi",
"wait": "Please wait",
"empty_data": "Subsistemostatuso nekonata"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "Ĉefprocesoro",
"cpu": "CPU",
"running": "Rulata",
"offline": "Malkonekta",
"error": "Eraro",
@@ -83,7 +83,7 @@
"partial": "Parta"
},
"ping": {
"error": "Eraro",
"error": "Error",
"ping": "Sondaĵo",
"down": "Down",
"up": "Up",
@@ -91,7 +91,7 @@
},
"siteMonitor": {
"http_status": "HTTP status",
"error": "Eraro",
"error": "Error",
"response": "Response",
"down": "Down",
"up": "Up",
@@ -108,11 +108,11 @@
"songs": "Kantoj"
},
"esphome": {
"offline": "Malkonekta",
"offline_alt": "Malkonekta",
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Totalo",
"unknown": "Nekonata"
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
@@ -133,7 +133,7 @@
"unread": "Unread"
},
"fritzbox": {
"connectionStatus": "Stato",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
@@ -148,7 +148,9 @@
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -166,9 +168,9 @@
"passes": "Passes"
},
"tautulli": {
"playing": "Ludante",
"transcoding": "Transkodigo",
"bitrate": "Bitrapido",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
@@ -176,7 +178,7 @@
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
@@ -187,7 +189,7 @@
"plex": {
"streams": "Active Streams",
"albums": "Albums",
"movies": "Filmoj",
"movies": "Movies",
"tv": "Televidprogramoj"
},
"sabnzbd": {
@@ -197,18 +199,18 @@
},
"rutorrent": {
"active": "Active",
"upload": "Alŝuti",
"download": "Elŝuti"
"upload": "Upload",
"download": "Download"
},
"transmission": {
"download": "Elŝuti",
"upload": "Alŝuti",
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Elŝuti",
"upload": "Alŝuti",
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
@@ -221,8 +223,8 @@
"invalid": "Invalid"
},
"deluge": {
"download": "Elŝuti",
"upload": "Alŝuti",
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
@@ -231,25 +233,25 @@
"cachemissbytes": "Cache Miss Bytes"
},
"downloadstation": {
"download": "Elŝuti",
"upload": "Alŝuti",
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Serioj",
"series": "Series",
"queue": "Queue",
"unknown": "Nekonata"
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Filmoj",
"movies": "Movies",
"queue": "Queue",
"unknown": "Nekonata"
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
@@ -272,17 +274,17 @@
},
"jellyseerr": {
"pending": "Pending",
"approved": "Aprobita",
"available": "Havebla"
"approved": "Approved",
"available": "Available"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Aprobita",
"available": "Havebla"
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Totalo",
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
@@ -300,14 +302,14 @@
"latency": "Latency"
},
"speedtest": {
"upload": "Alŝuti",
"download": "Elŝuti",
"ping": "Sondaĵo"
"upload": "Upload",
"download": "Download",
"ping": "Ping"
},
"portainer": {
"running": "Rulata",
"running": "Running",
"stopped": "Stopped",
"total": "Totalo"
"total": "Total"
},
"suwayomi": {
"download": "Downloaded",
@@ -357,6 +359,12 @@
"services": "Servoj",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
@@ -364,7 +372,7 @@
"npm": {
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Totalo"
"total": "Total"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
@@ -375,7 +383,7 @@
},
"gotify": {
"apps": "Applications",
"clients": "Klientoj",
"clients": "Clients",
"messages": "Mesaĝoj"
},
"prowlarr": {
@@ -396,48 +404,48 @@
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Uzantoj",
"user_count": "Users",
"status_count": "Afiŝoj",
"domain_count": "Domains"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Serioj"
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Stato",
"status": "Status",
"up": "Online",
"down": "Malkonekta"
"down": "Offline"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"authentik": {
"users": "Uzantoj",
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
},
"proxmox": {
"mem": "MEM",
"cpu": "Ĉefprocesoro",
"cpu": "CPU",
"lxc": "LXC",
"vms": "VMs"
},
"glances": {
"cpu": "Ĉefprocesoro",
"load": "Ŝarĝo",
"wait": "Bonvolu atendi",
"cpu": "CPU",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"total": "Totalo",
"free": "Libera",
"used": "Uzata",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crit",
@@ -462,13 +470,13 @@
"1-day": "Mainly Sunny",
"1-night": "Mainly Clear",
"2-day": "Nubeta",
"2-night": "Nubeta",
"2-night": "Partly Cloudy",
"3-day": "Nuba",
"3-night": "Nuba",
"3-night": "Cloudy",
"45-day": "Nebula",
"45-night": "Nebula",
"48-day": "Nebula",
"48-night": "Nebula",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Light Drizzle",
"51-night": "Light Drizzle",
"53-day": "Drizzle",
@@ -482,19 +490,19 @@
"61-day": "Light Rain",
"61-night": "Light Rain",
"63-day": "Pluvo",
"63-night": "Pluvo",
"63-night": "Rain",
"65-day": "Pluvego",
"65-night": "Pluvego",
"65-night": "Heavy Rain",
"66-day": "Frosta pluvo",
"66-night": "Frosta pluvo",
"67-day": "Frosta pluvo",
"67-night": "Frosta pluvo",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "Light Snow",
"71-night": "Light Snow",
"73-day": "Neĝo",
"73-night": "Neĝo",
"73-night": "Snow",
"75-day": "Neĝego",
"75-night": "Neĝego",
"75-night": "Heavy Snow",
"77-day": "Snow Grains",
"77-night": "Snow Grains",
"80-day": "Light Showers",
@@ -508,11 +516,11 @@
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "Fulmotondro",
"95-night": "Fulmotondro",
"95-night": "Thunderstorm",
"96-day": "Fulmotondro kun hajlo",
"96-night": "Fulmotondro kun hajlo",
"99-day": "Fulmotondro kun hajlo",
"99-night": "Fulmotondro kun hajlo"
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
},
"homebridge": {
"available_update": "Sistemo",
@@ -531,7 +539,7 @@
"grace": "In Grace Period",
"down": "Down",
"paused": "Paused",
"status": "Stato",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
@@ -541,7 +549,7 @@
"containers_failed": "Failed"
},
"autobrr": {
"approvedPushes": "Aprobita",
"approvedPushes": "Approved",
"rejectedPushes": "Rejected",
"filters": "Filtriloj",
"indexers": "Indexers"
@@ -561,15 +569,16 @@
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Totalo"
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Regiono",
"country": "Lando"
"country": "Lando",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Kanaloj",
"channels": "Channels",
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "Channel",
@@ -577,17 +586,17 @@
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bitrapido",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Nekonata"
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Totalo"
"total": "Total"
},
"peanut": {
"battery_charge": "Battery Charge",
@@ -631,14 +640,14 @@
"layers": "Layers"
},
"octoprint": {
"printer_state": "Stato",
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Stato"
"status": "Status"
},
"pfsense": {
"load": "Load Avg",
@@ -653,11 +662,11 @@
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "Ĉefprocesoro",
"cpu_usage": "CPU",
"memory_usage": "Memory"
},
"immich": {
"users": "Uzantoj",
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
@@ -670,23 +679,23 @@
"m": "m"
},
"atsumeru": {
"series": "Serioj",
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "Categories"
},
"komga": {
"libraries": "Libraries",
"series": "Serioj",
"books": "Libroj"
"series": "Series",
"books": "Books"
},
"diskstation": {
"days": "Tagoj",
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Havebla"
"volumeAvailable": "Available"
},
"mylar": {
"series": "Serioj",
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
},
@@ -702,6 +711,10 @@
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
@@ -717,7 +730,7 @@
"numshares": "Shared Items"
},
"kopia": {
"status": "Stato",
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
@@ -749,7 +762,7 @@
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Libroj",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
},
@@ -763,10 +776,10 @@
"updates": "Updates"
},
"calibreweb": {
"books": "Libroj",
"books": "Books",
"authors": "Authors",
"categories": "Categories",
"series": "Serioj"
"series": "Series"
},
"jdownloader": {
"downloadCount": "Queue",
@@ -775,12 +788,12 @@
"downloadSpeed": "Speed"
},
"kavita": {
"seriesCount": "Serioj",
"seriesCount": "Series",
"totalFiles": "Files"
},
"azuredevops": {
"result": "Result",
"status": "Stato",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
@@ -789,19 +802,19 @@
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Aprobita"
"approved": "Approved"
},
"gamedig": {
"status": "Stato",
"status": "Status",
"online": "Online",
"offline": "Malkonekta",
"offline": "Offline",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Sondaĵo"
"ping": "Ping"
},
"urbackup": {
"ok": "Ok",
@@ -811,14 +824,14 @@
},
"mealie": {
"recipes": "Recipes",
"users": "Uzantoj",
"users": "Users",
"categories": "Categories",
"tags": "Tags"
},
"openmediavault": {
"downloading": "Downloading",
"total": "Totalo",
"running": "Rulata",
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
"failed": "Failed"
@@ -832,7 +845,7 @@
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Stato",
"status": "Status",
"uptime": "Uptime",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
@@ -843,14 +856,15 @@
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"unknown": "Nekonata"
"unknown": "Unknown"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforms",
@@ -879,7 +893,8 @@
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -893,12 +908,12 @@
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
"movies": "Filmoj",
"movies": "Movies",
"tags": "Tags",
"oCount": "O Count"
},
"tandoor": {
"users": "Uzantoj",
"users": "Users",
"recipes": "Recipes",
"keywords": "Keywords"
},
@@ -907,7 +922,7 @@
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Uzantoj",
"users": "Users",
"totalValue": "Total Value"
},
"crowdsec": {
@@ -918,7 +933,7 @@
"connected": "Connected",
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Totalo"
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
@@ -927,9 +942,9 @@
"banned": "Banned"
},
"myspeed": {
"ping": "Sondaĵo",
"download": "Elŝuti",
"upload": "Alŝuti"
"ping": "Ping",
"download": "Download",
"upload": "Upload"
},
"stocks": {
"stocks": "Stocks",
@@ -950,7 +965,7 @@
},
"zabbix": {
"unclassified": "Not classified",
"information": "Informo",
"information": "Information",
"warning": "Warning",
"average": "Average",
"high": "High",
@@ -974,17 +989,20 @@
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Stato",
"status": "Status",
"online": "Online",
"offline": "Malkonekta"
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Stato",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "Ĉefprocesoro",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
@@ -993,7 +1011,7 @@
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Sana",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
@@ -1007,5 +1025,63 @@
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

View File

@@ -43,7 +43,7 @@
"mem": "MEM",
"total": "Total",
"free": "Libre",
"used": "Usado",
"used": "Utilizado",
"load": "Carga",
"temp": "TEMP",
"max": "Máx.",
@@ -63,7 +63,7 @@
"wlan_users": "Usuarios WLAN",
"up": "ACTIVO",
"down": "CAÍDO",
"wait": "Espera, por favor",
"wait": "Espere, por favor",
"empty_data": "Se desconoce el estado del subsistema"
},
"docker": {
@@ -83,7 +83,7 @@
"partial": "Parcial"
},
"ping": {
"error": "Fallo",
"error": "Error",
"ping": "Ping",
"down": "Inactivo",
"up": "Activo",
@@ -91,11 +91,11 @@
},
"siteMonitor": {
"http_status": "Estado HTTP",
"error": "Fallo",
"error": "Error",
"response": "Respuesta",
"down": "Inactivo",
"up": "Activo",
"not_available": "No disponible"
"down": "Down",
"up": "Up",
"not_available": "Not Available"
},
"emby": {
"playing": "Reproduciendo",
@@ -108,11 +108,11 @@
"songs": "Canciones"
},
"esphome": {
"offline": "Desconectado",
"offline_alt": "Desconectado",
"offline": "Offline",
"offline_alt": "Offline",
"online": "En línea",
"total": "Total",
"unknown": "Desconocido"
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Producción",
@@ -133,7 +133,7 @@
"unread": "Sin leer"
},
"fritzbox": {
"connectionStatus": "Estado",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Sin configurar",
"connectionStatusConnecting": "Conectando",
"connectionStatusAuthenticating": "Autenticando",
@@ -141,14 +141,16 @@
"connectionStatusDisconnecting": "Desconectando",
"connectionStatusDisconnected": "Desconectado",
"connectionStatusConnected": "Conectado",
"uptime": "Tiempo activo",
"uptime": "Uptime",
"maxDown": "Descarga máxima",
"maxUp": "Subida máxima",
"down": "Inactivo",
"up": "Activo",
"down": "Down",
"up": "Up",
"received": "Recibido",
"sent": "Enviado",
"externalIPAddress": "IP ext."
"externalIPAddress": "IP ext.",
"externalIPv6Address": "IPv6 ext.",
"externalIPv6Prefix": "Prefijo IPv6 ext."
},
"caddy": {
"upstreams": "Upstream (desarrollo de software)",
@@ -176,7 +178,7 @@
"connectedAp": "AP conectados",
"activeUser": "Dispositivos activos",
"alerts": "Alertas",
"connectedGateway": "Puertas de enlace conectadas",
"connectedGateways": "Puertas de enlace conectadas",
"connectedSwitches": "Conmutadores conectados"
},
"nzbget": {
@@ -191,7 +193,7 @@
"tv": "Series"
},
"sabnzbd": {
"rate": "Tasa",
"rate": "Rate",
"queue": "En cola",
"timeleft": "Tiempo restante"
},
@@ -203,13 +205,13 @@
"transmission": {
"download": "Descarga",
"upload": "Subida",
"leech": "Descargas",
"leech": "Descargando",
"seed": "Semillas"
},
"qbittorrent": {
"download": "Descarga",
"upload": "Subida",
"leech": "Descargas",
"leech": "Descargando",
"seed": "Semillas"
},
"qnap": {
@@ -223,7 +225,7 @@
"deluge": {
"download": "Descarga",
"upload": "Subida",
"leech": "Descargas",
"leech": "Descargando",
"seed": "Semillas"
},
"develancacheui": {
@@ -233,14 +235,14 @@
"downloadstation": {
"download": "Descarga",
"upload": "Subida",
"leech": "Descargas",
"leech": "Descargando",
"seed": "Semillas"
},
"sonarr": {
"wanted": "Buscando",
"queued": "En cola",
"series": "Series",
"queue": "En cola",
"queue": "Cola",
"unknown": "Desconocido"
},
"radarr": {
@@ -248,7 +250,7 @@
"missing": "Faltantes",
"queued": "En cola",
"movies": "Películas",
"queue": "En cola",
"queue": "Cola",
"unknown": "Desconocido"
},
"lidarr": {
@@ -305,19 +307,19 @@
"ping": "Ping"
},
"portainer": {
"running": "Ejecutando",
"running": "En ejecución",
"stopped": "Detenido",
"total": "Total"
},
"suwayomi": {
"download": "Descargado",
"nondownload": "Non-Downloaded",
"read": "Leer",
"nondownload": "No descargado",
"read": "Leído",
"unread": "Sin leer",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
"nondownloadedunread": "Non-Downloaded & Unread"
"downloadedread": "Descargado y leído",
"downloadedunread": "Descargado y no leído",
"nondownloadedread": "No descargado y leído",
"nondownloadedunread": "No descargado y no leído"
},
"tailscale": {
"address": "Dirección",
@@ -342,12 +344,12 @@
"totalAuthoritative": "Autoritarios",
"totalRecursive": "Recursivos",
"totalCached": "En caché",
"totalBlocked": "Bloqueado",
"totalBlocked": "Blocked",
"totalDropped": "Descartados",
"totalClients": "Clientes"
},
"tdarr": {
"queue": "En cola",
"queue": "Queue",
"processed": "Procesado",
"errored": "Error",
"saved": "Guardado"
@@ -357,13 +359,19 @@
"services": "Servicios",
"middleware": "Software intermedio"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "Sin transmisiones activas",
"nothing_streaming": "No Active Streams",
"please_wait": "Por favor, espera"
},
"npm": {
"enabled": "Activado",
"disabled": "Desactivado",
"enabled": "Activos",
"disabled": "Inactivos",
"total": "Total"
},
"coinmarketcap": {
@@ -387,37 +395,37 @@
},
"jackett": {
"configured": "Configurado",
"errored": "Error"
"errored": "Con fallo"
},
"strelaysrv": {
"numActiveSessions": "Sesiones",
"numConnections": "Conexiones",
"dataRelayed": "Retransmitido",
"transferRate": "Tasa"
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Usuarios",
"user_count": "Users",
"status_count": "Publicaciones",
"domain_count": "Dominios"
},
"medusa": {
"wanted": "Buscando",
"queued": "En cola",
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Jugadores",
"version": "Versión",
"status": "Estado",
"up": "En línea",
"down": "Desconectado"
"status": "Status",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "Leer",
"unread": "Sin leer"
"unread": "Unread"
},
"authentik": {
"users": "Usuarios",
"users": "Users",
"loginsLast24H": "Inicios de sesión (24h)",
"failedLoginsLast24H": "Inicios de sesión fallidos (24h)"
},
@@ -429,19 +437,19 @@
},
"glances": {
"cpu": "CPU",
"load": "Carga",
"wait": "Espera, por favor",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temperatura",
"warn": "Advertir",
"uptime": "ACTIVO",
"uptime": "UP",
"total": "Total",
"free": "Libre",
"used": "Usado",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crít.",
"read": "Leer",
"read": "Read",
"write": "Escribir",
"gpu": "GPU",
"mem": "Memoria",
@@ -453,7 +461,7 @@
"search": "Buscar",
"custom": "Personalizado",
"visit": "Visitar",
"url": "Enlace",
"url": "URL",
"searchsuggestion": "Sugerencia"
},
"wmo": {
@@ -462,57 +470,57 @@
"1-day": "Mayormente soleado",
"1-night": "Mayormente despejado",
"2-day": "Parcialmente nuboso",
"2-night": "Parcialmente nuboso",
"2-night": "Partly Cloudy",
"3-day": "Nublado",
"3-night": "Nublado",
"3-night": "Cloudy",
"45-day": "Niebla",
"45-night": "Niebla",
"48-day": "Niebla",
"48-night": "Niebla",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Llovizna ligera",
"51-night": "Llovizna ligera",
"51-night": "Light Drizzle",
"53-day": "Llovizna",
"53-night": "Llovizna",
"53-night": "Drizzle",
"55-day": "Llovizna intensa",
"55-night": "Llovizna intensa",
"55-night": "Heavy Drizzle",
"56-day": "Llovizna helada ligera",
"56-night": "Llovizna helada ligera",
"56-night": "Light Freezing Drizzle",
"57-day": "Llovizna helada",
"57-night": "Llovizna helada",
"57-night": "Freezing Drizzle",
"61-day": "Lluvia ligera",
"61-night": "Lluvia ligera",
"61-night": "Light Rain",
"63-day": "Lluvia",
"63-night": "Lluvia",
"63-night": "Rain",
"65-day": "Lluvia torrencial",
"65-night": "Lluvia torrencial",
"65-night": "Heavy Rain",
"66-day": "Granizo",
"66-night": "Granizo",
"67-day": "Granizo",
"67-night": "Granizo",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "Nevada leve",
"71-night": "Nevada leve",
"71-night": "Light Snow",
"73-day": "Nevada",
"73-night": "Nevada",
"73-night": "Snow",
"75-day": "Nevada intensa",
"75-night": "Nevada intensa",
"75-night": "Heavy Snow",
"77-day": "Granizada",
"77-night": "Granizada",
"77-night": "Snow Grains",
"80-day": "Llovizna",
"80-night": "Llovizna",
"80-night": "Light Showers",
"81-day": "Lluvia",
"81-night": "Lluvia",
"81-night": "Showers",
"82-day": "Lluvias torrenciales",
"82-night": "Lluvias torrenciales",
"82-night": "Heavy Showers",
"85-day": "Lluvia de nieve",
"85-night": "Lluvia de nieve",
"86-day": "Lluvia de nieve",
"86-night": "Lluvia de nieve",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "Tormenta",
"95-night": "Tormenta",
"95-night": "Thunderstorm",
"96-day": "Tormenta con granizo",
"96-night": "Tormenta con granizo",
"99-day": "Tormenta con granizo",
"99-night": "Tormenta con granizo"
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
},
"homebridge": {
"available_update": "Sistema",
@@ -527,11 +535,11 @@
},
"healthchecks": {
"new": "Nuevo",
"up": "Activo",
"up": "Up",
"grace": "En Periodo de Gracia",
"down": "Inactivo",
"down": "Down",
"paused": "Pausado",
"status": "Estado",
"status": "Status",
"last_ping": "Último ping",
"never": "Aún no hay pings"
},
@@ -541,49 +549,50 @@
"containers_failed": "Fallido"
},
"autobrr": {
"approvedPushes": "Aprobado",
"approvedPushes": "Approved",
"rejectedPushes": "Rechazado",
"filters": "Filtros",
"indexers": "Indexadores"
"indexers": "Indexers"
},
"tubearchivist": {
"downloads": "En cola",
"downloads": "Queue",
"videos": "Videos",
"channels": "Canales",
"playlists": "Listas de reproducción"
},
"truenas": {
"load": "Carga del sistema",
"uptime": "Tiempo activo",
"alerts": "Alertas"
"uptime": "Uptime",
"alerts": "Alerts"
},
"pyload": {
"speed": "Velocidad",
"active": "Activo",
"queue": "En cola",
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "IP pública",
"region": "Región",
"country": "País"
"country": "País",
"port_forwarded": "Puerto redireccionado"
},
"hdhomerun": {
"channels": "Canales",
"channels": "Channels",
"hd": "Alta definición",
"tunerCount": "Sintonizadores",
"channelNumber": "Canal",
"channelNetwork": "Red",
"signalStrength": "Intensidad",
"signalQuality": "Calidad",
"symbolQuality": "Calidad",
"networkRate": "Tasa de bits",
"symbolQuality": "Quality",
"networkRate": "Bitrate",
"clientIP": "Cliente"
},
"scrutiny": {
"passed": "Aprobado",
"failed": "Fallido",
"unknown": "Desconocido"
"failed": "Failed",
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Bandeja de entrada",
@@ -593,23 +602,23 @@
"battery_charge": "Carga de la batería",
"ups_load": "Carga del UPS",
"ups_status": "Estado del UPS",
"online": "En línea",
"online": "Online",
"on_battery": "Con batería",
"low_battery": "Batería baja"
},
"nextdns": {
"wait": "Por favor, espera",
"wait": "Please Wait",
"no_devices": "No se recibieron datos del dispositivo"
},
"mikrotik": {
"cpuLoad": "Carga de la CPU",
"memoryUsed": "Memoria utilizada",
"uptime": "Tiempo activo",
"uptime": "Uptime",
"numberOfLeases": "Alquileres"
},
"xteve": {
"streams_all": "Todas las transmisiones",
"streams_active": "Transmisiones activas",
"streams_active": "Active Streams",
"streams_xepg": "Canales XEPG"
},
"opendtu": {
@@ -619,7 +628,7 @@
"limit": "Límite"
},
"opnsense": {
"cpu": "Carga de la CPU",
"cpu": "CPU Load",
"memory": "Memoria activa",
"wanUpload": "Subida WAN",
"wanDownload": "Descarga WAN"
@@ -631,7 +640,7 @@
"layers": "Capas"
},
"octoprint": {
"printer_state": "Estado",
"printer_state": "Status",
"temp_tool": "Temperatura de la herramienta",
"temp_bed": "Temperatura de la plataforma",
"job_completion": "Finalización"
@@ -644,9 +653,9 @@
"load": "Promedio de carga",
"memory": "Uso de memoria",
"wanStatus": "Estado de la WAN",
"up": "Activo",
"down": "Inactivo",
"temp": "Temperatura",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Uso del disco",
"wanIP": "IP de la WAN"
},
@@ -657,7 +666,7 @@
"memory_usage": "Memoria"
},
"immich": {
"users": "Usuarios",
"users": "Users",
"photos": "Fotos",
"videos": "Videos",
"storage": "Almacenamiento"
@@ -665,7 +674,7 @@
"uptimekuma": {
"up": "Sitios activos",
"down": "Sitios inactivos",
"uptime": "Tiempo activo",
"uptime": "Uptime",
"incident": "Incidencia",
"m": "m"
},
@@ -678,17 +687,17 @@
"komga": {
"libraries": "Librerías",
"series": "Series",
"books": "Libros"
"books": "Books"
},
"diskstation": {
"days": "Días",
"uptime": "Tiempo activo",
"volumeAvailable": "Disponible"
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"mylar": {
"series": "Series",
"issues": "Números",
"wanted": "Buscando"
"wanted": "Wanted"
},
"photoprism": {
"albums": "Álbumes",
@@ -697,11 +706,15 @@
"people": "Personas"
},
"fileflows": {
"queue": "En cola",
"processing": "Procesando",
"processed": "Procesado",
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Tiempo"
},
"firefly": {
"networth": "Patrimonio neto",
"budget": "Presupuesto"
},
"grafana": {
"dashboards": "Tableros",
"datasources": "Fuentes de datos",
@@ -717,11 +730,11 @@
"numshares": "Elementos compartidos"
},
"kopia": {
"status": "Estado",
"status": "Status",
"size": "Tamaño",
"lastrun": "Última ejecución",
"nextrun": "Siguiente ejecución",
"failed": "Fallido"
"failed": "Failed"
},
"unmanic": {
"active_workers": "Trabajadores activos",
@@ -738,20 +751,20 @@
"targets_total": "Objetivos totales"
},
"gatus": {
"up": "Sitios activos",
"down": "Sitios inactivos",
"uptime": "Tiempo activo"
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime"
},
"ghostfolio": {
"gross_percent_today": "Hoy",
"gross_percent_today": "Today",
"gross_percent_1y": "Un año",
"gross_percent_max": "Todo el tiempo"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Libros",
"books": "Books",
"podcastsDuration": "Duración",
"booksDuration": "Duración"
"booksDuration": "Duration"
},
"homeassistant": {
"people_home": "Personas en casa",
@@ -760,7 +773,7 @@
},
"whatsupdocker": {
"monitoring": "Monitorizando",
"updates": "Actualizaciones"
"updates": "Updates"
},
"calibreweb": {
"books": "Libros",
@@ -776,29 +789,29 @@
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Archivos"
"totalFiles": "Files"
},
"azuredevops": {
"result": "Resultado",
"status": "Estado",
"status": "Status",
"buildId": "ID de compilación",
"succeeded": "Exitoso",
"notStarted": "No iniciado",
"failed": "Fallido",
"failed": "Failed",
"canceled": "Cancelado",
"inProgress": "En curso",
"totalPrs": "RP totales",
"myPrs": "Mis logros",
"approved": "Aprobado"
"approved": "Approved"
},
"gamedig": {
"status": "Estado",
"online": "En línea",
"offline": "Desconectado",
"status": "Status",
"online": "Online",
"offline": "Offline",
"name": "Nombre",
"map": "Mapa",
"currentPlayers": "Jugadores actuales",
"players": "Jugadores",
"players": "Players",
"maxPlayers": "Jugadores máximos",
"bots": "Bots",
"ping": "Ping"
@@ -811,46 +824,47 @@
},
"mealie": {
"recipes": "Recetas",
"users": "Usuarios",
"categories": "Categorías",
"users": "Users",
"categories": "Categories",
"tags": "Etiquetas"
},
"openmediavault": {
"downloading": "Descargando",
"total": "Total",
"running": "Ejecutando",
"stopped": "Detenido",
"passed": "Aprobado",
"failed": "Fallido"
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
"failed": "Failed"
},
"openwrt": {
"uptime": "Tiempo activo",
"uptime": "Uptime",
"cpuLoad": "Carga promedio del CPU (5m)",
"up": "Activo",
"down": "Inactivo",
"up": "Up",
"down": "Down",
"bytesTx": "Transmitido",
"bytesRx": "Recibido"
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Estado",
"uptime": "Tiempo activo",
"status": "Status",
"uptime": "Uptime",
"lastDown": "Último periodo de inactividad",
"downDuration": "Duración de inactividad",
"sitesUp": "Sitios activos",
"sitesDown": "Sitios inactivos",
"paused": "Pausado",
"sitesUp": "Sites Up",
"sitesDown": "Sites Down",
"paused": "Paused",
"notyetchecked": "Aún no verificado",
"up": "Activo",
"up": "Up",
"seemsdown": "Parece caída",
"down": "Inactivo",
"unknown": "Desconocido"
"down": "Down",
"unknown": "Unknown"
},
"calendar": {
"inCinemas": "En cine",
"physicalRelease": "Lanzamiento en físico",
"digitalRelease": "Lanzamiento en digital",
"noEventsToday": "¡Sin eventos para hoy!",
"noEventsFound": "No se encontraron eventos"
"noEventsFound": "No se encontraron eventos",
"errorWhenLoadingData": "Error al cargar los datos del calendario"
},
"romm": {
"platforms": "Plataformas",
@@ -861,10 +875,10 @@
"totalfilesize": "Tamaño total"
},
"mailcow": {
"domains": "Dominios",
"domains": "Domains",
"mailboxes": "Buzones de correo",
"mails": "Correos",
"storage": "Almacenamiento"
"storage": "Storage"
},
"netdata": {
"warnings": "Advertencias",
@@ -873,13 +887,14 @@
"plantit": {
"events": "Eventos",
"plants": "Plantas",
"photos": "Fotos",
"photos": "Photos",
"species": "Especies"
},
"gitea": {
"notifications": "Notificaciones",
"issues": "Números",
"pulls": "Solicitudes de cambios"
"issues": "Issues",
"pulls": "Solicitudes de cambios",
"repositories": "Repositorios"
},
"stash": {
"scenes": "Escenas",
@@ -893,13 +908,13 @@
"galleries": "Galerías",
"performers": "Intérpretes",
"studios": "Estudios",
"movies": "Películas",
"tags": "Etiquetas",
"movies": "Movies",
"tags": "Tags",
"oCount": "Cantidad de O"
},
"tandoor": {
"users": "Usuarios",
"recipes": "Recetas",
"users": "Users",
"recipes": "Recipes",
"keywords": "Palabras clave"
},
"homebox": {
@@ -907,17 +922,17 @@
"totalWithWarranty": "Con garantía",
"locations": "Ubicaciones",
"labels": "Etiquetas",
"users": "Usuarios",
"users": "Users",
"totalValue": "Valor total"
},
"crowdsec": {
"alerts": "Alertas",
"alerts": "Alerts",
"bans": "Baneos"
},
"wgeasy": {
"connected": "Conectado",
"enabled": "Activado",
"disabled": "Desactivado",
"connected": "Conectados",
"enabled": "Activo",
"disabled": "Inactivos",
"total": "Total"
},
"swagdashboard": {
@@ -928,8 +943,8 @@
},
"myspeed": {
"ping": "Ping",
"download": "Descarga",
"upload": "Subida"
"download": "Download",
"upload": "Upload"
},
"stocks": {
"stocks": "Acciones",
@@ -940,17 +955,17 @@
},
"frigate": {
"cameras": "Cámaras",
"uptime": "Tiempo activo",
"version": "Versión"
"uptime": "Uptime",
"version": "Version"
},
"linkwarden": {
"links": "Enlaces",
"collections": "Colecciones",
"tags": "Etiquetas"
"tags": "Tags"
},
"zabbix": {
"unclassified": "No clasificado",
"information": "Información",
"information": "Information",
"warning": "Advertencia",
"average": "Promedio",
"high": "Alto",
@@ -971,41 +986,102 @@
"tasksInProgress": "Tareas en progreso"
},
"headscale": {
"name": "Nombre",
"address": "Dirección",
"last_seen": "Visto por última vez",
"status": "Estado",
"online": "En línea",
"offline": "Desconectado"
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "Nombre",
"systems": "Systems",
"up": "Activo",
"status": "Estado",
"updated": "Actualizado",
"name": "Name",
"systems": "Sistemas",
"up": "Up",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
"disk": "Disk",
"network": "NET"
"disk": "Disco",
"network": "RED"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "Saludable",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Faltantes",
"suspended": "Suspended"
"synced": "Sincronizado",
"outOfSync": "Desincronizado",
"healthy": "Healthy",
"degraded": "Degradado",
"progressing": "Progresando",
"missing": "Missing",
"suspended": "Suspendido"
},
"spoolman": {
"loading": "Cargando"
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Números",
"merges": "Merge Requests",
"projects": "Projects"
"groups": "Grupos",
"issues": "Issues",
"merges": "Solicitudes de fusión",
"projects": "Proyectos"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Marcadores",
"favorites": "Favoritos",
"archived": "Archivado",
"highlights": "Destacados",
"lists": "Listas",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Conectado",
"disconnected": "Desconectado",
"updateStatus": "Actualización",
"update_yes": "Disponible",
"update_no": "Actualizado",
"downloads": "Descargas",
"uploads": "Subidas",
"sharedFiles": "Compartidos"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Otros"
},
"checkmk": {
"serviceErrors": "Problemas de servicio",
"hostErrors": "Problemas de host"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

View File

@@ -63,7 +63,7 @@
"wlan_users": "WLAN Erabiltzaileak",
"up": "UP",
"down": "DOWN",
"wait": "Itxaron mesedez",
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"docker": {
@@ -85,14 +85,14 @@
"ping": {
"error": "Error",
"ping": "Ping",
"down": "Down",
"up": "Up",
"down": "Behera",
"up": "Gora",
"not_available": "Not Available"
},
"siteMonitor": {
"http_status": "HTTP status",
"error": "Error",
"response": "Response",
"response": "Erantzuna",
"down": "Down",
"up": "Up",
"not_available": "Not Available"
@@ -102,8 +102,8 @@
"transcoding": "Transcoding",
"bitrate": "Bit-tasa",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"movies": "Filmak",
"series": "Serieak",
"episodes": "Episodes",
"songs": "Abestiak"
},
@@ -111,44 +111,46 @@
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Guztira",
"unknown": "Ezezaguna"
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Produkzioak",
"battery_soc": "Bateria",
"grid_power": "Sarea",
"home_power": "Kontsumoa",
"charge_power": "Kargagailua",
"kilowatt": "kW"
},
"flood": {
"download": "Download",
"upload": "Upload",
"download": "Jeitsierak",
"upload": "Kargatu",
"leech": "Leech",
"seed": "Seed"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Harpidetzak",
"unread": "Irakurri gabe"
},
"fritzbox": {
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusConnecting": "Konektatzen",
"connectionStatusAuthenticating": "Authenticating",
"connectionStatusPendingDisconnect": "Pending Disconnect",
"connectionStatusDisconnecting": "Disconnecting",
"connectionStatusDisconnected": "Disconnected",
"connectionStatusConnected": "Connected",
"connectionStatusDisconnected": "Deskonektatuta",
"connectionStatusConnected": "Konektatuta",
"uptime": "Uptime",
"maxDown": "Max. Down",
"maxUp": "Max. Up",
"down": "Down",
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"sent": "Bidalita",
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -168,7 +170,7 @@
"tautulli": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bit-tasa",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
@@ -176,7 +178,7 @@
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
@@ -241,7 +243,7 @@
"queued": "Queued",
"series": "Series",
"queue": "Queue",
"unknown": "Ezezaguna"
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
@@ -249,7 +251,7 @@
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Ezezaguna"
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
@@ -282,7 +284,7 @@
"available": "Available"
},
"netalertx": {
"total": "Guztira",
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
@@ -307,7 +309,7 @@
"portainer": {
"running": "Running",
"stopped": "Stopped",
"total": "Guztira"
"total": "Total"
},
"suwayomi": {
"download": "Downloaded",
@@ -357,6 +359,12 @@
"services": "Services",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
@@ -364,7 +372,7 @@
"npm": {
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Guztira"
"total": "Total"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
@@ -430,14 +438,14 @@
"glances": {
"cpu": "CPU",
"load": "Load",
"wait": "Itxaron mesedez",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"total": "Guztira",
"total": "Total",
"free": "Free",
"used": "Erabilita",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crit",
@@ -561,12 +569,13 @@
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Guztira"
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"country": "Country",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Channels",
@@ -577,17 +586,17 @@
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bit-tasa",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Ezezaguna"
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Guztira"
"total": "Total"
},
"peanut": {
"battery_charge": "Battery Charge",
@@ -658,7 +667,7 @@
},
"immich": {
"users": "Users",
"photos": "Photos",
"photos": "Argazkiak",
"videos": "Videos",
"storage": "Storage"
},
@@ -681,13 +690,13 @@
"books": "Books"
},
"diskstation": {
"days": "Egun",
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"issues": "Arazoak",
"wanted": "Wanted"
},
"photoprism": {
@@ -702,6 +711,10 @@
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
@@ -795,10 +808,10 @@
"status": "Status",
"online": "Online",
"offline": "Offline",
"name": "Name",
"map": "Map",
"name": "Izena",
"map": "Mapa",
"currentPlayers": "Current players",
"players": "Jokalariak",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
@@ -813,11 +826,11 @@
"recipes": "Recipes",
"users": "Users",
"categories": "Categories",
"tags": "Tags"
"tags": "Etiketak"
},
"openmediavault": {
"downloading": "Downloading",
"total": "Guztira",
"downloading": "Deskargatzen",
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
@@ -843,14 +856,15 @@
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"unknown": "Ezezaguna"
"unknown": "Unknown"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "Ez da gertaerarik aurkitu.",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforms",
@@ -862,7 +876,7 @@
},
"mailcow": {
"domains": "Domains",
"mailboxes": "Mailboxes",
"mailboxes": "Gutunontziak",
"mails": "Mails",
"storage": "Storage"
},
@@ -871,15 +885,16 @@
"criticals": "Criticals"
},
"plantit": {
"events": "Events",
"plants": "Plants",
"events": "Ekitaldiak",
"plants": "Landareak",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "Notifications",
"notifications": "Jakinarazpenak",
"issues": "Issues",
"pulls": "Pull Requests"
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -888,8 +903,8 @@
"playDuration": "Time Watched",
"sceneSize": "Scenes Size",
"sceneDuration": "Scenes Duration",
"images": "Images",
"imageSize": "Images Size",
"images": "Irudia",
"imageSize": "Irudiaren tamaina",
"galleries": "Galleries",
"performers": "Performers",
"studios": "Studios",
@@ -900,15 +915,15 @@
"tandoor": {
"users": "Users",
"recipes": "Recipes",
"keywords": "Keywords"
"keywords": "Hitz gakoak"
},
"homebox": {
"items": "Items",
"items": "Elementuak",
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"labels": "Etiketak",
"users": "Users",
"totalValue": "Total Value"
"totalValue": "Guztira"
},
"crowdsec": {
"alerts": "Alerts",
@@ -918,7 +933,7 @@
"connected": "Connected",
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Guztira"
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
@@ -945,23 +960,23 @@
},
"linkwarden": {
"links": "Links",
"collections": "Collections",
"collections": "Bildumak",
"tags": "Tags"
},
"zabbix": {
"unclassified": "Not classified",
"information": "Informazioa",
"warning": "Warning",
"average": "Average",
"high": "High",
"information": "Information",
"warning": "Abisua",
"average": "Batez besteko",
"high": "Altua",
"disaster": "Disaster"
},
"lubelogger": {
"vehicle": "Vehicle",
"vehicles": "Vehicles",
"vehicles": "Ibilgailuak",
"serviceRecords": "Service Records",
"reminders": "Reminders",
"nextReminder": "Next Reminder",
"reminders": "Oroigarriak",
"nextReminder": "Hurrengo abisua",
"none": "None"
},
"vikunja": {
@@ -982,6 +997,9 @@
"name": "Name",
"systems": "Systems",
"up": "Up",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
@@ -990,22 +1008,80 @@
"network": "NET"
},
"argocd": {
"apps": "Apps",
"synced": "Synced",
"apps": "Aplikazioak",
"synced": "Sinkronizatuta",
"outOfSync": "Out Of Sync",
"healthy": "Osasuntsu",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "Missing",
"suspended": "Suspended"
"suspended": "Etenda"
},
"spoolman": {
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"groups": "Taldeak",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
"projects": "Proiektuak"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

View File

@@ -63,7 +63,7 @@
"wlan_users": "WLAN Users",
"up": "UP",
"down": "DOWN",
"wait": "Odota, ole hyvä",
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"docker": {
@@ -111,7 +111,7 @@
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Yhteensä",
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
@@ -133,7 +133,7 @@
"unread": "Unread"
},
"fritzbox": {
"connectionStatus": "Tila",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
@@ -148,7 +148,9 @@
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -166,17 +168,17 @@
"passes": "Passes"
},
"tautulli": {
"playing": "Toistaa",
"transcoding": "Transkoodaa",
"bitrate": "Bittinopeus",
"no_active": "Ei aktiivisia striimejä",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
@@ -191,7 +193,7 @@
"tv": "TV Shows"
},
"sabnzbd": {
"rate": "Nopeus",
"rate": "Rate",
"queue": "Jono",
"timeleft": "Aikaa jäljellä"
},
@@ -240,25 +242,25 @@
"wanted": "Haluttu",
"queued": "Jonossa",
"series": "Series",
"queue": "Jono",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Haluttu",
"wanted": "Wanted",
"missing": "Missing",
"queued": "Jonossa",
"queued": "Queued",
"movies": "Movies",
"queue": "Jono",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Haluttu",
"queued": "Jonossa",
"wanted": "Wanted",
"queued": "Queued",
"artists": "Artists"
},
"readarr": {
"wanted": "Haluttu",
"queued": "Jonossa",
"wanted": "Wanted",
"queued": "Queued",
"books": "Kirjoja"
},
"bazarr": {
@@ -271,18 +273,18 @@
"available": "Saatavilla"
},
"jellyseerr": {
"pending": "Vireillä",
"approved": "Hyväksytty",
"available": "Saatavilla"
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"overseerr": {
"pending": "Vireillä",
"pending": "Pending",
"processing": "Processing",
"approved": "Hyväksytty",
"available": "Saatavilla"
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "Yhteensä",
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
@@ -294,8 +296,8 @@
"gravity": "Vakavuus"
},
"adguard": {
"queries": "Kyselyjä",
"blocked": "Estetty",
"queries": "Queries",
"blocked": "Blocked",
"filtered": "Suodatettu",
"latency": "Viive"
},
@@ -307,10 +309,10 @@
"portainer": {
"running": "Running",
"stopped": "Pysäytetty",
"total": "Yhteensä"
"total": "Total"
},
"suwayomi": {
"download": "Ladattu",
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
@@ -334,7 +336,7 @@
"ago": "{{value}} Ago"
},
"technitium": {
"totalQueries": "Kyselyjä",
"totalQueries": "Queries",
"totalNoError": "Success",
"totalServerFailure": "Failures",
"totalNxDomain": "NX Domains",
@@ -342,12 +344,12 @@
"totalAuthoritative": "Authoritative",
"totalRecursive": "Recursive",
"totalCached": "Cached",
"totalBlocked": "Estetty",
"totalBlocked": "Blocked",
"totalDropped": "Dropped",
"totalClients": "Asiakasohjelmia"
},
"tdarr": {
"queue": "Jono",
"queue": "Queue",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
@@ -357,14 +359,20 @@
"services": "Palveluja",
"middleware": "Middlewareja"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "Ei aktiivisia striimejä",
"nothing_streaming": "No Active Streams",
"please_wait": "Odota, ole hyvä"
},
"npm": {
"enabled": "Käytössä",
"disabled": "Poissa käytöstä",
"total": "Yhteensä"
"total": "Total"
},
"coinmarketcap": {
"configure": "Määritä yksi tai useampi kryptovaluutta seurattavaksi",
@@ -375,13 +383,13 @@
},
"gotify": {
"apps": "Sovelluksia",
"clients": "Asiakasohjelmia",
"clients": "Clients",
"messages": "Viestejä"
},
"prowlarr": {
"enableIndexers": "Indeksoijia",
"numberOfGrabs": "Nappauksia",
"numberOfQueries": "Kyselyjä",
"numberOfQueries": "Queries",
"numberOfFailGrabs": "Epäonnistuneita nappauksia",
"numberOfFailQueries": "Epäonnistuneita kyselyjä"
},
@@ -393,7 +401,7 @@
"numActiveSessions": "Istuntoja",
"numConnections": "Yhteyksiä",
"dataRelayed": "Välitetty",
"transferRate": "Nopeus"
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Users",
@@ -401,14 +409,14 @@
"domain_count": "Verkkotunnuksia"
},
"medusa": {
"wanted": "Haluttu",
"queued": "Jonossa",
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Tila",
"status": "Status",
"up": "Online",
"down": "Offline"
},
@@ -429,15 +437,15 @@
},
"glances": {
"cpu": "CPU",
"load": "Kuorma",
"wait": "Odota, ole hyvä",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"total": "Yhteensä",
"free": "Vapaana",
"used": "Käytetty",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crit",
@@ -522,7 +530,7 @@
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Vireillä",
"pending": "Pending",
"down": "Down"
},
"healthchecks": {
@@ -531,7 +539,7 @@
"grace": "In Grace Period",
"down": "Down",
"paused": "Paused",
"status": "Tila",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
@@ -541,13 +549,13 @@
"containers_failed": "Failed"
},
"autobrr": {
"approvedPushes": "Hyväksytty",
"approvedPushes": "Approved",
"rejectedPushes": "Rejected",
"filters": "Filters",
"indexers": "Indeksoijia"
"indexers": "Indexers"
},
"tubearchivist": {
"downloads": "Jono",
"downloads": "Queue",
"videos": "Videos",
"channels": "Channels",
"playlists": "Playlists"
@@ -559,14 +567,15 @@
},
"pyload": {
"speed": "Speed",
"active": "Aktiivinen",
"queue": "Jono",
"total": "Yhteensä"
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"country": "Country",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Channels",
@@ -577,7 +586,7 @@
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "Bittinopeus",
"networkRate": "Bitrate",
"clientIP": "Client"
},
"scrutiny": {
@@ -587,7 +596,7 @@
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Yhteensä"
"total": "Total"
},
"peanut": {
"battery_charge": "Battery Charge",
@@ -598,7 +607,7 @@
"low_battery": "Low Battery"
},
"nextdns": {
"wait": "Odota, ole hyvä",
"wait": "Please Wait",
"no_devices": "No Device Data Received"
},
"mikrotik": {
@@ -631,14 +640,14 @@
"layers": "Layers"
},
"octoprint": {
"printer_state": "Tila",
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Tila"
"status": "Status"
},
"pfsense": {
"load": "Load Avg",
@@ -678,17 +687,17 @@
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Kirjoja"
"books": "Books"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Saatavilla"
"volumeAvailable": "Available"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Haluttu"
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
@@ -697,11 +706,15 @@
"people": "People"
},
"fileflows": {
"queue": "Jono",
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
@@ -717,7 +730,7 @@
"numshares": "Shared Items"
},
"kopia": {
"status": "Tila",
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
@@ -749,7 +762,7 @@
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Kirjoja",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
},
@@ -763,14 +776,14 @@
"updates": "Updates"
},
"calibreweb": {
"books": "Kirjoja",
"books": "Books",
"authors": "Authors",
"categories": "Categories",
"series": "Series"
},
"jdownloader": {
"downloadCount": "Jono",
"downloadBytesRemaining": "Jäljellä",
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
@@ -780,7 +793,7 @@
},
"azuredevops": {
"result": "Result",
"status": "Tila",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
@@ -789,10 +802,10 @@
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Hyväksytty"
"approved": "Approved"
},
"gamedig": {
"status": "Tila",
"status": "Status",
"online": "Online",
"offline": "Offline",
"name": "Name",
@@ -817,9 +830,9 @@
},
"openmediavault": {
"downloading": "Downloading",
"total": "Yhteensä",
"total": "Total",
"running": "Running",
"stopped": "Pysäytetty",
"stopped": "Stopped",
"passed": "Passed",
"failed": "Failed"
},
@@ -832,7 +845,7 @@
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Tila",
"status": "Status",
"uptime": "Uptime",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
@@ -850,7 +863,8 @@
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforms",
@@ -861,7 +875,7 @@
"totalfilesize": "Total Size"
},
"mailcow": {
"domains": "Verkkotunnuksia",
"domains": "Domains",
"mailboxes": "Mailboxes",
"mails": "Mails",
"storage": "Storage"
@@ -879,7 +893,8 @@
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -916,9 +931,9 @@
},
"wgeasy": {
"connected": "Connected",
"enabled": "Käytössä",
"disabled": "Poissa käytöstä",
"total": "Yhteensä"
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
@@ -974,7 +989,7 @@
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Tila",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
@@ -982,7 +997,10 @@
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Tila",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
@@ -1007,5 +1025,63 @@
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -148,7 +148,9 @@
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -176,7 +178,7 @@
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
@@ -357,6 +359,12 @@
"services": "Services",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
@@ -439,7 +447,7 @@
"free": "Free",
"used": "Used",
"days": "d",
"hours": "घं.",
"hours": "h",
"crit": "Crit",
"read": "Read",
"write": "Write",
@@ -566,7 +574,8 @@
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"country": "Country",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Channels",
@@ -702,6 +711,10 @@
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
@@ -850,7 +863,8 @@
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforms",
@@ -879,7 +893,8 @@
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -982,6 +997,9 @@
"name": "Name",
"systems": "Systems",
"up": "Up",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
@@ -1007,5 +1025,63 @@
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -14,11 +14,11 @@
"date": "{{value, date}}",
"relativeDate": "{{value, relativeDate}}",
"duration": "{{value, duration}}",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m",
"seconds": "s"
"months": "",
"days": "",
"hours": "",
"minutes": "",
"seconds": ""
},
"widget": {
"missing_type": "없는 위젯 유형: {{type}}",
@@ -51,7 +51,7 @@
},
"unifi": {
"users": "사용자",
"uptime": "Uptime",
"uptime": "가동 시간",
"days": "일",
"wan": "WAN",
"lan": "LAN",
@@ -61,9 +61,9 @@
"wlan_devices": "WLAN 장치",
"lan_users": "LAN 사용자",
"wlan_users": "WLAN 사용자",
"up": "가동",
"up": "UP",
"down": "DOWN",
"wait": "잠시만 기다리세요",
"wait": "Please wait",
"empty_data": "서브시스템 상태 알 수 없음"
},
"docker": {
@@ -83,7 +83,7 @@
"partial": "부분적"
},
"ping": {
"error": "오류",
"error": "Error",
"ping": "Ping",
"down": "Down",
"up": "Up",
@@ -91,11 +91,11 @@
},
"siteMonitor": {
"http_status": "HTTP 상태",
"error": "오류",
"error": "Error",
"response": "응답",
"down": "Down",
"up": "Up",
"not_available": "사용할 수 없음"
"not_available": "Not Available"
},
"emby": {
"playing": "재생 중",
@@ -108,11 +108,11 @@
"songs": "음악"
},
"esphome": {
"offline": "중지",
"offline_alt": "중지",
"offline": "Offline",
"offline_alt": "Offline",
"online": "온라인",
"total": "총합",
"unknown": "알 수 없음"
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
@@ -133,7 +133,7 @@
"unread": "미열람"
},
"fritzbox": {
"connectionStatus": "상태",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "구성되지 않음",
"connectionStatusConnecting": "연결중",
"connectionStatusAuthenticating": "인증",
@@ -148,7 +148,9 @@
"up": "Up",
"received": "수신됨",
"sent": "전송됨",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -166,17 +168,17 @@
"passes": "Passes"
},
"tautulli": {
"playing": "재생 중",
"transcoding": "트랜스코딩",
"bitrate": "비트레이트",
"no_active": "활성 스트림 없음",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "연결된 AP",
"activeUser": "활성 장치",
"alerts": "경고",
"connectedGateway": "연결된 게이트웨이",
"connectedGateways": "Connected gateways",
"connectedSwitches": "연결된 스위치"
},
"nzbget": {
@@ -186,31 +188,31 @@
},
"plex": {
"streams": "활성 스트림",
"albums": "Albums",
"movies": "영화",
"albums": "앨범",
"movies": "Movies",
"tv": "TV 쇼"
},
"sabnzbd": {
"rate": "비율",
"rate": "Rate",
"queue": "대기열",
"timeleft": "남은 시간"
},
"rutorrent": {
"active": "활성",
"upload": "업로드",
"download": "다운로드"
"upload": "Upload",
"download": "Download"
},
"transmission": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qnap": {
"cpuUsage": "CPU 사용",
@@ -221,44 +223,44 @@
"invalid": "잘못됨"
},
"deluge": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"develancacheui": {
"cachehitbytes": "Cache Hit Bytes",
"cachemissbytes": "Cache Miss Bytes"
},
"downloadstation": {
"download": "다운로드",
"upload": "업로드",
"leech": "리치",
"seed": "시드"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"wanted": "요청",
"queued": "대기 중",
"series": "시리즈",
"queue": "대기열",
"unknown": "알 수 없음"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "요청",
"wanted": "Wanted",
"missing": "빠짐",
"queued": "대기 중",
"movies": "영화",
"queue": "대기열",
"unknown": "알 수 없음"
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "요청",
"queued": "대기 중",
"wanted": "Wanted",
"queued": "Queued",
"artists": "Artists"
},
"readarr": {
"wanted": "요청",
"queued": "대기 중",
"wanted": "Wanted",
"queued": "Queued",
"books": "책"
},
"bazarr": {
@@ -271,19 +273,19 @@
"available": "이용 가능"
},
"jellyseerr": {
"pending": "대기 중",
"approved": "승인됨",
"available": "이용 가능"
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"overseerr": {
"pending": "대기 중",
"pending": "Pending",
"processing": "처리 중",
"approved": "승인됨",
"available": "이용 가능"
"approved": "Approved",
"available": "Available"
},
"netalertx": {
"total": "총합",
"connected": "연결됨",
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
@@ -294,26 +296,26 @@
"gravity": "Gravity"
},
"adguard": {
"queries": "쿼리",
"blocked": "차단됨",
"queries": "Queries",
"blocked": "Blocked",
"filtered": "필터링됨",
"latency": "지연"
},
"speedtest": {
"upload": "업로드",
"download": "다운로드",
"upload": "Upload",
"download": "Download",
"ping": "Ping"
},
"portainer": {
"running": "가동 중",
"running": "Running",
"stopped": "중지",
"total": "총합"
"total": "Total"
},
"suwayomi": {
"download": "다운로드됨",
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "읽음",
"unread": "미열람",
"read": "Read",
"unread": "Unread",
"downloadedread": "Downloaded & Read",
"downloadedunread": "Downloaded & Unread",
"nondownloadedread": "Non-Downloaded & Read",
@@ -334,7 +336,7 @@
"ago": "{{value}} 전"
},
"technitium": {
"totalQueries": "쿼리",
"totalQueries": "Queries",
"totalNoError": "Success",
"totalServerFailure": "Failures",
"totalNxDomain": "NX Domains",
@@ -342,12 +344,12 @@
"totalAuthoritative": "Authoritative",
"totalRecursive": "Recursive",
"totalCached": "Cached",
"totalBlocked": "차단됨",
"totalBlocked": "Blocked",
"totalDropped": "Dropped",
"totalClients": "클라이언트"
},
"tdarr": {
"queue": "대기열",
"queue": "Queue",
"processed": "처리됨",
"errored": "오류",
"saved": "저장됨"
@@ -357,14 +359,20 @@
"services": "서비스",
"middleware": "미들웨어"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "활성 스트림 없음",
"nothing_streaming": "No Active Streams",
"please_wait": "잠시만 기다리세요"
},
"npm": {
"enabled": "활성",
"disabled": "비활성",
"total": "총합"
"total": "Total"
},
"coinmarketcap": {
"configure": "한 개 이상의 가상화폐를 설정하여 추적",
@@ -375,49 +383,49 @@
},
"gotify": {
"apps": "어플리케이션",
"clients": "클라이언트",
"clients": "Clients",
"messages": "메시지"
},
"prowlarr": {
"enableIndexers": "인덱서",
"numberOfGrabs": "Grabs",
"numberOfQueries": "쿼리",
"numberOfQueries": "Queries",
"numberOfFailGrabs": "Fail Grabs",
"numberOfFailQueries": "Fail Queries"
},
"jackett": {
"configured": "구성됨",
"errored": "오류"
"errored": "Errored"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connections",
"dataRelayed": "Relayed",
"transferRate": "비율"
"transferRate": "Rate"
},
"mastodon": {
"user_count": "사용자",
"user_count": "Users",
"status_count": "게시글",
"domain_count": "Domains"
},
"medusa": {
"wanted": "요청",
"queued": "대기 중",
"series": "시리즈"
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "버전",
"status": "상태",
"up": "온라인",
"down": "중지"
"status": "Status",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "읽음",
"unread": "미열람"
"unread": "Unread"
},
"authentik": {
"users": "사용자",
"users": "Users",
"loginsLast24H": "로그인 (24h)",
"failedLoginsLast24H": "실패한 로그인 (24h)"
},
@@ -429,19 +437,19 @@
},
"glances": {
"cpu": "CPU",
"load": "부하",
"wait": "잠시만 기다리세요",
"temp": "온도",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "온도",
"warn": "경고",
"uptime": "가동",
"total": "총합",
"free": "남음",
"used": "사용",
"uptime": "UP",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crit",
"read": "읽음",
"read": "Read",
"write": "쓰기",
"gpu": "GPU",
"mem": "Men",
@@ -464,7 +472,7 @@
"2-day": "Partly Cloudy",
"2-night": "Partly Cloudy",
"3-day": "구름 낀",
"3-night": "구름 낀",
"3-night": "Cloudy",
"45-day": "Foggy",
"45-night": "Foggy",
"48-day": "Foggy",
@@ -490,13 +498,13 @@
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "약한 눈",
"71-night": "약한 눈",
"71-night": "Light Snow",
"73-day": "Snow",
"73-night": "Snow",
"75-day": "폭설",
"75-night": "폭설",
"75-night": "Heavy Snow",
"77-day": "싸락눈",
"77-night": "싸락눈",
"77-night": "Snow Grains",
"80-day": "Light Showers",
"80-night": "Light Showers",
"81-day": "Showers",
@@ -522,7 +530,7 @@
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "대기 중",
"pending": "Pending",
"down": "Down"
},
"healthchecks": {
@@ -531,7 +539,7 @@
"grace": "In Grace Period",
"down": "Down",
"paused": "Paused",
"status": "상태",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
@@ -541,13 +549,13 @@
"containers_failed": "Failed"
},
"autobrr": {
"approvedPushes": "승인됨",
"approvedPushes": "Approved",
"rejectedPushes": "Rejected",
"filters": "Filters",
"indexers": "인덱서"
"indexers": "Indexers"
},
"tubearchivist": {
"downloads": "대기열",
"downloads": "Queue",
"videos": "동영상",
"channels": "채널",
"playlists": "재생 목록"
@@ -555,21 +563,22 @@
"truenas": {
"load": "System Load",
"uptime": "Uptime",
"alerts": "경고"
"alerts": "Alerts"
},
"pyload": {
"speed": "Speed",
"active": "활성",
"queue": "대기열",
"total": "총합"
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"country": "Country",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "채널",
"channels": "Channels",
"hd": "HD",
"tunerCount": "Tuners",
"channelNumber": "채널",
@@ -577,28 +586,28 @@
"signalStrength": "Strength",
"signalQuality": "Quality",
"symbolQuality": "Quality",
"networkRate": "비트레이트",
"networkRate": "Bitrate",
"clientIP": "클라이언트"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "알 수 없음"
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "받은메일함",
"total": "총합"
"total": "Total"
},
"peanut": {
"battery_charge": "배터리 충전 중",
"ups_load": "UPS Load",
"ups_status": "UPS Status",
"online": "온라인",
"online": "Online",
"on_battery": "배터리 사용",
"low_battery": "배터리 부족"
},
"nextdns": {
"wait": "잠시만 기다리세요",
"wait": "Please Wait",
"no_devices": "No Device Data Received"
},
"mikrotik": {
@@ -609,7 +618,7 @@
},
"xteve": {
"streams_all": "모든 스트림",
"streams_active": "활성 스트림",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
},
"opendtu": {
@@ -631,14 +640,14 @@
"layers": "Layers"
},
"octoprint": {
"printer_state": "상태",
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "상태"
"status": "Status"
},
"pfsense": {
"load": "Load Avg",
@@ -646,7 +655,7 @@
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "온도",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
@@ -657,9 +666,9 @@
"memory_usage": "Memory"
},
"immich": {
"users": "사용자",
"users": "Users",
"photos": "사진",
"videos": "동영상",
"videos": "Videos",
"storage": "저장됨"
},
"uptimekuma": {
@@ -670,38 +679,42 @@
"m": "m"
},
"atsumeru": {
"series": "시리즈",
"series": "Series",
"archives": "Archives",
"chapters": "Chapters",
"categories": "분류"
},
"komga": {
"libraries": "서재",
"series": "시리즈",
"books": ""
"series": "Series",
"books": "Books"
},
"diskstation": {
"days": "",
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "이용 가능"
"volumeAvailable": "Available"
},
"mylar": {
"series": "시리즈",
"series": "Series",
"issues": "Issues",
"wanted": "요청"
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
"photos": "사진",
"videos": "동영상",
"photos": "Photos",
"videos": "Videos",
"people": "People"
},
"fileflows": {
"queue": "대기열",
"processing": "처리 중",
"processed": "처리됨",
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "순자산",
"budget": "예산"
},
"grafana": {
"dashboards": "대시보드",
"datasources": "Data Sources",
@@ -717,7 +730,7 @@
"numshares": "공유된 항목"
},
"kopia": {
"status": "상태",
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
@@ -743,15 +756,15 @@
"uptime": "Uptime"
},
"ghostfolio": {
"gross_percent_today": "오늘",
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "",
"books": "Books",
"podcastsDuration": "지속시간",
"booksDuration": "지속시간"
"booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
@@ -760,27 +773,27 @@
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "업데이트"
"updates": "Updates"
},
"calibreweb": {
"books": "",
"books": "Books",
"authors": "저자",
"categories": "분류",
"series": "시리즈"
"categories": "Categories",
"series": "Series"
},
"jdownloader": {
"downloadCount": "대기열",
"downloadBytesRemaining": "남음",
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
"kavita": {
"seriesCount": "시리즈",
"totalFiles": "파일"
"seriesCount": "Series",
"totalFiles": "Files"
},
"azuredevops": {
"result": "Result",
"status": "상태",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
@@ -789,12 +802,12 @@
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "승인됨"
"approved": "Approved"
},
"gamedig": {
"status": "상태",
"online": "온라인",
"offline": "중지",
"status": "Status",
"online": "Online",
"offline": "Offline",
"name": "이름",
"map": "지도",
"currentPlayers": "Current players",
@@ -810,16 +823,16 @@
"totalUsed": "Used Storage"
},
"mealie": {
"recipes": "Recipes",
"users": "사용자",
"categories": "분류",
"recipes": "레시피",
"users": "Users",
"categories": "Categories",
"tags": "태그"
},
"openmediavault": {
"downloading": "다운로드 중",
"total": "총합",
"running": "가동 중",
"stopped": "중지",
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
"failed": "Failed"
},
@@ -829,10 +842,10 @@
"up": "Up",
"down": "Down",
"bytesTx": "Transmitted",
"bytesRx": "수신됨"
"bytesRx": "Received"
},
"uptimerobot": {
"status": "상태",
"status": "Status",
"uptime": "Uptime",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
@@ -843,14 +856,15 @@
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"unknown": "알 수 없음"
"unknown": "Unknown"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "기종",
@@ -864,7 +878,7 @@
"domains": "Domains",
"mailboxes": "Mailboxes",
"mails": "Mails",
"storage": "저장됨"
"storage": "Storage"
},
"netdata": {
"warnings": "Warnings",
@@ -873,13 +887,14 @@
"plantit": {
"events": "Events",
"plants": "Plants",
"photos": "사진",
"photos": "Photos",
"species": "Species"
},
"gitea": {
"notifications": "알림",
"issues": "Issues",
"pulls": "Pull Requests"
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "장면",
@@ -893,12 +908,12 @@
"galleries": "Galleries",
"performers": "Performers",
"studios": "스튜디오",
"movies": "영화",
"tags": "태그",
"movies": "Movies",
"tags": "Tags",
"oCount": "O Count"
},
"tandoor": {
"users": "사용자",
"users": "Users",
"recipes": "Recipes",
"keywords": "키워드"
},
@@ -907,18 +922,18 @@
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "사용자",
"users": "Users",
"totalValue": "Total Value"
},
"crowdsec": {
"alerts": "경고",
"alerts": "Alerts",
"bans": "Bans"
},
"wgeasy": {
"connected": "연결됨",
"enabled": "활성",
"disabled": "비활성",
"total": "총합"
"connected": "Connected",
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
@@ -928,8 +943,8 @@
},
"myspeed": {
"ping": "Ping",
"download": "다운로드",
"upload": "업로드"
"download": "Download",
"upload": "Upload"
},
"stocks": {
"stocks": "Stocks",
@@ -941,16 +956,16 @@
"frigate": {
"cameras": "카메라",
"uptime": "Uptime",
"version": "버전"
"version": "Version"
},
"linkwarden": {
"links": "Links",
"collections": "Collections",
"tags": "태그"
"tags": "Tags"
},
"zabbix": {
"unclassified": "Not classified",
"information": "정보",
"information": "Information",
"warning": "Warning",
"average": "Average",
"high": "High",
@@ -971,18 +986,21 @@
"tasksInProgress": "Tasks In Progress"
},
"headscale": {
"name": "이름",
"address": "주소",
"last_seen": "마지막 접속",
"status": "상태",
"online": "온라인",
"offline": "중지"
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Status",
"online": "Online",
"offline": "Offline"
},
"beszel": {
"name": "이름",
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "상태",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
@@ -993,19 +1011,77 @@
"apps": "Apps",
"synced": "Synced",
"outOfSync": "Out Of Sync",
"healthy": "좋음",
"healthy": "Healthy",
"degraded": "Degraded",
"progressing": "Progressing",
"missing": "빠짐",
"missing": "Missing",
"suspended": "Suspended"
},
"spoolman": {
"loading": "로드 중"
"loading": "Loading"
},
"gitlab": {
"groups": "Groups",
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

View File

@@ -63,7 +63,7 @@
"wlan_users": "WLAN lietotāji",
"up": "UP",
"down": "NEDARBOJAS",
"wait": "Lūdzu, uzgaidiet",
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"docker": {
@@ -83,7 +83,7 @@
"partial": "Partial"
},
"ping": {
"error": "Kļūda",
"error": "Error",
"ping": "Ping",
"down": "Down",
"up": "Up",
@@ -91,7 +91,7 @@
},
"siteMonitor": {
"http_status": "HTTP status",
"error": "Kļūda",
"error": "Error",
"response": "Response",
"down": "Down",
"up": "Up",
@@ -108,11 +108,11 @@
"songs": "Songs"
},
"esphome": {
"offline": "Bezsaistē",
"offline_alt": "Bezsaistē",
"offline": "Offline",
"offline_alt": "Offline",
"online": "Online",
"total": "Kopā",
"unknown": "Nezināms"
"total": "Total",
"unknown": "Unknown"
},
"evcc": {
"pv_power": "Production",
@@ -133,7 +133,7 @@
"unread": "Unread"
},
"fritzbox": {
"connectionStatus": "Statuss",
"connectionStatus": "Status",
"connectionStatusUnconfigured": "Unconfigured",
"connectionStatusConnecting": "Connecting",
"connectionStatusAuthenticating": "Authenticating",
@@ -148,7 +148,9 @@
"up": "Up",
"received": "Received",
"sent": "Sent",
"externalIPAddress": "Ext. IP"
"externalIPAddress": "Ext. IP",
"externalIPv6Address": "Ext. IPv6",
"externalIPv6Prefix": "Ext. IPv6-Prefix"
},
"caddy": {
"upstreams": "Upstreams",
@@ -166,17 +168,17 @@
"passes": "Passes"
},
"tautulli": {
"playing": "Atskaņo",
"transcoding": "Pārkodē",
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "Nav aktīvu straumju",
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Savienotie piekļuves punkti",
"activeUser": "Aktīvās ierīces",
"alerts": "Paziņojumi",
"connectedGateway": "Savienotās vārtejas",
"connectedGateways": "Connected gateways",
"connectedSwitches": "Savienotie komutatori"
},
"nzbget": {
@@ -197,20 +199,20 @@
},
"rutorrent": {
"active": "Aktīvs",
"upload": "Augšupielāde",
"download": "Lejupielāde"
"upload": "Upload",
"download": "Download"
},
"transmission": {
"download": "Lejupielāde",
"upload": "Augšupielāde",
"leech": "Ņēmēji",
"seed": "Devēji"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Lejupielāde",
"upload": "Augšupielāde",
"leech": "Ņēmēji",
"seed": "Devēji"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qnap": {
"cpuUsage": "CPU Usage",
@@ -221,35 +223,35 @@
"invalid": "Invalid"
},
"deluge": {
"download": "Lejupielāde",
"upload": "Augšupielāde",
"leech": "Ņēmēji",
"seed": "Devēji"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"develancacheui": {
"cachehitbytes": "Cache Hit Bytes",
"cachemissbytes": "Cache Miss Bytes"
},
"downloadstation": {
"download": "Lejupielāde",
"upload": "Augšupielāde",
"leech": "Ņēmēji",
"seed": "Devēji"
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series",
"queue": "Rindā",
"unknown": "Nezināms"
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies",
"queue": "Rindā",
"unknown": "Nezināms"
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
@@ -282,7 +284,7 @@
"available": "Available"
},
"netalertx": {
"total": "Kopā",
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
@@ -300,17 +302,17 @@
"latency": "Latency"
},
"speedtest": {
"upload": "Augšupielāde",
"download": "Lejupielāde",
"upload": "Upload",
"download": "Download",
"ping": "Ping"
},
"portainer": {
"running": "Running",
"stopped": "Stopped",
"total": "Kopā"
"total": "Total"
},
"suwayomi": {
"download": "Lejupielādēts",
"download": "Downloaded",
"nondownload": "Non-Downloaded",
"read": "Read",
"unread": "Unread",
@@ -347,7 +349,7 @@
"totalClients": "Clients"
},
"tdarr": {
"queue": "Rindā",
"queue": "Queue",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
@@ -357,14 +359,20 @@
"services": "Services",
"middleware": "Middleware"
},
"trilium": {
"version": "Version",
"notesCount": "Notes",
"dbSize": "Database Size",
"unknown": "Unknown"
},
"navidrome": {
"nothing_streaming": "Nav aktīvu straumju",
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
},
"npm": {
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Kopā"
"total": "Total"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
@@ -396,7 +404,7 @@
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Lietotāji",
"user_count": "Users",
"status_count": "Posts",
"domain_count": "Domains"
},
@@ -408,16 +416,16 @@
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Statuss",
"status": "Status",
"up": "Online",
"down": "Bezsaistē"
"down": "Offline"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"authentik": {
"users": "Lietotāji",
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
},
@@ -429,15 +437,15 @@
},
"glances": {
"cpu": "CPU",
"load": "Ielādē",
"wait": "Lūdzu, uzgaidiet",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"_temp": "Temp",
"warn": "Warn",
"uptime": "UP",
"total": "Kopā",
"free": "Brīvs",
"used": "Izmantojas",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crit",
@@ -462,37 +470,37 @@
"1-day": "Galvenokārt saulains",
"1-night": "Galvenokārt skaidrs",
"2-day": "Daļēji apmācies",
"2-night": "Daļēji apmācies",
"2-night": "Partly Cloudy",
"3-day": "Apmācies",
"3-night": "Apmācies",
"3-night": "Cloudy",
"45-day": "Miglains",
"45-night": "Miglains",
"48-day": "Miglains",
"48-night": "Miglains",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Neliels lietus",
"51-night": "Neliels lietus",
"51-night": "Light Drizzle",
"53-day": "Lietus",
"53-night": "Lietus",
"53-night": "Drizzle",
"55-day": "Spēcīgs lietus",
"55-night": "Spēcīgs lietus",
"55-night": "Heavy Drizzle",
"56-day": "Neliels stindzinošs lietus",
"56-night": "Neliels stindzinošs lietus",
"56-night": "Light Freezing Drizzle",
"57-day": "Sasalstošs lietus",
"57-night": "Sasalstošs lietus",
"57-night": "Freezing Drizzle",
"61-day": "Viegls lietus",
"61-night": "Viegls lietus",
"61-night": "Light Rain",
"63-day": "Lietus",
"63-night": "Lietus",
"63-night": "Rain",
"65-day": "Spēcīgs lietus",
"65-night": "Spēcīgs lietus",
"65-night": "Heavy Rain",
"66-day": "Ledains lietus",
"66-night": "Ledains lietus",
"67-day": "Ledains lietus",
"67-night": "Ledains lietus",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "Neliels sniegs",
"71-night": "Neliels sniegs",
"71-night": "Light Snow",
"73-day": "Sniegs",
"73-night": "Sniegs",
"73-night": "Snow",
"75-day": "Heavy Snow",
"75-night": "Heavy Snow",
"77-day": "Snow Grains",
@@ -531,7 +539,7 @@
"grace": "In Grace Period",
"down": "Down",
"paused": "Paused",
"status": "Statuss",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
@@ -547,7 +555,7 @@
"indexers": "Indexers"
},
"tubearchivist": {
"downloads": "Rindā",
"downloads": "Queue",
"videos": "Videos",
"channels": "Channels",
"playlists": "Playlists"
@@ -555,18 +563,19 @@
"truenas": {
"load": "System Load",
"uptime": "Uptime",
"alerts": "Paziņojumi"
"alerts": "Alerts"
},
"pyload": {
"speed": "Speed",
"active": "Aktīvs",
"queue": "Rindā",
"total": "Kopā"
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"country": "Country",
"port_forwarded": "Port Forwarded"
},
"hdhomerun": {
"channels": "Channels",
@@ -583,11 +592,11 @@
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Nezināms"
"unknown": "Unknown"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Kopā"
"total": "Total"
},
"peanut": {
"battery_charge": "Battery Charge",
@@ -609,7 +618,7 @@
},
"xteve": {
"streams_all": "All Streams",
"streams_active": "Aktīvās straumes",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
},
"opendtu": {
@@ -631,14 +640,14 @@
"layers": "Layers"
},
"octoprint": {
"printer_state": "Statuss",
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Statuss"
"status": "Status"
},
"pfsense": {
"load": "Load Avg",
@@ -657,7 +666,7 @@
"memory_usage": "Memory"
},
"immich": {
"users": "Lietotāji",
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
@@ -678,10 +687,10 @@
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Grāmatas"
"books": "Books"
},
"diskstation": {
"days": "Dienas",
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
@@ -697,11 +706,15 @@
"people": "People"
},
"fileflows": {
"queue": "Rindā",
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
},
"firefly": {
"networth": "Net Worth",
"budget": "Budget"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
@@ -717,7 +730,7 @@
"numshares": "Shared Items"
},
"kopia": {
"status": "Statuss",
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
@@ -749,7 +762,7 @@
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Grāmatas",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
},
@@ -763,14 +776,14 @@
"updates": "Updates"
},
"calibreweb": {
"books": "Grāmatas",
"books": "Books",
"authors": "Authors",
"categories": "Categories",
"series": "Series"
},
"jdownloader": {
"downloadCount": "Rindā",
"downloadBytesRemaining": "Palika",
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
@@ -780,7 +793,7 @@
},
"azuredevops": {
"result": "Result",
"status": "Statuss",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
@@ -792,9 +805,9 @@
"approved": "Approved"
},
"gamedig": {
"status": "Statuss",
"status": "Status",
"online": "Online",
"offline": "Bezsaistē",
"offline": "Offline",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
@@ -811,13 +824,13 @@
},
"mealie": {
"recipes": "Recipes",
"users": "Lietotāji",
"users": "Users",
"categories": "Categories",
"tags": "Tags"
},
"openmediavault": {
"downloading": "Downloading",
"total": "Kopā",
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"passed": "Passed",
@@ -832,7 +845,7 @@
"bytesRx": "Received"
},
"uptimerobot": {
"status": "Statuss",
"status": "Status",
"uptime": "Uptime",
"lastDown": "Last Downtime",
"downDuration": "Downtime Duration",
@@ -843,14 +856,15 @@
"up": "Up",
"seemsdown": "Seems Down",
"down": "Down",
"unknown": "Nezināms"
"unknown": "Unknown"
},
"calendar": {
"inCinemas": "In cinemas",
"physicalRelease": "Physical release",
"digitalRelease": "Digital release",
"noEventsToday": "No events for today!",
"noEventsFound": "No events found"
"noEventsFound": "No events found",
"errorWhenLoadingData": "Error when loading calendar data"
},
"romm": {
"platforms": "Platforms",
@@ -879,7 +893,8 @@
"gitea": {
"notifications": "Notifications",
"issues": "Issues",
"pulls": "Pull Requests"
"pulls": "Pull Requests",
"repositories": "Repositories"
},
"stash": {
"scenes": "Scenes",
@@ -898,7 +913,7 @@
"oCount": "O Count"
},
"tandoor": {
"users": "Lietotāji",
"users": "Users",
"recipes": "Recipes",
"keywords": "Keywords"
},
@@ -907,18 +922,18 @@
"totalWithWarranty": "With Warranty",
"locations": "Locations",
"labels": "Labels",
"users": "Lietotāji",
"users": "Users",
"totalValue": "Total Value"
},
"crowdsec": {
"alerts": "Paziņojumi",
"alerts": "Alerts",
"bans": "Bans"
},
"wgeasy": {
"connected": "Connected",
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Kopā"
"total": "Total"
},
"swagdashboard": {
"proxied": "Proxied",
@@ -928,8 +943,8 @@
},
"myspeed": {
"ping": "Ping",
"download": "Lejupielāde",
"upload": "Augšupielāde"
"download": "Download",
"upload": "Upload"
},
"stocks": {
"stocks": "Stocks",
@@ -950,7 +965,7 @@
},
"zabbix": {
"unclassified": "Not classified",
"information": "Informācija",
"information": "Information",
"warning": "Warning",
"average": "Average",
"high": "High",
@@ -974,15 +989,18 @@
"name": "Name",
"address": "Address",
"last_seen": "Last Seen",
"status": "Statuss",
"status": "Status",
"online": "Online",
"offline": "Bezsaistē"
"offline": "Offline"
},
"beszel": {
"name": "Name",
"systems": "Systems",
"up": "Up",
"status": "Statuss",
"down": "Down",
"paused": "Paused",
"pending": "Pending",
"status": "Status",
"updated": "Updated",
"cpu": "CPU",
"memory": "MEM",
@@ -1007,5 +1025,63 @@
"issues": "Issues",
"merges": "Merge Requests",
"projects": "Projects"
},
"apcups": {
"status": "Status",
"load": "Load",
"bcharge": "Battery Charge",
"timeleft": "Time Left"
},
"karakeep": {
"bookmarks": "Bookmarks",
"favorites": "Favorites",
"archived": "Archived",
"highlights": "Highlights",
"lists": "Lists",
"tags": "Tags"
},
"slskd": {
"slskStatus": "Network",
"connected": "Connected",
"disconnected": "Disconnected",
"updateStatus": "Update",
"update_yes": "Available",
"update_no": "Up to Date",
"downloads": "Downloads",
"uploads": "Uploads",
"sharedFiles": "Files"
},
"jellystat": {
"songs": "Songs",
"movies": "Movies",
"episodes": "Episodes",
"other": "Other"
},
"checkmk": {
"serviceErrors": "Service issues",
"hostErrors": "Host issues"
},
"komodo": {
"total": "Total",
"running": "Running",
"stopped": "Stopped",
"down": "Down",
"unhealthy": "Unhealthy",
"unknown": "Unknown",
"servers": "Servers",
"stacks": "Stacks",
"containers": "Containers"
},
"filebrowser": {
"available": "Available",
"used": "Used",
"total": "Total"
},
"wallos": {
"activeSubscriptions": "Subscriptions",
"thisMonthlyCost": "This Month",
"nextMonthlyCost": "Next Month",
"previousMonthlyCost": "Prev. Month",
"nextRenewingSubscription": "Next Payment"
}
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More