How to Host DCS SRS in AWS
How to Host DCS SRS (Simple Radio Standalone) in AWS
Updated 26/04/23 - Added security groups details and server.cfg
SRS is a fantasic piece of software that can be used alongside DCS for voice communication that is also an immersive radio simulation. I was recently asked if I could do standalone hosting for it. The main beneifts I can see from hosting SRS in AWS is that it will have it's own internet connectivity - which can help since voip applications are particularly sensitive to network conditions, as well as being able to pick a central hosting location since SRS is still a client server architecture and not peer to peer. I think people might find value in an accesible rr style turn key solution, but due to the nature of SRS being just a small exe it's arguably fairly straight forward to roll your own with just a startup script, which I'm happy to detail here.
User data is the name AWS gives to parametrisation of instances including scripts to run on startup. This enables starting SRS in AWS with just a user data argument with a standard AWS Windows image. This user data script just turns off windows firewall (to make the SRS ports 5002 TCP/UDP accesible), downloads, unzips, and then starts SRS.
<powershell> Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False $WebClient = New-Object System.Net.WebClient $WebClient.DownloadFile("https://github.com/ciribob/DCS-SimpleRadioStandalone/releases/download/220.127.116.11/DCS-SimpleRadioStandalone-18.104.22.168.zip","C:\DCS-SimpleRadioStandalone-22.214.171.124.zip") Expand-Archive C:\DCS-SimpleRadioStandalone-126.96.36.199.zip -DestinationPath C:\DCS-SimpleRadioStandalone-188.8.131.52 C:\DCS-SimpleRadioStandalone-184.108.40.206\SR-Server.exe </powershell>
Launch an instance step by step
From the EC2 Dashboard start with 'Launch instance'.
Pick the Windows image quickstart.
Configure security groups to allow inbound traffic port 5002 TCP and UDP.
Expand 'Advanced details'.
Supply the user data startup script.
And we're good to go. Startup should be a couple of minutes after which your SRS client should be able to connect to the public IP.
We can include server.cfg in the user data script using a here-string if we would like to setup EAM or other SRS features e.g:
<powershell> # Disable windows firewall Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False # Download and unzip SRS $WebClient = New-Object System.Net.WebClient $WebClient.DownloadFile("https://github.com/ciribob/DCS-SimpleRadioStandalone/releases/download/220.127.116.11/DCS-SimpleRadioStandalone-18.104.22.168.zip","C:\DCS-SimpleRadioStandalone-22.214.171.124.zip") Expand-Archive C:\DCS-SimpleRadioStandalone-126.96.36.199.zip -DestinationPath C:\DCS-SimpleRadioStandalone-188.8.131.52 # SRS configuration file echo @" [General Settings] TRANSMISSION_LOG_RETENTION=2 LOTATC_EXPORT_ENABLED=true CLIENT_EXPORT_ENABLED=false TRANSMISSION_LOG_ENABLED=false TEST_FREQUENCIES=247.2,120.3 GLOBAL_LOBBY_FREQUENCIES=248.22 EXTERNAL_AWACS_MODE=true COALITION_AUDIO_SECURITY=false SPECTATORS_AUDIO_DISABLED=false LOS_ENABLED=false DISTANCE_ENABLED=false IRL_RADIO_TX=false IRL_RADIO_RX_INTERFERENCE=false RADIO_EXPANSION=false ALLOW_RADIO_ENCRYPTION=true STRICT_RADIO_ENCRYPTION=false SHOW_TUNED_COUNT=true SHOW_TRANSMITTER_NAME=false RETRANSMISSION_NODE_LIMIT=0 [Server Settings] CLIENT_EXPORT_FILE_PATH=clients-list.json SERVER_PORT=5002 UPNP_ENABLED=true CHECK_FOR_BETA_UPDATES=false [External AWACS Mode Settings] EXTERNAL_AWACS_MODE_BLUE_PASSWORD=blue EXTERNAL_AWACS_MODE_RED_PASSWORD=red "@ | Out-File -File "C:\DCS-SimpleRadioStandalone-184.108.40.206\server.cfg" # Start SRS cd C:\DCS-SimpleRadioStandalone-220.127.116.11 .\SR-Server.exe </powershell>
SRS doesn't need alot of resources so it could potentially be run for free on AWS's free tier.