Giter Club home page Giter Club logo

qcacher's Introduction

qcacher - eSports & Gaming CDN cache service

Introduction

qcacher is a service designed for long-term caching of various content networks related to gaming. It is designed not only to maximize efficiency of fast connections with multiple clients, but also deliver long-term reliability and resiliency of caching when paired with slow, or intermittent connections.

Supported services

We currently support content caching and delivery for the following services:

  • PlayStation Network (PS3, PS4, PS5)
  • Xbox Live (untested)
  • Epic Games (Store and Unreal Engine)
  • Nintendo (3DS & Wii U)
  • Blizzard (Starcraft 2, Hearthstone, etc.)
  • Riot (League of Legends, Valorant, etc.)
  • Steam (Broadcasts, Games, etc.)
  • Origin (EA)
  • Hi-Rez (Smite, etc.)
  • PlanetSide 2
  • Twitch.tv
  • Microsoft Windows updates
  • NVIDIA driver updates
  • Mozilla Firefox

Components

There are 2 components to this service:

  • nginx - a fast, lightweight, and efficient web server configured to cache and store content from supported delivery networks, and passthrough HTTPS connections to overridden domains to ensure continued delivery
  • unbound - a flexible and fast DNS server configured to override records of the services we support

Getting Started

NOTE: This section is still incomplete. A simple tutorial will be available in the coming weeks.

Running the application

To get started with this application you will require docker and docker-compose. If you don't have these tools installed please see the section of installing them.

You should configure the following two environment variables in docker-compose.yml to provide the service:

  • CACHE_IP - the IPv4 address of the host running qcacher that clients can connect to
  • CACHE_SUBNET - the IPv4 subnet that qcacher should cache for (e.g. 192.168.0.0/16)

DNS for the affected clients should be provided by qcacher.

Once you have Docker installed and the IP configured, it is a as simple as running docker-compose up in the root of the repository to start all the required services.

Appendices

Installing Docker

NOTE: You will need Docker Compose 1.6.0+ and Docker Engine 1.10.0+ as a minimum to run this project.

Linux

Docker is best supported on Linux, you can probably find packages for your preferred distribution here.

OSX

Install Docker and boot2docker following the instructions on this page.

Windows

Not supported yet (we just haven't tried, give it a go, it might work). Pull requests very welcome.

qcacher's People

Contributors

stealthii avatar

Stargazers

Evangelos Pappas avatar NoNameNo1F avatar Ryan Grieve avatar  avatar  avatar Aaron avatar  avatar Tom Piarulli avatar Emily avatar  avatar copter.js avatar Paul avatar  avatar  avatar Constantine Mavromichalis avatar Aldo Cano avatar Timo Beckers avatar Philippe Schommers avatar Mike Alexander avatar

Watchers

James Cloos avatar  avatar  avatar Constantine Mavromichalis avatar  avatar

qcacher's Issues

Test PS Vita compatibility

PS3 and PS4 are both confirmed to be working well, but we haven't tested the configuration on PS Vita (either working cache, or passthrough capability).

please update root-zone trust-anchors in root.key file

Users of your software that enable DNSSEC will not be able to validate DNS after October the 11th 2018.

Your repository contains a root key file without the new DNSSEC trust-anchors:

. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
It should also include:

. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D

More information can be found at: https://www.icann.org/resources/pages/ksk-rollover

Please don’t hesitate to get in touch.

Warmly,

Roy Arends
ICANN

Live boot environment for qcacher

Create a variety of live boot environments that can run qcacher headless with minimal/no configuration, to better facilitate home LANs and quick setups.

Consider the following:

  • LiveCD (only needs to download images)
  • Live iPXE boot (downloads (CoreOS and images)[https://coreos.com/blog/boot-on-bare-metal-with-pxe.html])
  • VM image (CoreOS tweaked for Xen, KVM, Hyper-V, VMware, Virtualbox, etc.)

Implement Xbox support

Xbox support has never been independently tested or written by the qcacher project, and should be considered broken until a full rewrite is attempted.

Investigate new Steam content servers

The following servers have been linked from various parts of the web:

steam.apac.qtlglb.com
steam.apac.qtlglb.com.mwcloudcdn.com
*.steampipe.akamaized.net
*.edgecast.steamstatic.com

Work should be dine to find out what content is provided from these servers, and if they should be added to cached locations.

Implement GOG caching

GOG has recently moved to HTTPS for content delivery like Riot, and do not currently offer any downgrade facility for RFC1918 addresses.

I have contacted GOG's support team about possibly implementing this as a feature, but until then, this issue is blocked.

Hi GOG team!

I help prove tech support and services for a local gaming society, who also run a large gaming and anime convention once a year. We hit 5000 attendees but survive with only an 8Mbit internet connection.

More recently, we've rolled out CDN caching on-site for many known game services, including Riot, PSN, Steam, etc. This has enabled us to allow (rather than block) these services as we have limited bandwidth available.

Riot recently moved to HTTPS for content delivery like you guys, but in order to help local LAN parties cache, they gracefully fallback to HTTP when (e.g. cdn.gog.com) resolves to an RFC1918 (or local) address.

It would be great if you could add this feature - right now there are a few games people play that are available on GOG but we have had to block this due to inadequate bandwidth, requiring people to have the game installed from home before they come.

Discussion on Riot's change: ti-mo/ansible-lanparty#8 (comment)

Q-Con's qcacher: https://github.com/Q-Con/qcacher

Best Regards,
Dan Porter

Test Nintendo Switch compatibility

With the release of the Nintendo Switch, online services are likely to have changed for this console. We need to confirm:

  • If the Nintendo Switch can utilise internet connectivity without issue,
  • If we are caching content already, and adding support if not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.