---
title: Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop
slug: launching-urbit-on-windows
channel: archive
publishedAt: 2021-09-24
excerpt: Step-by-step guide to launching Urbit on Windows 10 through Docker desktop. ETA: 30 minutes.
author: Remilia Jackson
tags:
  - Guide
  - Essay
  - RemiliaNET
canonical: https://remilia.org/blog/archive/launching-urbit-on-windows
---

Step-by-step guide to launching Urbit on Windows 10 through Docker desktop. ETA: 30 minutes.

Materials taken from [subject.network](https://subject.network/)'s guides ([WSL2](https://subject.network/posts/urbit-wsl2/), [Docker](https://subject.network/posts/urbit-windows-docker/)), compiled together and reformatted for clarity.

### What is Urbit?

[Urbit](https://urbit.org/) is:

- an open source platform for sovereign personal computing
- a new internet from first principles
- an archipelago of hypercultures

You can read more details [here](https://subject.network/posts/urbit-introduction/), or in the [official documentation](https://urbit.org/docs/).

![Landscape ~ Urbit's Desktop Environment](https://cdn.sanity.io/images/8x9419lh/production/0b0ecfab881b81126547c3adb4609f62b0228711-1600x1600.png?auto=format "Landscape ~ Urbit's Desktop Environment")

Installing Urbit on Windows

Steps:

- Install WSL2 Ubuntu
- Install Docker Desktop
- Install Urbit
- Booting up Urbit

> Note: Urbit is ideally run on an always-on server. Running it on a personal machine that's not always online should only be for playing around and testing, but if you're serious about using Urbit and don't have a server at home, I would recommend a cloud installation. This can be done for [$10/mon on Digital Ocean](https://blog.urbit.live/hello-world-urbit-edition/), or free on Oracle Cloud S3.

## Install WSL2 Ubuntu

### Check/Update Windows 10 Version

You will need to make sure your Windows 10 installation is updated to at least version **1903** build **18917**. You can check your Windows version by opening `Settings > About`:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/3b9d96a99800e79bf2a156aa5c2cdb8a1a5ffe9c-600x129.png?auto=format)

If your version is too low, you will need to update. Head here and use Microsoft’s installer:

[https://www.microsoft.com/en-us/software-download/windows10](https://www.microsoft.com/en-us/software-download/windows10)

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/94b9917bca0fd85718daf78d8a02e1155a65b9fa-600x304.png?auto=format)

This may take a while, up to a few hours.

### Enabling WSL

Once your update has completed, launch PowerShell. You can click the start button and start typing ‘powershell’; be sure to run it as an administrator.

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/053f8c7e404856f5d1bbf7f522605c10fb77a5b5-600x209.png?auto=format)

Right click on the PowerShell window and paste this into it:

```PS C:\> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart```

Press enter to enable WSL1:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/7c0b491add9fbe00c132b0d7055d5cd2ca95b8ec-600x296.png?auto=format)

Now paste this command into PowerShell to enable virtualization (necessary for WSL2):

```PS C:\> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart```

Now you must restart your computer.

When you’re back up, install this WSL update:

[https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/ded2cb98e561201f7cff5aeb3a837e557d21ea6f-600x330.png?auto=format)

Once this installation is complete, your computer is able to run WSL2.

> Note: if you would like to run Urbit directly on WSL2 Ubuntu instead of Docker Desktop, continue with the steps on [this guide starting at Running WSL2](https://subject.network/posts/urbit-wsl2/#running-wsl2). 

## Installing Docker Desktop

### Install Winget

Before we install Docker, we'll need a couple Windows tools.

First, install the [App Installer](https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1) package in the Windows Store if you don't already have it.

Next, we will install `winget`. Navigate to [microsoft/winget-cli/releases](https://github.com/microsoft/winget-cli/releases), find the dropdown for "Assets", and select the ~20MB download link for the file ending in `.msixbundle`:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/ebc1fc9985d83d7f9006fee0ef7e942d5b4dba20-1503x547.png?auto=format)

Open the `Microsoft.DesktopAppInstaller...msixbundle` file from your Downloads, and then hit update to install `winget`:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/60e09bcb58831ac07343c8196e399c51b8ef3ebd-977x616.png?auto=format)

### Install Docker Desktop

Open up the command prompt. You can click the start button and start typing ‘cmd’ to find it:

\[ SSHOT missing]

Run the following command:

```winget install docker```

You should see the bar progress for a minute or two while it installs.

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/af5a71013e9cc51282aafcc84e269928b8e0a8c1-863x132.png?auto=format)

Once it’s completed, restart your computer.

## Installing Urbit

Open up your start menu and you should see a new entry for Docker Desktop:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/298927325243fa961d7158d4a4a8180845210893-622x231.png?auto=format)

