Compare commits

...
Author SHA1 Message Date
Releases Homarr 260e1931b1 chore(release): 1.26.0 [skip ci] 2025-06-27 19:15:20 +00:00
homarr-releases[bot] 2c2e60aee6 chore(release): automatic release v1.26.0 2025-06-27 19:14:04 +00:00
homarr-renovate[bot] a737331d20 fix(deps): update tanstack-query monorepo to ^5.81.4 (#3493)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-27 14:20:56 +00:00
homarr-update-contributors[bot] e9e3d93eea chore: update contributors (#3492)
Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com>
2025-06-27 12:34:43 +00:00
homarr-renovate[bot] 670de0f5fb fix(deps): update dependency drizzle-kit to ^0.31.4 (#3490)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-27 08:27:16 +00:00
homarr-renovate[bot] d326f3b4b3 fix(deps): update trpc monorepo to ^11.4.3 (#3491)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-27 08:26:30 +00:00
homarr-renovate[bot] 60786bf9ac fix(deps): update dependency prettier to ^3.6.2 (#3489)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-27 03:23:27 +00:00
homarr-crowdin[bot] 22e420c9bc chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-27 00:54:38 +00:00
homarr-renovate[bot] b027f3a180 fix(deps): update tiptap monorepo to v2.23.0 (#3487)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 23:21:55 +00:00
homarr-renovate[bot] e83c514c1d chore(deps): update dependency proxmox-api&gt;undici to v7.11.0 (#3485)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 23:20:43 +00:00
homarr-renovate[bot] 01fdd79559 fix(deps): update dependency undici to v7.11.0 (#3486)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 22:21:30 +00:00
homarr-renovate[bot] 7477d02cad fix(deps): update dependency dotenv to ^16.6.0 (#3484)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 19:18:13 +00:00
homarr-renovate[bot] 7e8cfc38e9 chore(deps): update pnpm to v10.12.4 (#3483)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 18:26:59 +00:00
homarr-renovate[bot] 7d0ac46753 fix(deps): update dependency drizzle-kit to ^0.31.3 (#3482)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 15:22:11 +00:00
homarr-renovate[bot] 114de40634 fix(deps): update dependency ldapts to v8.0.2 (#3481)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 13:35:12 +00:00
homarr-renovate[bot] 0c304c4310 chore(deps): update dependency @semantic-release/npm to ^12.0.2 (#3480)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 12:36:28 +00:00
homarr-renovate[bot] 1cd9fa8e82 fix(deps): update dependency swagger-ui-react to ^5.25.3 (#3479)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 11:19:24 +00:00
homarr-renovate[bot] 98ea5cd2cf chore(deps): update dependency prettier-plugin-packagejson to ^2.5.16 (#3477)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-26 04:31:20 +00:00
homarr-crowdin[bot] 5e5fecb4a0 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-26 00:53:24 +00:00
homarr-renovate[bot] 5e6dfb3a5c fix(deps): update mantine monorepo to ^8.1.2 (#3471)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-25 10:23:20 +00:00
homarr-crowdin[bot] 3889d63651 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-25 09:02:59 +00:00
homarr-renovate[bot] eadec21236 fix(deps): update dependency better-sqlite3 to ^12.1.1 (#3470)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-25 08:51:39 +00:00
homarr-renovate[bot] 34faa9e58c fix(deps): update dependency prettier to ^3.6.1 (#3469)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-25 07:23:14 +00:00
homarr-renovate[bot] dfc1c65a34 chore(deps): update node.js to v22.17.0 (#3468)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-25 01:18:49 +00:00
homarr-renovate[bot] 177fa88998 chore(deps): update dependency @types/node to ^22.15.33 (#3466)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-24 17:22:32 +00:00
homarr-renovate[bot] 5d9674412e fix(deps): update dependency next-intl to v4.3.1 (#3465)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-24 13:37:44 +00:00
homarr-renovate[bot] e22096c7bc chore(deps): update pnpm to v10.12.3 (#3464)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-24 11:19:28 +00:00
Meier Lukas 468c04da8a ci: remove conventional semantic commit workflow (#3459) 2025-06-24 12:10:07 +02:00
homarr-crowdin[bot] 62c78f191c chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-24 00:53:32 +00:00
homarr-renovate[bot] fa421b3778 fix(deps): update dependency better-sqlite3 to ^12.1.0 (#3462)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 23:18:16 +00:00
homarr-renovate[bot] 1813d4435e fix(deps): update dependency typescript-eslint to ^8.35.0 (#3460)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 18:28:28 +00:00
MeowandMeier Lukas e110a84fdd feat: add ntfy integration (#2900)
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2025-06-23 19:40:49 +02:00
homarr-renovate[bot] 95be0391a6 fix(deps): update dependency better-sqlite3 to v12 (#3441)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 17:46:04 +02:00
Meier Lukas 6b474c3df4 fix(jellyseerr): add missing deleted media status (#3439) 2025-06-23 17:45:00 +02:00
homarr-renovate[bot] ded39930ca fix(deps): update dependency next-intl to v4.3.0 (#3458)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 13:38:40 +00:00
homarr-renovate[bot] 86d4585035 fix(deps): update dependency next-intl to v4.2.0 (#3457)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 12:38:37 +00:00
homarr-renovate[bot] 4e892efab7 fix(deps): update dependency maria2 to ^0.4.1 (#3456)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 12:36:55 +00:00
homarr-renovate[bot] 8ffbbd6bf9 fix(deps): update dependency drizzle-kit to ^0.31.2 (#3455)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 11:20:29 +00:00
homarr-renovate[bot] 17763208df chore(deps): update dependency @vitejs/plugin-react to ^4.6.0 (#3453)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 04:36:49 +00:00
homarr-renovate[bot] 07ce1c1a2d fix(deps): update dependency prettier to ^3.6.0 (#3452)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 03:30:32 +00:00
homarr-renovate[bot] 14c116cef4 chore(deps): update pnpm to v10.12.2 (#3451)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-23 01:20:41 +00:00
homarr-renovate[bot] 7b8dc1670d fix(deps): update dependency @auth/drizzle-adapter to ^1.10.0 (#3449)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-22 13:30:35 +00:00
homarr-renovate[bot] da2d22b1b9 fix(deps): update dependency next-auth to v5.0.0-beta.29 (#3447)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-22 13:29:17 +00:00
homarr-renovate[bot] 2c7f5de192 fix(deps): update dependency @auth/core to ^0.40.0 (#3448)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-22 12:33:14 +00:00
homarr-renovate[bot] 319bee99b7 chore(deps): update dependency concurrently to ^9.2.0 (#3446)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-22 07:21:15 +00:00
homarr-crowdin[bot] 4bf69874ec chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-22 00:58:51 +00:00
homarr-renovate[bot] add73a1a3c fix(deps): update tiptap monorepo to v2.22.3 (#3443)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 23:20:53 +00:00
homarr-renovate[bot] 3f0e9c3738 fix(deps): update tanstack-query monorepo to ^5.81.2 (#3442)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 23:19:59 +00:00
homarr-renovate[bot] b8b71da291 fix(deps): update tanstack-query monorepo to ^5.81.1 (#3440)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 20:21:19 +00:00
homarr-renovate[bot] f677bd6b12 fix(deps): update tiptap monorepo to v2.22.2 (#3438)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 19:36:36 +00:00
homarr-renovate[bot] e6f05f9d94 fix(deps): update tanstack-query monorepo to ^5.81.0 (#3437)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 13:30:12 +00:00
homarr-renovate[bot] 86608f5a9f fix(deps): update tanstack-query monorepo to ^5.80.12 (#3436)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 12:32:11 +00:00
homarr-renovate[bot] f6039a5976 fix(deps): update dependency @tiptap/extension-highlight to v2.22.1 (#3433)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 09:20:54 +00:00
homarr-renovate[bot] 8ccbe7ff52 fix(deps): update tiptap monorepo to v2.22.1 (#3432)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-21 08:24:30 +00:00
Meier Lukas eede932884 chore(issue-template): add version 1.25.0 2025-06-21 09:38:28 +02:00
homarr-renovate[bot] a7052bb16f fix(deps): update dependency eslint-plugin-import to ^2.32.0 (#3430)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-20 22:21:00 +00:00
homarr-renovate[bot] caedac490e fix(deps): update dependency recharts to ^2.15.4 (#3429)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-20 22:19:43 +00:00
Releases Homarr c4db07915e chore(release): 1.25.0 [skip ci] 2025-06-20 19:15:40 +00:00
homarr-releases[bot] 795e5f1157 chore(release): automatic release v1.25.0 2025-06-20 19:14:38 +00:00
homarr-renovate[bot] f6a99ffedd fix(deps): update dependency node-cron to ^4.1.1 (#3427)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-20 18:26:03 +00:00
homarr-renovate[bot] ec4dde64fd fix(deps): update tiptap monorepo to v2.22.0 (#3425)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-20 09:22:31 +00:00
homarr-renovate[bot] 9e4b4635bc fix(deps): update tiptap monorepo to v2.14.1 (#3423)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-19 22:20:39 +00:00
homarr-renovate[bot] 7c58e8ac9b fix(deps): update tanstack-query monorepo to ^5.80.10 (#3422)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-19 09:22:29 +00:00
homarr-renovate[bot] 3759a9831c fix(deps): update nextjs monorepo to v15.3.4 (#3421)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-18 17:22:28 +00:00
Andre Silva 73fff02ad0 fix(widget-integration-select): fixed error about <p> being descendant of <p> (#3418) 2025-06-18 16:42:49 +00:00
homarr-renovate[bot] 8e428e20a7 fix(deps): update trpc monorepo to ^11.4.2 (#3419)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-18 13:36:17 +00:00
homarr-renovate[bot] 02cd7a50da fix(deps): update dependency swagger-ui-react to ^5.25.2 (#3420)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-18 12:36:14 +00:00
homarr-renovate[bot] 430f671434 fix(deps): update dependency zod-validation-error to ^3.5.2 (#3417)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-18 07:22:08 +00:00
homarr-renovate[bot] 7d6d85d563 chore(deps): update vitest monorepo to ^3.2.4 (#3415)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-17 18:28:09 +00:00
Meier Lukas b5ef7e5194 fix(downloads): not updating automatically (#3412) 2025-06-17 18:24:36 +02:00
homarr-renovate[bot] 6bcfe78956 fix(deps): update dependency tsdav to ^2.1.5 (#3414)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-17 16:22:32 +00:00
homarr-renovate[bot] 56ca8b7b0b fix(deps): update dependency zod to ^3.25.67 (#3413)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 23:21:14 +00:00
homarr-renovate[bot] 9224540761 chore(deps): update dependency @types/dockerode to ^3.3.41 (#3411)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 19:19:01 +00:00
homarr-renovate[bot] a8c9c075f0 fix(deps): update dependency zod to ^3.25.65 (#3410)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 18:28:18 +00:00
homarr-renovate[bot] 637bfb8b47 fix(deps): update dependency typescript-eslint to ^8.34.1 (#3409)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 18:27:37 +00:00
homarr-renovate[bot] adbef252c6 fix(deps): update dependency zod-validation-error to ^3.5.1 (#3406)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 15:23:09 +00:00
homarr-renovate[bot] f97a261973 fix(deps): update mantine monorepo to ^8.1.1 (#3404)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 14:21:12 +00:00
homarr-renovate[bot] bdca92036a fix(deps): update dependency swagger-ui-react to ^5.24.2 (#3405)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 13:36:23 +00:00
homarr-renovate[bot] 9a81689143 chore(deps): update dependency @types/node to ^22.15.32 (#3403)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-16 09:25:07 +00:00
Meier Lukas e6cb35b7c2 feat(integrations): add support for self-signed-cert-in-chain request error (#3399) 2025-06-15 21:42:25 +02:00
homarr-renovate[bot] cad59aed00 chore(deps): update dependency eslint to ^9.29.0 (#3396)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-13 21:19:59 +00:00
Meier Lukas e56ffb9244 chore(issue-template): add version 1.24.0 2025-06-13 22:47:13 +02:00
Releases Homarr 5c75960176 chore(release): 1.24.0 [skip ci] 2025-06-13 19:15:33 +00:00
homarr-releases[bot] c2acbdc229 chore(release): automatic release v1.24.0 2025-06-13 19:14:43 +00:00
homarr-renovate[bot] 6d9992d711 fix(deps): update trpc monorepo to ^11.4.1 (#3395)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-13 15:22:15 +00:00
homarr-update-contributors[bot] eb3454fb75 chore: update contributors (#3394)
Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com>
2025-06-13 12:34:38 +00:00
homarr-renovate[bot] c9097a95e2 fix(deps): update dependency tsx to v4.20.3 (#3393)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-13 09:23:06 +00:00
homarr-renovate[bot] 5dc0ee8842 fix(deps): update dependency zod to ^3.25.64 (#3392)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-13 07:21:17 +00:00
homarr-renovate[bot] f16efac05a fix(deps): update dependency glob to ^11.0.3 (#3391)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-12 21:20:19 +00:00
homarr-renovate[bot] c5cc8f1d37 fix(deps): update tanstack-query monorepo to ^5.80.7 (#3385)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-12 13:36:18 +00:00
homarr-renovate[bot] 153c2ef8a0 fix(deps): update dependency zod to ^3.25.63 (#3386)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-12 13:35:25 +00:00
homarr-renovate[bot] 3bf4f9e058 fix(deps): update trpc monorepo to ^11.4.0 (#3389)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-12 12:35:17 +00:00
homarr-renovate[bot] 747d034114 fix(deps): update dependency zod-validation-error to ^3.5.0 (#3388)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-12 08:27:52 +00:00
homarr-renovate[bot] 79519ec0eb fix(deps): update dependency tsx to v4.20.2 (#3387)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-12 08:27:03 +00:00
homarr-renovate[bot] 0b200dc9e2 fix(deps): update dependency zod to ^3.25.62 (#3382)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-11 19:19:05 +00:00
homarr-renovate[bot] 377f4302c0 chore(deps): update dependency @types/react to v19.1.8 (#3381)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-11 14:20:18 +00:00
homarr-crowdin[bot] 740e9a5082 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-11 12:05:38 +00:00
homarr-renovate[bot] e7652ea4eb fix(deps): update dependency tsx to v4.20.1 (#3380)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-11 09:23:20 +00:00
homarr-renovate[bot] 863f935ef4 fix(deps): update dependency zod to ^3.25.61 (#3379)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-11 08:27:30 +00:00
homarr-renovate[bot] 7388c907a5 fix(deps): update dependency zod to ^3.25.60 (#3378)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-11 07:22:06 +00:00
homarr-renovate[bot] 3d07306e7d fix(deps): update dependency tsx to v4.20.0 (#3375)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-11 03:21:10 +00:00
homarr-renovate[bot] f37fc0edfe fix(deps): update dependency zod to ^3.25.58 (#3373)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 23:21:00 +00:00
Meier Lukas c59cdeda47 fix: csp prevents external videos (#3372) 2025-06-10 22:14:43 +02:00
homarr-renovate[bot] ad444e8fa7 fix(deps): update testcontainers-node monorepo to ^11.0.3 (#3369)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 18:41:04 +00:00
homarr-renovate[bot] fa52b55828 fix(deps): update dependency swagger-ui-react to ^5.24.1 (#3368)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 06:28:24 +00:00
homarr-renovate[bot] 1ce1113a8c chore(deps): update dependency @vitejs/plugin-react to ^4.5.2 (#3366)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 04:30:15 +00:00
homarr-renovate[bot] e7a9797484 fix(deps): update dependency zod to ^3.25.57 (#3367)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 03:23:52 +00:00
homarr-renovate[bot] d104aea8b8 chore(deps): update dependency @types/node to ^22.15.31 (#3365)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 03:22:22 +00:00
homarr-renovate[bot] ab3ee3bac1 fix(deps): update dependency @t3-oss/env-nextjs to ^0.13.8 (#3364)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-10 01:18:38 +00:00
homarr-crowdin[bot] 838066ac75 chore(lang): updated translations from crowdin
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2025-06-10 00:52:45 +00:00
homarr-renovate[bot] b1a559d801 fix(deps): update dependency sass to ^1.89.2 (#3362)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-09 20:24:11 +00:00
homarr-renovate[bot] eecf50d461 chore(deps): update dependency @types/react to v19.1.7 (#3361)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-09 20:23:08 +00:00
homarr-renovate[bot] d862ae03e3 fix(deps): update mantine monorepo to ^8.1.0 (#3360)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-09 18:28:49 +00:00
homarr-renovate[bot] f6da091577 fix(deps): update dependency typescript-eslint to ^8.34.0 (#3359)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-09 18:28:06 +00:00
homarr-renovate[bot] 22f0cd885e fix(deps): update dependency @t3-oss/env-nextjs to ^0.13.7 (#3357)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-09 16:25:59 +00:00
homarr-renovate[bot] 08c6ce9071 chore(deps): update vitest monorepo to ^3.2.3 (#3356)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-09 12:36:15 +00:00
homarr-renovate[bot] c3e1a53d09 chore(deps): update pnpm to v10.12.1 (#3354)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-08 15:20:30 +00:00
homarr-renovate[bot] 9e86de6e17 fix(deps): update dependency fast-xml-parser to ^5.2.5 (#3353)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-08 08:25:10 +00:00
homarr-renovate[bot] 98c4cd1e39 fix(deps): update testcontainers-node monorepo to ^11.0.2 (#3352)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2025-06-07 20:21:39 +00:00
Manuel f67702e1d3 feat: reduce cron job intervals (#3235) 2025-06-07 17:32:39 +00:00
Meier Lukas a9e68e13d5 fix(pi-hole): cached session not invalidated when changing password (#3351) 2025-06-07 16:20:21 +02:00
Meier Lukas 1b3770aafb fix: module not found sshcrypto.node during development (#3349) 2025-06-07 16:19:09 +02:00
111 changed files with 4030 additions and 2785 deletions

No files matched your search

+2
View File
@@ -31,6 +31,8 @@ body:
label: Version
description: What version of Homarr are you running?
options:
- 1.25.0
- 1.24.0
- 1.23.0
- 1.22.0
- 1.21.0
@@ -1,14 +0,0 @@
# https://github.com/webiny/action-conventional-commits?tab=readme-ov-file
name: "[Conventions] Semantic Commits"
on:
pull_request:
branches: [ dev ]
jobs:
build:
name: Conventional Commits
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: webiny/action-conventional-commits@v1.3.0
+1 -1
View File
@@ -1 +1 @@
22.16.0
22.17.0
+110
View File
@@ -1,3 +1,113 @@
## [1.26.0](https://github.com/homarr-labs/homarr/compare/v1.25.0...v1.26.0) (2025-06-27)
### Features
* add ntfy integration ([#2900](https://github.com/homarr-labs/homarr/issues/2900)) ([e110a84](https://github.com/homarr-labs/homarr/commit/e110a84fdd5fa2468786e1505043d8a7dc5cfa1b))
### Bug Fixes
* **deps:** update dependency @auth/core to ^0.40.0 ([#3448](https://github.com/homarr-labs/homarr/issues/3448)) ([2c7f5de](https://github.com/homarr-labs/homarr/commit/2c7f5de19271f7c65a9979b37d9602bb84c68564))
* **deps:** update dependency @auth/drizzle-adapter to ^1.10.0 ([#3449](https://github.com/homarr-labs/homarr/issues/3449)) ([7b8dc16](https://github.com/homarr-labs/homarr/commit/7b8dc1670d0c8473524f71e1ee872e6ea7d2e0ce))
* **deps:** update dependency @tiptap/extension-highlight to v2.22.1 ([#3433](https://github.com/homarr-labs/homarr/issues/3433)) ([f6039a5](https://github.com/homarr-labs/homarr/commit/f6039a5976da70388cb32eecfbf57ac02e6fc050))
* **deps:** update dependency better-sqlite3 to ^12.1.0 ([#3462](https://github.com/homarr-labs/homarr/issues/3462)) ([fa421b3](https://github.com/homarr-labs/homarr/commit/fa421b3778c00b30b68ceadfb370803eba1a72f2))
* **deps:** update dependency better-sqlite3 to ^12.1.1 ([#3470](https://github.com/homarr-labs/homarr/issues/3470)) ([eadec21](https://github.com/homarr-labs/homarr/commit/eadec212369b8ee81eec00b3ecbd40d1c90972d7))
* **deps:** update dependency better-sqlite3 to v12 ([#3441](https://github.com/homarr-labs/homarr/issues/3441)) ([95be039](https://github.com/homarr-labs/homarr/commit/95be0391a651b59a2611ca5ffa7825c6b337a996))
* **deps:** update dependency dotenv to ^16.6.0 ([#3484](https://github.com/homarr-labs/homarr/issues/3484)) ([7477d02](https://github.com/homarr-labs/homarr/commit/7477d02cadd88608f33edf0836f7d7e164800dde))
* **deps:** update dependency drizzle-kit to ^0.31.2 ([#3455](https://github.com/homarr-labs/homarr/issues/3455)) ([8ffbbd6](https://github.com/homarr-labs/homarr/commit/8ffbbd6bf9bb1c329943ae5033029eed115b43dd))
* **deps:** update dependency drizzle-kit to ^0.31.3 ([#3482](https://github.com/homarr-labs/homarr/issues/3482)) ([7d0ac46](https://github.com/homarr-labs/homarr/commit/7d0ac46753b1cf6bee1f53297b0011e4e86fdffd))
* **deps:** update dependency drizzle-kit to ^0.31.4 ([#3490](https://github.com/homarr-labs/homarr/issues/3490)) ([670de0f](https://github.com/homarr-labs/homarr/commit/670de0f5fbb9faf950fdb38e4f4cfb57f21257c4))
* **deps:** update dependency eslint-plugin-import to ^2.32.0 ([#3430](https://github.com/homarr-labs/homarr/issues/3430)) ([a7052bb](https://github.com/homarr-labs/homarr/commit/a7052bb16f52ccb47d2c8ac205fdf01cf8e8c01e))
* **deps:** update dependency ldapts to v8.0.2 ([#3481](https://github.com/homarr-labs/homarr/issues/3481)) ([114de40](https://github.com/homarr-labs/homarr/commit/114de40634b501ecea7be8d9ae1d2a19686845c1))
* **deps:** update dependency maria2 to ^0.4.1 ([#3456](https://github.com/homarr-labs/homarr/issues/3456)) ([4e892ef](https://github.com/homarr-labs/homarr/commit/4e892efab7f456b93e993c2c3cb6068f06ea1e4f))
* **deps:** update dependency next-auth to v5.0.0-beta.29 ([#3447](https://github.com/homarr-labs/homarr/issues/3447)) ([da2d22b](https://github.com/homarr-labs/homarr/commit/da2d22b1b9b87fe7aa1cbac76909af2d2ef57d3f))
* **deps:** update dependency next-intl to v4.2.0 ([#3457](https://github.com/homarr-labs/homarr/issues/3457)) ([86d4585](https://github.com/homarr-labs/homarr/commit/86d4585035c5604a219fd0be404104f62a0be0b2))
* **deps:** update dependency next-intl to v4.3.0 ([#3458](https://github.com/homarr-labs/homarr/issues/3458)) ([ded3993](https://github.com/homarr-labs/homarr/commit/ded39930ca1d8c4868f9541c7fad18a234ceeb3f))
* **deps:** update dependency next-intl to v4.3.1 ([#3465](https://github.com/homarr-labs/homarr/issues/3465)) ([5d96744](https://github.com/homarr-labs/homarr/commit/5d9674412e6e99af1fb1fce7143ce4b6717ff29b))
* **deps:** update dependency prettier to ^3.6.0 ([#3452](https://github.com/homarr-labs/homarr/issues/3452)) ([07ce1c1](https://github.com/homarr-labs/homarr/commit/07ce1c1a2d197f981818a9b1e567102f0772271d))
* **deps:** update dependency prettier to ^3.6.1 ([#3469](https://github.com/homarr-labs/homarr/issues/3469)) ([34faa9e](https://github.com/homarr-labs/homarr/commit/34faa9e58ce061c4c99d207cfc6c56cbb7045c03))
* **deps:** update dependency prettier to ^3.6.2 ([#3489](https://github.com/homarr-labs/homarr/issues/3489)) ([60786bf](https://github.com/homarr-labs/homarr/commit/60786bf9ac81ce13b6304f5284fb6049e2d7d7dc))
* **deps:** update dependency recharts to ^2.15.4 ([#3429](https://github.com/homarr-labs/homarr/issues/3429)) ([caedac4](https://github.com/homarr-labs/homarr/commit/caedac490ed3aaf8f6a815d799ba9fafe9de18a2))
* **deps:** update dependency swagger-ui-react to ^5.25.3 ([#3479](https://github.com/homarr-labs/homarr/issues/3479)) ([1cd9fa8](https://github.com/homarr-labs/homarr/commit/1cd9fa8e82eef1f69be06855d076a364883914df))
* **deps:** update dependency typescript-eslint to ^8.35.0 ([#3460](https://github.com/homarr-labs/homarr/issues/3460)) ([1813d44](https://github.com/homarr-labs/homarr/commit/1813d4435e08f6a800ee76561e66e6371b30ec80))
* **deps:** update dependency undici to v7.11.0 ([#3486](https://github.com/homarr-labs/homarr/issues/3486)) ([01fdd79](https://github.com/homarr-labs/homarr/commit/01fdd7955906c661a620b8fac148693dc4632ebd))
* **deps:** update mantine monorepo to ^8.1.2 ([#3471](https://github.com/homarr-labs/homarr/issues/3471)) ([5e6dfb3](https://github.com/homarr-labs/homarr/commit/5e6dfb3a5c2d456fa20fbcd07f98c01d0ab7c4b7))
* **deps:** update tanstack-query monorepo to ^5.80.12 ([#3436](https://github.com/homarr-labs/homarr/issues/3436)) ([86608f5](https://github.com/homarr-labs/homarr/commit/86608f5a9ffe9ea2c57a9191175994a24eea5dc7))
* **deps:** update tanstack-query monorepo to ^5.81.0 ([#3437](https://github.com/homarr-labs/homarr/issues/3437)) ([e6f05f9](https://github.com/homarr-labs/homarr/commit/e6f05f9d94912ef5f38ad4ab222e20d433c627eb))
* **deps:** update tanstack-query monorepo to ^5.81.1 ([#3440](https://github.com/homarr-labs/homarr/issues/3440)) ([b8b71da](https://github.com/homarr-labs/homarr/commit/b8b71da291541b714e053ea1bda4e49053261936))
* **deps:** update tanstack-query monorepo to ^5.81.2 ([#3442](https://github.com/homarr-labs/homarr/issues/3442)) ([3f0e9c3](https://github.com/homarr-labs/homarr/commit/3f0e9c37385ae23370618f1a11870642a9b3d030))
* **deps:** update tanstack-query monorepo to ^5.81.4 ([#3493](https://github.com/homarr-labs/homarr/issues/3493)) ([a737331](https://github.com/homarr-labs/homarr/commit/a737331d207abfd4ab8a8869c70257b5f5d50d5a))
* **deps:** update tiptap monorepo to v2.22.1 ([#3432](https://github.com/homarr-labs/homarr/issues/3432)) ([8ccbe7f](https://github.com/homarr-labs/homarr/commit/8ccbe7ff52eff742031c528bcc1e15916ba1fe81))
* **deps:** update tiptap monorepo to v2.22.2 ([#3438](https://github.com/homarr-labs/homarr/issues/3438)) ([f677bd6](https://github.com/homarr-labs/homarr/commit/f677bd6b12630130d8cf95a4f2462e4bab1226db))
* **deps:** update tiptap monorepo to v2.22.3 ([#3443](https://github.com/homarr-labs/homarr/issues/3443)) ([add73a1](https://github.com/homarr-labs/homarr/commit/add73a1a3c19e0efd2d417463e4f4d72a9fd1c02))
* **deps:** update tiptap monorepo to v2.23.0 ([#3487](https://github.com/homarr-labs/homarr/issues/3487)) ([b027f3a](https://github.com/homarr-labs/homarr/commit/b027f3a18084743b452dd35ff8e0fa30f59acd85))
* **deps:** update trpc monorepo to ^11.4.3 ([#3491](https://github.com/homarr-labs/homarr/issues/3491)) ([d326f3b](https://github.com/homarr-labs/homarr/commit/d326f3b4b3f5fc342404a12b25380d9dd6cd924a))
* **jellyseerr:** add missing deleted media status ([#3439](https://github.com/homarr-labs/homarr/issues/3439)) ([6b474c3](https://github.com/homarr-labs/homarr/commit/6b474c3df470450598b6b9472bf9f52740b8ed21))
## [1.25.0](https://github.com/homarr-labs/homarr/compare/v1.24.0...v1.25.0) (2025-06-20)
### Features
* **integrations:** add support for self-signed-cert-in-chain request error ([#3399](https://github.com/homarr-labs/homarr/issues/3399)) ([e6cb35b](https://github.com/homarr-labs/homarr/commit/e6cb35b7c2dc45349a9cf0819aa21228aea03e26))
### Bug Fixes
* **deps:** update dependency node-cron to ^4.1.1 ([#3427](https://github.com/homarr-labs/homarr/issues/3427)) ([f6a99ff](https://github.com/homarr-labs/homarr/commit/f6a99ffedd690c01e18f445ade6343f1ca476b27))
* **deps:** update dependency swagger-ui-react to ^5.24.2 ([#3405](https://github.com/homarr-labs/homarr/issues/3405)) ([bdca920](https://github.com/homarr-labs/homarr/commit/bdca92036a3dde7f655735c305e55c5c15b63440))
* **deps:** update dependency swagger-ui-react to ^5.25.2 ([#3420](https://github.com/homarr-labs/homarr/issues/3420)) ([02cd7a5](https://github.com/homarr-labs/homarr/commit/02cd7a50dad9e954cfd569b0f1efcc4fe4fd5da4))
* **deps:** update dependency tsdav to ^2.1.5 ([#3414](https://github.com/homarr-labs/homarr/issues/3414)) ([6bcfe78](https://github.com/homarr-labs/homarr/commit/6bcfe789561c518e7ce6c78a9be95412a50f04dd))
* **deps:** update dependency typescript-eslint to ^8.34.1 ([#3409](https://github.com/homarr-labs/homarr/issues/3409)) ([637bfb8](https://github.com/homarr-labs/homarr/commit/637bfb8b47b7dc6c70163bd481c47bca9bd93d55))
* **deps:** update dependency zod to ^3.25.65 ([#3410](https://github.com/homarr-labs/homarr/issues/3410)) ([a8c9c07](https://github.com/homarr-labs/homarr/commit/a8c9c075f08bca4b86307e98156cae7167ef6ab1))
* **deps:** update dependency zod to ^3.25.67 ([#3413](https://github.com/homarr-labs/homarr/issues/3413)) ([56ca8b7](https://github.com/homarr-labs/homarr/commit/56ca8b7b0b1c0187457c085af1c7f4504d72ed9a))
* **deps:** update dependency zod-validation-error to ^3.5.1 ([#3406](https://github.com/homarr-labs/homarr/issues/3406)) ([adbef25](https://github.com/homarr-labs/homarr/commit/adbef252c61c29fbbc8c7b0e325a0e9d69bb3191))
* **deps:** update dependency zod-validation-error to ^3.5.2 ([#3417](https://github.com/homarr-labs/homarr/issues/3417)) ([430f671](https://github.com/homarr-labs/homarr/commit/430f6714345b5b90859fd3302f76fd3d14956148))
* **deps:** update mantine monorepo to ^8.1.1 ([#3404](https://github.com/homarr-labs/homarr/issues/3404)) ([f97a261](https://github.com/homarr-labs/homarr/commit/f97a2619734dcf3b326c69587fa2f4e170cb9c88))
* **deps:** update nextjs monorepo to v15.3.4 ([#3421](https://github.com/homarr-labs/homarr/issues/3421)) ([3759a98](https://github.com/homarr-labs/homarr/commit/3759a9831c6fe54b0b0eb0e101c8eb912b752b41))
* **deps:** update tanstack-query monorepo to ^5.80.10 ([#3422](https://github.com/homarr-labs/homarr/issues/3422)) ([7c58e8a](https://github.com/homarr-labs/homarr/commit/7c58e8ac9bdb2868637648b43b7965189421b295))
* **deps:** update tiptap monorepo to v2.14.1 ([#3423](https://github.com/homarr-labs/homarr/issues/3423)) ([9e4b463](https://github.com/homarr-labs/homarr/commit/9e4b4635bc582e4d92821844d58fdb3d057f7fec))
* **deps:** update tiptap monorepo to v2.22.0 ([#3425](https://github.com/homarr-labs/homarr/issues/3425)) ([ec4dde6](https://github.com/homarr-labs/homarr/commit/ec4dde64fdd4302b091a0255ec1bcdc6b2caca89))
* **deps:** update trpc monorepo to ^11.4.2 ([#3419](https://github.com/homarr-labs/homarr/issues/3419)) ([8e428e2](https://github.com/homarr-labs/homarr/commit/8e428e20a764c54c15fc44b57f85fa684cfbc00e))
* **downloads:** not updating automatically ([#3412](https://github.com/homarr-labs/homarr/issues/3412)) ([b5ef7e5](https://github.com/homarr-labs/homarr/commit/b5ef7e5194a828abfddcac5eb492910de5f1f7d8))
* **widget-integration-select:** fixed error about `<p>` being descendant of `<p>` ([#3418](https://github.com/homarr-labs/homarr/issues/3418)) ([73fff02](https://github.com/homarr-labs/homarr/commit/73fff02ad0a3a710aa39cda7dccf9206569c2879))
## [1.24.0](https://github.com/homarr-labs/homarr/compare/v1.23.0...v1.24.0) (2025-06-13)
### Features
* reduce cron job intervals ([#3235](https://github.com/homarr-labs/homarr/issues/3235)) ([f67702e](https://github.com/homarr-labs/homarr/commit/f67702e1d32954b4f6db28c02b1a25e56122d779))
### Bug Fixes
* csp prevents external videos ([#3372](https://github.com/homarr-labs/homarr/issues/3372)) ([c59cded](https://github.com/homarr-labs/homarr/commit/c59cdeda47a504069c09634dafe36a9bc80c922f))
* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.7 ([#3357](https://github.com/homarr-labs/homarr/issues/3357)) ([22f0cd8](https://github.com/homarr-labs/homarr/commit/22f0cd885e6b3f0cd15daa60840554a545eb2532))
* **deps:** update dependency @t3-oss/env-nextjs to ^0.13.8 ([#3364](https://github.com/homarr-labs/homarr/issues/3364)) ([ab3ee3b](https://github.com/homarr-labs/homarr/commit/ab3ee3bac186913cbc76c1381c90b3c90a447185))
* **deps:** update dependency fast-xml-parser to ^5.2.5 ([#3353](https://github.com/homarr-labs/homarr/issues/3353)) ([9e86de6](https://github.com/homarr-labs/homarr/commit/9e86de6e1781ef2c088f83af1ba341baecb496da))
* **deps:** update dependency glob to ^11.0.3 ([#3391](https://github.com/homarr-labs/homarr/issues/3391)) ([f16efac](https://github.com/homarr-labs/homarr/commit/f16efac05a17b77303f4c41b8910d491d237add2))
* **deps:** update dependency sass to ^1.89.2 ([#3362](https://github.com/homarr-labs/homarr/issues/3362)) ([b1a559d](https://github.com/homarr-labs/homarr/commit/b1a559d80161f59114ba3098005c3334662987eb))
* **deps:** update dependency swagger-ui-react to ^5.24.1 ([#3368](https://github.com/homarr-labs/homarr/issues/3368)) ([fa52b55](https://github.com/homarr-labs/homarr/commit/fa52b5582880075cd76826641547ccbf42b56f7a))
* **deps:** update dependency tsx to v4.20.0 ([#3375](https://github.com/homarr-labs/homarr/issues/3375)) ([3d07306](https://github.com/homarr-labs/homarr/commit/3d07306e7d3bf90db7f7c02d68550a137c5554bc))
* **deps:** update dependency tsx to v4.20.1 ([#3380](https://github.com/homarr-labs/homarr/issues/3380)) ([e7652ea](https://github.com/homarr-labs/homarr/commit/e7652ea4eb1ddaf8373c02abfcdb5440bf55c236))
* **deps:** update dependency tsx to v4.20.2 ([#3387](https://github.com/homarr-labs/homarr/issues/3387)) ([79519ec](https://github.com/homarr-labs/homarr/commit/79519ec0ebf4ff101fa1cd395f974e023d1af3c3))
* **deps:** update dependency tsx to v4.20.3 ([#3393](https://github.com/homarr-labs/homarr/issues/3393)) ([c9097a9](https://github.com/homarr-labs/homarr/commit/c9097a95e2072ed619e93301f8d4644aaadce2dd))
* **deps:** update dependency typescript-eslint to ^8.34.0 ([#3359](https://github.com/homarr-labs/homarr/issues/3359)) ([f6da091](https://github.com/homarr-labs/homarr/commit/f6da0915773dd60b40475f258d90e5f3dbdb6729))
* **deps:** update dependency zod to ^3.25.56 ([#3340](https://github.com/homarr-labs/homarr/issues/3340)) ([aafd883](https://github.com/homarr-labs/homarr/commit/aafd883c3250ddf3438877d82b4b63a6a15eadda))
* **deps:** update dependency zod to ^3.25.57 ([#3367](https://github.com/homarr-labs/homarr/issues/3367)) ([e7a9797](https://github.com/homarr-labs/homarr/commit/e7a9797484e9e2cd595d31e6db4cdf63e25e3b82))
* **deps:** update dependency zod to ^3.25.58 ([#3373](https://github.com/homarr-labs/homarr/issues/3373)) ([f37fc0e](https://github.com/homarr-labs/homarr/commit/f37fc0edfee45386b3469bac11c91e4f17c83673))
* **deps:** update dependency zod to ^3.25.60 ([#3378](https://github.com/homarr-labs/homarr/issues/3378)) ([7388c90](https://github.com/homarr-labs/homarr/commit/7388c907a57c7999a48118d96a3f34d2c3656f79))
* **deps:** update dependency zod to ^3.25.61 ([#3379](https://github.com/homarr-labs/homarr/issues/3379)) ([863f935](https://github.com/homarr-labs/homarr/commit/863f935ef4c27f87a632a5e0b376fe088f4e8a04))
* **deps:** update dependency zod to ^3.25.62 ([#3382](https://github.com/homarr-labs/homarr/issues/3382)) ([0b200dc](https://github.com/homarr-labs/homarr/commit/0b200dc9e2239060ddf2670f8508f68e624e821e))
* **deps:** update dependency zod to ^3.25.63 ([#3386](https://github.com/homarr-labs/homarr/issues/3386)) ([153c2ef](https://github.com/homarr-labs/homarr/commit/153c2ef8a0098cbe2d998c98a25a0c5880f0da5d))
* **deps:** update dependency zod to ^3.25.64 ([#3392](https://github.com/homarr-labs/homarr/issues/3392)) ([5dc0ee8](https://github.com/homarr-labs/homarr/commit/5dc0ee8842dbd4bde468c5762cf5dc0d73958242))
* **deps:** update dependency zod-validation-error to ^3.5.0 ([#3388](https://github.com/homarr-labs/homarr/issues/3388)) ([747d034](https://github.com/homarr-labs/homarr/commit/747d034114bd2a3b381aa7318c59015b21811353))
* **deps:** update mantine monorepo to ^8.1.0 ([#3360](https://github.com/homarr-labs/homarr/issues/3360)) ([d862ae0](https://github.com/homarr-labs/homarr/commit/d862ae03e319d173468cd7797bd74be022cbc966))
* **deps:** update tanstack-query monorepo to ^5.80.7 ([#3385](https://github.com/homarr-labs/homarr/issues/3385)) ([c5cc8f1](https://github.com/homarr-labs/homarr/commit/c5cc8f1d375d5a582b169da706a5b433a0181c20))
* **deps:** update testcontainers-node monorepo to ^11.0.1 ([#3343](https://github.com/homarr-labs/homarr/issues/3343)) ([6ec66b1](https://github.com/homarr-labs/homarr/commit/6ec66b1fe2d5779b2267532d75d6933b3460ffd5))
* **deps:** update testcontainers-node monorepo to ^11.0.2 ([#3352](https://github.com/homarr-labs/homarr/issues/3352)) ([98c4cd1](https://github.com/homarr-labs/homarr/commit/98c4cd1e39286164c09f7d8e961488e26fa2c562))
* **deps:** update testcontainers-node monorepo to ^11.0.3 ([#3369](https://github.com/homarr-labs/homarr/issues/3369)) ([ad444e8](https://github.com/homarr-labs/homarr/commit/ad444e8fa7a186710deafd98f2aa48717de1ec80))
* **deps:** update trpc monorepo to ^11.4.0 ([#3389](https://github.com/homarr-labs/homarr/issues/3389)) ([3bf4f9e](https://github.com/homarr-labs/homarr/commit/3bf4f9e0588440d74dfaf7016acc66c1ed40843a))
* **deps:** update trpc monorepo to ^11.4.1 ([#3395](https://github.com/homarr-labs/homarr/issues/3395)) ([6d9992d](https://github.com/homarr-labs/homarr/commit/6d9992d7114f97c24e02c40dcaf11fad90608a1c))
* module not found sshcrypto.node during development ([#3349](https://github.com/homarr-labs/homarr/issues/3349)) ([1b3770a](https://github.com/homarr-labs/homarr/commit/1b3770aafbe4e903e6235dc681edac556a36e4e0))
* **pi-hole:** cached session not invalidated when changing password ([#3351](https://github.com/homarr-labs/homarr/issues/3351)) ([a9e68e1](https://github.com/homarr-labs/homarr/commit/a9e68e13d53c8e06d150ecba085680cd248d4f64))
## [1.23.0](https://github.com/homarr-labs/homarr/compare/v1.22.0...v1.23.0) (2025-06-06)
### Features
+5 -19
View File
@@ -17,31 +17,16 @@ const withNextIntl = createNextIntlPlugin({
requestConfig: "../../packages/translation/src/request.ts",
});
interface WebpackConfig {
module: {
rules: {
test: RegExp;
loader: string;
}[];
};
}
const nextConfig: NextConfig = {
output: "standalone",
reactStrictMode: true,
/** We already do linting and typechecking as separate tasks in CI */
eslint: { ignoreDuringBuilds: true },
typescript: { ignoreBuildErrors: true },
webpack: (config: WebpackConfig, { isServer }) => {
if (isServer) {
config.module.rules.push({
test: /\.node$/,
loader: "node-loader",
});
}
return config;
},
/**
* dockerode is required in the external server packages because of https://github.com/homarr-labs/homarr/issues/612
*/
serverExternalPackages: ["dockerode"],
experimental: {
optimizePackageImports: ["@mantine/core", "@mantine/hooks", "@tabler/icons-react"],
},
@@ -68,6 +53,7 @@ const nextConfig: NextConfig = {
form-action 'self';
img-src * data:;
font-src * data:;
media-src * data:;
`
.replace(/\s{2,}/g, " ")
.trim(),
+24 -24
View File
@@ -48,59 +48,59 @@
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@homarr/widgets": "workspace:^0.1.0",
"@mantine/colors-generator": "^8.0.2",
"@mantine/core": "^8.0.2",
"@mantine/dropzone": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/modals": "^8.0.2",
"@mantine/tiptap": "^8.0.2",
"@mantine/colors-generator": "^8.1.2",
"@mantine/core": "^8.1.2",
"@mantine/dropzone": "^8.1.2",
"@mantine/hooks": "^8.1.2",
"@mantine/modals": "^8.1.2",
"@mantine/tiptap": "^8.1.2",
"@million/lint": "1.0.14",
"@tabler/icons-react": "^3.34.0",
"@tanstack/react-query": "^5.80.6",
"@tanstack/react-query-devtools": "^5.80.6",
"@tanstack/react-query-next-experimental": "^5.80.6",
"@trpc/client": "^11.3.1",
"@trpc/next": "^11.3.1",
"@trpc/react-query": "^11.3.1",
"@trpc/server": "^11.3.1",
"@tanstack/react-query": "^5.81.4",
"@tanstack/react-query-devtools": "^5.81.4",
"@tanstack/react-query-next-experimental": "^5.81.4",
"@trpc/client": "^11.4.3",
"@trpc/next": "^11.4.3",
"@trpc/react-query": "^11.4.3",
"@trpc/server": "^11.4.3",
"@xterm/addon-canvas": "^0.7.0",
"@xterm/addon-fit": "0.10.0",
"@xterm/xterm": "^5.5.0",
"chroma-js": "^3.1.2",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"dotenv": "^16.5.0",
"dotenv": "^16.6.0",
"flag-icons": "^7.5.0",
"glob": "^11.0.2",
"glob": "^11.0.3",
"jotai": "^2.12.5",
"mantine-react-table": "2.0.0-beta.9",
"next": "15.3.3",
"next": "15.3.4",
"postcss-preset-mantine": "^1.17.0",
"prismjs": "^1.30.0",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-error-boundary": "^6.0.0",
"react-simple-code-editor": "^0.14.1",
"sass": "^1.89.1",
"sass": "^1.89.2",
"superjson": "2.2.2",
"swagger-ui-react": "^5.24.0",
"swagger-ui-react": "^5.25.3",
"use-deep-compare-effect": "^1.8.1",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/chroma-js": "3.1.1",
"@types/node": "^22.15.30",
"@types/node": "^22.15.33",
"@types/prismjs": "^1.26.5",
"@types/react": "19.1.6",
"@types/react": "19.1.8",
"@types/react-dom": "19.1.6",
"@types/swagger-ui-react": "^5.18.0",
"concurrently": "^9.1.2",
"eslint": "^9.28.0",
"concurrently": "^9.2.0",
"eslint": "^9.29.0",
"node-loader": "^2.1.0",
"prettier": "^3.5.3",
"prettier": "^3.6.2",
"typescript": "^5.8.3"
}
}
@@ -1,4 +1,4 @@
import { IconGrid3x3, IconKey, IconPassword, IconServer, IconUser } from "@tabler/icons-react";
import { IconGrid3x3, IconKey, IconMessage, IconPassword, IconServer, IconUser } from "@tabler/icons-react";
import type { IntegrationSecretKind } from "@homarr/definitions";
import type { TablerIcon } from "@homarr/ui";
@@ -9,4 +9,5 @@ export const integrationSecretIcons = {
password: IconPassword,
realm: IconServer,
tokenId: IconGrid3x3,
topic: IconMessage,
} satisfies Record<IntegrationSecretKind, TablerIcon>;
@@ -30,6 +30,8 @@ export const CertificateErrorDetails = ({ error, url }: CertificateErrorDetailsP
const { mutateAsync: trustHostnameAsync } = clientApi.certificates.trustHostnameMismatch.useMutation();
const { mutateAsync: addCertificateAsync } = clientApi.certificates.addCertificate.useMutation();
const rootCertificate = getHeighestCertificate(error.data.certificate);
const handleTrustHostname = () => {
const { hostname } = new URL(url);
openConfirmModal({
@@ -72,7 +74,7 @@ export const CertificateErrorDetails = ({ error, url }: CertificateErrorDetailsP
const formData = new FormData();
formData.append(
"file",
new File([error.data.certificate.pem], `${hostname}-${createId()}.crt`, {
new File([rootCertificate.pem], `${hostname}-${createId()}.crt`, {
type: "application/x-x509-ca-cert",
}),
);
@@ -110,11 +112,11 @@ export const CertificateErrorDetails = ({ error, url }: CertificateErrorDetailsP
<>
{description}
<CertificateDetailsCard certificate={error.data.certificate} />
<CertificateDetailsCard certificate={rootCertificate} />
{error.data.reason === "hostnameMismatch" && <HostnameMismatchAlert />}
{!error.data.certificate.isSelfSigned && error.data.reason === "untrusted" && <CertificateExtractAlert />}
{!rootCertificate.isSelfSigned && error.data.reason === "untrusted" && <CertificateExtractAlert />}
{showRetryButton && (
<Button
@@ -127,7 +129,7 @@ export const CertificateErrorDetails = ({ error, url }: CertificateErrorDetailsP
</Button>
)}
{(error.data.reason === "untrusted" && error.data.certificate.isSelfSigned) ||
{(error.data.reason === "untrusted" && rootCertificate.isSelfSigned) ||
error.data.reason === "hostnameMismatch" ? (
<Button
variant="default"
@@ -137,7 +139,7 @@ export const CertificateErrorDetails = ({ error, url }: CertificateErrorDetailsP
{tError("certificate.action.trust.label")}
</Button>
) : null}
{error.data.reason === "untrusted" && !error.data.certificate.isSelfSigned ? (
{error.data.reason === "untrusted" && !rootCertificate.isSelfSigned ? (
<Button
variant="default"
fullWidth
@@ -325,3 +327,8 @@ const PemContentModal = createModal<{ content: string }>(({ actions, innerProps
},
size: "lg",
});
const getHeighestCertificate = (certificate: MappedCertificate): MappedCertificate => {
if (certificate.issuerCertificate) return getHeighestCertificate(certificate.issuerCertificate);
return certificate;
};
+6 -6
View File
@@ -36,20 +36,20 @@
"@homarr/validation": "workspace:^0.1.0",
"@homarr/widgets": "workspace:^0.1.0",
"dayjs": "^1.11.13",
"dotenv": "^16.5.0",
"dotenv": "^16.6.0",
"superjson": "2.2.2",
"undici": "7.10.0"
"undici": "7.11.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/node": "^22.15.30",
"@types/node": "^22.15.33",
"dotenv-cli": "^8.0.0",
"esbuild": "^0.25.5",
"eslint": "^9.28.0",
"prettier": "^3.5.3",
"tsx": "4.19.4",
"eslint": "^9.29.0",
"prettier": "^3.6.2",
"tsx": "4.20.3",
"typescript": "^5.8.3"
}
}
+4 -4
View File
@@ -25,8 +25,8 @@
"@homarr/log": "workspace:^",
"@homarr/redis": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"dotenv": "^16.5.0",
"tsx": "4.19.4",
"dotenv": "^16.6.0",
"tsx": "4.20.3",
"ws": "^8.18.2"
},
"devDependencies": {
@@ -35,8 +35,8 @@
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/ws": "^8.18.1",
"esbuild": "^0.25.5",
"eslint": "^9.28.0",
"prettier": "^3.5.3",
"eslint": "^9.29.0",
"prettier": "^3.6.2",
"typescript": "^5.8.3"
}
}
+11 -11
View File
@@ -1,6 +1,6 @@
{
"name": "homarr",
"version": "1.23.0",
"version": "1.26.0",
"private": true,
"scripts": {
"build": "cross-env CI=true turbo build",
@@ -36,26 +36,26 @@
"@semantic-release/commit-analyzer": "^13.0.1",
"@semantic-release/git": "^10.0.1",
"@semantic-release/github": "^11.0.3",
"@semantic-release/npm": "^12.0.1",
"@semantic-release/npm": "^12.0.2",
"@semantic-release/release-notes-generator": "^14.0.3",
"@turbo/gen": "^2.5.4",
"@vitejs/plugin-react": "^4.5.1",
"@vitest/coverage-v8": "^3.2.2",
"@vitest/ui": "^3.2.2",
"@vitejs/plugin-react": "^4.6.0",
"@vitest/coverage-v8": "^3.2.4",
"@vitest/ui": "^3.2.4",
"conventional-changelog-conventionalcommits": "^9.0.0",
"cross-env": "^7.0.3",
"jsdom": "^26.1.0",
"prettier": "^3.5.3",
"prettier": "^3.6.2",
"semantic-release": "^24.2.5",
"testcontainers": "^11.0.1",
"testcontainers": "^11.0.3",
"turbo": "^2.5.4",
"typescript": "^5.8.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.2.2"
"vitest": "^3.2.4"
},
"packageManager": "pnpm@10.11.1",
"packageManager": "pnpm@10.12.4",
"engines": {
"node": ">=22.16.0"
"node": ">=22.17.0"
},
"pnpm": {
"onlyBuiltDependencies": [
@@ -70,7 +70,7 @@
"tree-sitter-json"
],
"overrides": {
"proxmox-api>undici": "7.10.0"
"proxmox-api>undici": "7.11.0"
},
"allowUnusedPatches": true,
"ignoredBuiltDependencies": [
+1 -1
View File
@@ -32,7 +32,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+9 -9
View File
@@ -41,25 +41,25 @@
"@homarr/server-settings": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@kubernetes/client-node": "^1.3.0",
"@tanstack/react-query": "^5.80.6",
"@trpc/client": "^11.3.1",
"@trpc/react-query": "^11.3.1",
"@trpc/server": "^11.3.1",
"@trpc/tanstack-react-query": "^11.3.1",
"@tanstack/react-query": "^5.81.4",
"@trpc/client": "^11.4.3",
"@trpc/react-query": "^11.4.3",
"@trpc/server": "^11.4.3",
"@trpc/tanstack-react-query": "^11.4.3",
"lodash.clonedeep": "^4.5.0",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"superjson": "2.2.2",
"trpc-to-openapi": "^2.3.1",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"prettier": "^3.5.3",
"eslint": "^9.29.0",
"prettier": "^3.6.2",
"typescript": "^5.8.3"
}
}
@@ -36,6 +36,7 @@ const mapError = (error: Error): MappedError => {
export interface MappedCertificate {
isSelfSigned: boolean;
issuer: string;
issuerCertificate?: MappedCertificate;
subject: string;
serialNumber: string;
validFrom: Date;
@@ -47,6 +48,7 @@ export interface MappedCertificate {
const mapCertificate = (certificate: X509Certificate, code: RequestErrorCode): MappedCertificate => ({
isSelfSigned: certificate.ca || code === "DEPTH_ZERO_SELF_SIGNED_CERT",
issuer: certificate.issuer,
issuerCertificate: certificate.issuerCertificate ? mapCertificate(certificate.issuerCertificate, code) : undefined,
subject: certificate.subject,
serialNumber: certificate.serialNumber,
validFrom: certificate.validFromDate,
+2
View File
@@ -11,6 +11,7 @@ import { mediaTranscodingRouter } from "./media-transcoding";
import { minecraftRouter } from "./minecraft";
import { networkControllerRouter } from "./network-controller";
import { notebookRouter } from "./notebook";
import { notificationsRouter } from "./notifications";
import { optionsRouter } from "./options";
import { releasesRouter } from "./releases";
import { rssFeedRouter } from "./rssFeed";
@@ -37,4 +38,5 @@ export const widgetRouter = createTRPCRouter({
options: optionsRouter,
releases: releasesRouter,
networkController: networkControllerRouter,
notifications: notificationsRouter,
});
@@ -0,0 +1,64 @@
import { observable } from "@trpc/server/observable";
import type { Modify } from "@homarr/common/types";
import type { Integration } from "@homarr/db/schema";
import type { IntegrationKindByCategory } from "@homarr/definitions";
import { getIntegrationKindsByCategory } from "@homarr/definitions";
import type { Notification } from "@homarr/integrations";
import { notificationsRequestHandler } from "@homarr/request-handler/notifications";
import type { IntegrationAction } from "../../middlewares/integration";
import { createManyIntegrationMiddleware } from "../../middlewares/integration";
import { createTRPCRouter, publicProcedure } from "../../trpc";
const createNotificationsIntegrationMiddleware = (action: IntegrationAction) =>
createManyIntegrationMiddleware(action, ...getIntegrationKindsByCategory("notifications"));
export const notificationsRouter = createTRPCRouter({
getNotifications: publicProcedure
.unstable_concat(createNotificationsIntegrationMiddleware("query"))
.query(async ({ ctx }) => {
return await Promise.all(
ctx.integrations.map(async (integration) => {
const innerHandler = notificationsRequestHandler.handler(integration, {});
const { data, timestamp } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false });
return {
integration: {
id: integration.id,
name: integration.name,
kind: integration.kind,
updatedAt: timestamp,
},
data,
};
}),
);
}),
subscribeNotifications: publicProcedure
.unstable_concat(createNotificationsIntegrationMiddleware("query"))
.subscription(({ ctx }) => {
return observable<{
integration: Modify<Integration, { kind: IntegrationKindByCategory<"notifications"> }>;
data: Notification[];
}>((emit) => {
const unsubscribes: (() => void)[] = [];
for (const integrationWithSecrets of ctx.integrations) {
const { decryptedSecrets: _, ...integration } = integrationWithSecrets;
const innerHandler = notificationsRequestHandler.handler(integrationWithSecrets, {});
const unsubscribe = innerHandler.subscribe((data) => {
emit.next({
integration,
data,
});
});
unsubscribes.push(unsubscribe);
}
return () => {
unsubscribes.forEach((unsubscribe) => {
unsubscribe();
});
};
});
}),
});
+8 -8
View File
@@ -23,8 +23,8 @@
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@auth/core": "^0.39.1",
"@auth/drizzle-adapter": "^1.9.1",
"@auth/core": "^0.40.0",
"@auth/drizzle-adapter": "^1.10.0",
"@homarr/certificates": "workspace:^0.1.0",
"@homarr/common": "workspace:^0.1.0",
"@homarr/db": "workspace:^0.1.0",
@@ -34,12 +34,12 @@
"@homarr/validation": "workspace:^0.1.0",
"bcrypt": "^6.0.0",
"cookies": "^0.9.1",
"ldapts": "8.0.1",
"next": "15.3.3",
"next-auth": "5.0.0-beta.28",
"ldapts": "8.0.2",
"next": "15.3.4",
"next-auth": "5.0.0-beta.29",
"react": "19.1.0",
"react-dom": "19.1.0",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
@@ -47,8 +47,8 @@
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/bcrypt": "5.0.2",
"@types/cookies": "0.9.1",
"eslint": "^9.28.0",
"prettier": "^3.5.3",
"eslint": "^9.29.0",
"prettier": "^3.6.2",
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -32,7 +32,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2 -2
View File
@@ -24,13 +24,13 @@
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"@homarr/db": "workspace:^0.1.0",
"undici": "7.10.0"
"undici": "7.11.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2 -2
View File
@@ -28,14 +28,14 @@
"@homarr/common": "workspace:^0.1.0",
"@homarr/db": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"dotenv": "^16.5.0"
"dotenv": "^16.6.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"esbuild": "^0.25.5",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+5 -5
View File
@@ -30,18 +30,18 @@
"@homarr/env": "workspace:^0.1.0",
"@homarr/log": "workspace:^0.1.0",
"dayjs": "^1.11.13",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"undici": "7.10.0",
"zod": "^3.25.56",
"zod-validation-error": "^3.4.1"
"undici": "7.11.0",
"zod": "^3.25.67",
"zod-validation-error": "^3.5.2"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
@@ -36,7 +36,12 @@ export const requestErrorMap = {
expired: ["CERT_HAS_EXPIRED"],
hostnameMismatch: ["ERR_TLS_CERT_ALTNAME_INVALID", "CERT_COMMON_NAME_INVALID"],
notYetValid: ["CERT_NOT_YET_VALID"],
untrusted: ["DEPTH_ZERO_SELF_SIGNED_CERT", "UNABLE_TO_VERIFY_LEAF_SIGNATURE", "UNABLE_TO_GET_ISSUER_CERT_LOCALLY"],
untrusted: [
"DEPTH_ZERO_SELF_SIGNED_CERT",
"UNABLE_TO_VERIFY_LEAF_SIGNATURE",
"UNABLE_TO_GET_ISSUER_CERT_LOCALLY",
"SELF_SIGNED_CERT_IN_CHAIN",
],
},
connection: {
hostUnreachable: "EHOSTUNREACH",
+2 -2
View File
@@ -10,11 +10,11 @@ const calculateTimeAgo = (timestamp: Date) => {
return dayjs().to(timestamp);
};
export const useTimeAgo = (timestamp: Date) => {
export const useTimeAgo = (timestamp: Date, updateFrequency = 1000) => {
const [timeAgo, setTimeAgo] = useState(calculateTimeAgo(timestamp));
useEffect(() => {
const intervalId = setInterval(() => setTimeAgo(calculateTimeAgo(timestamp)), 1000); // update every second
const intervalId = setInterval(() => setTimeAgo(calculateTimeAgo(timestamp)), updateFrequency);
return () => clearInterval(intervalId); // clear interval on hook unmount
}, [timestamp]);
+1 -1
View File
@@ -33,7 +33,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+1
View File
@@ -25,6 +25,7 @@ export const cronJobs = {
minecraftServerStatus: { preventManualExecution: false },
networkController: { preventManualExecution: false },
dockerContainers: { preventManualExecution: false },
refreshNotifications: { preventManualExecution: false },
} satisfies Record<JobGroupKeys, { preventManualExecution?: boolean }>;
/**
+1 -1
View File
@@ -29,7 +29,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2 -2
View File
@@ -25,14 +25,14 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"node-cron": "^4.1.0"
"node-cron": "^4.1.1"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/node-cron": "^3.0.11",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -44,7 +44,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2
View File
@@ -11,6 +11,7 @@ import { mediaRequestListJob, mediaRequestStatsJob } from "./jobs/integrations/m
import { mediaServerJob } from "./jobs/integrations/media-server";
import { mediaTranscodingJob } from "./jobs/integrations/media-transcoding";
import { networkControllerJob } from "./jobs/integrations/network-controller";
import { refreshNotificationsJob } from "./jobs/integrations/notifications";
import { minecraftServerStatusJob } from "./jobs/minecraft-server-status";
import { pingJob } from "./jobs/ping";
import { rssFeedsJob } from "./jobs/rss-feeds";
@@ -38,6 +39,7 @@ export const jobGroup = createCronJobGroup({
minecraftServerStatus: minecraftServerStatusJob,
dockerContainers: dockerContainersJob,
networkController: networkControllerJob,
refreshNotifications: refreshNotificationsJob,
});
export type JobGroupKeys = ReturnType<(typeof jobGroup)["getKeys"]>[number];
@@ -1,10 +1,10 @@
import { EVERY_5_SECONDS } from "@homarr/cron-jobs-core/expressions";
import { EVERY_MINUTE } from "@homarr/cron-jobs-core/expressions";
import { dnsHoleRequestHandler } from "@homarr/request-handler/dns-hole";
import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler";
import { createCronJob } from "../../lib";
export const dnsHoleJob = createCronJob("dnsHole", EVERY_5_SECONDS).withCallback(
export const dnsHoleJob = createCronJob("dnsHole", EVERY_MINUTE).withCallback(
createRequestIntegrationJobHandler(dnsHoleRequestHandler.handler, {
widgetKinds: ["dnsHoleSummary", "dnsHoleControls"],
getInput: {
@@ -0,0 +1,14 @@
import { EVERY_5_MINUTES } from "@homarr/cron-jobs-core/expressions";
import { createRequestIntegrationJobHandler } from "@homarr/request-handler/lib/cached-request-integration-job-handler";
import { notificationsRequestHandler } from "@homarr/request-handler/notifications";
import { createCronJob } from "../../lib";
export const refreshNotificationsJob = createCronJob("refreshNotifications", EVERY_5_MINUTES).withCallback(
createRequestIntegrationJobHandler(notificationsRequestHandler.handler, {
widgetKinds: ["notifications"],
getInput: {
notifications: (options) => options,
},
}),
);
+2 -2
View File
@@ -1,6 +1,6 @@
import SuperJSON from "superjson";
import { EVERY_5_MINUTES } from "@homarr/cron-jobs-core/expressions";
import { EVERY_10_MINUTES } from "@homarr/cron-jobs-core/expressions";
import { db, eq } from "@homarr/db";
import { items } from "@homarr/db/schema";
import { logger } from "@homarr/log";
@@ -10,7 +10,7 @@ import { rssFeedsRequestHandler } from "@homarr/request-handler/rss-feeds";
import type { WidgetComponentProps } from "../../../widgets";
import { createCronJob } from "../lib";
export const rssFeedsJob = createCronJob("rssFeeds", EVERY_5_MINUTES).withCallback(async () => {
export const rssFeedsJob = createCronJob("rssFeeds", EVERY_10_MINUTES).withCallback(async () => {
const rssItems = await db.query.items.findMany({
where: eq(items.kind, "rssFeed"),
});
+9 -9
View File
@@ -38,18 +38,18 @@
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@auth/core": "^0.39.1",
"@auth/core": "^0.40.0",
"@homarr/common": "workspace:^0.1.0",
"@homarr/definitions": "workspace:^0.1.0",
"@homarr/env": "workspace:^0.1.0",
"@homarr/log": "workspace:^0.1.0",
"@homarr/server-settings": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/core": "^8.1.2",
"@paralleldrive/cuid2": "^2.2.2",
"@testcontainers/mysql": "^11.0.1",
"better-sqlite3": "^11.10.0",
"dotenv": "^16.5.0",
"drizzle-kit": "^0.31.1",
"@testcontainers/mysql": "^11.0.3",
"better-sqlite3": "^12.1.1",
"dotenv": "^16.6.0",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.2",
"drizzle-zod": "^0.7.1",
"mysql2": "3.14.1"
@@ -61,9 +61,9 @@
"@types/better-sqlite3": "7.6.13",
"dotenv-cli": "^8.0.0",
"esbuild": "^0.25.5",
"eslint": "^9.28.0",
"prettier": "^3.5.3",
"tsx": "4.19.4",
"eslint": "^9.29.0",
"prettier": "^3.6.2",
"tsx": "4.20.3",
"typescript": "^5.8.3"
}
}
+4 -4
View File
@@ -24,15 +24,15 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"fast-xml-parser": "^5.2.4",
"zod": "^3.25.56"
"fast-xml-parser": "^5.2.5",
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"tsx": "4.19.4",
"eslint": "^9.29.0",
"tsx": "4.20.3",
"typescript": "^5.8.3"
}
}
+9 -1
View File
@@ -7,6 +7,7 @@ export const integrationSecretKindObject = {
password: { isPublic: false },
tokenId: { isPublic: true },
realm: { isPublic: true },
topic: { isPublic: true },
} satisfies Record<string, { isPublic: boolean }>;
export const integrationSecretKinds = objectKeys(integrationSecretKindObject);
@@ -169,6 +170,12 @@ export const integrationDefs = {
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/unifi.png",
category: ["networkController"],
},
ntfy: {
name: "ntfy",
secretKinds: [["topic"], ["topic", "apiKey"]],
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/ntfy.svg",
category: ["notifications"],
},
} as const satisfies Record<string, integrationDefinition>;
export const integrationKinds = objectKeys(integrationDefs) as AtLeastOneOf<IntegrationKind>;
@@ -223,4 +230,5 @@ export type IntegrationCategory =
| "healthMonitoring"
| "search"
| "mediaTranscoding"
| "networkController";
| "networkController"
| "notifications";
+1
View File
@@ -25,5 +25,6 @@ export const widgetKinds = [
"healthMonitoring",
"releases",
"dockerContainers",
"notifications",
] as const;
export type WidgetKind = (typeof widgetKinds)[number];
+2 -2
View File
@@ -32,8 +32,8 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/dockerode": "^3.3.40",
"eslint": "^9.28.0",
"@types/dockerode": "^3.3.41",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+3 -3
View File
@@ -23,14 +23,14 @@
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@t3-oss/env-nextjs": "^0.13.6",
"zod": "^3.25.56"
"@t3-oss/env-nextjs": "^0.13.8",
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+3 -3
View File
@@ -26,14 +26,14 @@
"@homarr/common": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@mantine/form": "^8.0.2",
"zod": "^3.25.56"
"@mantine/form": "^8.1.2",
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+3 -3
View File
@@ -29,15 +29,15 @@
"@homarr/notifications": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/core": "^8.1.2",
"react": "19.1.0",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -31,7 +31,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+5 -5
View File
@@ -38,13 +38,13 @@
"@homarr/translation": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@jellyfin/sdk": "^0.11.0",
"maria2": "^0.4.0",
"maria2": "^0.4.1",
"node-ical": "^0.20.1",
"proxmox-api": "1.1.1",
"tsdav": "^2.1.4",
"undici": "7.10.0",
"tsdav": "^2.1.5",
"undici": "7.11.0",
"xml2js": "^0.6.2",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
@@ -52,7 +52,7 @@
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/node-unifi": "^2.5.1",
"@types/xml2js": "^0.4.14",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
@@ -21,6 +21,7 @@ import { ReadarrIntegration } from "../media-organizer/readarr/readarr-integrati
import { SonarrIntegration } from "../media-organizer/sonarr/sonarr-integration";
import { TdarrIntegration } from "../media-transcoding/tdarr-integration";
import { NextcloudIntegration } from "../nextcloud/nextcloud.integration";
import { NTFYIntegration } from "../ntfy/ntfy-integration";
import { OpenMediaVaultIntegration } from "../openmediavault/openmediavault-integration";
import { OverseerrIntegration } from "../overseerr/overseerr-integration";
import { createPiHoleIntegrationAsync } from "../pi-hole/pi-hole-integration-factory";
@@ -92,6 +93,7 @@ export const integrationCreators = {
emby: EmbyIntegration,
nextcloud: NextcloudIntegration,
unifiController: UnifiControllerIntegration,
ntfy: NTFYIntegration,
} satisfies Record<IntegrationKind, IntegrationInstance | [(input: IntegrationInput) => Promise<Integration>]>;
type IntegrationInstanceOfKind<TKind extends keyof typeof integrationCreators> = {
+6 -4
View File
@@ -1,26 +1,27 @@
// General integrations
export { AdGuardHomeIntegration } from "./adguard-home/adguard-home-integration";
export { Aria2Integration } from "./download-client/aria2/aria2-integration";
export { DelugeIntegration } from "./download-client/deluge/deluge-integration";
export { NzbGetIntegration } from "./download-client/nzbget/nzbget-integration";
export { QBitTorrentIntegration } from "./download-client/qbittorrent/qbittorrent-integration";
export { SabnzbdIntegration } from "./download-client/sabnzbd/sabnzbd-integration";
export { TransmissionIntegration } from "./download-client/transmission/transmission-integration";
export { Aria2Integration } from "./download-client/aria2/aria2-integration";
export { HomeAssistantIntegration } from "./homeassistant/homeassistant-integration";
export { DownloadClientIntegration } from "./interfaces/downloads/download-client-integration";
export { JellyfinIntegration } from "./jellyfin/jellyfin-integration";
export { JellyseerrIntegration } from "./jellyseerr/jellyseerr-integration";
export { LidarrIntegration } from "./media-organizer/lidarr/lidarr-integration";
export { RadarrIntegration } from "./media-organizer/radarr/radarr-integration";
export { ReadarrIntegration } from "./media-organizer/readarr/readarr-integration";
export { SonarrIntegration } from "./media-organizer/sonarr/sonarr-integration";
export { NextcloudIntegration } from "./nextcloud/nextcloud.integration";
export { NTFYIntegration } from "./ntfy/ntfy-integration";
export { OpenMediaVaultIntegration } from "./openmediavault/openmediavault-integration";
export { OverseerrIntegration } from "./overseerr/overseerr-integration";
export { PiHoleIntegrationV5 } from "./pi-hole/v5/pi-hole-integration-v5";
export { PiHoleIntegrationV6 } from "./pi-hole/v6/pi-hole-integration-v6";
export { PlexIntegration } from "./plex/plex-integration";
export { ProwlarrIntegration } from "./prowlarr/prowlarr-integration";
export { LidarrIntegration } from "./media-organizer/lidarr/lidarr-integration";
export { ReadarrIntegration } from "./media-organizer/readarr/readarr-integration";
export { NextcloudIntegration } from "./nextcloud/nextcloud.integration";
// Types
export type { IntegrationInput } from "./base/integration";
@@ -34,6 +35,7 @@ export type { StreamSession } from "./interfaces/media-server/session";
export type { TdarrQueue } from "./interfaces/media-transcoding/queue";
export type { TdarrPieSegment, TdarrStatistics } from "./interfaces/media-transcoding/statistics";
export type { TdarrWorker } from "./interfaces/media-transcoding/workers";
export type { Notification } from "./interfaces/notifications/notification";
// Schemas
export { downloadClientItemSchema } from "./interfaces/downloads/download-client-items";
@@ -43,6 +43,7 @@ export interface MediaRequestStats {
users: RequestUser[];
}
// https://github.com/fallenbagel/jellyseerr/blob/0fd03f38480f853e7015ad9229ed98160e37602e/server/constants/media.ts#L1
export enum MediaRequestStatus {
PendingApproval = 1,
Approved = 2,
@@ -51,6 +52,7 @@ export enum MediaRequestStatus {
Completed = 5,
}
// https://github.com/fallenbagel/jellyseerr/blob/0fd03f38480f853e7015ad9229ed98160e37602e/server/constants/media.ts#L14
export enum MediaAvailability {
Unknown = 1,
Pending = 2,
@@ -58,4 +60,5 @@ export enum MediaAvailability {
PartiallyAvailable = 4,
Available = 5,
Blacklisted = 6,
Deleted = 7,
}
@@ -0,0 +1,6 @@
export interface Notification {
id: string;
time: Date;
title: string;
body: string;
}
@@ -0,0 +1,6 @@
import { Integration } from "../../base/integration";
import type { Notification } from "./notification";
export abstract class NotificationsIntegration extends Integration {
public abstract getNotificationsAsync(): Promise<Notification[]>;
}
@@ -0,0 +1,65 @@
import { fetchWithTrustedCertificatesAsync } from "@homarr/certificates/server";
import { ResponseError } from "@homarr/common/server";
import type { IntegrationTestingInput } from "../base/integration";
import type { TestingResult } from "../base/test-connection/test-connection-service";
import type { Notification } from "../interfaces/notifications/notification";
import { NotificationsIntegration } from "../interfaces/notifications/notifications-integration";
import { ntfyNotificationSchema } from "./ntfy-schema";
export class NTFYIntegration extends NotificationsIntegration {
public async testingAsync(input: IntegrationTestingInput): Promise<TestingResult> {
await input.fetchAsync(this.url("/v1/account"), { headers: this.getHeaders() });
return { success: true };
}
private getTopicURL() {
return this.url(`/${encodeURIComponent(super.getSecretValue("topic"))}/json`, { poll: 1 });
}
private getHeaders() {
return this.hasSecretValue("apiKey") ? { Authorization: `Bearer ${super.getSecretValue("apiKey")}` } : {};
}
public async getNotificationsAsync() {
const url = this.getTopicURL();
const notifications = await Promise.all(
(
await fetchWithTrustedCertificatesAsync(url, { headers: this.getHeaders() })
.then((response) => {
if (!response.ok) throw new ResponseError(response);
return response.text();
})
.catch((error) => {
if (error instanceof Error) throw error;
else {
throw new Error("Error communicating with ntfy");
}
})
)
// response is provided as individual lines of JSON
.split("\n")
.map(async (line) => {
// ignore empty lines
if (line.length === 0) return null;
const json = JSON.parse(line) as unknown;
const parsed = await ntfyNotificationSchema.parseAsync(json);
if (parsed.event === "message") return parsed;
// ignore non-event messages
else return null;
}),
);
return notifications
.filter((notification) => notification !== null)
.map((notification): Notification => {
const topicURL = this.url(`/${notification.topic}`);
return {
id: notification.id,
time: new Date(notification.time * 1000),
title: notification.title ?? topicURL.hostname + topicURL.pathname,
body: notification.message,
};
});
}
}
@@ -0,0 +1,12 @@
import { z } from "zod";
// There are more properties, see: https://docs.ntfy.sh/subscribe/api/#json-message-format
// Not all properties are required for this use case.
export const ntfyNotificationSchema = z.object({
id: z.string(),
time: z.number(),
event: z.string(), // we only care about "message"
topic: z.string(),
title: z.optional(z.string()),
message: z.string(),
});
@@ -77,6 +77,7 @@ export class PiHoleIntegrationV6 extends Integration implements DnsHoleSummaryIn
protected async testingAsync({ fetchAsync }: IntegrationTestingInput): Promise<TestingResult> {
const sessionId = await this.getSessionAsync(fetchAsync);
await this.clearSessionAsync(sessionId, fetchAsync);
await this.sessionStore.clearAsync();
return { success: true };
}
+2 -2
View File
@@ -27,13 +27,13 @@
"ioredis": "5.6.1",
"superjson": "2.2.2",
"winston": "3.17.0",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+4 -4
View File
@@ -33,19 +33,19 @@
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/core": "^8.1.2",
"@tabler/icons-react": "^3.34.0",
"dayjs": "^1.11.13",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+3 -3
View File
@@ -24,15 +24,15 @@
"dependencies": {
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/core": "^8.1.2",
"@mantine/hooks": "^8.1.2",
"react": "19.1.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2 -2
View File
@@ -24,14 +24,14 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/ui": "workspace:^0.1.0",
"@mantine/notifications": "^8.0.2",
"@mantine/notifications": "^8.1.2",
"@tabler/icons-react": "^3.34.0"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+5 -5
View File
@@ -37,14 +37,14 @@
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/core": "^8.1.2",
"@mantine/hooks": "^8.1.2",
"adm-zip": "0.5.16",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"superjson": "2.2.2",
"zod": "^3.25.56",
"zod": "^3.25.67",
"zod-form-data": "^2.0.7"
},
"devDependencies": {
@@ -52,7 +52,7 @@
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/adm-zip": "0.5.7",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2 -2
View File
@@ -23,13 +23,13 @@
"prettier": "@homarr/prettier-config",
"dependencies": {
"@homarr/common": "workspace:^0.1.0",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -30,7 +30,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -33,7 +33,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+1 -1
View File
@@ -37,7 +37,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
@@ -0,0 +1,20 @@
import dayjs from "dayjs";
import type { IntegrationKindByCategory } from "@homarr/definitions";
import type { Notification } from "@homarr/integrations";
import { createIntegrationAsync } from "@homarr/integrations";
import { createCachedIntegrationRequestHandler } from "./lib/cached-integration-request-handler";
export const notificationsRequestHandler = createCachedIntegrationRequestHandler<
Notification[],
IntegrationKindByCategory<"notifications">,
Record<string, never>
>({
async requestAsync(integration) {
const integrationInstance = await createIntegrationAsync(integration);
return await integrationInstance.getNotificationsAsync();
},
cacheDuration: dayjs.duration(5, "minutes"),
queryKey: "notificationsJobStatus",
});
+1 -1
View File
@@ -29,7 +29,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+3 -3
View File
@@ -26,8 +26,8 @@
"@homarr/api": "workspace:^0.1.0",
"@homarr/db": "workspace:^0.1.0",
"@homarr/server-settings": "workspace:^0.1.0",
"@mantine/dates": "^8.0.2",
"next": "15.3.3",
"@mantine/dates": "^8.1.2",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0"
},
@@ -35,7 +35,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+5 -5
View File
@@ -33,12 +33,12 @@
"@homarr/settings": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/spotlight": "^8.0.2",
"@mantine/core": "^8.1.2",
"@mantine/hooks": "^8.1.2",
"@mantine/spotlight": "^8.1.2",
"@tabler/icons-react": "^3.34.0",
"jotai": "^2.12.5",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"use-deep-compare-effect": "^1.8.1"
@@ -47,7 +47,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+3 -3
View File
@@ -32,8 +32,8 @@
"dayjs": "^1.11.13",
"deepmerge": "4.3.1",
"mantine-react-table": "2.0.0-beta.9",
"next": "15.3.3",
"next-intl": "4.1.0",
"next": "15.3.4",
"next-intl": "4.3.1",
"react": "19.1.0",
"react-dom": "19.1.0"
},
@@ -41,7 +41,7 @@
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "",
"available": ""
"available": "",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+160 -145
View File
@@ -263,14 +263,14 @@
}
},
"removeImage": {
"label": "删除图像",
"label": "删除头像",
"confirm": "确定要移除这张图片吗?",
"notification": {
"success": {
"message": "图像删除成功"
},
"error": {
"message": "无法删除图像"
"message": "无法删除头像"
}
}
}
@@ -722,8 +722,8 @@
},
"statusCode": {
"title": "响应错误",
"description": "",
"otherDescription": "",
"description": "收到来自<url></url>的意外{statusCode} ({reason})响应。请验证URL是否指向集成的基本URL。",
"otherDescription": "从<url></url>收到意外的{statusCode}响应。请验证URL是否指向集成的基本URL。",
"reason": {
"badRequest": "错误请求",
"notFound": "未找到",
@@ -752,7 +752,7 @@
},
"extract": {
"title": "CA证书提取失败",
"message": ""
"message": "只有自签署证书链可以自动获取。如果使用的是自签名证书,请确保手动上传CA证书。您可以找到有关如何执行此操作的说明<docsLink></docsLink>。"
}
},
"action": {
@@ -760,70 +760,70 @@
"label": "重试创建"
},
"trust": {
"label": ""
"label": "信任证书"
},
"upload": {
"label": ""
"label": "上传证书"
}
},
"hostnameMismatch": {
"confirm": {
"title": "",
"message": ""
"title": "信任主机名不匹配",
"message": "您确定要信任主机名不匹配的证书吗?"
},
"notification": {
"success": {
"title": "",
"message": ""
"title": "可信证书",
"message": "将主机名添加到受信任证书列表中"
},
"error": {
"title": "",
"message": ""
"title": "信任证书失败",
"message": "主机名不匹配的证书不可信"
}
}
},
"selfSigned": {
"confirm": {
"title": "",
"message": ""
"title": "信任自签名证书",
"message": "您确定要信任此自签名证书吗?"
},
"notification": {
"success": {
"title": "",
"message": ""
"title": "可信证书",
"message": "已添加证书到可信证书列表"
},
"error": {
"title": "",
"message": ""
"title": "信任证书失败",
"message": "向受信任证书列表添加证书失败"
}
}
},
"details": {
"title": "",
"description": "",
"title": "详情",
"description": "在决定信任证书信息之前,请检查该证书信息。",
"content": {
"action": "",
"title": ""
"action": "显示内容",
"title": "PEM 证书"
}
}
},
"request": {
"title": "",
"title": "错误请求",
"description": {
"connection": {
"hostUnreachable": "",
"networkUnreachable": "",
"refused": "",
"reset": ""
"hostUnreachable": "无法连接到服务器。这通常意味着主机离线或无法从您的网络访问。",
"networkUnreachable": "网络不可达。请检查网络连接或网络配置。",
"refused": "服务器拒绝连接。它可能没有运行或正在拒绝指定端口上的请求。",
"reset": "服务器意外关闭了连接。如果服务器不稳定或重新启动,就会发生这种情况。"
},
"dns": {
"notFound": "",
"timeout": "",
"noAnswer": ""
"notFound": "找不到服务器地址。请检查URL是否有拼写错误或无效的域名。",
"timeout": "DNS查找超时。这可能是暂时的问题,请稍后再试。",
"noAnswer": "DNS服务器没有返回有效的响应。域可能存在,但没有有效记录。"
},
"timeout": {
"aborted": "",
"timeout": ""
"aborted": "请求在完成之前被中止。这可能是由于用户操作或系统超时造成的。",
"timeout": "请求耗时太长。请检查您的网络或稍后再试。"
}
}
}
@@ -895,8 +895,8 @@
"message": "该路径可能不正确"
},
"tooManyRequests": {
"title": "",
"message": ""
"title": "指定时间内请求过多",
"message": "请求太多了。您可能会受到速率限制或被目标系统拒绝"
}
}
},
@@ -936,6 +936,10 @@
"realm": {
"label": "领域",
"newLabel": "新领域"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -1004,7 +1008,7 @@
"cancel": "取消",
"delete": "删除",
"discard": "Discard",
"close": "",
"close": "关闭",
"confirm": "确认",
"continue": "继续",
"previous": "上一步",
@@ -1220,7 +1224,7 @@
"label": "集成"
},
"title": {
"label": ""
"label": "标题"
},
"customCssClasses": {
"label": "自定义 CSS 类"
@@ -1758,7 +1762,7 @@
"label": "显示内存信息"
},
"showUptime": {
"label": ""
"label": "显示运行时间"
},
"fileSystem": {
"label": "显示文件系统信息"
@@ -1767,7 +1771,7 @@
"label": "默认标签"
},
"visibleClusterSections": {
"label": ""
"label": "可见集群部分"
},
"sectionIndicatorRequirement": {
"label": "部分指标要求"
@@ -1839,11 +1843,11 @@
}
},
"dockerContainers": {
"name": "",
"description": "",
"name": "Docker 状态",
"description": "您的容器状态 (这个小部件只能用管理员权限添加)",
"option": {},
"error": {
"internalServerError": ""
"internalServerError": "获取容器统计信息失败"
}
},
"common": {
@@ -1912,8 +1916,8 @@
"description": "显示媒体服务器上的当前流",
"option": {
"showOnlyPlaying": {
"label": "",
"description": ""
"label": "只显示当前正在播放",
"description": "禁用此功能对plex不起作用"
}
},
"items": {
@@ -1946,7 +1950,7 @@
"label": "显示标记为已完成的 Torrent 条目"
},
"showCompletedHttp": {
"label": ""
"label": "显示标记为已完成的杂项"
},
"activeTorrentThreshold": {
"label": "隐藏在此阈值下已完成的 Torrent (kiB/s)"
@@ -1961,8 +1965,8 @@
"label": "使用过滤器来计算比率"
},
"limitPerIntegration": {
"label": "",
"description": ""
"label": "限制每个集成的项目",
"description": "这将限制每个集成显示的项目数量,而不是全局项目"
}
},
"errors": {
@@ -2088,14 +2092,16 @@
"pending": "等待处理",
"processing": "处理中",
"partiallyAvailable": "部分",
"available": "可用"
"available": "可用",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "待处理",
"approved": "已批准",
"declined": "已拒绝",
"failed": "失败",
"completed": ""
"completed": "已完成"
},
"toBeDetermined": "待定"
},
@@ -2199,106 +2205,106 @@
}
},
"releases": {
"name": "",
"description": "",
"name": "发布",
"description": "显示特定版本正则表达式中当前版本的列表。",
"option": {
"newReleaseWithin": {
"label": "",
"description": ""
"label": "内部新版本",
"description": "使用示例:1w(1周),10M(10个月)。支持单位类型h(小时),d(天),w(周),M(月),y(年)。留空不突出显示新版本。"
},
"staleReleaseWithin": {
"label": "",
"description": ""
"label": "内部过期发布",
"description": "使用示例:1w(1周),10M(10个月)。支持单位类型h(小时),d(天),w(周),M(月),y(年)。留空不突出显示过时的版本。"
},
"showOnlyHighlighted": {
"label": "",
"description": ""
"label": "只显示高亮显示",
"description": "只显示新的或过时的版本。如上所述。"
},
"showDetails": {
"label": ""
"label": "展开详情"
},
"topReleases": {
"label": "",
"description": ""
"label": "热门发布",
"description": "要显示的最新版本的最大数量。零表示没有限制。"
},
"repositories": {
"label": "",
"label": "仓库",
"addRepository": {
"label": ""
"label": "添加仓库"
},
"importRepositories": {
"label": "",
"loading": "",
"noImagesFound": "",
"listFoundImages": "",
"listAlreadyImportedImages": "",
"allImagesAlreadyImported": "",
"onlyAdminCanImport": ""
"label": "从 Docker 导入",
"loading": "正在加载 docker 映像",
"noImagesFound": "没有找到 docker 映像",
"listFoundImages": "找到的映像列表",
"listAlreadyImportedImages": "已导入的映像列表",
"allImagesAlreadyImported": "所有映像已导入",
"onlyAdminCanImport": "只有管理员才能从 docker 导入"
},
"provider": {
"label": ""
"label": "提供者"
},
"identifier": {
"label": "",
"placeholder": ""
"label": "标识符",
"placeholder": "姓名或所有者名称"
},
"name": {
"label": ""
"label": "名称"
},
"versionFilter": {
"label": "",
"label": "版本过滤器",
"prefix": {
"label": ""
"label": "前缀"
},
"precision": {
"label": "",
"label": "精度",
"options": {
"none": ""
"none": "空"
}
},
"suffix": {
"label": ""
"label": "后缀"
},
"regex": {
"label": ""
"label": "正则表达式"
}
},
"edit": {
"label": ""
"label": "编辑"
},
"editForm": {
"title": "",
"title": "编辑仓库",
"cancel": {
"label": ""
"label": "取消"
},
"confirm": {
"label": ""
"label": "确认"
}
},
"importForm": {
"title": ""
"title": "从 Docker 导入"
},
"example": {
"label": ""
"label": "示例"
},
"invalid": ""
"invalid": "仓库定义无效,请检查值"
}
},
"not-found": "",
"pre-release": "",
"archived": "",
"forked": "",
"starsCount": "",
"forksCount": "",
"issuesCount": "",
"openProjectPage": "",
"openReleasePage": "",
"releaseDescription": "",
"created": "",
"not-found": "未找到",
"pre-release": "预发行",
"archived": "已归档",
"forked": "复刻成功",
"starsCount": "星",
"forksCount": "复刻",
"issuesCount": "打开问题",
"openProjectPage": "打开项目页面",
"openReleasePage": "打开发布页面",
"releaseDescription": "发布说明",
"created": "已创建",
"error": {
"label": "",
"label": "错误",
"options": {
"noMatchingVersion": ""
"noMatchingVersion": "没有找到匹配的版本"
}
}
},
@@ -2306,57 +2312,63 @@
"option": {},
"card": {
"vpn": {
"countConnected": ""
"countConnected": "{count} 已连接"
}
},
"error": {
"integrationsDisconnected": "",
"unknownContentOption": ""
"integrationsDisconnected": "没有可用的数据,所有集成已断开",
"unknownContentOption": "网络控制器摘要小部件的未知内容选项: "
},
"name": "",
"description": ""
"name": "网络控制器概述",
"description": "显示网络控制器摘要(如Unifi Controller)"
},
"networkControllerStatus": {
"card": {
"variants": {
"wired": {
"name": ""
"name": "有线"
},
"wifi": {
"name": ""
"name": "Wi-Fi"
}
},
"users": {
"label": ""
"label": "用户数"
},
"guests": {
"label": ""
"label": "游客"
}
},
"option": {
"content": {
"option": {
"wifi": {
"label": ""
"label": "Wi-Fi"
},
"wired": {
"label": ""
"label": "有线"
}
},
"label": ""
"label": "小部件内容"
}
},
"error": {
"integrationsDisconnected": "",
"unknownContentOption": ""
"integrationsDisconnected": "没有可用的数据,所有集成已断开",
"unknownContentOption": "网络状态小部件的未知内容选项: "
},
"name": "",
"description": ""
"name": "网络状态",
"description": "在网络上显示已连接的设备"
},
"networkController": {
"error": {
"internalServerError": ""
"internalServerError": "获取网络控制器概述失败"
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -2478,10 +2490,10 @@
},
"backgroundImageUrl": {
"label": "背景图片 URL",
"placeholder": "",
"placeholder": "开始输入以搜索本地映像",
"group": {
"your": "你的图像",
"other": ""
"your": "你的映像",
"other": "其他映像"
}
},
"backgroundImageAttachment": {
@@ -3122,8 +3134,11 @@
"networkController": {
"label": "网络控制器"
},
"dockerContainers": {
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": "Docker 容器"
}
}
},
@@ -3189,7 +3204,7 @@
"updated": "已更新 {when}",
"search": "搜索 {count} 容器",
"selected": "{totalCount} 容器的 {selectCount}",
"footer": ""
"footer": "总计 {count} 容器"
},
"field": {
"name": {
@@ -3209,10 +3224,10 @@
},
"stats": {
"cpu": {
"label": ""
"label": "CPU"
},
"memory": {
"label": ""
"label": "内存"
}
},
"containerImage": {
@@ -3223,7 +3238,7 @@
}
},
"action": {
"title": "",
"title": "操作",
"start": {
"label": "开始",
"notification": {
@@ -3668,7 +3683,7 @@
"certificates": {
"label": "证书",
"hostnames": {
"label": ""
"label": "主机名"
}
}
},
@@ -4069,25 +4084,25 @@
"certificate": {
"field": {
"hostname": {
"label": ""
"label": "主机名"
},
"subject": {
"label": ""
"label": "主题"
},
"issuer": {
"label": ""
"label": "发行者"
},
"validFrom": {
"label": ""
"label": "有效期自"
},
"validTo": {
"label": ""
"label": "有效期至"
},
"serialNumber": {
"label": ""
"label": "序号"
},
"fingerprint": {
"label": ""
"label": "指纹"
}
},
"page": {
@@ -4098,19 +4113,19 @@
"title": "还没有证书"
},
"invalid": {
"title": "",
"description": ""
"title": "无效证书",
"description": "解析证书失败"
},
"expires": "到期时间 {when}",
"toHostnames": ""
"toHostnames": "信任的主机名"
},
"hostnames": {
"title": "",
"description": "",
"title": "信任的证书主机名",
"description": "某些证书不允许指定域名使用 Homarr 请求他们, 由于这个原因,所有信任的主机名及其证书缩略图都被用来绕过这些限制。",
"noResults": {
"title": ""
"title": "还没有主机名"
},
"toCertificates": ""
"toCertificates": "证书"
}
},
"action": {
@@ -4142,16 +4157,16 @@
}
},
"removeHostname": {
"label": "",
"confirm": "",
"label": "删除受信任的主机名",
"confirm": "您确定要删除此受信任的主机名吗?这可能会导致一些集成停止工作。",
"notification": {
"success": {
"title": "",
"message": ""
"title": "主机名已删除",
"message": "主机名已成功删除"
},
"error": {
"title": "",
"message": ""
"title": "主机名未删除",
"message": "无法删除主机名"
}
}
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Částečně dostupné",
"available": "K dispozici"
"available": "K dispozici",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Realm",
"newLabel": "Nyt realm"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "Afventende",
"processing": "Behandler",
"partiallyAvailable": "Delvis",
"available": "Tilgængelig"
"available": "Tilgængelig",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "Afventende",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "Kunne ikke hente Netværkskontroloversigt"
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": "Netværkskontroller"
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": "Docker containers"
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Bereich",
"newLabel": "Neuer Bereich"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "Ausstehend",
"processing": "In Bearbeitung",
"partiallyAvailable": "Teilweise",
"available": "Verfügbar"
"available": "Verfügbar",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "Ausstehend",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+36 -21
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Bereich",
"newLabel": "Neuer Bereich"
},
"topic": {
"label": "Thema",
"newLabel": "Neues Thema erstellen"
}
}
},
@@ -1758,7 +1762,7 @@
"label": "Speicher-Info anzeigen"
},
"showUptime": {
"label": ""
"label": "Laufzeit anzeigen"
},
"fileSystem": {
"label": "Dateisystem Info anzeigen"
@@ -1767,7 +1771,7 @@
"label": "Standard Tab"
},
"visibleClusterSections": {
"label": ""
"label": "Sichtbare Cluster-Abschnitte"
},
"sectionIndicatorRequirement": {
"label": "Anforderung der Sektionsindikatoren"
@@ -1839,11 +1843,11 @@
}
},
"dockerContainers": {
"name": "",
"description": "",
"name": "Docker Statistiken",
"description": "Statistiken Ihrer Container (Dieses Widget kann nur mit Administratorrechten hinzugefügt werden)",
"option": {},
"error": {
"internalServerError": ""
"internalServerError": "Fehler beim Abrufen der Container Statistiken"
}
},
"common": {
@@ -1961,8 +1965,8 @@
"label": "Filter zur Berechnung des Verhältnisses verwenden"
},
"limitPerIntegration": {
"label": "",
"description": ""
"label": "Elemente pro Integration begrenzen",
"description": "Dies begrenzt die Anzahl der Elemente pro Integration, jedoch nicht global"
}
},
"errors": {
@@ -2088,7 +2092,9 @@
"pending": "Ausstehend",
"processing": "In Bearbeitung",
"partiallyAvailable": "Teilweise",
"available": "Verfügbar"
"available": "Verfügbar",
"blacklisted": "Gesperrt",
"deleted": "Gelöscht"
},
"status": {
"pending": "Ausstehend",
@@ -2227,13 +2233,13 @@
"label": "Repository hinzufügen"
},
"importRepositories": {
"label": "",
"loading": "",
"noImagesFound": "",
"listFoundImages": "",
"listAlreadyImportedImages": "",
"allImagesAlreadyImported": "",
"onlyAdminCanImport": ""
"label": "Von Docker importieren",
"loading": "Lade Docker Images",
"noImagesFound": "Keine Docker Images gefunden",
"listFoundImages": "Liste der gefundenen Images",
"listAlreadyImportedImages": "Liste der bereits importierten Images",
"allImagesAlreadyImported": "Alle Images wurden bereits importiert",
"onlyAdminCanImport": "Nur Administratoren können vom Docker importieren"
},
"provider": {
"label": "Anbieter"
@@ -2276,7 +2282,7 @@
}
},
"importForm": {
"title": ""
"title": "Von Docker importieren"
},
"example": {
"label": "Beispiel"
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "Fehler beim Abrufen der Netzwerk Controller Zusammenfassung"
}
},
"notifications": {
"name": "Benachrichtigungen",
"description": "Benachrichtigungshistorie von einer Integration anzeigen",
"noItems": "Keine Benachrichtigungen zum Anzeigen.",
"option": {}
}
},
"widgetPreview": {
@@ -3122,8 +3134,11 @@
"networkController": {
"label": "Netzwerk Controller"
},
"refreshNotifications": {
"label": "Benachrichtigungs Updater"
},
"dockerContainers": {
"label": ""
"label": "Docker Container"
}
}
},
@@ -3189,7 +3204,7 @@
"updated": "Aktualisiert {when}",
"search": "{count} Container durchsuchen",
"selected": "{selectCount} von {totalCount} ausgewählten Containern",
"footer": ""
"footer": "Insgesamt {count} Container"
},
"field": {
"name": {
@@ -3209,10 +3224,10 @@
},
"stats": {
"cpu": {
"label": ""
"label": "CPU"
},
"memory": {
"label": ""
"label": "Speicher"
}
},
"containerImage": {
@@ -3223,7 +3238,7 @@
}
},
"action": {
"title": "",
"title": "Aktionen",
"start": {
"label": "Starten",
"notification": {
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Μερικώς",
"available": "Διαθέσιμο"
"available": "Διαθέσιμο",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Realm",
"newLabel": "New realm"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "",
"available": ""
"available": "",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Realm",
"newLabel": "New realm"
},
"topic": {
"label": "Topic",
"newLabel": "New topic"
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "Pending",
"processing": "Processing",
"partiallyAvailable": "Partial",
"available": "Available"
"available": "Available",
"blacklisted": "Blacklisted",
"deleted": "Deleted"
},
"status": {
"pending": "Pending",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "Failed to fetch Network Controller Summary"
}
},
"notifications": {
"name": "Notifications",
"description": "Display notification history from an integration",
"noItems": "No notifications to display.",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": "Network Controller"
},
"refreshNotifications": {
"label": "Notification Updater"
},
"dockerContainers": {
"label": "Docker containers"
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Parcial",
"available": "Disponible"
"available": "Disponible",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "",
"available": ""
"available": "",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Domaine",
"newLabel": "Nouveau domaine"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "En attente",
"processing": "Traitement en cours",
"partiallyAvailable": "Partiel",
"available": "Disponible"
"available": "Disponible",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "En attente",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+24 -9
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "תחום",
"newLabel": "תחום חדש"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "בהמתנה",
"processing": "מעבד",
"partiallyAvailable": "חלקי",
"available": "זמין"
"available": "זמין",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "ממתין",
@@ -2227,13 +2233,13 @@
"label": "הוסף מאגר"
},
"importRepositories": {
"label": "",
"loading": "",
"noImagesFound": "",
"listFoundImages": "",
"listAlreadyImportedImages": "",
"allImagesAlreadyImported": "",
"onlyAdminCanImport": ""
"label": "ייבוא מדוקר",
"loading": "טוען תמונות דוקר",
"noImagesFound": "לא נמצאו תמונות דוקר",
"listFoundImages": "רשימת התמונות שנמצאו",
"listAlreadyImportedImages": "רשימת התמונות שכבר יובאו",
"allImagesAlreadyImported": "כל התמונות כבר יובאו",
"onlyAdminCanImport": "רק מנהלים יכולים לייבא מדוקר"
},
"provider": {
"label": "ספק"
@@ -2276,7 +2282,7 @@
}
},
"importForm": {
"title": ""
"title": "ייבוא מדוקר"
},
"example": {
"label": "דוגמא"
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "אחזור תקציר בקר הרשת נכשל"
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": "בקר רשת"
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": "מכולות דוקר"
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "",
"available": ""
"available": "",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "Feldolgozás",
"partiallyAvailable": "Részleges",
"available": "Elérhető"
"available": "Elérhető",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Parziale",
"available": "Disponibile"
"available": "Disponibile",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
File diff suppressed because it is too large. Load diff
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "",
"available": ""
"available": "",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Dalis",
"available": "Galima"
"available": "Galima",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Daļējs",
"available": "Pieejams"
"available": "Pieejams",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Realm",
"newLabel": "Nieuwe Realm"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "In afwachting",
"processing": "Verwerken",
"partiallyAvailable": "Gedeeltelijk",
"available": "Beschikbaar"
"available": "Beschikbaar",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "In afwachting",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "Netwerkcontroller samenvatting ophalen mislukt"
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": "Netwerkcontroller"
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Område",
"newLabel": "Nytt område"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "Pågår",
"processing": "Prosesserer",
"partiallyAvailable": "Delvis",
"available": "Tilgjengelig"
"available": "Tilgjengelig",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "Venter",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "Oczekujący",
"processing": "Przetwarzanie",
"partiallyAvailable": "",
"available": "Dostępne"
"available": "Dostępne",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Parcial",
"available": "Disponível"
"available": "Disponível",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Parțial",
"available": "Disponibil"
"available": "Disponibil",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Область",
"newLabel": "Новая область"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "В ожидании",
"processing": "Обработка",
"partiallyAvailable": "Частично доступно",
"available": "Доступно"
"available": "Доступно",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "В ожидании",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
File diff suppressed because it is too large. Load diff
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "",
"available": ""
"available": "",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Delmängd",
"available": "Tillgänglig"
"available": "Tillgänglig",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+24 -9
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "Erişim Alanı",
"newLabel": "Yeni erişim alanı"
},
"topic": {
"label": "Konu",
"newLabel": "Yeni konu"
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "Bekleyen",
"processing": "İşlemde",
"partiallyAvailable": "Kısmi",
"available": "Mevcut"
"available": "Mevcut",
"blacklisted": "Engellenenler",
"deleted": "Silinen"
},
"status": {
"pending": "Bekleyen",
@@ -2227,13 +2233,13 @@
"label": "Depo Ekle"
},
"importRepositories": {
"label": "",
"loading": "",
"noImagesFound": "",
"listFoundImages": "",
"listAlreadyImportedImages": "",
"allImagesAlreadyImported": "",
"onlyAdminCanImport": ""
"label": "Docker'dan içe aktar",
"loading": "Docker imajları yükleniyor",
"noImagesFound": "Hiç docker imajı bulunamadı",
"listFoundImages": "Bulunan imajların listesi",
"listAlreadyImportedImages": "Daha önce içe aktarılan imajların listesi",
"allImagesAlreadyImported": "Tüm imajlar daha önce içe aktarıldı",
"onlyAdminCanImport": "Sadece yöneticiler docker'dan içe aktarabilir"
},
"provider": {
"label": "Sağlayıcı"
@@ -2276,7 +2282,7 @@
}
},
"importForm": {
"title": ""
"title": "Docker'dan içe aktar"
},
"example": {
"label": "Örnek"
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "Ağ Denetleyicisi Özeti alınamadı"
}
},
"notifications": {
"name": "Bildirimler",
"description": "Entegrasyonların bildirim geçmişini görüntüle",
"noItems": "Görüntülenecek bildirim yok.",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": "Ağ Denetleyicisi"
},
"refreshNotifications": {
"label": "Bildirim Güncelleyici"
},
"dockerContainers": {
"label": "Docker konteynerleri"
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "В очікуванні",
"processing": "В обробці",
"partiallyAvailable": "Частково доступно",
"available": "Доступно"
"available": "Доступно",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "",
"newLabel": ""
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "",
"processing": "",
"partiallyAvailable": "Một phần",
"available": "Khả dụng"
"available": "Khả dụng",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": ""
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": ""
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+16 -1
View File
@@ -936,6 +936,10 @@
"realm": {
"label": "領域",
"newLabel": "新領域"
},
"topic": {
"label": "",
"newLabel": ""
}
}
},
@@ -2088,7 +2092,9 @@
"pending": "等待處理中",
"processing": "處理中",
"partiallyAvailable": "部分",
"available": "待定"
"available": "待定",
"blacklisted": "",
"deleted": ""
},
"status": {
"pending": "待處理",
@@ -2357,6 +2363,12 @@
"error": {
"internalServerError": "無法獲取網路控制總覽"
}
},
"notifications": {
"name": "",
"description": "",
"noItems": "",
"option": {}
}
},
"widgetPreview": {
@@ -3122,6 +3134,9 @@
"networkController": {
"label": "網路控制"
},
"refreshNotifications": {
"label": ""
},
"dockerContainers": {
"label": ""
}
+5 -5
View File
@@ -29,12 +29,12 @@
"@homarr/log": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@mantine/core": "^8.0.2",
"@mantine/dates": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/core": "^8.1.2",
"@mantine/dates": "^8.1.2",
"@mantine/hooks": "^8.1.2",
"@tabler/icons-react": "^3.34.0",
"mantine-react-table": "2.0.0-beta.9",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0"
},
@@ -43,7 +43,7 @@
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/css-modules": "^1.0.5",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+2 -2
View File
@@ -24,14 +24,14 @@
"dependencies": {
"@homarr/definitions": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0",
"zod": "^3.25.56",
"zod": "^3.25.67",
"zod-form-data": "^2.0.7"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
+22 -22
View File
@@ -48,42 +48,42 @@
"@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@mantine/charts": "^8.0.2",
"@mantine/core": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/charts": "^8.1.2",
"@mantine/core": "^8.1.2",
"@mantine/hooks": "^8.1.2",
"@tabler/icons-react": "^3.34.0",
"@tiptap/extension-color": "2.14.0",
"@tiptap/extension-highlight": "2.14.0",
"@tiptap/extension-image": "2.14.0",
"@tiptap/extension-link": "^2.14.0",
"@tiptap/extension-table": "2.14.0",
"@tiptap/extension-table-cell": "2.14.0",
"@tiptap/extension-table-header": "2.14.0",
"@tiptap/extension-table-row": "2.14.0",
"@tiptap/extension-task-item": "2.14.0",
"@tiptap/extension-task-list": "2.14.0",
"@tiptap/extension-text-align": "2.14.0",
"@tiptap/extension-text-style": "2.14.0",
"@tiptap/extension-underline": "2.14.0",
"@tiptap/react": "^2.14.0",
"@tiptap/starter-kit": "^2.14.0",
"@tiptap/extension-color": "2.23.0",
"@tiptap/extension-highlight": "2.23.0",
"@tiptap/extension-image": "2.23.0",
"@tiptap/extension-link": "^2.23.0",
"@tiptap/extension-table": "2.23.0",
"@tiptap/extension-table-cell": "2.23.0",
"@tiptap/extension-table-header": "2.23.0",
"@tiptap/extension-table-row": "2.23.0",
"@tiptap/extension-task-item": "2.23.0",
"@tiptap/extension-task-list": "2.23.0",
"@tiptap/extension-text-align": "2.23.0",
"@tiptap/extension-text-style": "2.23.0",
"@tiptap/extension-underline": "2.23.0",
"@tiptap/react": "^2.23.0",
"@tiptap/starter-kit": "^2.23.0",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"mantine-react-table": "2.0.0-beta.9",
"next": "15.3.3",
"next": "15.3.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-markdown": "^10.1.0",
"recharts": "^2.15.3",
"recharts": "^2.15.4",
"video.js": "^8.23.3",
"zod": "^3.25.56"
"zod": "^3.25.67"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/video.js": "^7.3.58",
"eslint": "^9.28.0",
"eslint": "^9.29.0",
"typescript": "^5.8.3"
}
}
Loaded 100 of 111 files, more files were not shown because too many files have changed in this diff. Show more