Repository navigation
Getting Started
The shortest path from a clone to a dashboard rendering real data. You need a reachable reportmate-api instance — the dashboard has no database of its own and no offline fixtures.
- Node.js 20 or newer (
package.jsonsetsengines.node >= 18; the Docker image and CI both build on 20) - pnpm 9 or 10 (CI uses 9, the Docker image pins 10; the lockfile is
pnpm-lock.yaml) - A running reportmate-api, and the shared secret it accepts
git clone https://github.com/reportmate/reportmate-app-web.git
pnpm install
Create .env.local. The minimum for local development is the API base URL and
the secret used to authenticate to it:
API_BASE_URL=https://api.example.com
API_INTERNAL_SECRET=replace-with-the-api-shared-secret
In development the middleware skips authentication entirely when the request
hostname is localhost, 127.0.0.1 or 0.0.0.0 and NODE_ENV is
development, so no NextAuth or Entra ID configuration is needed to get a
working dashboard on your own machine. Everything else is in
Configuration.
pnpm dev
Open http://localhost:3000. The root route redirects to /dashboard.
/api/healthz reports whether the API base URL and the internal secret were
picked up:
curl -s http://localhost:3000/api/healthz
/api/diagnostic goes one step further and actually calls the upstream devices
and events endpoints, which is the fastest way to tell a misconfigured
API_BASE_URL apart from a rejected secret.
pnpm build
pnpm start
next.config.mjs sets output: 'standalone', so a production build also emits
.next/standalone/server.js — that is what the container image runs. See
Deployment.
AGPL-3.0 · reportmate.app