Files
homarr/apps/nextjs
Bergasha f455e71be5 fix(board): remove per-widget refresh indicator (#6731)
The small refresh-circle overlay that appeared in a widget's top-right
corner during a background refetch wasn't adding useful signal and
just added visual noise. Drop the isWidgetRefreshing detection, the
indicator markup/CSS, and the now-dead query-key/runtime-query
plumbing that only existed to power it.

Updated the lazy-widgets e2e test to drop its assertions on the now
-removed [data-widget-refreshing] marker; the behavior it was really
verifying (cached content stays visible during a background refetch,
which completes cleanly) is still covered by the existing network
-level checks in the same test.
2026-08-28 17:36:41 +10:00
..

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.