Skip to content
/ dind Public

This project was created to allow people to run Windows 11 on GitHub Codespaces.

Notifications You must be signed in to change notification settings

ItzLevvie/dind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Welcome to windows-dind

This repository includes the required files which allows you to run Windows 11 on GitHub Codespaces.

It installs Tailscale which allows you to Remote Desktop Protocol (RDP) into Windows 11.

It is based on the dockur/windows repository but contains customizations and optimizations for GitHub Codespaces.

Caution

This repository should be used for development and testing purposes only.
I am not responsible for any issues such as account suspensions or data loss.

Images

Image

Image

Image

Image

Usage

Using the web version of GitHub (recommended)

Click on the button below:

Open in GitHub Codespaces

Note

See Commands for a full list of available commands.


Using the CLI version of GitHub (alternative)

  1. Install GitHub CLI
  2. Type gh codespace create --idle-timeout 4h --retention-period 720h --repo ItzLevvie/dind --machine standardLinux32gb in Command Prompt or PowerShell.
  3. This will allow you to create the GitHub Codespaces based on the files from this repository:
    C:\Users\codespaces>gh codespace create --idle-timeout 4h --retention-period 720h --repo ItzLevvie/dind --machine xLargePremiumLinux
      ✓ Codespaces usage for this repository is paid for by microsoft
    congenial-goldfish-5ggv6rrqpx7c7pj
    
  4. Type gh codespace view --repo ItzLevvie/dind --json billableOwner,createdAt,devcontainerPath,displayName,environmentId,idleTimeoutMinutes,lastUsedAt,location,machineDisplayName,machineName,name,owner,prebuild,repository,retentionExpiresAt,retentionPeriodDays,state in Command Prompt or PowerShell.
  5. This will allow you to see the status of your GitHub Codespaces:
    C:\Users\codespaces>gh codespace view --repo ItzLevvie/dind --json billableOwner,createdAt,devcontainerPath,displayName,environmentId,idleTimeoutMinutes,lastUsedAt,location,machineDisplayName,machineName,name,owner,prebuild,repository,retentionExpiresAt,retentionPeriodDays,state
    ? Choose codespace: ItzLevvie/dind [main]: congenial goldfish
    {
      "billableOwner": {
        "login": "microsoft",
        "type": "Organization"
      },
      "createdAt": "2025-03-25T18:29:21+00:00",
      "devcontainerPath": ".devcontainer/devcontainer.json",
      "displayName": "congenial goldfish",
      "environmentId": "b1f7729a-c417-47cd-a4ce-811cf3952b8c",
      "idleTimeoutMinutes": 240,
      "lastUsedAt": "2025-03-25T18:29:21+00:00",
      "location": "UkSouth",
      "machineDisplayName": "32 cores, 128 GB RAM, 128 GB storage",
      "machineName": "xLargePremiumLinux",
      "name": "congenial-goldfish-5ggv6rrqpx7c7pj",
      "owner": "ItzLevvie",
      "prebuild": false,
      "repository": "ItzLevvie/dind",
      "retentionExpiresAt": "",
      "retentionPeriodDays": 30,
      "state": "Available"
    }
    
  6. When it says "state": "Available" — you can access your GitHub Codespaces at GitHub Codespaces — Dashboard: Image

Note

See Commands for a full list of available commands.


Commands

This repository contains a few helper scripts to get you started1.

Command Description
start Starts Windows 11
stop Stops Windows 11
restart Restarts Windows 11
kill Forcefully stops Windows 11
reset Resets Windows 11 to a clean state

Note: This will only work if the /tmp/dind/windows/data.img file exists
remove Removes the windows container
rebuild Performs a full rebuild of your GitHub Codespaces

Frequently Asked Questions (FAQ)

Why did you create this repository?

This repository was inspired by many different YouTube videos:

  1. Codespaces Windows 11 tutorial and playing by HyperNexus
  2. Installing Windows 11 on GitHub Codespaces by LagLife
  3. Installing Windows 10 on GitHub Codespaces! by Nashville
  4. [PATCHED] How to Create Windows QEMU VM from Codespaces - Free Windows VPS from Codespace by Paddi's Tech Stuff
  5. Get Free Windows 10 RDP on GitHub Codespaces + Ngrok! 🔥 (No Credit Card)ويندوز 10 مجاني by Smart World
  6. How to Run Windows 10 Cloud PC on your Device using Github Codespace [New Method] [2025]. by JoyZoneTech
  7. How to Create a Free Windows 10 RDP on GitHub by TechXploitz

