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
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 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
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
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-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
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
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
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
Meier Lukas
340399597b
chore(docs): update sitemap
2026-03-06 23:30:00 +01:00
homarr-update-contributors[bot] and Meier Lukas
8f86944014
chore: update integrations list readme ( #5162 )
...
Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-03-03 22:41:25 +01:00
Manuel and Meier Lukas
0e29a2fce1
feat: add seerr integration ( #5139 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-03-03 19:53:50 +01:00
homarr-releases[bot] and Meier Lukas
3322e82aab
chore: update bug report template ( #5136 )
...
* chore: update bug report template
* fix: ci issues
* chore: update docs sitemap
---------
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-02-27 21:21:49 +01:00
Manuel and Meier Lukas
d999f37975
feat: add slskd integration ( #5088 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-02-27 17:04:27 +01:00
Manuel and Meier Lukas
91846bc000
feat: add glances integration ( #5102 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-02-27 16:57:29 +01:00
Rhiz3K and Meier Lukas
81dac58005
feat(integrations): add Coolify integration and widget ( #4789 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-01-23 19:09:53 +01:00
62caa71a48
feat(widgets): add disks widget ( #4445 )
...
Co-authored-by: ajnart <49837342+ajnart@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-01-23 16:23:42 +01:00
Meier Lukas
b4ac3fc346
chore: update docs sitemap
2026-01-02 22:46:00 +01:00
Manuel and Meier Lukas
9b0dd6d6ce
feat: unraid integration ( #4439 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-01-02 19:54:47 +01:00
Meier Lukas
a91955a35b
chore(docs): update sitemap
2025-12-03 11:31:46 +01:00
Meier Lukas
c89e35e13c
feat(pi-hole): support no-auth ( #4480 )
2025-11-18 21:05:00 +01:00
Meier Lukas
f82f343631
feat(about): add hotkeys list ( #4165 )
2025-10-02 19:54:30 +02:00
Meier Lukas
0a908de1e7
feat(calendar): add homeassistant support ( #4152 )
2025-09-26 17:34:33 +02:00
Meier Lukas
3aea77a64f
chore(docs): update sitemap
2025-09-25 21:08:37 +02:00
Nicolas Newman and Meier Lukas
fedbff3fd1
feat(integrations): add ICal ( #3980 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2025-09-17 18:57:50 +02:00
Meier Lukas
b7d7767343
chore(docs): update sitemap
2025-09-13 01:11:55 +02:00
Manuel and Meier Lukas
dc08bacebf
feat(integrations): add truenas ( #3745 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2025-09-12 19:18:20 +02:00