How to setup generic-cache on unRAID

This docker container provides a caching proxy server for game download content. For any network with more than one PC gamer connected, this will drastically reduce internet bandwidth consumption.

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) – Not working right now
  • Riot Games (League of Legends)
  • (Hearthstone, Starcraft 2, Overwatch)
  • Frontier Launchpad (Elite Dangerous, Planet Coaster)
  • Uplay (Ubisoft)
  • Windows Updates

It’s super easy to install following the instructions below:

  1. Install the generic-cache container, from community applications, changing the cache and log locations if you wish and set a fixed IP for the container. Make sure it’s not one already in use on your network! 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.
  2. Install steamcache-dns, from community applications, changing the LANCACHE_IP to the IP you set for the generic-cache container. You will need to set a fixed IP for this container also. 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.
  3. 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.
    Terminal (Mac/Linux):

    Power Shell (Windows):
  4. 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. Windows Instructions Mac Instructions
  5. Start a small game downloading in Steam
  6. Run the following command in an SSH session to your unRAID server

    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.
  7. Wait for the download to finish
  8. Uninstall the game then reinstall it
  9. 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 super fast.

For more in-depth instructions, but not specific to unRAID, go here.

9 thoughts on “How to setup generic-cache on unRAID

    1. I believe steamcache is based off of LANcache. They do have a version which doesn’t just cache steam however origin gets updates over HTTPS which adds some challenges. I’ve been looking into getting it to work easily with unRAID but have been unsuccessful so far. I’ll post here when I make any more progress. In the meantime feel free to have a look at the steamcache github page for more info.

  1. I think I may have gotten the generic cache container working. I found this container by the same author as the steamcache and steamcache-dns containers:

    I searched for “generic cache” on the Community Apps page and had to look on docker hub for more results, but it was there. After following the instructions on the github page that I linked and the steamcache-dns docker github page it appears to be working. I tried to detail what I did on my own blog:

    1. I’m glad you have it working. Thanks for the blog post. I’ll take a read of it and create a template for generic steamcache and get it added to community applications. That way people can use all its other functions without origin caching until I get that sorted. I have some ideas for that.

    2. I have it working as well now. I’ll work on creating a template for the generic cache and updating the DNS container to have all the required settings later today.

      1. No hurry on my part, but I definitely appreciate the templates! Probably need to take the time to learn how to make my own. Thanks!

        1. The DNS container has been updated and the generic cache template has been created. An update for the DNS should appear in a couple of hours along with generic cache in community applications. Once they are available I will update this post.

Leave a Reply