Monolithic lancache

How to...

Hey everyone, this is a quick tutorial for installing the latest monolithic lancache that has superseded the steamcache release. (See video below). 


The monolithic lancache is comprised of three docker containers with improved functionality:


  • lancache-dns (previously known as steamcache-dns)
  • lancache (previously known as steamcache but now caches wsus, steam, uplay, blizzard, epic games, etc. over a single IP address)
  • sniproxy (https pass-thru, same as before)


This tutorial was created and configured on a small VM with Ubuntu 18.04 but it is much more preferred to be on physical hardware with lots of memory and high network/disk IO. Our current LFGLAN caching server is a physical Dell R420, 128GB memory, 4TB RAID-10 SSDs, and 10GB networking to accommodate up to 50+ users downloading full games and updates as an example.


The following install/configuration can be tailored to your environment and hardware.


  1. underpants
  2. install Ubuntu 18.04 on hardware.
  3. configure networking (preferably static IP), disable UFW
  4. sudo apt upgrade -y , reboot after any updates have applied
  5. create the data/logs folders, sudo mkdir /mnt/lancache, sudo mkdir /mnt/lancache/data, sudo mkdir /mnt/lancache/logs
  6. modify the permissions to the data/logs folders, sudo chmod -R 777 /mnt/lancache/data, sudo chmod -R 777 /mnt/lancache/logs
  7. verify permissions with ls, folders in /mnt/lancache should now appear modified
  8. sudo apt install docker.io (if not installed), sudo systemctl start docker, sudo systemctl enable docker
  9. verify docker is running, sudo docker ps
  10. replace the following xxx.xxx.xxx.xxx with your assigned static IP address
  11. sudo docker run --restart unless-stopped --name lancache-dns --detach -p xxx.xxx.xxx.xxx:53:53/udp -e USE_GENERIC_CACHE=true -e LANCACHE_IP=xxx.xxx.xxx.xxx -e UPSTREAM_DNS=1.1.1.1 lancachenet/lancache-dns:latest
  12. sudo docker run --restart unless-stopped --name lancache --detach -v /mnt/lancache/data:/data/cache -v /mnt/lancache/logs:/data/logs -p xxx.xxx.xxx.xxx:80:80  lancachenet/monolithic:latest
  13. sudo docker run --restart unless-stopped --name sniproxy --detach -p xxx.xxx.xxx.xxx:443:443 lancachenet/sniproxy:latest
  14. verify docker is running the new containers, sudo docker ps
  15. change your client PC, change your DNS to your assigned lancache IP
  16. open command prompt, type ipconfig/flushdns
  17. profit


*This video also shows an unsupported workaround for Comcast Xfinity ISP subscribers. Comcast forces steam download explicitly over https but can be failed back to http with the following configuration. 


(IF YOU ARE NOT A COMCAST SUBSCRIBER THIS DOES NOT APPLY, PLEASE SKIP AHEAD)


  1. sudo docker ps
  2. verify and copy sniproxy container ID
  3. enter the following, sudo docker exec -ti xxxxxxxxxxx tail /etc/sniproxy.conf
  4. verify the empty table { entry
  5. vi the conf file, sudo docker exec -ti xxxxxxxxxxx vi /etc/sniproxy.conf
  6. add the following entry listed below, save, sudo docker restart sniproxy


table {

edge.steam-dns.top.comcast.net 127.0.0.1:443

edge.steam-dns-2.top.comcast.net 127.0.0.1:443

.* *:443

}


After the install is complete or after a reboot, I usually wait about 5-10 minutes for DNS to update/cache on the local server before having any clients connect. This will save you any headaches down the way when trying to troubleshoot if your configuration is working properly.


Next, lets verify the connectivity and caching functionality.


  1. underpants
  2. on your LANCACHE server type, sudo docker exec -it lancache tail -f /data/logs/access.log
  3. verify your client PC IP address is checking in
  4. on client pc, click start menu, settings, update & security, check updates
  5. on LANCACHE server you should start seeing new entries in your access.log file
  6. open steam, download preferably a small game to test functionality, the download speed should be relatively slow which is to be expected as its intercepting the chunks over http to your server and sending the content to your client PC, your access.log entries should read MISS
  7. once completed, delete the game, re-install the game, you should see the download speed increase drastically
  8. on your LANCACHE server, verify the access.log is now showing HIT in all the entries
  9. profit


Congrats you are all finished

Questions or Concerns

LANCACHE SETUP & CONFIGURE