Skip to content

Latest commit

 

History

History
139 lines (95 loc) · 5.8 KB

README.md

File metadata and controls

139 lines (95 loc) · 5.8 KB

UpdateHub logo CI FOSSA Status


UpdateHub is an enterprise-grade solution which makes simple to remotely update all your Linux-based devices in the field. It handles all aspects related to sending Firmware Over-the-Air (FOTA) updates with maximum security and efficiency, while you focus in adding value to your product.

To learn more about UpdateHub, check out our documentation.

Features

  • Yocto Linux support: Integrate UpdateHub onto your existing Yocto based project
  • Scalable: Send updates to one device, or one million
  • Reliability and robustness: Automated rollback in case of update fail
  • Powerful API & SDK: Extend UpdateHub to fit your needs

UpdateHub Community Edition

This is a community edition of UpdateHub Cloud, so the core concepts and functionality is identical.

See the comparison table below to help you to choose which version fits you need:

Feature UpdateHubCE UpdateHubCloud
Secure communication (HTTPS, CoAP over DTLS)
Signed packages
Rollouts
Large scale rollouts
Multiple organizations
Fully monitored updates
Teams
HTTP API
Package upload
Multiple products
Advanced device filter
Multiple users

Usage

The easyest way to run a Updatehub CE server is to run a Docker image to start a ready-to-use server.

$ docker run updatehub/updatehub-ce --help
Usage:
  updatehub-ce [flags]

Flags:
      --db string         Database file (default "updatehub.db")
  -h, --help              help for updatehub-ce
      --password string   Admin password (default "admin")
      --port int          Port (default 8080)
      --username string   Admin username (default "admin")

Example:
docker run -d -p 8080:8080 updatehub/updatehub-ce:latest

On the example above, a Docker image will be automatically downloaded and run on 8080 port. Now you can access the UpdateHub CE dashboard through the host IP on your web browser.

http://<Host_IP_Address>:8080/

The default login and password is admin.

Building

If you want to build updatehub-ce by yourself, follow these steps:

The updatehub-ce uses go mod to manage its dependencies and yarn to build the web UI for the server. go mod should be included in your default instalation of the go toolchain.

You can refer to yarn's documentation page for informations on how to install it in yor system: https://classic.yarnpkg.com/en/docs/install/

After that, need to install packr that is a simple solution for bundling static assets inside of Go binaries use by updatehub-ce.

To install Packr utility and the dependencies:

$ go install github.com/gobuffalo/packr/v2/packr2@latest

Finally, you can build updatehub-ce as:

$ cd <YOUR-UPDATEHUB-CE-PATH>/ui/ && yarn install && yarn run build && cd ..
$ ~/go/bin/packr2 install
$ go build
$ go install

Now you can run the updatehub-ce as:

~/go/bin/updatehub-ce --http 8080

Yocto Project

To integrate updatehub to an Yocto image, you need inherit the updatehub-imageclass from meta-updatehub. Also some variables must be set to work properly.

Add these variables to conf/local.conf:

UPDATEHUB_SERVER_URL = 'http://<Host_IP_Address>:8080'
UPDATEHUB_POLLING_INTERVAL = '1m'
  • UPDATEHUB_SERVER_URL will point to the updatehub-ce IP address. If you don't set this variable, your updatehub agent will not communicate with your updatehub-ce server, but with Updatehub Cloud instead.
  • UPDATEHUB_POLLING_INTERVAL will set the interval between each polling between the agent and the server. If you don't set this variable, your updatehub agent will poll every 24 hours.

If you are not familiar with it, you can read the Yocto Project Reference or a quick start example.

Contributing

UpdateHub is an open source project and we love to receive contributions from our community. If you would like to contribute, please read our contributing guide.

License

UpdateHub Community Edition is licensed under the MIT license. See LICENSE for the full license text.

FOSSA Status

Getting in touch