Commit Graph
395 Commits
Author SHA1 Message Date
Thomas Camlong bfa2295a7c refactor(ui): extract shared integration grid logic and deduplicate
Both IntegrationMultiSelectGrid and IntegrationSelectGrid had
duplicated logic for building widget-by-integration maps, category
labels, sorting, and filtering. Extract shared code into
integration-grid-shared.ts using objectEntries and IntegrationKind
typing. Use i18n keys for category badges and widget counts instead
of hardcoded strings. Remove useEffect for onSelectionChange in
multi-select grid — call it directly in the toggle callback.
2026-05-14 16:54:02 +02:00
Thomas 6520dedf1c Merge branch 'dev' into feat/add-integration-from-dashboard 2026-05-07 19:10:03 +02:00
ThomasandMeier 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
KyleandThomas 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
Thomas Camlong 62d571621f chore: format
fix(lint): remove empty fragment and redundant undefined argument

chore: format
2026-05-01 10:23:48 +02:00
Thomas Camlong e0c2978f52 fix: resolve CI failures from integrations onboarding step
- Fix TypeScript error: InitIntegrations returning null by transitioning
  to done phase instead
- Fix TypeScript error: Object.fromEntries cast in integration grids by
  typing the array elements
- Update E2E onboarding tests to process the new integrations step
  (skip for now) and increase finish assertion timeout for async mutation
