Jump to content

DIY Standalone DCS Server For ~$400: A Writeup on how I bought and set up a Dell Optiplex Micro as a DCS Dedicated Server


Recommended Posts

Posted (edited)

Hello all,

I saw mention of someone using an Optiplex Micro as a dedicated server machine in this thread and was intrigued. Through this process I had to go through countless bits of information distributed by others so I figured I would contribute here for those interested.

This is going to be a long post but not a manual on how to set up a server. It won't have line-by-line details but should set you on the right path and give you some ideas. If you have any questions feel free to comment and I will do my best to help out. I am confident that if you are capable of playing DCS and setting up SRS you should also be capable of figuring this out.

INTRODUCTION:

I am the main mission creator for my little group of buddies and usually end up hosting the missions we fly. My computer is generally sufficient for these tasks but I wanted to eke out some extra performance as well as host some websites independent of my machine. There are 3rd party solutions for both of these issues but they are quite expensive, especially together. Now, understand from the start that part of the justification for the price tag of these 3rd party solutions is the hands-off and maintenance-free service they provide. For some people the reduced costs long term won't be worth it, especially if you are running a major MP server with expected 24/7/365 uptime (and expect to be paying for another service if you are running websites for your group) That being said, this setup will easily pay for itself well within a year if you use it regularly, don't absolutely need it to be online all the time and are willing to embrace the learning curve.

Essentially, if you and your group run missions that last a couple of hours every week or so, this is probably something that will work very well for you. If you host a persistent multiplayer server with 60 people on it at all hours, a 3rd party solution is probably the safer (but much more expensive) bet.

With about $400 (Which is a lot more than you will likely need to spend and a lot less than a new main PC) and day of effort all told (probably less as most of the issues you might encounter are discussed here with solutions) I have a monitor riser that requires pressing a power button to also function as a DCS Server. It boots, logs in and launches the .exe by itself. From some casual testing it seems to net me about ~5FPS minimum in performance benefit (over a server on my main PC) with more likely as players and jets stack up. I can restart my main PC whenever I want or shut if off entirely and the server will still be running, making the inevitable VR bug no longer a session-killer. It uses no connected keyboard, mouse, monitor or any other peripherals. Control is done mainly through my DCS account on ED's website and also optionally through the local WebGUI via Remote Desktop. I am happy with it so far.

 

 

PC SELECTION:

The linked thread got me onto the idea of using an Optiplex Micro as a server, and now having gone through the process I consider it a no-brainer.

The Optiplex Micro is a boilerplate corporate PC just big enough to be a monitor riser. There are a number of form factors for Optiplexes however I chose a Micro for this reason. I have been working in IT for an international corporation for a little while now and have handled a lot of these little boxes, taken them apart, fixed various problems, set them up and recycled them. They are good little machines. Thousands come and go from the corporate sphere each year and flood the used market, driving prices down. I spent about $400 on mine and I got ripped off badly (An identical one is being auctioned at time of writing for $175, though it only has 16GB of RAM). With them comes a glut of relatively cheap spare parts. Most have replaceable CPUs, all that I have seen have replaceable RAM and multiple storage drive slots. If a part breaks you will be able to find a replacement and it won't be too hard to swap out. Of course there is no dedicated GPU so you won't be gaming with it, also most use -T coded CPUs with low (~35W) voltages. Fortunately that's irrelevant for my purposes.

I got a 5070 with an I7 9700T, an 8C/8T 35W processor with 12Mb of cache, a 2GHz base speed and 4.2Ghz boost. It also has 32GB of DDR4-2133 RAM and a 1TB SSD. If you get one you will need to make sure you have the right CPU for the job as well as enough RAM and hard drive space. I used this website for comparing CPUs and this website to find out what was possible with my board. Keep in mind the age of what you are getting, also what constitutes a good deal will of course change over time. At this point I would consider 32GB of RAM to be a requirement and 500GB of SSD space a strong recommendation. Syria with 1 client (me) connected takes up more than 16GB server-side. I would strongly recommend you get one with a Pro version of windows installed so you can use Remote Desktop (11 works fine for me).

I have also worked with similar machines from Lenovo. The company I worked for moved away from them awhile back and I would be a bit hesitant to go that route. I have since heard good things about them from people with more experience than me, so my opinion is not necessarily gospel.

 

SETUP:

