This container is designed to support any game that uses HTTP and also supports HTTP range requests (used by Origin). This should make it suitable for:
- Steam (Valve)
- Origin (EA Games)
- Riot Games (League of Legends)
- Battle.net (Hearthstone, Starcraft 2, Overwatch)
- Frontier Launchpad (Elite Dangerous, Planet Coaster)
- Uplay (Ubisoft)
- Windows Updates
It’s super easy to install following the instructions below:
These instructions are written assuming you have unRAID 6.5.0 or above installed. If you’re running an earlier version of unRAID, then now is a great time to upgrade! Or you can search the Limetech forums on how to change the unRAID web UI ports and skip steps one and two.
Open the unRAID web UI and navigate to Settings – Identification and then click the Management Access tab.
Next, change the HTTP and HTTPS ports to another port that is not already in use by your server. I have used 85 and 448 respectively but you can use whatever you want.
Click apply and your settings will be updated. In order to access the web UI, you will now need to go to [unRAID-IP-Address]:[New-HTTP-Port]. So in my case, it was 192.168.1.*:85 where * is the last octet.
Install the generic-cache container, from community applications, changing the cache and log locations if you wish. It is also possible to change the cache memory size, disk size and age. You can do this by altering the values for the appropriate variable. Once complete click apply.
Install steamcache-dns, from community applications, changing the LANCACHE_IP to the IP of your unRAID server. You will need to set a fixed IP for this container also. Make sure it’s not an IP already in use on your network. You may also change the UPSTREAM_DNS setting. This is currently set to Google’s DNS server but you can change it to whichever server you like. This server will be used for any DNS queriesÂ that the cache does not handle. It is also possible to disable any of the caching services. To do this, set the variable corresponding to the service you wish to disable to true. Once complete click apply.
Install SNIProxy from community applications. Nothing can be changed here so leave all options at their default settings.
All three of the above containers must be running for the cache to work, so I recommend setting them all to autostart.
Run the following command on your gaming machine, replacing X.X.X.X with the IP you gave steamcache-dns to check the DNS server is working. It should return the IP you set generic-cache to.
dig @X.X.X.X +short steamcache.cs.steampowered.com
Power Shell (Windows):
Resolve-DnsName steamcache.cs.steampowered.com -server X.X.X.X
Now update the DNS settings on your gaming machine, to point to the IP you set for steamcache-dns. I recommend only setting one DNS server as depending on the OS settings it may choose a DNS server at random.
You will no longer be able to access the internet on your gaming machine if your unRAID server is off as your machine will be unable to resolve hostnames.
Start a small game downloading in Steam
Run the following command in an SSH session to your unRAID server
docker exec -it cache-steam tail -f /data/logs/access.log
This should return lots of text with the word “Miss” towards the end of the line. This means it is getting the download from Steam servers, not the cache. Leave the SSH session open.
Wait for the download to finish
Uninstall the game then reinstall it
The SSH session should now display the same text but with “Hit” at the end instead of “Miss”. This means it’s downloading the game from the cache. Your download speed should also be much faster.
Finally, I recommend do step 10 onwards again, but in Origin if you plan to use it, to make sure the SNIProxy container is working.
Currently, the SNI Proxy is only used when downloading games through Origin. So, if you don’t use Origin, you don’t have to install SNIProxy. However, it is quite likely that more game clients will move towards HTTPS downloads so you may need it again in the future.
For more in-depth instructions, but not specific to unRAID, go here.