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
9377e4b2f8
Merge remote-tracking branch 'origin/dev' into feat/add-integration-from-dashboard
...
# Conflicts:
# packages/db/migrations/seed.ts
2026-05-25 11:36:33 +02:00
homarr-crowdin[bot]
ff974bf343
chore(lang): updated translations from crowdin
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-05-24 02:04:49 +00:00
Meier Lukas
a93f03eae4
Merge branch 'main' into dev
2026-05-22 22:46:15 +02:00
Thomas and Manuel
dade477b32
feat(seed): add demo mode with pre-seeded user ( #5739 )
...
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
2026-05-21 16:08:46 +02:00
Meier Lukas
7cd30b640c
fix(docker): improve icon matching ( #5693 )
...
* fix(docker): improve icon matching
* fix: unused import
2026-05-18 21:45:33 +02:00
Austin
e9142c0dbc
fix(downloads-widget): increase name column default width ratio
2026-05-18 21:44:47 +02:00
StrandedTurtle and Meier Lukas
7a1272146c
fix(tracearr): support absolute image urls ( #5654 )
...
* Update base URL handling for tracearr integration
* fix: remove unnecessary prefix from bcrypt hashing
* refactor: add is-absolute-url check
* test: add unit tests
---------
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-18 21:39:01 +02:00
Thomas Camlong
e714c96172
chore: fix formatting
2026-05-18 15:49:10 +02:00
Thomas Camlong
5bc88eb4ee
fix: MissingSecretError type mismatch in onboard createIntegration mutation
2026-05-18 15:19:11 +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
Meier Lukas
4aa43ae27a
Merge branch 'dev' into beta [skip-ci]
2026-05-15 19:25:38 +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
c3523adfd5
feat(onboarding): add skip button to integration configuration step
...
Allow skipping individual integrations during onboarding without
filling in the form. Adds an optional onSkip prop to NewIntegrationForm
that advances to the next integration or finishes setup.
2026-05-14 18:08:23 +02:00
Thomas Camlong
904bef50d8
fix(ui): use inline vars resolver instead of Modal.extend
...
Modal.extend() is not available at module evaluation time in the
Next.js/Turbopack ESM context, causing a runtime TypeError. Define
the vars resolver as a plain object in createTheme's components key.
2026-05-14 17:00:26 +02:00
Thomas Camlong
bef275804c
fix(api): refactor onboard-router widget placement and step advancement
...
- Extract placeWidgetAsync into a standalone function with a
PlaceWidgetContext parameter for clearer state management.
- Fix widget skip logic: use config?.skip instead of !config || config.skip
so integration-specific widgets without an explicit defaultWidgetConfigs
entry are still placed with default 2x2 sizes.
- Add createIntegration mutation for onboarding (no app linking or
search engine creation needed during init).
- Fix nextOnboardingStepAsync call: pass undefined instead of "start"
to advance naturally without resetting to the beginning.
- Add early return when no board is found in setupIntegrations.
2026-05-14 17:00:20 +02:00
Thomas Camlong
34500366b4
fix(ui): add custom xxl modal size to prevent overflow on small screens
...
Hardcoded size: 1200 could overflow on narrow viewports. Add a custom
"xxl" size (75rem) to the Mantine Modal theme via a vars resolver.
Mantine caps modal width at 100vw so it naturally adapts on mobile.
Use "xxl" in item-select, app-select, and integration-select modals.
2026-05-14 16:54:12 +02:00
Thomas Camlong
9c0e73922d
fix(i18n): add translation keys for integration grid categories and widget counts
...
Category labels and widget count badges in the integration grid were
hardcoded English strings. Add proper i18n keys under integration.grid
and integration.category so they can be translated.
2026-05-14 16:53:53 +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
homarr-crowdin[bot]
968338aa97
chore(lang): updated translations from crowdin ( #5685 )
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-05-10 10:38:59 +02:00
Meier Lukas
3a8abe4415
chore(docs): update sitemap
2026-05-08 23:48:31 +02:00
Meier Lukas
6feb37dfd4
Merge branch 'main' into next
2026-05-08 23:46:21 +02:00
Meier Lukas
756e8d1724
feat(qbittorrent): add api-key support ( #5677 )
2026-05-08 20:08:37 +02:00
Ashton Batty and Meier Lukas
56af6bcaf0
feat(docker): Podman compatibility, multi-socket support, per-host error isolation ( #5425 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 17:31:56 +02:00
036f6aa185
chore(deps): update dependency recharts to v3 ( #4302 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 15:02:52 +02:00
homarr-crowdin[bot] and Meier Lukas
12a1bd7e2e
chore(lang): updated translations from crowdin
...
* chore(lang): update translations from crowdin
* chore(lang): update translations from crowdin
---------
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 13:54:36 +02:00
44bd16d677
fix(calendar): keep working integrations when one fails ( #5629 )
...
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-07 22:02:21 +02:00
homarr-crowdin[bot] and Meier Lukas
a9ad991892
chore(lang): updated translations from crowdin ( #5623 )
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-07 21:04:10 +02:00
Meier Lukas
3183914a15
fix(apps): creation on the fly broken ( #5605 )
2026-05-07 20:59:12 +02:00
Meier Lukas
62be81ea60
fix(lang): portuguese is linked to brazilian portuguese on crowdin ( #5622 )
2026-05-07 20:54:11 +02:00
Thomas
6520dedf1c
Merge branch 'dev' into feat/add-integration-from-dashboard
2026-05-07 19:10:03 +02:00
Thomas and Meier Lukas
b5c316b825
feat(spotlight): rework !bang search UX ( #4813 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-07 18:38:40 +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
Meier Lukas
0937555d49
feat(entity-state): add data attributes for custom-css styling ( #5655 )
2026-05-07 16:54:57 +02:00
Meier Lukas
b07a4a0f3e
fix(update-checker): hide prereleases on non-prerelease versions ( #5645 )
2026-05-06 21:23:14 +02:00
Thomas
5a0ba98298
Merge branch 'dev' into feat/add-integration-from-dashboard
2026-05-04 12:40:58 +02:00
homarr-renovate[bot] and Meier Lukas
a183339063
chore(deps): update dependency eslint to v10 ( #5038 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-02 21:41:16 +02:00
homarr-crowdin[bot] and Meier Lukas
b6d23e7546
chore(lang): updated translations from crowdin
...
* chore(lang): update translations from crowdin
* chore(lang): update translations from crowdin
* chore(lang): update translations from crowdin
---------
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-02 01:32:16 +00:00
Meier Lukas
7561462594
Merge branch 'main' into next
2026-05-01 22:30:33 +02:00
Meier Lukas and Copilot
a1aa5505a3
perf(memory): combine 3 node processes into one ( #5600 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-05-01 16:35:11 +02:00
Meier Lukas
e8edc203b6
fix: migrate from node-cron to croner ( #5407 )
2026-05-01 16:21:38 +02:00
Meier Lukas
ed6680ba6a
perf(icons): updater takes 10 seconds to run with high cpu usage ( #5608 )
2026-05-01 16:21:22 +02:00
Thomas Camlong
b8b2097551
fix(onboarding): fix nextOnboardingStepAsync
2026-05-01 10:29:32 +02:00
Thomas Camlong
62d571621f
chore: format
...
fix(lint): remove empty fragment and redundant undefined argument
chore: format
2026-05-01 10:23:48 +02:00