My goal with this machine was to make it as hands-off after initial setup as possible. That meant more effort on the front end. If I had just installed windows and DCS Server I would probably never use the thing because I'm impatient. I also wanted it to be small. I don't want to have to plug in 3 different peripherals every time I want to use it. I achieved this but it's a bit of a process. Fortunately for you, I have already done it and (hopefully) already encountered the issues you may run into.

Summary:

I installed Windows and got it set up to login via password, set it up to auto-login for easy access, set up Remote Desktop for remote control, forwarded the ports, installed the server, tweaked the CPU config with Throttlestop (Herein referred to as TStop) and CPU-Z, set up both the Dedicated Server, Server GUI and TStop to run on login, transferred missions over and am now basically set. Don't worry if you don't know what some of these things are yet.

The ideal end result of this process is a computer that powers on and then logs straight in, including to your DCS account, and starts launching programs by itself with elevated privileges, so it should go without saying that you should ensure your machine is not going to grow legs or be exposed to bad actors. I would go as far as to say you shouldn't be using it for anything other than hosting servers.

Windows Install:

My vendor had the PC ready for account set up when I powered it on, as it would be if it were new. If yours isn't at that step you will need to image it. If it already has an account I would re-image it anyway to mitigate the risk of malware.

Account Setup:

I initially had the computer set to use a PIN, as that is what was prompted during initial setup. That was a mistake as it prevented me from using Remote Desktop (herein referred to as RDP) properly. If I were to go through the process again I would try to skip any sort of password/pin setup entirely as it messed up the auto-login process. I had to set it to use a password after the fact. I also disabled the requirement for users to use a password to sign in. I used method 3, if you avoid my misstep you can probably use method 1.

I don't know if you have to use a password for RDP to work, I just know that using PIN initially made RDP connection impossible due to 'bad credentials'. Overall I would say use no login for initial setup (if possible), then set a password if RDP rejects your creds, then disable the password entirely using method 3 from the linked site. To top it all off I disabled UAC (the popup that asks for admin creds when you run stuff). I am not sure you will need to do this but if elevated apps like DCS Server or TStop don't work off the bat it would be where I'd look first. I also set the PC to never turn off automatically.

After setup I did some minor debloating, disabling the automatic startup of Edge and other un-needed programs. Also, as is tradition, I used Edge to install Firefox and then never touched it again.

Be sure to record you credentials somewhere that you can access them. As your PC will be logging itself in it will be easy to forget what your password was, potentially causing problems in the future.

Remote Desktop Setup:

With windows basically set up I then configured RDP. RDP allows me to control the Server PC directly from my main PC so I can easily add missions to the list and do other basic work without having to plug in peripherals. It was straightforward other than the aforementioned PIN/Password issue. This is where having Windows Pro 10/11 comes into play as allegedly Home won't allow the slave PC to be connected to via RDP. This only applies to the Server, my main PC is Home and works fine. I removed the requirement for using credentials on connection.

DCS Server Installation:

There isn't a whole lot to say about this process other than that it was pretty uneventful. Once it was installed I set it to autologin as well. When you launch it it just looks like the DCS loading screen forever.

Once it's installed you have the WebGUI to go with it. You can get to the WebGUI from your account on the DCS Website (not the forums).

