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>/apiReplace <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
| Queries | Query your device data. |
| Mutations | Make changes and interact with Edgehog. |
| Subscriptions | Subscribe 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.