How to Set Up a Windows VPS for Remote Development Teams: IIS, SQL Server, and RDP Configuration

Remote development teams face a unique set of infrastructure challenges: collaborators need consistent environments, shared access to databases, secure code deployment pipelines, and the ability to spin up and tear down resources without IT bottlenecks. A well-configured Windows VPS can serve as the backbone for such a setup, providing IIS for web hosting, SQL Server for data storage, and RDP for team access — all within a single, cost-effective virtual server. This guide walks through the complete configuration process. For a list of providers that offer the RAM and CPU needed for multi-user development environments, compare Windows VPS plans on our comparison table.

Step 1: Selecting the Right VPS Configuration

Remote development workloads are more resource-intensive than production hosting because multiple developers may compile code, run tests, and query databases simultaneously. Use these minimum guidelines:

Team SizeRecommended SpecsEstimated Monthly Cost
2–3 developers4 vCPU, 8 GB RAM, 160 GB SSD$50–$80
4–6 developers8 vCPU, 16 GB RAM, 320 GB SSD$100–$150
7–10 developers12 vCPU, 32 GB RAM, 500 GB SSD$180–$250

Opt for NVMe SSD storage — database I/O and build times benefit significantly from lower latency. Ensure the provider supports resizing without data loss so you can scale as the team grows.

Step 2: Initial Server Hardening

Before any developer connects, apply these security configurations:

RDP Security

  1. Change the default RDP port from 3389 to a non-standard port (e.g., 43389) to reduce automated brute-force attempts.
  2. Enable Network Level Authentication (NLA) — this requires authentication before the RDP session starts, reducing resource waste from half-open connections.
  3. Configure RDP session timeout policies: disconnect idle sessions after 30 minutes, and log off disconnected sessions after 2 hours.
  4. Set up Windows Defender Firewall rules to allow RDP only from your team’s VPN IP range or a limited set of static IPs.

User Account Management

  1. Create individual user accounts for each developer — never share the Administrator account.
  2. Add developers to the “Remote Desktop Users” group for RDP access and the “Performance Log Users” group if they need monitoring tools.
  3. Enable strong password policies via Local Security Policy or Group Policy: minimum 14 characters, complexity requirements, and 90-day maximum age.
  4. Enable account lockout after 5 failed attempts with a 30-minute reset period.

Step 3: Installing and Configuring IIS

IIS (Internet Information Services) serves as the web server for development and staging environments. Install it via PowerShell:

# Install IIS with commonly needed features
Install-WindowsFeature -Name Web-Server, Web-WebSockets, Web-Asp-Net45, `
    Web-Mgmt-Console, Web-Mgmt-Service, Web-Scripting-Tools -IncludeManagementTools

# Create development site
New-WebSite -Name "DevApp" -Port 8080 -PhysicalPath "D:\Sites\DevApp" -Force

# Configure application pool for no-recycle during dev hours
Set-ItemProperty -Path "IIS:\AppPools\DevApp" -Name recycling.periodicRestart.time -Value "00:00:00"
Set-ItemProperty -Path "IIS:\AppPools\DevApp" -Name processModel.idleTimeout -Value "00:00:00"

Key IIS optimizations for development teams:

  • Enable Dynamic Compression — reduces bandwidth for API responses during debugging.
  • Set up separate application pools per developer — isolates crash-prone development code so one person’s bug does not bring down the team’s staging site.
  • Enable Failed Request Tracing — provides detailed XML logs for HTTP errors, invaluable for debugging without attaching a debugger to production.
  • Install URL Rewrite module — allows clean URLs and reverse proxy configurations for front-end development.

Step 4: SQL Server Configuration

SQL Server Developer Edition is free for development and testing (full feature set, no production rights). Install it and configure for team access:

# Enable mixed mode authentication (for developers without domain accounts)
# Install via SQL Server Setup with these key options:
# - Feature: Database Engine Services, Client Tools Connectivity
# - Authentication: Mixed Mode (SQL Server + Windows Auth)
# - SQL Server admin: set strong sa password

# After installation, enable TCP/IP protocol
$smopath = "SQLSERVER:\SQL\$env:COMPUTERNAME\DEFAULT"
Set-ItemProperty -Path "$smopath\Protocols\Tcp" -Name Enabled -Value 1
Restart-Service "MSSQLSERVER"

Create per-developer database logins and sandbox databases:

-- Create developer login and database
CREATE LOGIN [dev_alice] WITH PASSWORD = 'StrongP@ssw0rd!';
CREATE DATABASE [DevDB_Alice];
USE [DevDB_Alice];
CREATE USER [dev_alice] FROM LOGIN [dev_alice];
EXEC sp_addrolemember 'db_owner', 'dev_alice';

Set a maximum database size (e.g., 5 GB per developer) to prevent a runaway query from filling the VPS disk:

ALTER DATABASE [DevDB_Alice] MODIFY FILE (NAME = 'DevDB_Alice', MAXSIZE = 5120 MB);

Step 5: RDP Multi-Session Configuration

Windows Server supports two simultaneous RDP sessions by default. For teams larger than two people, you have several options:

  • Remote Desktop Services (RDS) in per-user mode — requires RDS CALs ($175 per user or $85 per device). This is the licensed path for 3+ simultaneous users.
  • Third-party RDP wrappers — Tools like RDP Wrapper Library modify termsrv.dll to allow more sessions. Caveat: this violates Windows Server licensing terms and may break on updates.
  • Staggered work schedule — If your team works asynchronously across time zones, two concurrent sessions may be sufficient.

For teams that grow beyond 5 developers, consider upgrading to a dedicated RDS server or using Visual Studio Code Server (code-server) accessed via browser — this bypasses RDP session limits entirely and provides a modern development IDE from any device.

Step 6: Collaboration Tools and Git Integration

A remote development VPS is only useful if the team can share code, review changes, and deploy efficiently:

  • Install Git for Windows — Each developer clones repositories to their personal workspace folder (e.g., D:\Developers\Alice\Project).
  • Set up a shared network folder — Create D:\Shared\ for assets, configuration files, and documentation that all developers need. Set appropriate NTFS permissions per group.
  • Configure IIS to point to shared staging folders — A common staging site (e.g., staging.teamapp.local) pulls from a shared Git branch so the team can preview integration work.
  • Install a build agent — If your CI/CD system supports self-hosted agents (GitHub Actions, Azure DevOps, Jenkins), installing one on the VPS allows in-place builds and deployment to IIS test sites.

Step 7: Backup and Disaster Recovery for Team Data

Team development environments contain weeks or months of work. Protect them with:

  • Daily VSS snapshots of the system drive and data drive through your provider’s control panel.
  • SQL Server backup job — Set up Ola Hallengren’s maintenance scripts to back up all developer databases nightly to a separate volume.
  • Git-based code backup — Code lives in repositories, not on the VPS. Ensure developers push at least daily. The VPS itself is a disposable compute layer for code that already exists in version control.
  • Configuration-as-code — Document IIS configurations, firewall rules, and SQL Server settings in a repository. If the VPS is compromised, you can recreate the environment in under an hour using automation scripts.

Conclusion

A single Windows VPS can serve as a complete remote development hub for small to mid-sized teams, providing IIS web hosting, SQL Server databases, and collaborative RDP access. The key to success is upfront configuration: hardening the server, isolating developer environments, and automating backups so the team can focus on writing code rather than managing infrastructure. Browse and compare Windows VPS plans to find a configuration that fits your team size and budget.

Leave a Comment