Skip to content
zyvoraiPublic

About

Yard — open asset and operations platform (Apache-2.0)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Yard

CI License: Apache 2.0 Docs Go 1.27+ React 18

Book a demo 30-day PoC Quickstart

Quickstart · Product tour · Compare · Docs · Architecture

Yard - Every asset, every site. Stale is never healthy.

Every asset, every site. Stale is never healthy.

Open asset and operations platform. Devices, sites, telemetry, incidents and work orders in one registry, one Go binary and one embedded console. Zyvor connectors are optional. Yard runs alone.

One asset model · Stale, never healthy · Incidents with runbooks · 3 roles, per-person API keys · SQLite or Postgres


What's new

Recent work on main (see the programs page for the full status):

Area What shipped
Telemetry ingest Prometheus remote write, OTLP JSON and MQTT (YARD_MQTT_URL) next to HTTP ingest
Typed observations Number, integer, counter, bool, text, json, ref, enum, event and histogram values with sequence and quality metadata
Storage Hourly rollups for numeric rows older than 24 hours, admin retention, optional TimescaleDB hypertables
Smarter thresholds A threshold holds until it stays true, and noise inside a band is ignored (debounce, hysteresis, flap counts)
Field work Parts and labor on work orders, and field work that can finish offline
Releases Tagged amd64 and arm64 binaries with checksums and build info

Why Yard

Yard is a standalone registry for physical operations. A device is one asset kind; vehicles, machines, sensors, and equipment share the same model. Device Agent, Nodra, Fleet, and OTA plug in when you need them — you can install Yard without installing anything else in the Zyvor suite.

Yard stays honest when data goes quiet: observations carry source, unit, quality, and timestamps; missed heartbeats mark assets stale rather than healthy; automations open incidents with severity policies and runbooks so operators know what to do next.

When this happens… Yard gives you…
Devices, vehicles and machines live in different spreadsheets and tools One asset model for every kind, placed on sites and a clustered map, with CSV/JSON import and export
A sensor goes quiet and the dashboard still shows green A background stale ticker: missed heartbeats mark assets stale, not healthy
An alert fires and nobody knows what to do next Automations open incidents, and the highest-priority severity policy attaches its runbook
The fix happens, but the record of it doesn't Work orders for inspections, repairs, installations and maintenance, closed with a recorded resolution on the asset timeline
Telemetry values arrive with no context Observations that carry source, unit, quality and timestamps
Operations tools need to talk to the rest of your stack Webhook, Slack, email and PagerDuty actions, OpenAPI 3.0 with Go and TypeScript SDKs, and optional Zyvor connectors

Capabilities at a glance: Registry, Telemetry, Respond, Govern

Registry and map
Devices, vehicles, machines, sensors and equipment share one model. CSV/JSON import-export and a clustered MapLibre map.
Registry
Telemetry you can trust
Observations carry source, unit, quality and timestamps. Missed heartbeats mark assets stale, not healthy.
Live ops
Incidents and runbooks
A threshold or stale automation opens an incident. The highest-priority severity policy attaches its runbook.
Incidents
Automations
Threshold, capability-range or stale triggers open an incident, notify, or call a webhook, Slack, email or PagerDuty.
Automations
Work orders
Inspections, repairs, installations and maintenance, assigned and closed with a recorded resolution.
What Yard does
Users, roles and keys
Viewer, operator and admin roles; per-person API keys; rate-limited logins. An unknown role fails closed to read-only.
Access

Yard vs ThingsBoard

Yard vs ThingsBoard: from telemetry to a closed work order

Yard ThingsBoard (open-source IoT platform)
Centre of gravity The asset and the operations work around it Device connectivity, telemetry and dashboards
Asset model Devices, vehicles, machines, sensors and equipment in one model, placed on sites Devices and assets with relations
Data quality Every observation carries source, unit, quality and timestamps; missed heartbeats mark assets stale Time-series telemetry and attributes
Response Automations open incidents; severity policies attach runbooks Rule chains raise alarms and trigger actions
Maintenance Work orders, parts and labor, Field page, recorded resolution Not the focus; work orders usually live in a separate CMMS
Footprint One Go binary with an embedded console; SQLite built in, Postgres optional Java service with its own database setup
Edge integration Optional Device Agent, Nodra, Fleet and OTA connectors Its own gateway and device protocols (MQTT, HTTP, CoAP and more)
Choose ThingsBoard when Your main need is a device-data platform with protocol breadth, a visual rule engine and a dashboard builder

