How to install Urbit on a $5/month Linode VPS

H

This guide assumes you have purchased or acquired an urbit planet or star and you would like to set it up on a cloud VPS so it is always on.

Step 1: Create a Linode VPS

Visit Linode and sign up for an account.

Options:

  • OS: Ubuntu 20.04 LTS
  • Region: Nearest to you
  • Plan: Nanode 1GB
  • Label: *your planet name*

Step 2: Generate your key file on Bridge

There are a few ways to acquire a planet. All methods, however, should result in you receiving at least one secret, such as a master ticket. If you received an email invite to Urbit, the master ticket should be a .pdf file in the passport folder inside the archive that you downloaded. If you bought your planet on an exchange or someone sent it to you you do not have a master ticket.

  1. Connect to Bridge.
  2. Enter the name of your planet and the associated master ticket in the appropriate fields if you have a master ticket. Click the "Metamask, Mnemonic, Hardware Wallet..." button if you do not have a master ticket and want to use a plain ethereum address, metamask, or a trezor/ledger.
  3. Once you're logged in, click the "OS" option.
  4. In resulting page, click the "Download Arvo Keyfile" button. If this is grayed out, click on "Reset Networking Keys", then click on "Reset Networking Keys" on the following page, validate the transaction using your wallet, and then click Send Trasaction (This will use gas). Note, you can chose to "breach continuity" or not, it doesn't matter.
  5. You should now be able to "Download Arvo Keyfile" and receive a .key file that contains the secret needed to boot your ship.

Step 3: Upload your keyfile to your new VPS

  1. Go to the Network tab in Linode and get the IP address of your VPS
  2. Use an FTP utility to upload the keyfile (ends in .key) to your new VPS I recommend FileZilla.

Step 4: Connect to your VPS

You need to get command line access to your VPS. If you run Linux just use:

ssh [email protected]_ip_address

I am on Windows and I use a small utility called Putty.

Step 5: Configure the VPS

sudo apt-get update
wget --content-disposition https://urbit.org/install/linux64/latest
tar zxvf ./linux64.tgz --strip=1
rm linux64.tgz
chown -R root:root urbit

Everything that follows creates a 2GB swap file for the $5/month Linode VPS. If you have 2G of available memory, this is unneccesary.

  sudo fallocate -l 2G /swapfile
  sudo chmod 600 /swapfile
  sudo mkswap /swapfile
  sudo swapon /swapfile
  sudo cp /etc/fstab /etc/fstab.bak
  echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Step 6: Boot your Urbit

./urbit -w planetname -k /path/to/keyfile.key

You can also open the .key file and copy the key from it and type it into the boot command directly:

./urbit -w planetname -G 0w2~Wsd.isle8.YFYUg.PHjqh.SyuLd.POEsn.j3T7s.ls8g2.Adifl.Tis2s.lse9g.asd45.JO-jL$

Do not include the tilde (~) on your planet name. It will take a while to boot (10 minutes)? After it boots you will get a dojo prompt, and then you will probably see a bunch of "behn" which means your planet is downloading updates. It could take a day or two to download all of the updates.

Test it by typing (dopzod is another star)

|hi ~dopzod
hi ~dopzod successful; 
~dopzod is your neighbor

And by the way, grab your passcode so you can log into the web interface of your Urbit.

 +code

Step 7: Shut down your Urbit

ctrl-d

Step 8 Restart your Urbit within a screen

A screen will allow you to keep your urbit running if you exit your shell (putty) session.

screen -S name_of_the_screen

Name it whatever you want. Now restart your Urbit. Restarting an Urbit uses an abbreviated command:

./urbit planetname

Again, leave off the tilde (~). Now you can close the screen (Urbit will continue running)

ctrl-a d

When you want to open the screen again, just use:

screen -r

Step 9: Save and/or delete your keyfile

Once your Urbit has been started the first time, you don't need your keyfile anymore, unless for some reason you need to reinstall using new binaries. You can either save it in a safe place or delete it. If you need it again it can always be re-downloaded from Bridge.

Optional Troubleshooting step

When you start your Urbit, sometimes it takes a while to download all of the network updates. However, if you find that things aren't really working after waiting a while it MAY be that your sponsoring star or galaxy isn't passing you updates. Try typing this at the dojo prompt, which will tell your urbit to get updates from an authoritative star (Only do this if you are not getting updates).

For planets:

|ota (snag (~(rad og eny) 5) `(list @p)`~[~wanzod ~marzod ~binzod ~litzod ~samzod]) %kids

For stars:

|ota ~zod %kids

Also, if your ship seems slow or like it's not communicating, your urbit might be slow because your ames port is firewalled or behind a router/NAT. The next release of urbit-king will have automatic NATPMP port forwarding, but right now you need to do it manually. Start your urbit with the -p flag to specify the UDP port ames will bind to (eg urbit -p 32123 name-of-comet) then forward that UDP port to your device or open it in your firewall.

./urbit -p 32123 planet_name

Other Resources

How to set up a domain name for your Urbit: https://urbit.org/using/operations/hosting/

About the author

Jeremy Tunnell
I study Integral Theory and Zen Buddhism at Integral Zen.

Comments

Get in touch

You can reach Jeremy at [email protected]