Thomas Camlong
0d19968131
test(benchmarks): add populated-dashboard memory stress benchmark
...
Container memory was only ever measured on an empty install, which hides
the cost that actually matters: a real board with real widgets and
integrations loaded.
stress-restore.mts boots a fresh container, restores a supplied backup
through the onboarding restore UI (including the "I understand"
confirmation), signs in, opens the busiest board, waits for every widget
to mount, then hammers navigation and soaks idle while sampling cgroup
v2 memory at each stage.
The backup is passed by path via STRESS_BACKUP_ZIP and never enters the
repo — it carries real integration secrets and an encryption key.
.gitignore now also refuses homarr-backup*.zip and loose *.sqlite.
Baseline reading (merge-base image, 28-item board, all widgets ready):
223 MiB idle -> 448 MiB board loaded -> 688 MiB peak.
2026-08-09 00:44:50 +02:00
Thomas Camlong
abec79abe8
fix: address CodeRabbit review — typed mocks, robust benchmark script
...
- Replace `as any` casts in integration-test-connection.spec.ts with
Pick<Integration, "testConnectionAsync"> + mockResolvedValue
- build-compare.sh: split local declarations (SC2318), clean .next
between builds with --force, add EXIT trap for safe stash/cleanup
2026-08-08 13:00:42 +02:00
Thomas Camlong
e036cd86d8
perf: move dependencies to build-time static JSON, add build benchmark
...
- Move getDependenciesAsync filesystem scan to scripts/dump-dependencies.mts
(runs at build time, outputs static-data/dependencies.json)
- About page now imports dependencies.json like other static data
(eliminates runtime glob of all package.json files)
- Delete dead getDependenciesAsync + parseDependencyCatalogsAsync from
package-reader.ts (only getPackageVersion remains)
- Add scripts/benchmarks/build-compare.sh for dev vs branch comparison
2026-08-08 08:58:54 +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
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
3f9fb215c6
fix: avoid ambiguous benchmark regex
2026-08-03 14:27:21 +02:00
Thomas Camlong
de801f3f00
perf: optimize dashboard loading and builds
2026-08-02 15:58:16 +02:00
ajnart
0b9c4d6375
fix: address performance review feedback
2026-07-29 06:50:13 +02:00
ajnart
440626ba00
test(performance): add authenticated local benchmarks
2026-07-29 06:47:07 +02:00
Thomas
ba7718bde5
feat: rework the ci ( #6296 )
2026-07-13 18:32:48 +02:00
Thomas
5d1f268438
feat: SQLite backup & restore with WASM preview ( #5887 )
2026-06-10 18:26:17 +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
Meier Lukas
6feb37dfd4
Merge branch 'main' into next
2026-05-08 23:46:21 +02:00
Borislaw Sotnikow and Meier Lukas
4d30a2e8c4
feat(installations): support secrets file for all environment variables ( #5125 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 17:11:08 +02: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
3d202d409f
feat(about): add opencollective contributors ( #5481 )
2026-04-27 22:35:42 +02:00
Meier Lukas
9ba82133da
feat(installations): support docker secrets file for encryption key ( #4946 )
2026-01-30 17:28:08 +01:00
Meier Lukas
298a96054e
refactor(db): move to core package ( #4589 )
2025-12-17 08:59:52 +01:00
Tobias and Meier Lukas
d084dfb470
fix: improve run script ( #4609 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2025-12-08 22:59:59 +01:00
Meier Lukas
6fb32a6061
ci: add on-release workflow to trigger docs-release, update bug-report-template and update security-policy ( #3881 )
2025-08-20 20:37:22 +02:00
Manuel and Meier Lukas
27bd93fa8a
ci: update integrations in readme ( #3740 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2025-08-08 20:14:58 +02:00
Meier Lukas
8e960324bc
feat(infra): add external redis ( #3639 )
2025-07-20 17:13:57 +02:00
Meier Lukas
9398dd983c
feat(tasks): allow management of job intervals and disabling them ( #3408 )
2025-07-03 20:59:26 +02:00
Meier Lukas
6e03e5a40c
fix: updated contributors contain unnecessary data ( #3124 )
2025-05-16 19:57:20 +02:00
Meier Lukas
6c71724e2e
ci: add update-contributors workflow ( #3014 )
2025-05-12 18:01:27 +02:00
Meier Lukas
a5e0e8c129
feat: add sigterm support ( #2472 )
2025-03-02 20:28:11 +01:00
Meier Lukas
8c36c3e36b
feat(certificates): handle self signed certificates ( #1951 )
...
* wip: add page and loading of certificates in folder
* wip: add certificate addition and removal
* feat: add removal ui for certificates
* feat: migrate integrations to fetch or agent with trusted certificates
* fix: lock file issues
* fix: typecheck issue
* fix: inconsistent package versions
* chore: address pull request feedback
* fix: add missing navigation item and restrict access to page
* chore: address pull request feedback
* fix: inconsistent undici dependency version
* fix: inconsistent undici dependency version
2025-01-17 00:08:40 +01:00
Meier Lukas
aeb681a858
feat(docker): add support for pgid and puid env variables ( #1759 )
2024-12-31 11:36:28 +01:00
Meier Lukas
56b57ad171
fix(docker): replace anonymous docker volume with env variable for encrypting secrets ( #1809 )
2024-12-31 11:30:29 +01:00
Meier Lukas
1baa9fc74c
fix: docker statup permission issue ( #1709 )
2024-12-18 14:10:43 +01:00
Meier Lukas
15d47d0585
ci: generate auth secret in production ( #1681 )
...
* ci: generate auth secret in production
* refactor: remove no longer needed auth-secret from e2e test
* fix: remove static auth secret
2024-12-17 19:10:19 +01:00
Meier Lukas
fe4dfc484b
fix: adding volume /appdata removes created directories ( #1445 )
2024-11-07 19:48:45 +01:00
Meier Lukas
52b45d835d
feat(docker): add encryption key generation for integration secrets ( #1202 )
...
* feat(docker): add encryption key generation for integration secrets
* chore: address pull request feedback
* fix: build failing
* fix: docker build fails because of error when encryption key not defined
2024-10-03 19:59:44 +02:00
Meier Lukas
a30be7bc1e
feat: add env variable to disable db migrations on startup ( #1179 )
2024-09-26 18:54:28 +02:00
Meier Lukas
cd4619845b
feat: add nginx proxy ( #1073 )
...
* feat: add nginx proxy
* fix: adjust path for websocket client to connect
2024-09-16 18:10:58 +02:00
Thomas Camlong
ff3244d9ac
Update run.sh ( #498 )
2024-05-16 21:26:07 +02:00
Meier Lukas
fd44ee48f4
fix: rdb files can not be saved because of permission issues bug: redis can not save RDB files #318 ( #472 )
...
* fix: rdb files can not be saved because of permission issues bug: redis can not save RDB files #318
* refactor: move db and redis dumps to /appdata directory
2024-05-12 16:28:44 +02:00
homarr-renovate[bot] and Meier Lukas
1ce6fb0d0f
fix(deps): update dependency drizzle-kit to ^0.21.1 ( #462 )
...
* fix(deps): update dependency drizzle-kit to ^0.21.0
* fix(deps): update dependency drizzle-kit to ^0.21.1
* fix: migrate to drizzle kit 0.21
* fix: format issues
* feat: add default env variables for db dialect and driver
* fix: issue with driver seems to be fixed
---------
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2024-05-10 23:46:01 +02:00
Meier Lukas
ad1796dc02
refactor: add dev directory to organize dev files #398 ( #408 )
...
* refactor: add dev directory to organize dev files #398
* chore: address pull request feedback
2024-05-01 19:58:58 +02:00
Meier Lukas
036925bf78
feat: add user groups ( #376 )
...
* feat: add user groups
* wip: add unit tests
* wip: add more tests and normalized name for creation and update
* test: add unit tests for group router
* fix: type issues, missing mysql schema, rename column creator_id to owner_id
* fix: lint and format issues
* fix: deepsource issues
* fix: forgot to add log message
* fix: build not working
* chore: address pull request feedback
* feat: add mysql migration and fix merge conflicts
* fix: format issue and test issue
2024-04-29 21:46:30 +02:00
Meier Lukas
669c6c8955
config: migrate from nestjs to tasks and websocket server in docker ( #316 )
...
* feat: make tasks script run in docker
* feat: make websocket server work in docker
* fix: format issue
* fix: broken lockfile
* fix: non matching typescript versions
2024-04-07 11:32:29 +02:00
Manuel and Meier Lukas
1825e56349
feat: add redis ( #242 )
...
* feat: add refis
* feat: add redis package
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
* feat: add example docker compose, add redis connection in package
* fix: usage of client after subscribe
* feat: add logger for redis
* refactor: format files
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
---------
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2024-03-25 21:09:40 +01:00
Manuel and Meier Lukas
98c353349a
config: add dockerfile ( #214 )
...
* config: add dockerfile
* feat: add working dockerfile for nest and next app with sqlite migration
---------
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2024-03-16 15:51:34 +01:00