Fork me on GitHub

We are designing the upgrade mechanism for:

  • Efficiency - We use next level technology git to manage the entire root filesystem (this is awesome btw)
  • Allow Webconverger Limited the business to move to a subscription model

We are super sensitive about your privacy, yet initially we need to collect some more information from daily build testers to ensure this technique works. Ultimately we want to share our approach here to make the "chroot on git" idea take hold amongst Linux distributions. Therefore the hope is as a developer in the near future you can use our technology to point to your own curated chroot.

The upgrade features requires a hard drive install

Webconverger's install makes several assumptions and uses its own lightweight install script to install onto a writable /dev/sda. This typically is the first hard drive in your PC.

WARNING: Installing Webconverger will irrevocably replace your hard drive contents.

Known issues: No wireless setup on installs, until configured (see updates.sh)

How upgrades might work (ALPHA)

The partition has a /.git/ directory pointing to the same Webconverger chroot maintained publicly on github. Using git gives us several advantages:

  • We can easily check the integrity of the filesystem, good for security
  • Git is fast & efficient for upgrades, also good for security

Upgrade process

Webconverger uses git to maintain the installed filesystem.

Commits tagged with the following format list the known working git refs

  • booted-$(date --rfc-3339=seconds | tr ' ' T)

The update service must:

track the remote branch
while true; do
    sleep 8+rand hours
    if working commit not tagged
        create tag
    if is in sync with remote
        continue
    git fetch updates
    reboot
done

the booting initrd must:

merge those updates into the filesystem
run the scripts in /.git-fixups/*
validate the new filesystem
pivot to the new filesystem

updates.sh and configuration

If enabled (noupdates is omitted) updates.sh is a simple and powerful mechanism to:

  • run signed shell code as root as the machine boots (this should not be normally needed for Community uses, however it will be enabled until we are happy with the install)
  • setup the machine with a custom configuration, for paying users we plan to use the mechanism to maintain their configuration

update logging

We are logging script output with https://github.com/Webconverger/logs

We will make it so that only Webconverger can see the logs atm, however to be clear for privacy, these logs will not contain any personal information.

Currently we plan to use a machine UUID and MAC to track individual machines.

Your feedback and support is much appreciated

We believe we are doing something new and exciting in the operating system space. Over the Web we are hoping to configure and update customers kiosk devices, optionally offering logging and management services.

For the community we will provide an unconfigured secure stock Web kiosk with the default homepage without the updates.sh script that is reliably upto date and publicly accountable to its chroot on github.

If we missed something please kindly let us know: feedback2012@webconverger.com Thank you!

Many thanks to Anselm Garbe for his comments.