Free Github RDP ๐Ÿ’ป

  • You Can Use Demo as Registered User :
    user:demo pass:dohdemo

Free Github RDP ๐Ÿ’ป

Free Github RDP ๐Ÿ’ป

Setup a Windows RDP connection using GitHub Actions & Tailscale

Want a free Windows 11 Remote Desktop? Follow these simple steps — no VPS or payment needed!

⚡ How This Works

  • GitHub Actions provides a free Windows runner (temporary).
  • Tailscale creates a secure, private network — no port forwarding needed.
  • A local user "RDP" is created with a strong random password.
  • You can connect from any device that's also on your Tailscale network.

๐Ÿ“Œ Detailed Step‑by‑Step Guide

1
Create GitHub Repository
Go to GitHub, create a new repository, name it anything, and click Create.
2
Connect with Tailscale
Visit Tailscale.com, click Start Connecting Devices, and sign in with your GitHub account.
3
Generate Auth Key
In Tailscale → SettingsKeys, click Generate Auth Key and copy it safely.
4
Add Key to GitHub
Open your GitHub repo → SettingsSecretsActions → New Repository Secret.
Name: TAILSCALE_AUTH_KEY, paste your Auth Key, and save.
5
Run the Workflow
Go to Actions tab → set up a workflow yourself → paste the RDP code below → Commit & Run Workflow.
6
Connect to RDP
Install Tailscale on your PC or phone → sign in with same account → open Remote Desktop → enter the IP and password shown in the workflow logs.

๐Ÿ“œ Workflow YAML Code

Copy this exact YAML into the workflow editor on GitHub.

๐Ÿ“„ rdp.yml
name: RDP on: workflow_dispatch: jobs: secure-rdp: runs-on: windows-latest timeout-minutes: 3600 steps: - name: Configure Core RDP Settings run: | # Enable Remote Desktop and disable NLA Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' ` -Name "fDenyTSConnections" -Value 0 -Force Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' ` -Name "UserAuthentication" -Value 0 -Force Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' ` -Name "SecurityLayer" -Value 0 -Force netsh advfirewall firewall delete rule name="RDP-Tailscale" netsh advfirewall firewall add rule name="RDP-Tailscale" ` dir=in action=allow protocol=TCP localport=3389 Restart-Service -Name TermService -Force - name: Create RDP User with Secure Password run: | Add-Type -AssemblyName System.Security $charSet = @{ Upper = [char[]](65..90) Lower = [char[]](97..122) Number = [char[]](48..57) Special = ([char[]](33..47) + [char[]](58..64) + [char[]](91..96) + [char[]](123..126)) } $rawPassword = @() $rawPassword += $charSet.Upper | Get-Random -Count 4 $rawPassword += $charSet.Lower | Get-Random -Count 4 $rawPassword += $charSet.Number | Get-Random -Count 4 $rawPassword += $charSet.Special | Get-Random -Count 4 $password = -join ($rawPassword | Sort-Object { Get-Random }) $securePass = ConvertTo-SecureString $password -AsPlainText -Force New-LocalUser -Name "RDP" -Password $securePass -AccountNeverExpires Add-LocalGroupMember -Group "Administrators" -Member "RDP" Add-LocalGroupMember -Group "Remote Desktop Users" -Member "RDP" echo "RDP_CREDS=User: RDP | Password: $password" >> $env:GITHUB_ENV if (-not (Get-LocalUser -Name "RDP")) { Write-Error "User creation failed" exit 1 } - name: Install Tailscale run: | $tsUrl = "https://pkgs.tailscale.com/stable/tailscale-setup-1.82.0-amd64.msi" $installerPath = "$env:TEMP\tailscale.msi" Invoke-WebRequest -Uri $tsUrl -OutFile $installerPath Start-Process msiexec.exe -ArgumentList "/i", "`"$installerPath`"", "/quiet", "/norestart" -Wait Remove-Item $installerPath -Force - name: Establish Tailscale Connection run: | & "$env:ProgramFiles\Tailscale\tailscale.exe" up --authkey=${{ secrets.TAILSCALE_AUTH_KEY }} --hostname=gh-runner-$env:GITHUB_RUN_ID $tsIP = $null $retries = 0 while (-not $tsIP -and $retries -lt 10) { $tsIP = & "$env:ProgramFiles\Tailscale\tailscale.exe" ip -4 Start-Sleep -Seconds 5 $retries++ } if (-not $tsIP) { Write-Error "Tailscale IP not assigned. Exiting." exit 1 } echo "TAILSCALE_IP=$tsIP" >> $env:GITHUB_ENV - name: Verify RDP Accessibility run: | Write-Host "Tailscale IP: $env:TAILSCALE_IP" $testResult = Test-NetConnection -ComputerName $env:TAILSCALE_IP -Port 3389 if (-not $testResult.TcpTestSucceeded) { Write-Error "TCP connection to RDP port 3389 failed" exit 1 } Write-Host "TCP connectivity successful!" - name: Maintain Connection run: | Write-Host "`n=== RDP ACCESS ===" Write-Host "Address: $env:TAILSCALE_IP" Write-Host "Username: ABDULLAH" Write-Host "Password: $(echo $env:RDP_CREDS)" Write-Host "==================`n" while ($true) { Write-Host "[$(Get-Date)] RDP Active - Use Ctrl+C in workflow to terminate" Start-Sleep -Seconds 300 }

๐Ÿ”’ Important Security Tips

  • Never share the workflow logs publicly — they contain your password.
  • Tailscale encrypts all traffic; only devices on your tailnet can connect.
  • Runner auto‑terminates after 6 hours, but you can cancel sooner.
  • Use responsibly — for learning, testing, or temporary tasks only.

✅ Your free Windows 11 RDP is ready for browsing, testing, or light work.

๐Ÿš€ Enjoy your free RDP setup!

Previous Post
No Comment
Add Comment
comment url