Documentation

Run Windows 10
Free in Your Browser

Deploy a complete Windows 10 environment using Docker and GitHub Codespaces. No PC required, no cost, no installation.

What is PC-Free?

PC-Free is an open-source project that lets you run Windows 10 directly in your web browser via GitHub Codespaces and Docker. No local installation, no powerful hardware, completely free.

100% FreeNo hidden costs or subscriptions
Browser-BasedAccess Windows from any device
5-Minute SetupDeploy Windows 10 in minutes
No PC RequiredRun Windows without a Windows PC
Docker ContainerIsolated, secure, and portable
Persistent DataFiles and apps survive restarts
Quick Start
Method 1 — GitHub Codespaces (Recommended)

The fastest path to a running Windows environment. No local dependencies needed.

1
Fork this repository — click the Fork button at the top-right of the GitHub page.
2
Open Codespace — click Code → Codespaces → Create codespace on main.
3
Wait ~2 minutes for the environment to auto-configure.
4
Follow the Setup Guide below to start your Windows container.
Method 2 — Local Docker

Requires Docker Engine 20.10+ with KVM support on Linux. See System Requirements for details.

Setup Guide
1. Check available storage
bash
df -h

Pick the partition with the most free space.

2. Create Docker data folder
bash
sudo mkdir -p /tmp/docker-data
3. Configure Docker daemon
bash
sudo nano /etc/docker/daemon.json

Add the following content:

json
{
  "data-root": "/tmp/docker-data"
}
4. Restart Codespace, then verify Docker
bash
docker info # Docker Root Dir should be /tmp/docker-data
windows10.yml
yaml
# Run check_github_follow.sh before docker-compose up
services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "10"
      USERNAME: ${WINDOWS_USERNAME}
      PASSWORD: ${WINDOWS_PASSWORD}
      RAM_SIZE: "10G"
      CPU_CORES: "4"
    ports:
      - "8006:8006"   # Web interface
      - "3389:3389"   # RDP
    volumes:
      - /tmp/docker-data:/mnt/disco1
      - windows-data:/mnt/windows-data
    restart: always
volumes:
  windows-data:
.env file
.env
WINDOWS_USERNAME=YourUsername
WINDOWS_PASSWORD=YourPassword
GITHUB_USER=YourGitHubUsername

Never commit your .env file. Add it to .gitignore immediately: echo ".env" >> .gitignore

Commands
Start
bash
docker-compose -f windows10.yml up
Stop / Restart / Logs
bash
docker stop windows            # graceful shutdown
docker restart windows         # restart after freeze
docker logs -f windows         # live logs (Ctrl+C to exit)
Remove everything
bash
docker-compose -f windows10.yml down -v

The -v flag permanently deletes all Windows data including installed software and files.

Configuration Options

Customize resources by editing the environment block in windows10.yml:

yaml
environment:
  VERSION:    "10"    # or "11" for Windows 11
  RAM_SIZE:   "10G"   # minimum 6G
  CPU_CORES:  "4"     # minimum 2
  DISK_SIZE:  "64G"   # virtual disk size

To enable native RDP access, expose port 3389 and connect with any Remote Desktop client to localhost:3389.

Comparison
Feature ⚡ PC-Free Azure VD AWS WorkSpaces Local VM
Monthly Cost $0 Free $31–100+ $25–75+ $0 Free
Setup Time 5 min 30+ min 30+ min 15–30 min
Hardware None None None Powerful PC
Browser Access Yes Yes Yes Limited
Open Source Yes No No Partial
System Requirements
GitHub Codespaces
  • Free GitHub account
  • Chrome 90+, Firefox 88+, Edge 90+, Safari 14+
  • 10 GB+ available Codespace storage
  • Stable internet — 2 Mbps+ recommended
Local Docker
  • Docker Engine 20.10+
  • 20 GB+ free disk space
  • 8 GB+ RAM (16 GB recommended)
  • KVM (Linux) or Hyper-V (Windows Pro)
  • Linux, macOS, or Windows 10/11 Pro
Troubleshooting
Check Docker logs for specific errors with docker logs windows. On Linux, verify KVM access: ls -la /dev/kvm. If /dev/kvm doesn't exist, KVM virtualization may need to be enabled in your BIOS.
Reduce RAM to 6G and CPU to 2 cores in windows10.yml. Close other resource-intensive Codespace apps and check your Codespace machine type in GitHub settings.
In your Codespace, open the Ports tab, find port 8006, right-click and set visibility to Public. Then click the globe icon to open in browser. For local Docker, check your firewall settings.
Clean unused Docker data with docker system prune -a then verify available space with df -h. This removes unused images, containers, and build cache.
Wait 2–3 minutes for the desktop to fully load, then try refreshing the browser tab. Verify the container is still running with docker ps. If not, restart it: docker restart windows.
Roadmap
Windows 10 support
Docker Compose setup
Web interface (noVNC)
Persistent storage volumes
Windows 11 support
One-click installer script
GPU passthrough (local Docker)
Audio support improvement
Clipboard synchronization
Multiple Windows instances

Vote for features →
Contributing

Contributions are welcome! Fork the repo, create a feature branch, commit your changes, and open a Pull Request. See CONTRIBUTING.md for guidelines.