Skip to content

Repository files navigation

UMH Core Starter Kit

UMH CoreTimescaleDBGrafanaHiveMQ CENode-REDDocker Compose

Opinionated, batteries-included Docker Compose stack to build your Unified Namespace with UMH Core. One command and you're running.

Community starter kit. For production deployments, enterprise support, and professional services, contact the UMH team directly.

Official docs and configuration reference: docs.umh.app

Quick Start

git clone https://github.com/SheetMetalConnect/UMH-Core-Stack.git
cd UMH-Core-Stack
cp .env.example .env
# Edit .env — paste your AUTH_TOKEN from https://management.umh.app
docker compose up -d
docker compose ps

What's Included

ServicePortPurpose
UMH Core(internal)Industrial data hub with embedded Redpanda
TimescaleDB5432Time-series database (PostgreSQL 17)
Grafana3000Dashboards and visualization
HiveMQ CE1883Local MQTT broker
Node-RED1880Flow-based data integration
Portainer9000Container management UI
NGINX80/443Reverse proxy

Default credentials are admin / changeme (Grafana) and postgres / changeme (TimescaleDB). Change these before production use.

Deploy the Historian

Data does not persist to TimescaleDB automatically. You need a DataFlow:

  1. Open Management Console -> your instance -> Data Flows -> Stand-alone
  2. Click Add, paste the contents of examples/databridges/flows/historian.yaml
  3. Deploy

Demo Data (Optional)

See data flowing end-to-end with the MetalFab UNS Simulator:

docker compose -f docker-compose.yaml -f examples/simulator/docker-compose.simulator.yaml up -d

Simulator -> HiveMQ -> UMH Core -> historian -> TimescaleDB -> Grafana.

Directory Structure

.
├── docker-compose.yaml # Full stack definition
├── .env.example # Environment template (start here)
├── nginx.conf # Reverse proxy config
├── configs/
│ ├── nodered/settings.js # Node-RED settings
│ ├── grafana/provisioning/ # Datasources + starter dashboards
│ └── timescaledb-init/ # Historian schema (runs on first boot)
├── examples/
│ ├── databridges/flows/ # DataFlow templates (historian, ERP, bridges)
│ ├── databridges/sql/ # ERP schema extensions
│ ├── simulator/ # MetalFab simulator overlay
│ ├── historian/ # Reference historian overlay
│ └── mcp/ # Standalone MCP server overlay
└── docs/
├── operations.md # Quick start and common commands
├── networking.md # Network architecture, ports, DNS
├── data-modeling.md # _raw vs data contracts, topic structure
├── historian.md # TimescaleDB setup, backup, sizing
├── integration-patterns.md # ERP integration patterns
└── troubleshooting.md # Common issues and fixes

DataFlow Templates

Ready-to-use Benthos dataflows in examples/databridges/flows/:

TemplatePurpose
historian.yaml_raw topics -> TimescaleDB
mqtt_bridge.yamlExternal MQTT broker -> UNS
opcua_bridge.yamlOPC-UA server -> UNS
tasmota_bridge.yamlTasmota IoT devices -> UNS
erp_process.yamlERP entity deduplication
erp_to_timescale.yamlERP persistence (UPSERT + history)

See examples/databridges/README.md for the full list and usage instructions.

Production Checklist

  • Replace all changeme passwords (grep -r "changeme" . --include="*.yaml" --include="*.example" --include="*.sh")
  • Set AUTH_TOKEN from Management Console
  • Configure TLS (place certs in ./certs, uncomment HTTPS block in nginx.conf)
  • Restrict NGINX CORS headers (currently allows *)
  • Set up database backups
  • Tune TS_TUNE_MEMORY and TS_TUNE_NUM_CPUS for your hardware

Documentation

GuideWhat it covers
OperationsQuick start, common commands, updating
NetworkingNetwork architecture, ports, DNS, security
Data Modeling_raw vs data contracts, topic structure
HistorianTimescaleDB schema, sizing, backup
Integration PatternsERP integration patterns
TroubleshootingCommon issues and quick fixes

Resources

Contributing

Contributions welcome. Before submitting:

  • Test with a fresh .env from .env.example
  • Verify: docker compose up -d && docker compose ps
  • Validate: docker compose config

License

Apache License 2.0

This is a community deployment template supporting the UMH mission of making industrial data accessible. It does not modify or redistribute UMH source code.

Third-party components

ComponentLicenseSource
UMH CoreApache 2.0United Manufacturing Hub GmbH
TimescaleDBTimescale License / Apache 2.0Timescale, Inc.
GrafanaAGPL 3.0Grafana Labs
HiveMQ CEApache 2.0HiveMQ GmbH
Node-REDApache 2.0OpenJS Foundation
Portainer CEZlibPortainer.io
NGINXBSD-2F5, Inc.

All trademarks remain property of their respective owners.


Built by Van Enkhuizen Systems

About

⚡ Luke's UMH Starter Kit — batteries-included UMH Core stack to build your Unified Namespace. One command to deploy.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages