Skip to main content
NervesCloud is a hosted, production-grade platform for delivering secure OTA firmware updates and managing fleets of Nerves devices. This documentation covers getting started, common workflows, deeper concepts, and full reference for the CLI and configuration.

Quickstart

Connect a device and ship your first OTA update in a few minutes.

Introduction

What NervesCloud is, what it manages, and how it fits into a Nerves project.

How-to Guides

Step-by-step recipes for products, devices, firmware, and deployments.

CLI Reference

Install the nh CLI and manage devices, firmware, and deployment groups from the command line.

Concepts

Architecture, authentication, deltas, and the ideas behind the platform.

Production Setup

Move from a hobby project to certificate-based mTLS with NervesKey hardware.

Reference

The nh CLI, NervesHubLink config, device socket API, and self-hosting variables.

Signed OTA Updates

Every firmware file is cryptographically signed. Devices independently verify signatures before applying any update.

Delta Updates

Ship only binary diffs between firmware versions — a 58 MB release can shrink to ~100 KB.

Remote Console

Open a live IEx or shell session on any connected device directly from your browser.

Fleet Health

Monitor CPU, memory, load, and custom metrics across your entire fleet with configurable alarms.

Staged Rollouts

Roll a release out in stages — a canary batch, an approval gate, then everything else — with failure limits on each step.

Flexible Authentication

Use Shared Secrets for development, X.509 certificates for production, or NervesKey hardware security modules for maximum security.
1

Add NervesHubLink to your project

Add {:nerves_hub_link, "~> 2.7"} to your Nerves project’s mix.exs and configure it with your product credentials.
2

Install the CLI

Install the nh CLI via Homebrew or the install script, then authenticate with nh user auth.
3

Create a signing key and publish firmware

Run nh key create my-key, build your firmware with mix firmware, then publish it with nh firmware upload.
4

Create a deployment group

Target devices by tag and version, activate the group, and watch your fleet update automatically.