fhunleth

fhunleth

Co-author of Nerves

Introducing NervesHub 2.0

We’re excited to announce that we’re actively working on NervesHub 2.0, an improved version of our IoT device firmware update and management platform for Nerves-based devices. Although NervesHub 1.0 is still available and maintained in the maint-v1.0 branch, we believe 2.0 will enable significant improvements to meet our evolving needs and those of the Nerves community.

Eric Oestrich is leading this effort, with contributions from Jon Carstens, myself, and others. The development is happening in the open, so feel free to check it out and join us on this journey!

Key Goals for NervesHub 2.0:

  1. Self-host: Easily self-host your own NervesHub, especially for small deployments
  2. Scalable to 100Ks of Devices: Addresses performance issues found in real-world NervesHub 1.0 deployments
  3. Simple Rolling Updates: Set up rolling updates directly from the GUI
  4. MQTT Support: Utilize the cloud provider (like AWS IoT) you already have for scalability
  5. Product Environments: Manage fleets of devices at various stages of development
  6. Permission Model: Refocus on environments instead of organizations
  7. Flexible Firmware Push: Push firmware outside of deployments
  8. Improved Health Monitoring: Separate the causes of turning off firmware updates and periodically recheck possible network and power failures
  9. Simplified Code Base: Code deletion, removal of hosted service features, limits, certificate creation (no nerves_hub_ca), and more

This work is not complete, but we have made enough progress that it no longer makes sense to keep it to ourselves. For more details, visit the nerves_hub_web repository on GitHub.

Thank you for your continued support, and stay tuned for more updates on NervesHub 2.0!

Most Liked

jjcarstens

jjcarstens

Nerves Core Team

Yep. It’s an IEx console in the browser to that specific device if the feature is enabled

jjcarstens

jjcarstens

Nerves Core Team

The GitHub model of org/repo made sense when NervesHub was potentially a public service with a paid model. With 2.0, the shift is towards self hosting and when it’s your own service, the typical concern is usually just the “environment”, or “This is a prod|dev|qa device”.

So the new model is essentially having a single level of separation (dev, qa, prod, testing, etc), rather than the dual (org1-product1, org1-product2, etc etc)

steffend

steffend

Phoenix Core Team

Oh I love that! I really like working with nerves, but looking at the current NervesHub deployment always kept me from using it for hobbyist projects. Very excited for this. Maybe I can finally move some stuff from Balena to Nerves while still having easy multi device management.

Where Next?

Popular in News & Updates Top

zachdaniel
Had a great time at Jax.Ex! Gave a talk called “Model your Domain, Derive the Rest”. Thanks to the folks at HashRocket for having me!
New
bartblast
Hologram v0.6.0 is here, bringing production-ready features to the full-stack Elixir web framework! This release focuses on enhanced secu...
New
zachdaniel
Hey folks! We’ve just released the beta 0.1.0 version of ash_sqlite. Take a look at the guide here: https://hexdocs.pm/ash_sqlite/get-sta...
New
bartblast
Hologram v0.9 is out! The headline is a realtime layer - your server can now push updates to connected clients with no polling: broadcast...
New
bartblast
Hi friends, I wanted to share an update on Hologram that’s been on my mind lately. After nearly 3 years of full-time work on Hologram, ...
New
zachdaniel
Hey folks! In order to give the new AshSqlite a trial run and make sure its got some real usage, AshHq’s multi-package search has been re...
New
mickel8
Hello everyone! :wave: I am thrilled to announce a new version of Jellyfish Media Server - v0.2.0! :tada: Features: Added RTSP compon...
New
zachdaniel
Ash and AshPostgres generators/installers, built with igniter are available on main! I’ll be very grateful to anyone willing to give the...
New
zachdaniel
@jimsynz just launched an epic new extension for Ash! It allows you to create rich mix tasks for calling your resource actions directly f...
New
sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41539 114
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
marick
I had some trouble figuring out how to make many-to-many associations work. Once I got it working, I wrote a blog post. Because I’m a nov...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement