Cloud Hosting

The goal of this guide is to have clear and easy to follow best practices for deploying an Urbit node to a server you control in the cloud. Deploying in the cloud allows you to access your Urbit from any device.

Most Urbit users start out running their ship locally on one machine in order to play with it, but this means when your machine is offline your Urbit node is offline too (and can't get updates). You can also only access your Urbit from that one machine.

This guide uses Digital Ocean as the cloud provider, but others can be used.

Create a Digital Ocean droplet

Getting your own domain

Your own domain will make accessing your Urbit a lot easier (it'll also allow you to secure things with a Let's Encrypt cert). Domains are relatively inexpensive and since this guide is about best practices it's a required step.

There are a lot of domain name registrars you can use, this guide suggests From there you can search for and register a domain that you like.

Configuring your domain for your Digital Ocean droplet

Once you've registered your domain you'll need to configure it to use Digital Ocean for DNS. The following steps are done on the Gandi website.

Creating your non-root user

With our domain in place we're now ready to actually log into the box and start to configure the server itself.

Setting up a basic firewall

Continuing to follow the DO docs we're going to configure the ufw firewall.

Note that you can choose any port in place of 34543 for Ames. Just be sure to pass the same port via the -p option when starting your ship.

Installing Urbit

Finally we're ready to install Urbit on your very own server. This part is actually pretty easy, if you haven't installed Urbit locally then the instructions are the exact same as the ones in the Urbit install doc. If you have a local ship already, we're going to install Urbit on the server and then send your local ship up.

Leaving your Urbit running in a Screen session

Finally, to leave your Urbit running after you disconnect we can leave it in a Screen session. This is just a way to leave applications running in the background and then reconnect to them later. Alternatively, the same can be done with tmux.

A lot of the above documentation comes from combining existing resources.

On iOS you can save a website to your homescreen as an icon. If you do this for your Urbit domain it's a little like having it as an app.

If you plan to use Nginx as a reverse proxy for your Urbit, it is important that you include the following settings in your configuration in order to allow the Landscape web client to properly communicate with your Urbit: chunked_transfer_encoding off; proxy_buffering off; proxy_cache off;