To get the server to be visible you need to forward two ports: The server control port and the server port itself. The process will vary depending on your ISP but it should be similar to if you wanted to port forward for a server on your main rig. I actually forwarded 10306 for the server so I could have 10308 for my main PC should I want it (I don't even know if they need to be different).  If you want to do this it will be in the serverSettings file in the server folder. You may need to actually run the server once first to populate the file.

Tuning the CPU:

This actually was a bit frustrating and took some hours to figure out. I set the min/max states, high performance power plan and enabled Turbo Boost in the BIOS but my CPU was still stuck at about 800MHz. To solve the issue I ended up installing TStop  and using the linked guide to tweak the settings. Unchecking "Disable Turbo" got rid of the problem. Among other things I initially set it to run between 3.5GHz and 4GHz at all times, tweaked the power settings and, just to be safe, made BD PROCHOT more aggressive at 70C instead of the default 100C. My max temp was 62C running the server so I doubt I will need to adjust it but can if needed.

Be careful with TStop and read up before messing with it. The right settings will vary depending on your CPU, which might brick itself if you do the wrong thing. This will take tweaking, monitor the temps and voltage for awhile to see how it handles changes before leaving it. After two months of (non-constant) operation I became mildly concerned and annoyed by how loud the machine was, so I decided to walk back the clocks a bit to 3.0GHz. I noticed no decrease in practical performance in exchange for near-silent fan noise, 20C cooler temps and more peace of mind. Try to figure out what is appropriate for you and your users. If you are like me and have less than a dozen people on your server at any given time, this should work pretty well for you.

Disabling the "you don't have a keyboard!" error:

I wanted a desktop riser that doubled as a server. That means, among other things, no peripherals. Unfortunately by default it seems many PCs will throw a fit if you try to boot them without a keyboard. Fortunately this error can be disabled.

Setting Up DCS Server and TStop to auto-run on login:

This initially threw me for a loop as well, no more! (refer to the 'test scheduler' section). Just putting them in the startup folder didn't work because Windows (rightly) doesn't want it to. To save some extra power, don't make the WebGUI autologin as well as that will open up a browser on your server machine.

Final Bits:

Once all of this was done it was basically good to go. I ran the WebGUI and then the Server through a remote desktop connection, setting up the name and passwords and all of that stuff. I don't know but you might be able to do this via your DCS account page on another computer. The key thing is that the DCS Server application needs to run for the WebGUI to be useful, at least as far as I have seen. I set up the server list as well. An added perk of the server being a monitor riser is that transferring missions between the two machines is as simple as pulling a thumb drive out of one and putting it into another. You could probably set it up so that you can just move them virtually but I can't be bothered.

When swapping maps it sometimes looks like the server went offline. Maybe it did but it usually comes back.

 

RESULTS:

Unfortunately I actually don't have many friends so it's hard to stress test my new setup. I did a minor test with 4 people including me on a Caucasus dogfight mission and we did not experience any rubber-banding or other issues. This was before I realized the server was at 800MHz! Rectifying the low clock seemed to make it much faster on load but I am not sure.

Time will tell how well this machine holds up, however as the screenshots below show, it doesn't seem to be having that hard of a time so far.

Syr.png

On my Soviet-Afghan helo sandbox on Syria more than half the RAM was used but it handled well. Note the low temps, internet utilization and RAM headroom.Nev.png

Nevada uses significantly less RAM.

 

CONCLUSION:

It was a lot of work but I think it is worth it. Again, all of this work should net a PC that literally goes from monitor riser to DCS server in about 2 minutes by itself with no peripherals and one button press. I hope this was worth the read. I will add to this as time goes on if I experience any issues or have more quantifiable performance data.

 

2-MONTH UPDATE:

With the release of the F-4 my friends and I flew many training sorties on this machine, mostly on Nevada but also on Syria and Caucasus. We had anywhere from 2-6 people on the server at any given time. There were times when I left the server on overnight with no apparent issues. Having 1 ping is very nice and the excellent server performance made going on other servers quite jarring, especially ECW. It is very nice to be able to pause the server on command when someone needs to step away for a moment, change the mission whenever you feel like it and upload new ones in moments. All of these things are possible with self-hosting but I have lost track of the number of times where I experienced an issue on my main rig that would have resulted in a server crash for everyone had I not been using this machine for hosting instead.

With the  realization that I don't need 3.5-4.0GHz to comfortably run a server, I am even more confident in the future of this setup. I am satisfied with what it does and can't foresee anything that would force an upgrade, especially when the Dedicated Server becomes MT-compatible.

Thanks for reading!
ACS_Dev

Edited by ACS_Dev
Two Month Update, some clarifications and encouragement.

"Got a source for that claim?"

Too busy learning the F-16 to fly it, Too busy making missions to play them

Callsign: "NoGo" "Because he's always working in the editor/coding something and he never actually flies" - frustrated buddy

Main PC: Ryzen 5 5600X, Radeon 6900XT, 32GB DDR4-3000, All the SSDs. Server PC: Dell Optiplex 5070, I7 9700T 3.5GHz, 32GB DDR4-2133. Oculus Quest 3.

  • ACS_Dev changed the title to DIY Standalone DCS Server For ~$400: A Writeup on how I bought and set up a Dell Optiplex Micro as a DCS Dedicated Server
  • 8 months later...
Posted

Hi. Interesting project and I'd like to ask how is it doing now since it has been quite some time. Have you tried running Retribution or Liberation yet?I am trying to find a build for my own dedicated server.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...