Date: Mon, 13 Sep 2021 16:50:22 -0700
From: Bret Victor
Subject: Installation Kit
I'm happy to announce that our last remaining github repo, realbox-setup, has been obsolesced.  Our installation procedure is now kept entirely in Realtalk.  Here is Installation Kit:



The "Installation instructions" page tells you what to do to set up a new dynabulb, including some dynamic instructions:



There's a tool that downloads the latest Arch installer ISO and makes the thumbdrive.  It requires a single unmounted removable drive to be attached to your (existing) dynabulb.



Once you've booted from the thumbdrive and typed in the given commands, there are exactly two questions to answer: the name of the new dynabulb, and the password.



Once you've given answered the questions, it will go through the entire installation procedure (even rebooting into user dynamic for part 3) without human intervention.  It'll take a few minutes, depending on internet speed.

At the very end, you'll be asked to sign into Tailscale using your laptop.  Once you've done that, press enter to start the new Realtalk.  Once it's set itself up, press control-C to reboot, and you'll have a fully-functional dynabulb, ready for calibration.



How it works:

"Installation Kit" is a web directory, which means that the pages it collects appear as files at http://dynabulb4.local/Install/ (or wherever).  The commands in the instructions get you on the same wifi network (if not on ethernet), and then they download and run the part1.sh bash script.

The parts are similar to before:  part 1 runs as root off of the thumbdrive, part 2 runs as root off of the hard drive,  and part 3 runs as user dynamic.  A difference is that we reboot after part 2 and run part 3 after autologin.  (Before, we were trying to do it without rebooting, but there were problems.  I think NetworkManager couldn't start up, we couldn't add the printer, etc.)

The detritus files (git-config, etc) are curl'd from the web directory as needed.  I've reduced the detritus a bit by inlining the minor/small files in the shell scripts.

A lot of part 3 is installing packages, and a lot of those packages really should be installed at runtime instead of at setup time, so when we add a new dependency, all of the dynabulbs update themselves automatically.  That's a project for another day.

It feels really good to finally hold all these files in my hand, and see them with my eyes!