Backend CI Frontend CI Coverage

License: Apache 2.0 — apache.org/licenses/LICENSE-2.0

An open-source IoT device fleet management platform built on Astarte. Manage hardware, push firmware updates, track device health, and automate deployments — all through a single GraphQL API.

What Edgehog does

📡

Device management

Register and monitor your entire device fleet. Query real-time status: online/offline state, last-seen IP, cellular connectivity, battery, OS info, and hardware details.

🔄

OTA update campaigns

Create base image collections and roll out firmware upgrades across device groups using campaigns.

📦

Container deployments

Define applications as versioned releases of containers. Deploy, upgrade, start, stop, and delete containerized workloads via deployment campaigns.

📊

Fleet grouping

Tag devices freely and write selector expressions to form dynamic groups that update automatically.

📍

Geolocation

Track device position and location data reported from the field. Query per-device position and last-seen coordinates through the API.

🔗

Remote Forwarding

Request and manage forwarder sessions to tunnel traffic to specific devices for diagnostics and remote access — configurable per tenant.

API reference

Admin REST APIs

Edgehog admin tasks (i.e., managing tenants) are available through a REST API. It supports creating, updating and deleting tenants

Endpoint

http://<your-host>/admin-api/v1/

Replace <your-host> with your Edgehog instance hostname.

Full API docs available here: admin-rest-api

Tenant GraphQL APIs

All Edgehog operations are exposed through a GraphQL API. It supports queries, mutations, and real-time subscriptions.

Endpoint

http://<your-host>/tenants/<your-tenant>/api

Replace <your-host> with your Edgehog instance hostname and <your-tenant> with the slug of your tenant.

Full API docs available here: tenant-graphql-api

Key resources

QueriesQuery your device data.
MutationsMake changes and interact with Edgehog.
SubscriptionsSubscribe to events as they happen.

How to read this documentation

1. Core concepts

Before exploring features or the API, read the Core concepts page. It defines the building blocks (Hardware Types, Devices, System Models, Groups, and Selectors) that all other sections depend on.

2. Follow the feature guides

The sidebar organizes topics from setup (hardware types, system models) to operations (OTA updates, campaigns, container deployments). Work through them sequentially: each guide builds on the vocabulary established by the previous one.

3. Use the API reference for integration work

The GraphQL API reference lists every query, mutation, and subscription with argument types and example payloads. Use it alongside the feature guides when building integrations or automating fleet operations.

4. Note features marked as planned

Sections marked with an asterisk (*) (such as Attributes and Attribute filters) describe functionality planned for a future release. The selector syntax for attributes is already in place, but attribute population is not yet active. Treat these sections as forward reference only.

5. Download or explore offline

An ePub version of the full documentation is available at the bottom of any page. A llms.txt is also provided for machine-readable consumption.