Quick Start

Windows 10 in Your
Browser in 5 Minutes

Watch the video guide, then follow the steps below to spin up your free Windows environment on GitHub Codespaces.

PC-Free — Run Windows 10 Free in Your Browser
Watch on YouTube · Full tutorial

Then follow the step-by-step guide below

Step-by-Step Guide
GitHub
Create your repository & Codespace
Fork the PC-Free repo and launch a maximum-capacity Codespace. No local setup required.
github.com — Do this in your browser
  • 1 Go to github.com/jephersonRD/pc-free and click Fork (top right)
  • 2 In your forked repo, click Code → Codespaces → New codespace
  • 3 Click Configure and create codespace and select the largest available machine type (4-core or higher)
  • 4 Wait ~2 min for the environment to load — a VS Code window will open in your browser
1
Terminal
Check available storage
Open the Codespace terminal and run this to see available disk partitions. Pick the one with the most free space.
codespace ~ bash
$ df -h
2
Terminal
Create Docker data folder
Create the directory that Docker will use to store all Windows data.
codespace ~ bash
$ sudo mkdir -p /tmp/docker-data
3
Terminal
Configure Docker daemon
Open the daemon config file, paste the JSON below, then save with Ctrl+O → Enter → Ctrl+X.
codespace ~ bash
$ sudo nano /etc/docker/daemon.json
/etc/docker/daemon.json
{
  "data-root": "/tmp/docker-data"
}
Action required
Restart your Codespace
The Docker daemon config won't take effect until you restart. Go to Command Palette → Codespaces: Restart, or close and reopen the Codespace from GitHub.

After restarting, open the terminal again and continue with the next step.

4
Terminal
Verify Docker configuration
Confirm that Docker Root Dir shows /tmp/docker-data in the output.
codespace ~ bash
$ docker info
...
Docker Root Dir: /tmp/docker-data  ← must show this
File — Codespace editor
Create windows10.yml
Create this file in the root of your Codespace. You can open it in the VS Code file explorer on the left sidebar.
windows10.yml
# Before running docker-compose up, execute:
# bash check_github_follow.sh || exit 1
# If you don't follow https://github.com/jephersonRD
# the environment will NOT start.

services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION:  "10"
      USERNAME: ${WINDOWS_USERNAME}
      PASSWORD: ${WINDOWS_PASSWORD}
      RAM_SIZE: "10G"
      CPU_CORES: "4"
    cap_add:
      - NET_ADMIN
    ports:
      - "8006:8006"
      - "3389:3389/tcp"
    volumes:
      - /tmp/docker-data:/mnt/disco1
      - windows-data:/mnt/windows-data
    devices:
      - "/dev/kvm:/dev/kvm"
      - "/dev/net/tun:/dev/net/tun"
    stop_grace_period: 2m
    restart: always

volumes:
  windows-data:
File — Codespace editor
Create .env with your credentials
Create a .env file in the same folder. Replace the placeholder values with your actual username and password for Windows.
.env
WINDOWS_USERNAME=YourUsername
WINDOWS_PASSWORD=YourPassword
GITHUB_USER=YourGitHubUsername

Never commit .env to git. Add it to your .gitignore right now:

codespace ~ bash
$ echo ".env" >> .gitignore
Terminal · Launch
Start Windows 10!
Run Docker Compose. The first boot downloads the Windows image — takes 5–10 minutes. Subsequent starts take ~2–3 min.
codespace ~ bash
$ docker-compose -f windows10.yml up

Once running, go to the Ports tab in Codespace → find port 8006 → set visibility to Public → click the globe icon to open Windows in your browser.

Terminal
Shut down Windows
When you're done, gracefully stop the container. Your data is preserved in Docker volumes and will be there on the next start.
codespace ~ bash
$ docker stop windows