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
- Remote testing environments
- Temporary Windows access
- Software testing & sandboxing
- Foreign IP browsing
- Light development & experimentation
📚 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
⚙️ 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
🔑 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.
- tcp://
🖥️ 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
- 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
🔥 Videos to Watch Next
- Run AI in Local Home Lab Setup
- Homelab Setup Guide
- Windows Performance Tweaks
- Linux Beginner Content
📌 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
Post a Comment