# 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
* **SSH** - Includes SSH access, firmware updates over SSH, and SFTP
* **Circuits GPIO** - Interfacing with GPIO via

## Installation

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

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]