Skip to content

Getting Started

Rod Christiansen edited this page Oct 8, 2026 · 2 revisions

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.

Prerequisites

  • Node.js 20 or newer (package.json sets engines.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

1. Install

git clone https://github.com/reportmate/reportmate-app-web.git
pnpm install

2. Configure

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.

3. Run

pnpm dev

Open http://localhost:3000. The root route redirects to /dashboard.

4. Check the wiring

/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.

5. Production build

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.

Clone this wiki locally