lancache-bundle

lancache-bundle

Docker app from Josh.5's Repository

Overview

An all in one lancache docker providing a combination of the following three projects: https://github.com/lancachenet/lancache-dns https://github.com/lancachenet/monolithic https://github.com/lancachenet/sniproxy Thanks to cheesemarathon for their work on the SteamCacheBundle that inspired this and provided the grounding for the template. Note, however, that this Docker image does not run at all the same way and is strictly based on the original upstream logcache project. On start, this image will download the latest domain list from https://github.com/uklans/cache-domains. This means no constant upgrading of the docker image is necessary in order to guarantee continued usability

lancache-bundle

A bundled lancache service based on https://github.com/lancachenet/

This is a bundled image containing everything as it is if you were to run the offical monolithic stack from lancachenet.


(Original Readme from lancache docker-compose)

Docker Compose for a full-stack lancache.

Docker Pulls Docker Pulls Docker Pulls Docker Pulls

This docker-compose is meant as an example for running our lancache stack, It will run out of the box with minimal changes to the .env file for your local IP address.

Settings

You MUST set at least LANCACHE_IP and DNS_BIND_IP. It is highly recommended that you change CACHE_ROOT to a folder of your choosing, and set CACHE_DISK_SIZE to a value that suits your storage capacity.

USE_GENERIC_CACHE

This controls IP assignment within the DNS service - it assumes that every service is reachable by default on every IP given in LANCACHE_IP. See the lancache-dns project for documentation on customising the behaviour of the DNS service.

LANCACHE_IP

This provides one or more IP addresses to the DNS service to advertise the cached services. If your cache host has exactly one IP address (e.g. 192.168.0.10), specify that here. If your cache host has more IP addresses, you can list all of them, separated by spaces (e.g. 192.168.0.10 192.168.0.11 192.168.0.12) - DNS entries will be configured for all services and all IPs by default.

Note: unless your cache host is at 10.0.39.1, you will want to change this value.

DNS_BIND_IP

This sets the IP address that the DNS service will listen on. If your cache host has exactly one IP address (eg. 192.168.0.10), specify that here. If your cache host has multiple IPs, specify exactly one and use that. This compose stack does not support the DNS service listening on multiple IPs by default.

Note: unless your cache host is at 10.0.39.1, you will want to change this value.

There are a few ways to make your local network aware of the cache server.

  1. Advertise the IP given in DNS_BIND_IP via DHCP to your network as a nameserver. In this scenario, all clients configured to use the nameservers from DNS will use the lancache-dns service. This allows the lancache-dns service to provide clients with the appropriate local IPs for cached services, and all other requests will be passed to UPSTREAM_DNS.
  2. Use the configuration generators available from UKLANs' cache-domains project to create configuration data to load into your network's existing DNS infrastructure

UPSTREAM_DNS

This allows you to choose one or more IP addresses for upstream DNS resolution if a name is not matched by the lancache-dns service (e.g. non-cached services, local hostname resolution).

