Skip to content

Easily manage your IoT device fleet with Edgehog at once. Get information on device status, deploy updates, geolocate your devices and much more!

License

Notifications You must be signed in to change notification settings

edgehog-device-manager/edgehog

Backend CI Frontend CI

Edgehog

Edgehog is an Open Source Device Manager Platform designed to manage the entire lifecycle of your IoT device fleet. Built with Elixir and powered by Astarte, it provides a robust, scalable, and secure environment for maintaining connected embedded systems.

From hardware-independent monitoring to remote container management, Edgehog allows you to focus on your core application while it handles the complexities of fleet orchestration.


🚀 Key Features

  • Device Fleet Management: Maintain a bird's-eye view of your entire fleet. Access real-time status, hardware info, OS versions, and telemetry data.
  • Over-the-Air (OTA) Updates: Create and manage software update campaigns. Filter devices by models or tags to roll out updates safely and efficiently.
  • Docker Application Management: Remotely deploy, start, stop, and update Docker containers on your devices.
  • Geolocation: Automatically geolocate devices using GPS data, nearby WiFi signals, or IP-based location services.
  • GraphQL API: Fully programmable platform. Every action available in the frontend can be performed via our GraphQL API.

Edgehog is built on top of Astarte, the Open Source IoT platform. It uses Astarte for secure device communication (MQTT) and data orchestration.

📦 Getting Started

Deployment (Kubernetes)

Edgehog is designed as a cloud-native application. The recommended way to deploy it in production is via Kubernetes.

  1. Images: Container images are available on Docker Hub.
  2. Setup: Refer to the Deployment Guide for detailed instructions on setting up secrets, S3-compatible storage, and ingress.

Local Development

To run Edgehog locally for development:

Prerequisites

  • Elixir 1.19.5 and OTP 28

    Hint: use asdf to install them

    asdf plugin add erlang
    asdf plugin add elixir
    asdf plugin add node
    asdf install
  • PostgreSQL 13+
  • A local or remote Astarte instance

Setup

# Clone the repository
git clone https://github.com/edgehog-device-manager/edgehog.git
cd edgehog

# requires `just` command runner. Takes care of running astarte and postgres trough docker.
just provision-tenant

📱 Device Support

To connect your devices to Edgehog, use one of our supported runtimes:

📖 Documentation

Full documentation, including API references and tutorials, is available at: 👉 docs.edgehog.io

🤝 Contributing

We welcome contributions! Whether it’s bug reports, feature requests, or pull requests, please check out our CONTRIBUTING.md and CODE_OF_CONDUCT.md.

📄 License

Edgehog is released under the Apache 2.0 License. See the LICENSE file for more details.


Built with ❤️ by the Edgehog Community and SECO.

About

Easily manage your IoT device fleet with Edgehog at once. Get information on device status, deploy updates, geolocate your devices and much more!

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 21