nbpr

The library underpinning the NBPR (Nerves Binary Package Repository) ecosystem — a curated Hex repo for distributing Buildroot-built target binaries to Nerves firmware projects. :nbpr itself ships only the macros, Mix tasks, and resolver machinery; the binaries live in sibling :nbpr_* packages published to the nbpr Hex organisation.

What it does

Consumer flow

:nbpr lives on public hex.pm. The :nbpr_* binary packages live in the nbpr Hex organisation; authenticate once per machine with the public read key:

mix hex.organization auth nbpr --key 15da04a2330d881e1301a73c5d39f591

The key is read-only and intentionally public — it gates package fetches without gating discoverability. Don't use it for publishing (it has no publish scope).

Then in your Nerves app's mix.exs:

defp deps do
  [
    {:nbpr, "~> 0.2"},
    {:nbpr_jq, "~> 1.0", organization: "nbpr"}
  ]
end

and alias mix firmware:

aliases: ["firmware": ["nbpr.fetch", "firmware"]]

mix deps.get + mix firmware work as normal from there.

For daemon-bearing packages (e.g. :nbpr_dnsmasq), add the generated daemon module to your supervision tree — see each package's README and generated @moduledoc for specifics.

Repo layout

The full source — including all currently published packages — lives at https://github.com/jimsynz/nbpr.

Licence

Apache-2.0.