Nerves Pack

This library is a compilation of dependencies and default configuration for getting a Nerves project up and running with minimal work. Essentially nerves_init_gadget 2.0 to work with new networking libraries and practices.

When added to your project, the following services are enabled by default:

  • Networking - Utilizes VintageNet. Ethernet, WiFi (without networks), and USB Gadget are started by default if a supporting interface is discovered on the device
  • mDNS - via MdnsLite. Supports nerves.local and the default hostname (i.e. nerves-1234.local) This is also configurable to other hostnames as well.
  • WiFi Setup Wizard - Utilizes VintageNetWizard to set device to AP host mode which provides a website for configuring WiFi networks from a browser. This is enabled by default if wlan interface is available but not configured previously or by config.exs. See vintage_net_wizard library for more info.
  • SSH - Includes SSH access, firmware updates over SSH, and SFTP
  • Circuits GPIO - Interfacing with GPIO via circuits_gpio

Installation

def deps do
  [
    {:nerves_pack, "~> 0.1.0"}
  ]
end

This will start NervesPack and all its services with your application. However, since it controls the networking and SSH interface, it is recommended to use it with shoehorn to start it up separately so you still have access to your device in the event that the main application fails. This can be done by adding to your config.exs

config :shoehorn,
  init: [:nerves_runtime, :nerves_pack],
  app: Mix.Project.config()[:app]