Skip to content
Ben Francis edited this page Dec 15, 2020 · 38 revisions


WebThings Gateway

Build and Release


The new way

This is the process as of 0.12. You can build on either Linux or macOS. You will need the following prerequisites:

  • Docker
  • (On Linux) qemu
  • (On Linux) qemu-user-static
  • (On Linux) binfmt-support
  • (On Linux) you will need the loop kernel module to be loaded, e.g. sudo modprobe loop

After installing the packages above, run the following inside a cloned gateway repo.

cd <gateway>/image

Wait for quite a while. After the process completes, you'll be left with the 4 files required for a release:

  • gateway-<version> - the Raspbian image
  • gateway-<version> - sha256sum of the Raspbian image
  • gateway-<checksum>.tar.gz - gateway tarball used for OTA updates
  • node_modules-<checksum>.tar.gz - node_modules tarball used for OTA updates

To test the Raspbian image, just flash it to an SD card as you normally would. To test the OTA update, you'll need to upload the relevant files to a GitHub release and then follow these instructions.

The old way

The files required for this method don't exist past 0.11, but the instructions should be kept around just in case we need to switch back. It's a non-trivial process.

OpenWrt (old)






External Links and Resources

  • Mozilla Hacks - official blog
  • twobraids - series of posts about the gateway itself and scripts to interact with it
  • YouTube - search for "mozilla iot", "mozilla things", etc.

Environment Setup

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

CC BY-SA 4.0