2026-05-01 10:12:14 +02:00
Thomas Camlong 1c6782a102 feat(integrations): add grid picker page and dashboard integration action
Refactor integration creation page to show a grid picker before the
form. Add "Add integration" action to dashboard header menu. Convert
app select modal to a two-step stepper. Standardize modal widths to
1200 for item, integration, and app select modals.
2026-05-01 09:59:01 +02:00
Thomas Camlong 7985ff953a feat(onboarding): add integration configuration stepper
Add 3-phase integration setup to onboarding: multi-select grid,
per-integration configuration with NewIntegrationForm stepper, and
finishing phase that populates the dashboard and shows final actions.
Merge finish step actions into the integrations step. Add translation
keys for configure phase.
2026-05-01 09:58:54 +02:00
Thomas Camlong e3fb8572cd feat(ui): add reusable integration select grid and modal components
Create IntegrationSelectGrid (single-select) and
IntegrationMultiSelectGrid (multi-select) components with search,
category badges, widget count tooltips, and featured integration
sorting. Use SimpleGrid to prevent horizontal overflow. Add stepper
modal for creating integrations from the dashboard.
2026-05-01 09:58:47 +02:00
Meier LukasandCopilot ce8e330c82 fix(openapi): openapi document empty (#5579)
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 23:29:42 +02:00
Meier Lukas 3d202d409f feat(about): add opencollective contributors (#5481) 2026-04-27 22:35:42 +02:00
Meier Lukas 72d636c0f0 refactor(deps): migrate to pnpm catalog (#5464) 2026-04-13 22:45:24 +02:00
Meier Lukas c48588c6a7 fix(about): add missing dependencies (#5480) 2026-04-13 16:51:38 +02:00
Meier Lukas 6a200c39af fix(boards): unable to click on links at settings page (#5230) 2026-03-31 19:08:02 +02:00
Matt Van HornandMatt Van Horn 1639da5779 fix: handle null ports in Docker container table (#5313)
When Docker API returns `null` for container ports (instead of `[]`),
the Docker management page crashes. Added optional chaining on
`ports?.length` to handle this case.

Fixes #5311

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
2026-03-27 20:04:03 +01:00
Manuel 4f2b8217f8 fix: warnings in code 2026-03-27 18:12:27 +01:00
Manuel b3e9b3351b Merge commit from fork 2026-03-27 17:50:26 +01:00
Meier Lukas dabe96bd5e feat(boards): show supported integrations in widget selection (#5187)
* feat(boards): show supported integrations in widget selection

* fix: place supported integrations directly above add button
2026-03-08 19:05:23 +01:00
homarr-releases[bot]andMeier 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
Meier Lukas 91fc5a5c74 Merge commit from fork
* fix(security): restrict access to integrations to authenticated users

* chore: github is broken
2026-02-27 19:24:24 +01:00
Meier Lukas 8c4be2fbe8 fix(analytics): restrict publishing to every week (#5028) 2026-02-20 17:44:02 +01:00
Meier Lukas 60fcb71bd2 fix(sections): dynamic sections vanish when adding category (#5046) 2026-02-13 08:05:15 +01:00
ajnart 10848db595 feat(analytics): consolidate server analytics into single comprehensive Umami event (#4938)
* feat(analytics): consolidate server analytics into single Umami event

- Replace multiple separate events with single 'server-analytics' event
- Add comprehensive metrics: Homarr version, database type, Docker/K8s status
- Add auth providers status (credentials, OIDC, LDAP)
- Add counts for users, boards, groups, apps, widgets, sections, integrations
- Add counts for search engines, icon repos, icons, API keys, invites, media
- Add counts for layouts, item layouts, section layouts, cron job configs
- Include per-integration-kind breakdown (integration_sonarr, etc.)
- Add required dependencies: @homarr/auth, @homarr/common, @homarr/docker

* refactor(ui): simplify analytics settings to single toggle

- Remove individual toggles for widget/integration/user data
- Keep only the main 'Enable analytics' toggle
- All data is now collected when analytics are enabled
- Update both init settings and manage settings pages

* docs(i18n): update analytics description with collected data details

- Explain all data points collected when analytics are enabled
- List: version, DB type, Docker/K8s, auth methods, counts
- Clarify that no personal info, URLs, or names are collected

* chore(deps): update pnpm-lock.yaml for analytics package dependencies
2026-02-05 09:54:41 +01:00
homarr-renovate[bot]andMeier Lukas 41b02b63d9 fix(deps): update dependency react-error-boundary to ^6.1.0 (#4884)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2026-01-23 16:14:44 +01:00
a2a34124ae feat(users): add libravatar / gravatar support (#4277)
Co-authored-by: HeapReaper <kelivn@heapreaper.nl>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2026-01-09 13:10:52 +01:00
Matti AirasandClaude Opus 4.5 0dc61a88b8 feat(auth): extend API key authentication to tRPC endpoints (#4732)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 18:43:17 +01:00
homarr-renovate[bot]andMeier Lukas 35e0198b5d fix(deps): update dependency @tabler/icons-react to ^3.36.0 (#4707)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2026-01-03 21:49:56 +01:00
Derek Mäekask f04f53759b fix: add orphaned status for containers with invalid stats (#4441)
- Add 'orphaned' container state to handle containers with null/undefined cpu_stats.online_cpus
- Display orphaned containers with gray badge in UI
- Prevent 'Cannot read properties of undefined (reading online_cpus)' error
- Add translations for 'orphaned' status in all supported languages
- Containers with invalid stats are now marked as orphaned instead of causing errors
2025-12-28 14:13:12 +01:00
Meier Lukas a0a11e3570 fix(boards): selection menu not shown to users without change access (#4689) 2025-12-19 16:36:45 +01:00
Meier Lukas 2b971b9392 refactor(certificates): move to core package (#4686) 2025-12-19 09:49:12 +01:00
Meier Lukas d348abfe4a refactor(logs): move to core package (#4586) 2025-12-16 23:37:44 +01:00
Meier Lukas 1dd9694719 fix: format issues 2025-12-09 16:34:54 +01:00
Copilotandajnart 681aee05f0 fix: add autocomplete and id attributes for password manager compatibility (#4602)
Co-authored-by: ajnart <49837342+ajnart@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-12-09 15:59:33 +01:00
homarr-renovate[bot]andMeier Lukas d88c6027fe fix(deps): update dependency typescript-eslint to ^8.48.1 (#4438)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2025-12-08 16:52:25 +01:00
Manuel aaa23f3732 Merge commit from fork
* fix: sanitize user-media svg api endpoint using isomorphic dompurify

* fix: add iframe sandbox to prevent priviledge escalation
2025-11-14 18:00:15 +01:00
ManuelandMeier Lukas 1c1f8a48d2 fix(users): next button in create form always disabled (#4443)
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2025-11-10 16:02:14 +01:00
homarr-renovate[bot]andMeier Lukas 6ce23a6e97 fix(deps): update nextjs monorepo to v16 (major) (#4363)
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2025-11-04 21:26:44 +01:00
Meier Lukas 172db0e3f9 feat(integrations): add app linking (#4338) 2025-10-24 20:21:27 +02:00
Meier Lukas 5c86930220 feat(users): allow profile picture change for external providers (#4275) 2025-10-13 23:52:17 +02:00
Meier Lukas 7e5f4e59a9 fix(management): improve homepage (#4260) 2025-10-11 22:55:56 +02:00
Meier Lukas 4c2e352aca feat(dynamic-sections): add custom css classes option (#4256) 2025-10-10 19:59:41 +02:00
Meier Lukas 3b708c5ebd feat(integrations): allow changing secret kinds of existing integration (#4254) 2025-10-10 19:59:23 +02:00
Meier Lukas dcb845b609 feat(medias): support upload of multiple items (#4169) 2025-10-02 19:54:40 +02:00
Meier Lukas f82f343631 feat(about): add hotkeys list (#4165) 2025-10-02 19:54:30 +02:00
Meier Lukas 514034d184 feat(translations): add crowdin live support (#4177) 2025-10-02 19:54:08 +02:00
Nicolas NewmanandMeier 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 fe676daad2 feat(tasks): add one second interval (#4074) 2025-09-14 00:45:23 +02:00
Meier Lukas f7471b6c63 fix(boards): issues with old-import board name containing spaces (#4052) 2025-09-12 18:44:37 +02:00
Meier Lukas bfcbffbdc6 feat(integration): add github app authentication (#3968) 2025-09-10 21:17:36 +02:00
Meier Lukas 9cb8261ddc fix(header): avatar menu flashes when opening on mobile (#3999) 2025-09-05 18:17:30 +02:00