Thomas
77f5d9bf9a
Merge branch 'dev' into feat/add-integration-from-dashboard
2026-05-29 20:52:15 +02:00
Thomas Camlong
1c9a63d9ef
fix: address CodeQL and code quality review comments
...
Replace polynomial trailing-slash regex with removeTrailingSlash helper
and remove unused ModalFormFooter import in quick-add-app modal.
2026-05-29 14:54:39 +02:00
Meier Lukas
650f761325
ci(format): fails to apply format due to conflict between --write and --check ( #5815 )
2026-05-29 11:07:48 +02:00
Thomas Camlong
7c0653672a
feat(init): apply base URL template to discovered apps
...
Discovered Docker apps now use the same buildAppUrl logic as
integrations when a base host is set, instead of using the raw
Docker socket URL (e.g. http://container:5432 ).
Extracts shared buildUrl helper and adds buildAppUrl that derives
a slug from the container name. Also passes publishedPort through
the DiscoveredApp type so host:port mode works correctly.
2026-05-28 12:21:03 +02:00
Thomas Camlong
bbb04b084f
fix(definitions): use HTTPS for subdomain URL template
...
Subdomain-based URLs (e.g. sonarr.example.com) are typically served
behind a reverse proxy with TLS. Update the template to generate
https:// URLs. Host:port mode remains http:// for local access.
2026-05-28 12:16:14 +02:00
Thomas Camlong
efc48e5097
feat(definitions): add apiKeySettingsPath for qBittorrent
...
Points to /#/settings/webui so the integration form can link directly
to the qBittorrent API key settings page.
2026-05-28 12:16:04 +02:00
Thomas
710187fee1
Merge branch 'dev' into feat/add-integration-from-dashboard
2026-05-27 17:31:10 +02:00
Thomas Camlong
51004f0857
revert changes
2026-05-27 16:23:44 +02:00
Thomas Camlong
18db344ed1
fix(security): replace regex with loop to prevent ReDoS
...
CodeQL flagged `/\/+$/` as polynomial-time on repeated slashes.
Use `while (endsWith("/"))` loop instead.
2026-05-27 16:20:19 +02:00
Thomas Camlong
a6566f74c9
fix: address PR review feedback
...
- Show error notification on setup failure instead of silent reset
- Fix toggleKind stale closure by using prop array directly
- Remove duplicate translations from en-gb.json (falls back to en.json)
- Align seed board columnCount to 12 (codebase default)
- Extract shared placeAllWidgetsAsync helper to @homarr/db/queries
- Remove redundant onboardingFormSchema; reuse formSchema for both paths
- Fix lint errors (optional chain, unused imports, unnecessary conditions)
2026-05-27 15:53:14 +02:00
Thomas Camlong
309ba0590d
feat(onboarding): enhance integration setup with Docker discovery, URL templating, and API key helpers
...
Add automatic Docker container discovery during onboarding to pre-select
and pre-fill integrations. Introduce base URL templating with subdomain/port
modes, API key settings path links, and a curated onboarding list that
hides niche integrations (GitHub, npm, Docker Hub, etc.). Prevent duplicate
widget seeding and remove the timetable widget from defaults.
2026-05-27 14:36:04 +02:00
605af19cd8
refactor: replace ESLint + Prettier with OXC (oxlint + oxfmt) ( #5741 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
Co-authored-by: Meierschlumpf <63781622+Meierschlumpf@users.noreply.github.com >
2026-05-27 09:37:44 +02:00
Thomas Camlong
1fcc149c91
feat(seed): add demo user seeding with pre-placed widgets on dashboard board
...
- seedBoardWidgetsAsync always places widgets (clock, weather, bookmarks,
integration-linked, app widgets) on the default board
- seedDemoUserAsync creates demo user + admin group, skips onboarding,
reuses the existing dashboard board instead of creating a duplicate
- Fix broken open-collective icon URL in defaultBookmarkApps
2026-05-25 12:42:55 +02:00
Thomas Camlong
545a10ab20
fix: remove timetable from defaultWidgetConfigs
2026-05-16 11:39:43 +02:00
Thomas
dd3cb3956d
Merge branch 'dev' into feat/add-integration-from-dashboard
2026-05-16 11:38:11 +02:00
Thomas Camlong
6364e4181b
fix(onboarding): add error recovery for setupIntegrations failure
...
If setupIntegrations rejects, fall back to the select phase instead
of leaving the user stuck on an infinite loading screen. Also fix
OpenCollective bookmark icon to use dashboard-icons CDN SVG for
consistency with other bookmark icons.
2026-05-14 18:20:19 +02:00
Thomas Camlong
c8ff718778
fix(definitions): skip timetable widget from default onboarding dashboard
...
The SBB timetable widget is too niche to include by default during
onboarding. Add it back to defaultWidgetConfigs with skip: true so
it won't be placed automatically.
2026-05-14 18:16:29 +02:00
Thomas Camlong
8fc758721c
fix(definitions): correct featured integrations and default configs
...
- Remove unused timetable skip entry from defaultWidgetConfigs
- Use "seerr" instead of "jellyseerr" in featuredIntegrations
- Add "Support Homarr" OpenCollective link to defaultBookmarkApps
2026-05-14 16:53:47 +02:00
Meier Lukas
ab867a9e50
chore: remove temporary ts-expect-error
2026-05-10 10:40:29 +02:00
Meier Lukas
3a8abe4415
chore(docs): update sitemap
2026-05-08 23:48:31 +02:00
Meier Lukas
756e8d1724
feat(qbittorrent): add api-key support ( #5677 )
2026-05-08 20:08:37 +02:00
Thomas
6520dedf1c
Merge branch 'dev' into feat/add-integration-from-dashboard
2026-05-07 19:10:03 +02:00
Kyle and Thomas
831b6221fd
feat: add auto/system appearance mode + fix dark mode system resources charts ( #5492 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-05-07 16:28:37 +00:00
43cc68bdd4
feat: add Umami Analytics integration and widget ( #5362 )
...
Co-authored-by: Josh G <febrile42@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-05-07 17:50:58 +02:00
Thomas Camlong
9e3b4955b9
feat(api): add integrations onboarding step with dashboard population
...
Add "integrations" step to onboarding flow between settings and finish.
Add setupIntegrations mutation that reads existing integrations from DB,
populates the dashboard with matching widgets (respecting config-driven
sizes/options/skip), places app widgets for each app, and creates a
bookmarks widget with seeded default apps.
2026-05-01 09:58:41 +02:00
Thomas Camlong
bba80add60
feat(definitions): add widget-integration map and default configs
...
Add static mapping of widget kinds to integration kinds for server-side
use without importing @homarr/widgets. Includes default widget configs
(size, options, skip), featured integrations list for grid sorting,
and default bookmark apps for onboarding dashboard population.
2026-05-01 09:58:28 +02:00
Meier Lukas
72d636c0f0
refactor(deps): migrate to pnpm catalog ( #5464 )
2026-04-13 22:45:24 +02:00
homarr-renovate[bot]
652ed1a5ed
fix(deps): update dependency fast-xml-parser to ^5.5.11 ( #5500 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-04-13 14:58:44 +00:00
Meier Lukas
26c2fa555b
chore: update documentation sitemap
2026-04-10 23:33:03 +02:00
7879b31630
feat: Anchor integration and Anchor Note widget ( #5040 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-04-10 20:43:43 +02:00
Kyle and Meier Lukas
22d599c0cf
feat: speedtest tracker integration ( #5363 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-04-10 19:04:42 +02:00
homarr-renovate[bot]
a7b195d2cb
fix(deps): update dependency fast-xml-parser to ^5.5.10 ( #5439 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-04-08 11:04:39 +00:00
homarr-update-contributors[bot]
270fce6a0e
chore: update integrations list readme ( #5404 )
...
Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com>
2026-04-04 09:46:50 +00:00
Meier Lukas
ddf87d278e
chore: remove temporary ts-expect-error for search-ch documentation link
2026-04-04 11:41:25 +02:00
Meier Lukas
abb2dfc92a
feat(integrations): add search.ch integration with timetable widget ( #5180 )
2026-04-03 20:23:15 +02:00
homarr-renovate[bot]
a9582f04ed
fix(deps): update dependency zod to ^4.3.6 ( #5376 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-30 21:50:50 +00:00
homarr-renovate[bot] and Meier Lukas
2b4c83dcca
fix(deps): update dependency zod to ^4.3.5 - abandoned ( #4803 )
...
* fix(deps): update dependency zod to ^4.3.5
* fix: omit can not be used with refine
* fix: convert intersection to object due to trpc-openapi issue
* fix: remove omit after refine
---------
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-03-30 23:11:14 +02:00
homarr-renovate[bot]
189806b5a2
fix(deps): update dependency fast-xml-parser to ^5.5.9 ( #5359 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-29 07:12:11 +00:00
homarr-renovate[bot]
798293813c
fix(deps): update dependency fast-xml-parser to ^5.5.8 ( #5324 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-27 19:52:59 +00:00
f88bf9582e
feat: add nextcloud notification provider ( #5343 )
...
* feat: add Nextcloud notification provider
fix: resolve hydration error in add-board modal
* Update packages/integrations/src/nextcloud/nextcloud.integration.ts
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
* Update nextcloud.integration.ts
* defined notificationSchema outside of class
---------
Co-authored-by: Lorinc936 <lorinc1231@gmail.com >
Co-authored-by: Lorinc936 <116025544+Lorinc936@users.noreply.github.com >
2026-03-27 18:51:43 +01:00
homarr-renovate[bot]
2336f9ee5e
fix(deps): update dependency fast-xml-parser to ^5.5.7 ( #5315 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-24 18:04:14 +00:00
homarr-renovate[bot]
991044ebd7
fix(deps): update dependency fast-xml-parser to ^5.5.6 ( #5297 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-22 16:42:40 +00:00
homarr-renovate[bot]
2423ecdce5
fix(deps): update dependency fast-xml-parser to ^5.5.5 ( #5270 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-19 15:01:24 +00:00
homarr-renovate[bot]
d1d8659f95
fix(deps): update dependency fast-xml-parser to ^5.5.3 ( #5251 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-16 17:09:31 +00:00
homarr-renovate[bot]
91a9b6bec9
fix(deps): update dependency fast-xml-parser to ^5.5.1 ( #5246 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-15 21:37:58 +00:00
Meier Lukas
7e8723ce57
chore(docs): remove temporary ts-expect-error for documentation-url
2026-03-14 13:53:07 +01:00
StrandedTurtle
f68600150a
feat: Tracearr integration ( #5060 )
2026-03-13 19:19:43 +01:00
homarr-renovate[bot]
a9085399c0
chore(deps): update dependency eslint to ^9.39.4 ( #5218 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-12 07:57:01 +00:00
homarr-renovate[bot]
5159d9f0e7
fix(deps): update dependency fast-xml-parser to ^5.4.2 ( #5190 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-03-08 17:40:22 +00:00
Manuel
cdd90b8aa0
feat: add immich integration and widget ( #5165 )
...
* feat: add immich integration and widget
* feat: use sdk
2026-03-07 09:39:31 +01:00