* feat(header): add opt-in auto-hide-on-scroll for the header New per-user header preference (default off): when enabled, the header slides away while scrolling down and reappears on scroll-up or near the top of the page. Disabled while in board edit mode, and skipped entirely while focus is inside the header. Only applies when the header is set to visible - the existing hover-to-reveal floating controls already cover the hidden-header case. * chore(api): regenerate the checked-in OpenAPI schema check:openapi was failing in CI - the schema on disk hadn't been regenerated after the header preferences gained autoHideOnScroll. Add scripts/generate-openapi-schema.mts (and a generate:openapi package script) alongside the existing check script so this is a one-command fix next time the schema drifts. * docs(users): document the header studio's visibility and auto-hide options Header customization (drag-to-arrange controls, hide/show, hover-reveal and pin, auto-hide-on-scroll) had no documentation on the user general settings page.
Homarr web application
This workspace contains Homarr's Next.js application. It consumes the shared API, authentication, database, board, widget, translation, and UI packages from this monorepo.
Run commands from the repository root:
pnpm install --frozen-lockfile
cp .env.example .env
Keep infrastructure running in the first terminal:
pnpm docker:dev
Apply migrations and start the application in a second terminal:
pnpm db:migration:sqlite:run
pnpm dev
The app listens on http://127.0.0.1:3000. Configure an absolute writable DB_URL, AUTH_SECRET, and
SECRET_ENCRYPTION_KEY in .env before first startup.
To test Custom Widgets against a local Community Workshop, start PocketBase and the docs in separate terminals:
pnpm docker:workshop
WORKSHOP_API_URL=http://127.0.0.1:8090 pnpm dev:docs
Then set:
HOMARR_WEBSITE_URL=http://127.0.0.1:3003
WORKSHOP_API_URL=http://127.0.0.1:8090
WORKSHOP_WEB_URL=http://127.0.0.1:3003/workshop
Server-rendered runtime configuration exposes those URLs to the browser, so changing a production container's environment does not require rebuilding the Next.js bundle.
See apps/docs/docs/advanced/development/getting-started.mdx
for the full contributor setup.