Whichever resolver you choose depends on your network's requirements - if you don't need to provide internal DNS names, you can point UPSTREAM_DNS directly to an external resolver (the default is Google's DNS at 8.8.8.8).

If you run internal services on your network, you can set UPSTREAM_DNS to be your internal DNS resolver(s), semicolon separated (e.g. 192.168.0.1; 192.168.0.2).

Example external resolvers

  • Google DNS:
    • 8.8.8.8
    • 8.8.4.4
  • Cloudflare
    • 1.1.1.1
  • OpenDNS
    • 208.67.222.222
    • 208.67.220.220

CACHE_ROOT

This will be used as the base directory for storing cached data (as CACHE_ROOT/cache) and logs (as CACHE_ROOT/logs).

The CACHE_ROOT should either be on a separate partition, or ideally on separate storage devices entirely, from your system root.

Note: this setting defaults to ./lancache. Unless your cache storage lives here, you probably want to change this value.

CACHE_MEM_SIZE

This controls the size of the memory cache used by the cache server. The default should suffice for almost all configurations.

Note: this setting does not limit the amount of memory that the Linux host will use for page caches, only what the cache server will use itself - see the Docker documentation on limiting memory consumption for a container if you wish to constrain the total memory consumption of the cache server, but generally you want as much memory as possible on your cache server to be used to store hot data.

CACHE_DISK_SIZE

This setting will constrain the upper limit of space used by cached data. You generally want to leave a small gap (10-20GB at least) between the size listed here and the available storage space used for the cached data, just in case.

The cache server will automatically cached data when the total stored amount approaches this limit, in a least-recently-used fashion (oldest data, least accessed deleted first).

Note: that this must be given in megabytes with an m suffix (e.g. the default value, 1000000m).

CACHE_MAX_AGE

This setting allows you to control the maximum duration cached data will be kept for. The default should be fine for most use cases - the CACHE_DISK_SIZE setting will generally be used before this for aging out data.

Note: this must be given as a number of days in age before expiry, with a d suffix (e.g. the default value, 3650d).

More information

The LanCache docker-stack is generated automatically from the data over at UKLans. All services that are listed in the UKLans repository are available and supported inside this docker-compose.

For an FAQ see https://github.com/lancachenet/monolithic/blob/master/faq.md

Install lancache-bundle on Unraid in a few clicks.

Find lancache-bundle in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for lancache-bundle Review the template variables and paths Click Install

Download Statistics

1,052,453
Total Downloads
44
This Month
317
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Details

Repository
josh5/lancache-bundle:latest
Last Updated2021-08-01
First Seen2020-02-12

Runtime arguments

Network
br0
Shell
bash
Privileged
false

Template configuration

LANCACHE_IPVariable

IP Address of cache container. (Has to be the same as the HOST's IP. If you set the container's IP to 192.168.1.202 this has to be the same. If you use bridge it has to be the same as unRAID's IP.)

Value
192.168.1.202
DNS_BIND_IPVariable

IP Address of cache container. (Has to be the same as the HOST's IP. If you set the container's IP to 192.168.1.202 this has to be the same. If you use bridge it has to be the same as unRAID's IP.)

Value
192.168.1.202
dataPathrw

Location to store the cached files

Target
/data/cache
Value
/mnt/user/lancache
DNS LogsPathrw

Location to store the DNS logs

Target
/var/log/named
Value
/mnt/user/appdata/lancache-bundle/log/named
Nginx LogsPathrw

Location to store the Nginx logs

Target
/var/log/nginx
Value
/mnt/user/appdata/lancache-bundle/log/nginx
CACHE_MEM_SIZEVariable

Memory size for the cache

Value
500m
CACHE_DISK_SIZEVariable

Max size for the cache

Value
2000g
CACHE_MAX_AGEVariable

Max age for files in the cache

Value
150d
DNS UDP PortPortudp

DNS port, don't change!

Target
53
Default
53
Value
53
HTTP PortPorttcp

Container Port: 80 Don't change!

Target
80
Value
80
HTTPS PortPorttcp

Container Port: 443 SNIProxy port, don't change!

Target
443
Value
443
UPSTREAM_DNSVariable

Container Variable: UPSTREAM_DNS

Value
1.1.1.1
USE_GENERIC_CACHEVariable

Must be set to true to use generic cache

Value
true
DISABLE_ARENANETVariable

Set to true to disable arenanet caching

DISABLE_BLIZZARDVariable

Set to true to disable blizzard caching

DISABLE_CITYOFHEROESVariable

Set to true to disable cityofheroes caching

DISABLE_DAYBREAKVariable

Set to true to disable daybreak caching

DISABLE_EPICGAMESVariable

Set to true to disable epicgames caching

DISABLE_FRONTIERVariable

Set to true to disable frontier caching

DISABLE_HIREZVariable

Set to true to disable hirez caching

DISABLE_NEVERWINTERVariable

Set to true to disable neverwinter caching

DISABLE_NEXUSMODSVariable

Set to true to disable nexusmods caching

DISABLE_NINTENDOVariable

Set to true to disable nintendo caching

DISABLE_ORIGINVariable

Set to true to disable origin caching

DISABLE_RENEGADEXVariable

Set to true to disable renegadex caching

DISABLE_RIOTVariable

Set to true to disable riot caching

DISABLE_ROCKSTARVariable

Set to true to disable rockstar caching

DISABLE_SONYVariable

Set to true to disable sony caching

DISABLE_STEAMVariable

Set to true to disable steam caching

DISABLE_TESOVariable

Set to true to disable teso caching

DISABLE_TWITCHVariable

Set to true to disable twitch caching

DISABLE_UPLAYVariable

Set to true to disable uplay caching

DISABLE_WARFRAMEVariable

Set to true to disable warframe caching

DISABLE_WARGAMINGVariable

Set to true to disable wargaming caching

DISABLE_WSUSVariable

Set to true to disable windowsupdates caching

DISABLE_XBOXLIVEVariable

Set to true to disable xboxlive caching