Publish with context
Give industrial data a stable hierarchy and identity at the source.
UNS OpenHub
Open-source industrial data tooling
Turn fragmented industrial signals into one governed, queryable data layer on infrastructure you control. Publish with TypeScript, Python, or Node-RED, preserve context in MQTT, and use the same identity for live and historical data.
Live namespace
Controller / cluster
MQTT cluster · master serves API
Give industrial data a stable hierarchy and identity at the source.
Keep schemas and metadata consistent as connected systems change.
Query live and historical data through the same namespace model.
UNS DataHub Runtime
Keep operational data on premises with an integrated controller and open-source PostgreSQL, Eclipse Mosquitto, QuestDB, and Caddy infrastructure. The core data plane requires no managed cloud service.
uns-datahub-runtime
Install the integrated controller and local services, then configure the namespace through the browser setup wizard.
Open components, integrated preview. The SDKs, supporting services, reference application, and bootstrap are public. The complete Runtime is currently distributed through a private preview.
curl -fsSL \
https://github.com/ uns-datahub/ uns-datahub-bootstrap/ releases/ latest/ download/ install.sh |
sh
"$HOME/.local/bin/uns-bootstrap" install
curl -fsSL \
https://github.com/ uns-datahub/ uns-datahub-bootstrap/ releases/ latest/ download/ install.sh |
sh
"$HOME/.local/bin/uns-bootstrap" install
Invoke-WebRequest `
https://github.com/ uns-datahub/ uns-datahub-bootstrap/ releases/ latest/ download/ install.ps1 `
-OutFile install.ps1
.\install.ps1
& "$HOME\.local\bin\uns-bootstrap.exe" install
Requires Docker or Podman with Compose. During the private preview, the bootstrap asks for a read-only GitHub token, does not store it, verifies the matching download, and starts the setup wizard.
Join the list and we will contact you about access to the private UNS DataHub Runtime preview.
Built for operations
Runtime makes service lifecycle, health, and controller authority visible. Planned changes use explicit handover; recovery actions stay configurable and observable.
Start the next version beside the active instance. The current subscriber drains queued work, passes a queue checkpoint, and exits after the replacement acknowledges the handover.
Combine process state with MQTT heartbeats and required service signals. Opt-in guards can restart on exit, enforce a memory ceiling, and recover unhealthy services after a threshold and cooldown.
Inspect versions, instances, active and alive state, memory, uptime, restarts, message counters, routes, logs, and dependency health from the same control plane.
Controllers coordinate through MQTT, elect a master from fresh heartbeats, and re-elect when authority becomes stale. Workloads can run across controller nodes while the master serves the control API.
Reference environment variables or Infisical paths from typed configuration instead of placing credentials in repository files. Optional caching, Machine Identity token refresh, and a narrow bootstrap environment keep rotation and recovery operational.
Discover compatible system add-ons from configured public GitHub sources, then deploy your own tagged microservices from GitHub or Azure DevOps. Repository allowlists, add-on and controller compatibility checks, and commit verification keep the install path explicit.
Edit service configuration against its JSON Schema, begin from a packaged template, and retain snapshots per version and instance. Load and validate an earlier snapshot before applying it again.
Before starting matching service instances on another controller, Runtime checks package versions, process identity, target state, and normalized configuration. Any mismatch blocks the request and returns a reason for each affected instance.
Seeded Runtime demo
A seeded rolling-mill application publishes equipment and measurements. UNS OpenHub discovers the hierarchy, exposes live values, and preserves governed metadata as the system changes.
Generate realistic equipment states and measurements from a seeded source.
Discover equipment and signals in one shared hierarchy.
Follow live measurements and inspect timestamped values.
Keep asset identity and metadata stable across rebuilds.
Review live UNS measurements against retrieved operating guidance. Assistant capabilities are planned for a later phase.
These views use a seeded, fictional hot-rolling process.
Run the Runtime locallyThe public stack
Choose the pieces your architecture needs or connect the complete flow. Each project covers a distinct role and shares the same namespace model.
TypeScript and Python runtime libraries and project scaffolding for typed, structured UNS applications.
Persist scalar and table packets to QuestDB with stable mappings, buffering, and recovery.
Open repository ↗Authenticated current-value and historical queries, summaries, and bucketed time series.
Open repository ↗Subscribe to and publish contextualized UNS messages from familiar visual flows.
Open repository ↗See material flow, recipes, telemetry, storage, and APIs working together in one end-to-end example.
Explore the demo ↗On the roadmap
Connectivity bridges will bring external MQTT and OPC UA data into the same governed namespace model. The later Assistant direction connects governed process context with operator-reviewed schema and service authoring, while tool access stays policy-gated.
uns-bridge-mqtt
Browse external MQTT brokers and map their payloads into a governed Unified Namespace structure.
uns-bridge-opcua
Browse OPC UA servers and map nodes and values into the same UNS model.
The direction goes beyond chat: connect live values with retrieved guidance, draft governed changes, prepare service bundles, and expose selected tools through a controlled local bridge.
Compare live and historical measurements with retrieved operating guidance and cited source material.
Search existing definitions, then propose reuse, updates, or new object types and attributes without auto-publishing.
Resolve confirmed UNS topics and prepare a
service.bundle.json for TypeScript or Python
scaffolding.
Early local access uses scoped short-lived tokens, loopback clients, read-only defaults, allowlists, traces, and audits.
Private implementation work currently uses OpenAI. Provider and on-prem inference alternatives are being evaluated; public scope and delivery are still under review.
Start from the source