Skip to main content

100% FREE RDP Setup | No Credit Card Needed!

How to Create a Free Windows RDP Using GitHub Actions & Ngrok

Looking to create a free Windows RDP for testing, browsing, remote access, or bypassing regional network restrictions? This step-by-step guide shows you how to create a temporary cloud-based Windows machine using GitHub Actions and Ngrok — completely free and without needing a credit card.

In this tutorial, you'll learn how to create a disposable Windows RDP environment running on GitHub infrastructure, expose it securely using Ngrok TCP tunnels, and connect remotely from your own computer using Remote Desktop Protocol (RDP).

👉 Want me to grow ASAP? Subscribe here: Subscribe Here

🧠 What Is This Setup?

This method creates a temporary Windows virtual machine using GitHub Actions workflows and exposes RDP access through Ngrok.

  • Runs on cloud infrastructure
  • Uses temporary disposable sessions
  • Provides foreign IP addresses
  • Offers high-speed internet connectivity
  • Works without paid VPS hosting
Useful for:
  • Remote testing environments
  • Temporary Windows access
  • Software testing & sandboxing
  • Foreign IP browsing
  • Light development & experimentation
⚠️ This setup is temporary and disposable. Once the workflow stops or terminates, all data is wiped automatically.

📚 What You’ll Learn

  • ✅ What RDP is and how it works
  • ✅ Difference between VPS and RDP
  • ✅ Creating GitHub workflows
  • ✅ Configuring Ngrok TCP tunnels
  • ✅ Setting GitHub repository secrets
  • ✅ Connecting using Remote Desktop
  • ✅ Understanding limitations of free RDPs

🖥️ Requirements

You only need two free accounts:

  • GitHub Account
  • Ngrok Account

🚀 Step 1 — Create a GitHub Repository

Inside GitHub:

  • Create a new repository
  • Choose any repository name
  • Set repository visibility to Private
  • Create the repository
Recommended: Use private repositories for better security and cleaner workflow management.

⚙️ Step 2 — Create GitHub Workflow

Inside the repository:

  • Open the Actions tab
  • Create a new workflow
  • Replace the default code with the workflow below

📄 Workflow Configuration

name: WindowsServer-RDP

on: [push, workflow_dispatch]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - name: Download
      run: Invoke-WebRequest https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-windows-amd64.zip -OutFile ngrok.zip

    - name: Extract
      run: Expand-Archive ngrok.zip

    - name: Auth
      run: .\ngrok\ngrok.exe authtoken $Env:NGROK_AUTH_TOKEN
      env:
        NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }}

    - name: Enable TS
      run: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -Value 0

    - run: Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

    - run: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1

    - run: Set-LocalUser -Name "runneradmin" -Password (ConvertTo-SecureString -AsPlainText "P@ssw0rd!" -Force)

    - name: Create Tunnel
      run: .\ngrok\ngrok.exe tcp 3389
⚠️ Change the default password before using the workflow publicly.

🔑 Step 3 — Configure Ngrok Secret

Inside GitHub repository settings:

  • Go to Settings → Secrets and Variables → Actions
  • Create a new repository secret

Secret name:

NGROK_AUTH_TOKEN

Copy your auth token from:

  • Ngrok Dashboard
  • Your Auth Token section

Paste it into the GitHub repository secret value field.

▶️ Step 4 — Run the Workflow

After adding the workflow and secrets:

  • Open GitHub Actions
  • Run or rerun the workflow
  • Wait for the setup process to finish

The workflow automatically:

  • Downloads Ngrok
  • Enables Remote Desktop
  • Configures Windows settings
  • Creates RDP login credentials
  • Starts the Ngrok TCP tunnel

🌐 Step 5 — Find the RDP Endpoint

After the workflow reaches:

Create Tunnel

Open your Ngrok dashboard and navigate to:

Endpoints

Copy the TCP endpoint shown there.

Important: Remove the:
  • tcp://
prefix before pasting inside Remote Desktop Connection.

🖥️ Step 6 — Connect Using Remote Desktop

Open:

Remote Desktop Connection

Paste the Ngrok endpoint and connect using:

  • Username: runneradmin
  • Password: Your configured password

The RDP session should start after authentication completes.

⚡ Performance & Specifications

According to the workflow environment shown in the video:

  • Windows cloud VM environment
  • 2 virtual CPU cores
  • 8GB RAM
  • High-speed datacenter networking
  • Gigabit-level internet connectivity
Use Cases:
  • Testing applications
  • Running lightweight tools
  • Temporary browser sessions
  • Cloud-based downloads
  • Sandbox experimentation

🌍 Why People Use Cloud RDPs

  • Foreign IP access
  • Fast internet speeds
  • Disposable environments
  • No local resource usage
  • Cloud-based testing systems

⚠️ Limitations of Free GitHub RDPs

  • Session ends when workflow stops
  • Closing the workflow terminates the machine
  • Performance is limited compared to paid VPS servers
  • Storage is temporary
  • Not suitable for long-term hosting
⚠️ Do not close the GitHub workflow tab while actively using the RDP session.

🔥 Videos to Watch Next

📌 Subscribe for More Homelab & Tech Tutorials

Get more cloud, homelab, Linux, AI, and system tutorials directly on the channel.

Subscribe Here

🏁 Final Thoughts

This GitHub Actions + Ngrok setup is an interesting way to create temporary cloud-based Windows RDP environments for experimentation, testing, and learning purposes without paying for VPS hosting.

While it has limitations compared to dedicated cloud servers, it remains a useful lightweight solution for temporary remote access and disposable Windows sessions.

Comments