Best way to pull new firmware OTA into remote devices

Hey - I somehow missed these, so sorry for the late replies.

Here’s the status of NervesHub:

  1. It’s currently in production use by several companies and has been working really well for the past year. There are details since we don’t have all of the features that all of us want for large numbers of devices, but it is possible to work around.
  2. The main programmatic APIs to NervesHub are pretty stable, but we’ve made some large changes to the UI this summer and we plan a few more large ones to improve usability.
  3. Our docs are slowly getting better at https://docs.nerves-hub.org/.
  4. We recently added some opt-in operational support features - like remote login. I.e., click on the device and get an IEx prompt on it.
  5. Work to support billing is in progress. This won’t affect low volume hobbyist/maker use. We have funding to support that use case. This is intended for companies who would prefer to not run their own instance of NervesHub so that we can sustain the service.

One could say that NervesHub is public already - every line of code used by it is open-source. It’s a fairly large Apache 2-licensed Phoenix/LiveView project. Our hosted NervesHub lets anyone register an account (albeit via using mix commands rather than via the web UI). The plan is still to remove the “beta” tag and make our hosted NervesHub look public.

I’d say that if you want to use NervesHub for a commercial device and are comfortable with Elixir tooling that there’s no reason to wait. If your deployment has special needs from the firmware update server that aren’t supported, please check with us. Our hosted NervesHub enforces quotas to keep our costs in line. We’ve been bumping quotas pretty liberally for those who have asked, and once billing is available, you’ll not have to talk with us.

If you’re at a company that is uncomfortable using our hosted NervesHub for firmware updates (no offense taken - my company is one of these), you can setup NervesHub on your own AWS servers. I’m not an AWS person and this doesn’t seem easy to me, but I’m told that if you’re familiar with AWS that it’s ok. We still need to add how to do this to our docs.

Finally, with regard to the security question and SSL settings, both Justin Schneck and I talk with voltone periodically regarding security. I’m sure that we can do better and we’re due for another review. Please DM us or email support@nerves-hub.com, or if it’s proactive/best practice kind of thing, then PRs/GitHub issues would be most appreciated.