Thomas Camlong
b1713a9820
fix: revert Suspense layout wrappers causing E2E hydration errors
...
Revert layout.tsx, _layout-creator.tsx, manage/layout.tsx,
_theme.tsx, _creator.tsx, mantine.tsx, and login/page.tsx
to origin/dev — the Suspense provider splits caused
"EditMode is required", stream close, and React #419 errors.
Also remove cacheComponents/cacheHandlers from next.config.ts
(incompatible with auth/i18n/dynamic rendering) and fix
Boolean() truthy bug in Redis connection.
2026-08-08 12:40:48 +02:00
Thomas Camlong
6692acbd33
chore: strip formatting noise, delete dead routes, fix CodeRabbit issues
...
- Remove 179 format-only file changes (docs, migrations, plex, patchmon, CSS)
- Delete .cursor/goal files from git tracking
- Delete 4 dead /api/about routes (unused, data loaded from static JSON)
- Fix resolveAlias to use absolute paths (CodeRabbit)
- Fix Tailwind classes in Mantine app layout fallback (CodeRabbit)
- Return stale data during cache revalidation (CodeRabbit)
2026-08-08 08:45:16 +02:00
Thomas Camlong
345a4be4b0
fix: CI build errors + simplify cache handler and data cache
...
- Remove `export const dynamic` from 4 routes (incompatible with cacheComponents)
- Static import for redis-handler (Turbopack can't resolve relative dynamic imports)
- Simplify redis-handler: Buffer.concat, NonNullable, single connect promise
- Inline single-use helpers in integration-data-cache
- Non-greedy SVG regex to prevent ReDoS
- Inline getDevelopmentServiceAliases in next.config
- Remove restating comments
2026-08-08 00:19:27 +02:00
Thomas Camlong
018f98e318
perf: implement Phase 1 homepage diet via Next.js Cache Components
...
P1-0: V8 heap cap (HOMARR_MAX_OLD_SPACE_SIZE, default 512MB)
P1-1: Module graph cuts
- Dynamic integration imports (55 static → lazy loaders)
- Conditional DB driver loading (only configured driver loaded)
- Replace jsdom with linkedom for SVG sanitization
- Delete eager widget barrel (55 import * as → 0)
- Extract createRetryableLoader to @homarr/common
P1-2: Enable cacheComponents + restructure root layout
- Suspense boundaries around session-dependent providers
- ColorSchemeScript replaces server-side cookie reads
- Board/manage/auth layouts wrapped in Suspense
P1-3: Cache read paths
- Cache tag registry + invalidation helpers
- Cache invalidation wired into all mutation routers
- Translation deep-merge memoized per locale
P1-4: Prerendered shells + loading.tsx files
P1-5: Shared integration data cache (60s TTL, stale-while-revalidate)
P1-6: Redis-backed Next.js cache handler (@homarr/next-cache-handler)
P1-7: Redis optional (memory channel fallback), TTL on pubSub:last:*,
Redis clients consolidated from 6 to 2
2026-08-07 18:59:47 +02:00
Thomas Camlong
de801f3f00
perf: optimize dashboard loading and builds
2026-08-02 15:58:16 +02:00
ajnart
4ca0b747bb
chore(next): upgrade preview and isolate dev services
2026-07-29 06:47:07 +02:00
Thomas and homarr-renovate[bot]
4d42eb65e4
chore(deps): mega dependency update ( #6212 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-06 10:05:51 +02:00
ajnart
60a69e31ef
fix: revert production source maps to restore v1.67.0 memory baseline
...
CodeRabbit review addressed:
- Removed the env-var gating (simpler: just remove source maps entirely)
- CI health check now fails fast if container never becomes healthy
Changes vs origin/main:
- next.config.ts: remove productionBrowserSourceMaps and serverSourceMaps
(they default to false, restoring pre-v1.68.0 behavior)
- Dockerfile: remove .map copy step and NODE_OPTIONS=--enable-source-maps
- CI: add memory-regression job (<700MB guardrail)
Closes #6123
2026-06-29 15:13:08 +02:00
ajnart
57ef0af4a2
fix: make source maps opt-in to restore v1.67.0 memory baseline
...
Production source maps (--enable-source-maps) caused a ~50% memory increase
(600MB to 1000MB) in v1.68.0. Node.js loads all .map files into memory when
this flag is enabled, and Next.js server chunks generate hundreds of map files.
Changes:
- Guard productionBrowserSourceMaps and serverSourceMaps behind
HOMARR_ENABLE_SOURCE_MAPS env var (default off)
- Guard .map copy step and NODE_OPTIONS in Dockerfile behind
ENABLE_SOURCE_MAPS build arg (default false)
- run.sh checks HOMARR_ENABLE_SOURCE_MAPS before setting --enable-source-maps
- Add Docker-based memory regression CI job (<700MB threshold)
Closes #6123
2026-06-29 10:08:52 +02:00
Matt Van Horn
89380f81dd
feat: ship source maps for readable production stack traces ( #6031 )
2026-06-22 15:22:54 +02:00
Thomas
a4db9cf0dc
feat(beszel): add Beszel integration with system monitoring widgets ( #5900 )
2026-06-10 18:27:05 +02:00
Thomas
5d1f268438
feat: SQLite backup & restore with WASM preview ( #5887 )
2026-06-10 18:26:17 +02:00
Meier Lukas and Thomas
a9855fe8d3
chore(deps): remove deprecated million lint ( #5671 )
...
* chore(deps): remove deprecated million lint
* fix: install now missing playwright dependency
* fix: broken lockfile
* fix: broken lockfile
---------
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-05-18 21:42:02 +02:00
Meier Lukas
6feb37dfd4
Merge branch 'main' into next
2026-05-08 23:46:21 +02:00
sharpsalat and sharpsalat
277a509f49
feat: add pwa support ( #5530 )
...
* feat: add pwa support
* fix: deepsource warning
* fix: format warning
* fix: lint error
---------
Co-authored-by: sharpsalat <deniska.xrenov23@yandex.ru >
2026-05-07 21:53:17 +02:00
Thomas
5ee84f8cf4
perf: (next branch) reduce idle memory on startup ( #5637 )
2026-05-06 21:39:26 +00:00
Meier Lukas
298a96054e
refactor(db): move to core package ( #4589 )
2025-12-17 08:59:52 +01:00
Meier Lukas
d348abfe4a
refactor(logs): move to core package ( #4586 )
2025-12-16 23:37:44 +01:00
Meier Lukas
10572ca962
fix: disable react-compiler due to issue with mantine-react-table data updates ( #4593 )
2025-12-05 19:10:23 +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
homarr-renovate[bot] and Meier 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
de33439b22
fix(video-widget): hls videos not working ( #4015 )
2025-09-06 12:29:30 +02:00
Meier Lukas
c59cdeda47
fix: csp prevents external videos ( #3372 )
2025-06-10 22:14:43 +02:00
Meier Lukas
1b3770aafb
fix: module not found sshcrypto.node during development ( #3349 )
2025-06-07 16:19:09 +02:00
Meier Lukas
c7a21b1a5f
fix: csp prevents external stylesheets ( #3337 )
2025-06-06 19:58:37 +02:00
Meier Lukas
05e159f566
fix: csp prevents fonts to load ( #3225 )
2025-05-25 16:39:20 +02:00
09af0a76f6
feat: allow custom protocols for app href ( #2575 )
...
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2025-05-23 20:19:59 +00:00
homarr-renovate[bot] and Meier Lukas
f55d8a9c2e
fix(deps): update dependency next-intl to v4 ( #2580 )
...
* fix(deps): update dependency next-intl to v4
* fix: typecheck issue
* refactor: implement improvements for next-intl v4
* fix: typecheck issues
* fix: typecheck issue
---------
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2025-03-12 18:37:43 +01:00
Meier Lukas
67d48e11d7
feat(logging): add log level env variable ( #2299 )
2025-02-18 22:54:15 +01:00
Meier Lukas
73f7d885cd
fix: docker hosts and ports env variable wrongly used ( #2050 )
...
* fix: docker hosts and ports env variable wrongly used
* fix: ci issues
2025-01-22 20:43:54 +01:00
Meier Lukas
1fd3fd8dfb
refactor: env validation typescript and common package ( #1912 )
2025-01-14 19:03:38 +01:00
Meier Lukas
6a68ccfee4
chore(config): change next-config from mjs to typescript ( #1861 )
2025-01-06 19:59:25 +01:00