Yard owns the operations surface and stays out of protocol decoding and desired state; see How it fits together.


See it live

Live UI captures from a lab deployment — not mockups. Full tour: Product tour · Console features.

Yard Overview — asset health, incidents, and recent activity

Assets — search, kinds, health, bulk import/export
Assets — search, kinds, health, bulk import/export
Sites — factories, warehouses, locations
Sites — factories, warehouses, locations
Map — MapLibre full-bleed with clustered pins
Map — MapLibre full-bleed with clustered pins
Telemetry — freshness, quality, sparklines
Telemetry — freshness, quality, sparklines
Work orders — inspections, repairs, maintenance
Work orders — inspections, repairs, maintenance
Automations — threshold and stale rules
Automations — threshold and stale rules

How it fits together

One binary, one database; connectors when you want them

Yard owns the operations surface. Everything else stays where it lives.

Component Responsibility
Yard Asset registry, sites, workflows, incidents, shared UI
Device Agent Hardware discovery, health, local diagnostics
Nodra connector Pull decoded telemetry / twins into ingest
Zyvor Fleet connector Lifecycle / rollout / OTA-device progress
OTA connector Campaign list display; execution stays elsewhere
HTTP / simulator Zero-dependency evaluation path

Device Agent reports physical capability. Nodra interprets protocols. Fleet owns desired state. Optional connectors sync when an endpoint and a stored secret are set. Full contracts: docs/CONNECTORS.md. Component diagram, repository map and data model: docs/architecture.md.


Quickstart

go run ./cmd/yard

Open http://127.0.0.1:8080. The default mode is demo, with the login [email protected] / yard-admin. Production refuses that login: set YARD_MODE=production, YARD_PUBLIC_URL, YARD_SECRET_KEY, and on an empty database YARD_BOOTSTRAP_EMAIL and YARD_BOOTSTRAP_PASSWORD (SECURITY.md).

In another terminal, start the included telemetry simulator:

export YARD_SIMULATOR_TOKEN=$(cat data/simulator.token)
go run ./cmd/simulator

Or run with Docker: docker compose up --build. Needs Go 1.27+ and Node 20+; SQLite is built in (no CGO), Postgres is optional. Docker Compose, remote lab deploy, backups and the Device Agent gateway: Getting started.

Go deeper

Docs and roadmap

Resource Link
Documentation index docs/index.md
Product docs zyvorai.github.io/yard
Compare Yard Core vs. Zyvor Enterprise
Feature catalog docs/ROADMAP.md
Programs 1–16 docs/PHASES.md
OpenAPI · SDKs openapi.yaml · sdk/ — Go and TypeScript
Security SECURITY.md · docs site

Maturity

Yard tracks its scope as sixteen programs, each marked Have, Partial or Planned in docs/PHASES.md, with a Have / Partial / Later feature catalog in docs/ROADMAP.md.

Mode What it means
YARD_MODE=demo (default) Seeded sample workspace and the public demo login, for evaluation
YARD_MODE=production Refuses to start without YARD_PUBLIC_URL and YARD_SECRET_KEY, refuses the demo login, inserts no sample data
Zyvor connectors Opt-in: sync only when an endpoint and a stored secret are set

Part of the Zyvor stack

Product Role next to Yard
Yard Asset registry, sites, telemetry, incidents and work orders
Zyvor Device Agent Hardware discovery, health and local diagnostics; reaches Yard through the Device Agent gateway
Nodra Edge runtime that interprets protocols; the Nodra connector pulls decoded telemetry and twins into Yard
Fleet Owns desired state; the Fleet connector shows lifecycle, rollout and OTA-device progress
Zyvor OTA Signed device updates; the OTA connector lists campaigns while execution stays in OTA

→ zyvor.dev


License

Yard is free and open source under the Apache License, Version 2.0. You may use, modify, and run it for personal, lab, and commercial production use at no charge, subject to Apache-2.0 (preserve notices / NOTICE where required).

Zyvor Enterprise adds what production teams ask for: supported releases, deployment and upgrade guidance, priority incident triage, a named technical contact and 24x7 critical intake. Production support, SLAs, and Zyvor Enterprise products are licensed separately. Plans and terms: docs/SUBSCRIPTION-MODEL.md · Pricing · [email protected].

Report vulnerabilities per SECURITY.md. Contributions: CONTRIBUTING.md.


Put every asset, incident and work order in one place

Book a demo 30-day PoC Pricing Contact sales Star on GitHub

About

Yard — open asset and operations platform (Apache-2.0)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages