# nerves_hub_link v2.10.2 - Table of Contents Manage your Nerves fleet by connecting it to NervesHub ## Pages - [NervesHubLink](readme.md) - [Changelog](changelog.md) - Guides - [Configuration](configuration.md) - [Extensions](extensions.md) - [Debugging](debugging.md) ## Modules - [NervesHubLink](NervesHubLink.md): The Device-side client for NervesHub. - Client - [NervesHubLink.Client](NervesHubLink.Client.md): The primary integration point for customizing your applications connection with [NervesHub](https://github.com/nerves-hub/nerves_hub_web). - [NervesHubLink.Client.Default](NervesHubLink.Client.Default.md): Default NervesHubLink.Client implementation - Configuration - [NervesHubLink.Configurator](NervesHubLink.Configurator.md): Behaviour for implementing a configurator. - [NervesHubLink.Configurator.Config](NervesHubLink.Configurator.Config.md): Data structure for holding configuration information provided by the configurator. - [NervesHubLink.Configurator.LocalCertKey](NervesHubLink.Configurator.LocalCertKey.md): Configurator allowing authentication via locally stored certificate key. - [NervesHubLink.Configurator.NervesKey](NervesHubLink.Configurator.NervesKey.md): Configurator enabling authentication via NervesKey. - [NervesHubLink.Configurator.SharedSecret](NervesHubLink.Configurator.SharedSecret.md): Configurator allowing authentication with a shared secret. - [NervesHubLink.Configurator.TPM](NervesHubLink.Configurator.TPM.md): Configurator enabling authentication via TPM. - [NervesHubLink.FwupConfig](NervesHubLink.FwupConfig.md): Config structure responsible for - Extensions - [NervesHubLink.Extensions](NervesHubLink.Extensions.md): Extensions are a mechanism for transmitting messages for non-critical functionality over the existing NervesHub Socket. An extension will only attach if the server-side requests it from the device to ensure it will not disrupt regular operation. - [NervesHubLink.Extensions.Geo](NervesHubLink.Extensions.Geo.md): The Geo Extension. - [NervesHubLink.Extensions.Geo.DefaultResolver](NervesHubLink.Extensions.Geo.DefaultResolver.md): Default `Resolver` implementation. - [NervesHubLink.Extensions.Geo.Resolver](NervesHubLink.Extensions.Geo.Resolver.md): Geo extension behaviour for writing custom resolvers. - [NervesHubLink.Extensions.Health](NervesHubLink.Extensions.Health.md): The Health Extension. - [NervesHubLink.Extensions.Health.DefaultReport](NervesHubLink.Extensions.Health.DefaultReport.md): A default health report implementation with support for easily adding new metadata, metrics and such via config. - [NervesHubLink.Extensions.Health.DeviceStatus](NervesHubLink.Extensions.Health.DeviceStatus.md): Structure for device status. - [NervesHubLink.Extensions.Health.MetricSet](NervesHubLink.Extensions.Health.MetricSet.md): Behaviour for implementing a custom metric set to be used in a report. - [NervesHubLink.Extensions.Health.MetricSet.CPU](NervesHubLink.Extensions.Health.MetricSet.CPU.md): Health report metrics for CPU temperature, utilization, and load averages. - [NervesHubLink.Extensions.Health.MetricSet.Disk](NervesHubLink.Extensions.Health.MetricSet.Disk.md): Health report metrics for total, available, and used disk space. - [NervesHubLink.Extensions.Health.MetricSet.Memory](NervesHubLink.Extensions.Health.MetricSet.Memory.md): Health report metrics for total, available, and used (percentage) memory. - [NervesHubLink.Extensions.Health.MetricSet.NetworkTraffic](NervesHubLink.Extensions.Health.MetricSet.NetworkTraffic.md): Health report metrics for bytes sent and received (total) per interface. - [NervesHubLink.Extensions.Health.Report](NervesHubLink.Extensions.Health.Report.md): Behaviour for implementing a custom health report. - [NervesHubLink.Extensions.LocalShell](NervesHubLink.Extensions.LocalShell.md): Provides an interactive local shell for NervesHub to connect to. - Downloads and Updates - [NervesHubLink.ArchiveManager](NervesHubLink.ArchiveManager.md): GenServer for handling downloading archives from NervesHub - [NervesHubLink.Downloader](NervesHubLink.Downloader.md): Handles downloading files via HTTP. - [NervesHubLink.Downloader.RetryConfig](NervesHubLink.Downloader.RetryConfig.md): Download retry configuration. - [NervesHubLink.UpdateManager](NervesHubLink.UpdateManager.md): GenServer responsible for brokering messages between: * an external controlling process * FWUP * HTTP - [NervesHubLink.UpdateManager.CachingUpdater](NervesHubLink.UpdateManager.CachingUpdater.md): This module orchestrates firmware updates by downloading the firmware from the specified URL and storing it in a cache directory before applying it. If a partial download exists, it resumes from where it left off. - [NervesHubLink.UpdateManager.StreamingUpdater](NervesHubLink.UpdateManager.StreamingUpdater.md): This module is responsible for updating firmware using a streaming approach. It uses the `NervesHubLink.Downloader` module to download the firmware and then sends the chunks to the `Fwup` module to update the firmware. - [NervesHubLink.UpdateManager.Updater](NervesHubLink.UpdateManager.Updater.md): A behaviour to help orchestrate the complete workflow of downloading and installing/applying firmware updates. - NervesHub Messages - [NervesHubLink.Message.ArchiveInfo](NervesHubLink.Message.ArchiveInfo.md): Payload received from NervesHub when an archive is available. - [NervesHubLink.Message.FirmwareMetadata](NervesHubLink.Message.FirmwareMetadata.md): Detailed firmware metadata received during the firmware update process. - [NervesHubLink.Message.UpdateInfo](NervesHubLink.Message.UpdateInfo.md): Payload received from NervesHub when an update is available. - Utilities - [NervesHubLink.Alarms](NervesHubLink.Alarms.md): A slim adapter for `Alarmist` and `:alarm_handler`, providing a unified interface for setting and clearing alarms. - [NervesHubLink.Backoff](NervesHubLink.Backoff.md): Functions for computing network connect backoff intervals - [NervesHubLink.Certificate](NervesHubLink.Certificate.md): Certificate management utilities