Skip to main content
NervesHub is an open-source firmware update and device management platform built specifically for Nerves IoT devices. It gives your team a reliable, secure pipeline for shipping firmware updates over the air, monitoring the health of your device fleet, and accessing individual devices for debugging — whether you’re managing a handful of prototypes or hundreds of thousands of production units.

Why NervesHub

IoT firmware management is deceptively hard. Devices are often deployed in locations you can’t physically reach, running software that must be updated without breaking anything, on hardware that may have constrained connectivity. NervesHub is designed to solve exactly these problems:
  • Reliable OTA updates — firmware is cryptographically signed and verified on the device before applying, so a corrupted or tampered image is never applied.
  • Safe rollouts — deployment groups target devices by tag and version condition, with configurable concurrency limits and automatic failure thresholds to stop a bad update from spreading.
  • Remote access — connect to a live IEx console or remote shell on any device in your fleet without a VPN or physical access.
  • Fleet visibility — track device health metrics (CPU, memory, load), firmware versions, and online/offline status across your entire fleet in real time.
  • Flexible authentication — choose from Shared Secret (great for getting started), X.509 device certificates (production-grade mTLS), or NervesKey hardware-backed security.

Deployment Options

NervesHub is Apache-2.0 licensed with no vendor lock-in. You can run it yourself or use the managed cloud service.

NervesCloud (Managed)

The fastest way to get started. NervesCloud is a fully managed NervesHub service hosted at manage.nervescloud.com. No infrastructure to provision — sign up and start managing devices in minutes. Devices connect to devices.nervescloud.com.

Self-Hosted (Open Source)

Run NervesHub on your own infrastructure for full control. The server is a standard Phoenix/Elixir application deployable on any cloud or on-premises environment, backed by S3-compatible object storage.

Key Capabilities

Signed OTA Updates

Every firmware file is signed before it is published. Devices reject any image that fails signature verification, protecting your fleet from tampered or corrupted updates.

Delta Updates

Reduce bandwidth and update time with binary delta updates. For fwup firmware the server builds the diff with xdelta3, so only the changed bytes are transferred — a large saving on constrained connections.

Remote Console

Open a live IEx session or shell directly on any connected device from the NervesHub UI or CLI. Inspect state, run diagnostics, and debug production issues without physical access.

Fleet Health Monitoring

Collect CPU, memory, load average, and custom application metrics and alarms from every device. Identify unhealthy devices at a glance and drill down to individual device telemetry.

Flexible Authentication

Start fast with Shared Secret auth using a product key and secret. Upgrade to X.509 device certificates for production mTLS, or use NervesKey (ATECC508A/608A) for hardware-backed identity.

Scalable Architecture

NervesHub is proven at 400,000+ devices per instance. Devices connect over Phoenix WebSocket channels, and the server scales horizontally with standard Elixir clustering.

Open Source and No Vendor Lock-in

NervesHub is released under the Apache License 2.0. The full server source code, device client library, and CLI are all open source. If you start on NervesCloud and later want to migrate to self-hosted (or vice versa), your devices, firmware, and deployment configurations go with you — there is no proprietary lock-in.
NervesCloud is the quickest way to evaluate NervesHub and get your first device online. Head to manage.nervescloud.com to create a free account.