Skip to Content

Installation

The dashboard server runs as one Node.js process. Install it from npm, run the container image, or deploy the Helm chart. All three read the same environment variables.

The UI library and the contract are npm packages you add to your web application.

Requirements

ComponentVersionNotes
Node.js22.13 or laterSQLite is built into Node from 22.13. On 22.5 to 22.12 it needs --experimental-sqlite; earlier versions can only use the in-memory store.
DockerAny recent versionImage ghcr.io/microboxlabs/miot-dashboard-server
KubernetesAny supported version, with Helm 3Chart miot-dashboard-server in https://microboxlabs.github.io/helm-charts
PostgreSQL17 is testedOptional. Without it the server uses one SQLite file.
BrowserCurrent Chrome, Edge, Firefox or SafariFor the UI library

Install the server

Add it to a Node.js project:

npm install @microboxlabs/miot-dashboard-server npx miot-dashboard-server

Or run it once without a project:

npx @microboxlabs/miot-dashboard-server

The npm package installs only what every setup needs. Add the packages for the features you use:

FeatureAdd
JWT sign-in (any real identity provider)jose
PostgreSQL storepg
Swagger UI at /docsswagger-ui-dist
Documents in Amazon S3@aws-sdk/client-s3
Documents in Google Cloud Storage@google-cloud/storage
npm install @microboxlabs/miot-dashboard-server jose pg

With npx, name the extra packages with -p:

npx -p @microboxlabs/miot-dashboard-server -p jose miot-dashboard-server

Pin an image tag such as sha-6fb37c8 in production. latest moves with every publish, so a restart could change the code that writes your dashboards.

Check that it answers

curl http://127.0.0.1:3070/readyz
{"status":"ready"}
PathAnswersUse
/livez or /health{"status":"ok"}Liveness probe
/readyz{"status":"ready"}Readiness probe
/openapi.yamlThe API definitionGenerate clients
/docsSwagger UITry the API from a browser

The probes do not touch the database. The server proves its database at startup instead: it runs migrations before it opens the port, and exits with an error if it cannot connect.

Install the UI library

npm install @microboxlabs/miot-dashboard-ui @microboxlabs/miot-dashboard-contract

Then add what your page needs:

Your page usesAlso install
React 18 or 19react and react-dom, which you already have
Chartsecharts 6
Plain HTML, no build stepNothing. Copy dist/browser/browser.js and styles.css from the package.

Load the stylesheet once:

import "@microboxlabs/miot-dashboard-ui/styles.css";

The tutorial Embed a dashboard in a web page uses the plain HTML build. Render with React covers React.

Install the contract only

Use the contract alone when you build your own server or tooling and want the same document validation:

npm install @microboxlabs/miot-dashboard-contract

See Contract package.

Versions that work together

ServerContractUI
0.6.00.6.00.1.0

Upgrade the contract first, then the server, then the UI. The full table is in Releases and versions.

Last updated on