Skip to content

RuckZuck Proxy Server

Roger Zander edited this page Nov 18, 2019 · 9 revisions

You can host an OnPrem RuckZuck Server to cache binaries locally.

The easiest way is by running the ruckzuck Docker container from: https://hub.docker.com/r/zanderr/ruckzuck

Installation

Get the container:

docker pull zanderr/ruckzuck:latest

Start the container:

docker run --name ruckzuck -d -e "localURL=http://192.168.2.109:5000" -p 5000:5000/tcp -p 5001:5001/udp zanderr/ruckzuck

Note: the Variable localURL must represent the url to access the container

Verify

As soon as the container is started, browse to your "localURL" and you will get the same page as on https://ruckzuck.tools . The Server will listen to broadcasts on UDP:5001, so RuckZuck clients within the same subnet should find the "Proxy" automatically... When you start RuckZuck.exe, you will find your "localURL" as REST-API URL: RuckZuck URL

you can also configure your local RuckZuck Server by setting the following registry keys:

if((Test-Path -LiteralPath "HKLM:\SOFTWARE\Policies\RuckZuck") -ne $true) {  New-Item "HKLM:\SOFTWARE\Policies\RuckZuck" -force -ea SilentlyContinue };
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Policies\RuckZuck' -Name 'WebService' -Value "http://192.168.2.109:5000" -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\Policies\RuckZuck' -Name 'Broadcast' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;

Note: Broadcast=0 will disable the initial broadcast to find a RuckZuck Server

Caching

The first Client who request content from the internet will trigger the server to download the file(s) to wwwroot/content/{contentid}. The content URL within the package will then be redirected to your localURL. The content within the container will be cleaned if you re-publish or update your container. To keep the content files, you can redirect wwwroot/content to your physical host.

known Limitations

  • Only packages with valid URLs can be cached, URL's generated from a PowerShell will still be downloaded from the clients.
  • Some packages can not be downloaded from the Server. As workaround you can copy the content to wwwroot/content/{contentid}
  • Download errors ca occur if multiple clients requesting the same file and the file is not yet cached. As workaround, use RuckZuck.exe to pre-download files you need.
  • The Server will not re-download content if the signature or file hash has changed. You will have to remove this content from wwwroot/content/{contentid}
You can’t perform that action at this time.