This repository was also inspired by many different websites:

  1. Run Windows 10 for free in GitHub codespaces using QEMU

What machine types are available for GitHub Codespaces?

GitHub Codespaces has many different machine types which you can choose based on your needs.

It uses the AMD EPYCâ„¢ 7763 (Milan) CPU which delivers the best performance as seen in Performance Benchmarks of Cloud Machines (December 2023).

Previously, GitHub Codespaces used Intel® Xeon® Platinum 8168 (Skylake), Intel® Xeon® Platinum 8272CL (Cascade Lake), and Intel® Xeon® Platinum 8370C (Ice Lake) CPUs.

Below are the different machine types available for your GitHub Codespaces:

Machine Type Core RAM Storage
(/workspaces)
Storage
(/tmp)
Price
basicLinux32gb 2 cores 8 GB 32 GB 44 GB $0.18 per hour
standardLinux32gb 4 cores 16 GB 32 GB 118 GB $0.36 per hour
premiumLinux2 8 cores 32 GB 64 GB 265 GB $0.72 per hour
largePremiumLinux2 16 cores 64 GB 128 GB 560 GB $1.44 per hour
xLargePremiumLinux23 32 cores 128 GB 128 GB 1.2 TB $2.88 per hour

How many usage hours can I use GitHub Codespaces for free each month?

GitHub Codespaces has different usage hours based on which plan your GitHub account uses.

Below are the different usage hours for your GitHub Codespaces:

Machine Type GitHub Free
(120 core hours per month)
GitHub Pro
(180 core hours per month)
Microsoft employees and partners
(unlimited core hours per month)
basicLinux32gb 60 usage hours 90 usage hours unlimited usage hours
standardLinux32gb 30 usage hours 45 usage hours unlimited usage hours
premiumLinux2 15 usage hours 22.5 usage hours unlimited usage hours
largePremiumLinux2 7.5 usage hours 11.25 usage hours unlimited usage hours
xLargePremiumLinux23 3.75 usage hours 5.625 usage hours unlimited usage hours

Note

If you are on GitHub Free, you can use GitHub Codespaces for free (up to 60 usage hours per month).

After this, you will need to provide your payment details to continue using GitHub Codespaces.

Tip

GitHub has a formula to calculate your core hours.
It is the number of cores multiplied by how many hours you used a particular machine type.

For example: If you wanted to use premiumLinux (8 cores) for 3 hours then you calculate 8 * 3 = 24 core hours
For example: If you wanted to use premiumLinux (8 cores) for 7.5 hours then you calculate 8 * 7.5 = 60 core hours


What regions are available for my GitHub Codespaces?

Your GitHub Codespaces is deployed to one of several Microsoft Azure regions based on the location of your IP address.

Below are the different Microsoft Azure regions available for your GitHub Codespaces:

Geography Region Location
Asia Pacific Southeast Asia Singapore
Australia Australia Central Canberra
Australia Australia East New South Wales
Europe West Europe Netherlands
India Central India Pune
United Kingdom UK South London
United States East US Virginia
United States East US 2 Virginia
United States West US 2 Washington
United States West US 3 Arizona

How can I change the inactivity timeout for my GitHub Codespaces?

By default, your GitHub Codespaces has an inactivity timeout of 30 minutes.

However, you can extend this inactivity timeout to a maximum of 240 minutes (4 hours) at GitHub Codespaces — Settings under Default idle timeout


Why did you choose Tailscale over Ngrok for Remote Desktop Protocol (RDP)?

Tailscale has the lowest latency because all connections are peer-to-peer (P2P).

Tailscale has more features than its competitors.

Ngrok uses a tunnel server which increases the latency for your Remote Desktop Protocol (RDP) connections.

Ngrok requires your payment details to allow TCP connections which is required for Remote Desktop Protocol (RDP) to properly work.


What are the steps to create my own system images?

Requirements


Guide

1) In the Windows 11 Setup where it says Select language settings:

  • press Shift + F10
  • type regedit and press Enter

Create three registry entries at HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig:

  • BypassSecureBootCheck with a value of 1
  • BypassTPMCheck with a value of 1
  • BypassRAMCheck with a value of 1

Important

These registry entries are read by Windows 11 Setup from Windows11_InsiderPreview_EnterpriseVL_x64_en-us_27774.iso\sources\winsetup.dll which allows you to bypass the system requirements for Windows 11.