Go ahead and open it.

Now, return to the command prompt, and run the following command:

```docker volume create urbit```

Now open up a folder, and navigate to this path by pasting the address into the bar:

`\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\urbit\_data`

Now create an empty file named with the extension `.comet` – for instance, `mycomet.comet`. This will tell Docker create a comet with the name `mycomet`.

The easiest way to create a blank file is to right click an empty spot in the folder, select ‘New’, ‘text file’, and rename the file it creates to get rid of the `.txt` extension. You will need to enable visible file extensions if you haven’t already:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/7b8c919246471dfdf54d484ef6287fbd3643f9ca-605x225.png?auto=format)

if you already have a planet and want to boot it for the first time, you can paste the keyfile from Bridge in here instead. If you want to move an existing ship, shut your ship down and copy the pier directory into this folder instead. Either way, I recommend booting a comet first, to make sure everything works right.

Before we boot, let’s forward the port it’s going to use. This will allow your ship to have direct connections with other ships, instead of routing the connections through other nodes.

The Docker image uses UDP 34343 by default – go ahead and forward that port on your router to the device running your ship (make sure it’s UDP!). There’s no single standard way to forward ports on different kinds of routers, but you can find generic instructions [here](https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/) if you have trouble.

## Booting up

Open another command prompt and paste the following command into it:

cmd.exe:

```docker run -p 80:80 -p 34343:34343/udp -it --restart always --mount type=volume,source=urbit,destination=/urbit --name urbit tloncorp/urbit```

You should see the urbit process start up and mine an identity, then download and compile its source code.

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/d0b35540b53841114462131cc8018c5f062c23a5-642x197.png?auto=format)

That’s it! You’ve booted you ship and are ready to explore the network.

Type `+code` into the urbit command line, and copy the four word password it generates by highlighting and right clicking.

Open your web browser and navigate to `http://localhost`:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/a44d21f94e1cc62489e610bb2f7fec064bad9026-885x524.png?auto=format)

Log in by pasting the password.

If you’re brand new to the network, here are a couple of good groups for beginners to join:

AddressDescription~bitbet-bolbel/urbit-communityThe biggest group on the network, filled with cool resources~bollug-worlus/urbit-indexContains a notebook called ‘Directory’ with a list of public groups you can join~matwet/networked-subjectThe group associated with this blog – feel free to say hi, ask questions or give feedback

Big thanks again to `~botter-nidnul` for the [original tutorial](https://gist.github.com/botter-nidnul/bc55769afe006de6f93b27390e5d1267) and his help and feedback with drafting this!

## Misc & troubleshooting

- You can detach from the command line running your ship by pressing `ctrl-p`, `ctrl-q` – this lets you close the command prompt without exiting the process. You can reattach to it with `docker attach urbit`.
- You can tell Docker to automatically run on startup by going to the configuration menu:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/bdc141a961915d9978e8240d351dcd96f753615d-1101x565.png?auto=format)

- You can install a container for Watchtower that will automatically update your containers for you with this command:

```docker run -d --restart always --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower```

- You can turn your container on and off inside the Docker Desktop app:

![Illustration for Urbit for Normies: Installing Urbit on Windows 10 with Docker Desktop](https://cdn.sanity.io/images/8x9419lh/production/a6a44dc09e017df9f18c858dc94849d17dbfb0c6-1567x223.png?auto=format)

- If your urbit won’t restart, check out [~botter’s](https://gist.github.com/botter-nidnul/bc55769afe006de6f93b27390e5d1267#possible-errors) solution for deleting the `.vere.lock` file inside your `\urbit\_data` folder.