2) In the Windows 11 Setup where it says Select location to install Windows 11:

  • click Load Driver
  • uncheck Hide drivers that aren't compatible with this computer's hardware
  • click Browse
  • select CD Drive (E:) virtio-win-1.9.45
  • install vioscsi from E:\vioscsi\w11\amd64\vioscsi.inf

Important

This installs the required SCSI drivers to allow Windows 11 to boot on QEMU.


3) In the Windows 11 OOBE where it says Is this the right country or region?:

  • press Shift + F10
  • type cd /d E: and press Enter
  • type virtio-win-gt-x64.msi and press Enter
  • type shutdown /r /t 0 and press Enter

Important

This installs all of the required paravirtualized drivers for Windows 11 to work properly on QEMU.


4) In the Windows 11 OOBE where it says Is this the right country or region?:

  • press Shift + F10
  • type regedit and press Enter

Create one registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Dwm:

  • ForceEffectMode with a value of 2

Tip

This allows Windows 11 to force Mica and rounded corners.
This registry entry is read by Windows 11 from C:\Windows\System32\dwmcore.dll


5) In the Windows 11 OOBE where it says Is this the right country or region?:

  • press Shift + F10
  • type netsh advfirewall set allprofiles state off and press Enter
  • type regedit and press Enter

Create one registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services:

  • fDenyTSConnections with a value of 0

Tip

This enables Remote Desktop Protocol (RDP).

Create one registry entry at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa:

  • LimitBlankPasswordUse with a value of 0

Tip

This allows you to Remote Desktop Protocol (RDP) into Windows 11 with blank passwords.


6) In the Windows 11 OOBE where it says Is this the right country or region?:

  • press Shift + F10
  • type powercfg /list and press Enter
  • type powercfg /setactive e9a42b02-d5df-448d-aa00-03f14749eb61 and press Enter
  • type powercfg /getactivescheme and press Enter
  • type powercfg /change monitor-timeout-ac 0 and press Enter

Tip

This sets the power plan to Ultimate Performance.


7) In the Windows 11 OOBE where it says Is this the right country or region?:

  • press Shift + F10
  • type regedit and press Enter

Create one registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation:

  • AllowInsecureGuestAuth with a value of 1

Create one registry entry at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters:

  • RequireSecuritySignature with a value of 0

Tip

This allows you to access SMB shares.


8) In the Windows 11 OOBE where it says Is this the right country or region?:

  • press Shift + F10
  • type regedit and press Enter

Create one registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE:

  • BypassNRO with a value of 1

Tip

This allows you to create a local account.


9) Hyper-V will store your VHDX file at C:\ProgramData\Microsoft\Windows\Virtual Hard Disks\data.vhdx

You will have to send your VHDX file to your GitHub Codespaces using GitHub CLI: gh codespace cp --expand "C:\ProgramData\Microsoft\Windows\Virtual Hard Disks\data.vhdx" remote:/workspaces/dind


10) Your VHDX file will have to be converted to an IMG file.

qemu-img convert -p -O raw -o preallocation=off data.vhdx windows/data.img

  • -p forces QEMU to display the progress bar.
  • -O raw forces QEMU to convert to an IMG file.

11) You can upload your VHDX file to GitHub Releases

7z a -mmt32 -mx9 -v1g data.7z data.vhdx

  • -mmt32 forces 7-Zip to use 32 cores.
  • -mx9 forces 7-Zip to use ultra compression.
  • -v1g forces 7-Zip to split the data.7z file into 1 GB chunks.

How can I activate Windows 11?

GitHub Codespaces runs on Microsoft Azure which allows you to activate Windows 11 for free:

  • press Windows + R
  • type cmd and press Enter
  • type cd C:\Windows\System32
  • type cscript //nologo slmgr.vbs /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43 and press Enter
  • type cscript //nologo slmgr.vbs /skms azkms.core.windows.net and press Enter
  • type cscript //nologo slmgr.vbs /ato and press Enter
  • type cscript //nologo slmgr.vbs /dlv and press Enter

Tip

This allows you to activate Windows 11 for free using the KMS server from Azure Virtual Desktop (AVD), Microsoft Dev Box, and Windows 365.
This is because the KMS server checks if the GitHub Codespaces' IP address comes from Microsoft Corporation (AS8075).

Footnotes

  1. These helper scripts are located here. ↩

  2. Contact GitHub Support to access these machine types. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  3. This machine type is not available as of February 2025. ↩ ↩2