404
+ +Page not found
+ + +diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..dbf3c33 --- /dev/null +++ b/404.html @@ -0,0 +1,130 @@ + + +
+ + + + +Page not found
+ + +Automatically fills a Lancache with games from Epic Games so that subsequent downloads will be served from the Lancache, improving speeds and reducing load on your internet connection.
+Will keep track of which games have been previously downloaded, and will only download games that have updates.
+Option | ++ | Values | +Default | ++ |
---|---|---|---|---|
--all | ++ | + | + | Downloads all owned apps, useful for prefilling a completely empty cache. | +
--force | +-f | ++ | + | By default, EpicPrefill will keep track of the most recently prefilled apps, and will only attempt to prefill if there it determines there a newer version available for download. This default behavior will work best for most use cases, as no time will be wasted re-downloading files that have been previously prefilled. Running with the flag --force will override this behavior, and instead will always run the prefill, re-downloading all files for the selected apps. This flag may be useful for diagnostics, or benchmarking network performance. |
+
--nocache | ++ | + | + | EpicPrefill will cache copies of certain files on disk, in order to dramatically speed up future runs. These cache files will be stored in the /Cache directory in the same directory as EpicPrefill. However, in some scenarios this disk cache can potentially take up a non-trivial amount of storage (~1gb), which may not be ideal for all use cases. |
+
--verbose | ++ | + | + | Produces more detailed log output. By default, games that are already up to date will not be displayed at all. Specifying this option will make it so that all games, even ones up to date, will be logged. | +
--unit | ++ | bits, bytes | +bits | +Specifies which unit to use to display download speed. | +
--no-ansi | ++ | + | + | Application output will be in plain text, rather than using the visually appealing colors and progress bars. Should only be used if terminal does not support Ansi Escape sequences, or when redirecting output to a file. | +
Deletes temporary cache files stored in the /Cache
directory.
+These files are cached in order to dramatically speed up future prefill
runs (in some cases 3X faster),
+however in some cases this disk cache can potentially take up a non-trivial amount of storage (~1gb).
These cache files will also build up over time, as newer versions of games are released, leaving unused cache data behind that will never be used again.
+In the case that you would like to save disk space without having to constantly clear the cache,
+running prefill
with the --nocache
flag specified will prevent the cache files from being written in the first place.
Option | ++ | + |
---|---|---|
--yes | +-y | +Skips the prompt asking to clear the cache, and immediately begins clearing the cache. | +
Only the .NET 6 SDK is required to compile the project. This can be installed through one of the following methods
+choco install dotnet-6.0-sdk
+# Needs to be removed, in order to resolve issue with Nuget being preconfigured wrong.
+# Will auto-regenerate on first run.
+Remove-Item "C:\Users\$Env:USERNAME\AppData\Roaming\NuGet\nuget.config"
+
+The latest .NET 6.0 SDK can be found here .NET 6.0 SDK - Windows x64 Installer
+git clone --recurse-submodules -j8 https://github.com/tpill90/epic-lancache-prefill.git
+
+If you've already cloned the repository without the submodules, use this command to include the submodules:
+git submodule update --init --recursive
+
+The project can be compiled by running the following in the repository root (the directory with the .sln file). This will generate an .exe that can be run locally. Subsequent dotnet build
commands will perform incremental compilation.
dotnet build
+
+Note
+These steps assume that the working directory is /EpicPrefill
. All commands assume that they can find EpicPrefill.csproj
in the working dir.
Typically, for development you will want to run the project in Debug
mode. This mode will run dramatically slower than Release
, however it will leave useful debugging information in the compiled assembly. Running the following will detect and compile any changes, and then execute the project:
dotnet run
+
+The above is analogous to running ./EpicPrefill.exe
without any parameters. To instead supply parameters :
dotnet run -- prefill --all
+
+Alternatively, to run the project at full speed with all compilation optimizations enabled, add the additional --configuration Release
flag:
dotnet run --configuration Release
+
+To compile and run all tests in the entire repo, run the following command:
+dotnet test
+
+
+ This project is using mkdocs to generate the static documentation that is then hosted on Github Pages. The only requirement for building mkdocs is to have Python 3 installed, which can be done through Chocolatey.
+# Installs Python from Chocolatey. Alternatively Python can be manually installed.
+choco install python
+
+# Installs required mkdocs package
+pip install mkdocs
+
+mkdocs.yml # Mkdocs root configuration file.
+mkdocs/
+ index.md # The documentation homepage.
+ ... # Other markdown pages, images and other files.
+
+mkdocs has a built in server that will watch for changes being made, and immediately display those changes.
+You can launch the the live server using mkdocs serve
, and open http://127.0.0.1:8000/
in your browser. You can now make edits and have the page automatically refresh and display those changes!
EpicPrefill is a tool used to automate filling a Lancache with games from Epic Games, so that subsequent downloads for the same content will be served from the Lancache, improving speeds and reducing load on your internet connection.
+Getting started?
+Check out the install guides for various platforms: Install Guide For Linux Beginners, Docker Setup Guide, and Unraid Setup Guide.
+Interesting in Contributing?
+To get started compiling the project, see Compiling From Source.
+Want to make updates to the documentation? See Working With Project Documentation.
This guide is intended for getting started with the EpicPrefill Docker image (DockerHub), and to become familiarized with how to interact with it. This guide does not intend to be a detailed guide on how to use EpicPrefill itself, which can be found in the Getting Started guide.
+Note
+Docker is not strictly required to run EpicPrefill, as it is a completely self-contained portable app.
+To download and run the latest version of the container, open up a terminal and run the following command:
+docker run -it --rm --net=host \
+ --volume ~/.config/EpicPrefill:/Config \
+ tpill90/epic-lancache-prefill:latest
+
+This command is the same as running EpicPrefill from the command line with no options, and if successful should produce the following output:
+ +At this point, you will be able to run any of the COMMANDS
listed in the output by appending the desired command at the end, for example with select-apps
:
docker run -it --rm --net=host \
+ --volume ~/.config/epic-prefill:/Config \
+ tpill90/epic-lancache-prefill:latest \
+ select-apps
+
+If you are new to EpicPrefill and would like an introductory tutorial, see the Getting Started guide.
+Answers to common issues and questions can be found at Frequently Asked Questions.
+Alternatively, to see all of the features that EpicPrefill offers, take a look at Detailed command usage
+ +This guide is written to help Linux beginners successfully download EpicPrefill on their Lancache caching server.
+Prior to installing EpicPrefill we will need to make sure that curl
, jq
, and unzip
are already installed on our system. Depending on your machine's configuration, this software may or may not already be installed. Regardless, the following steps will ensure that everything needed is successfully installed.
Note
+These steps assume that you are using Ubuntu/Debian. Depending on which Linux distro you are using, you may have to use slightly different commands.
+To run the following commands, open up a new terminal session, and enter the following:
+# Makes sure that the latest app versions will be installed
+apt-get update
+
+# Installs the required software
+apt-get install curl jq unzip wget -y
+
+Warning
+You may run into a "Could not open lock file" error when running apt-get install
, and will need to prefix the command with sudo
Once the install command has finished successfully, we can move on to installing EpicPrefill.
+We will be using a script to assist with installing EpicPrefill for the first time. This will be helpful as it will save us from running several manual steps.
+To begin, open up a new terminal session. We will want to create a new directory to install EpicPrefill into. For example, to create the directory and to move into it, run"
+mkdir EpicPrefill
+cd EpicPrefill/
+
+After running the above commands successfully, you should see similar output in your terminal :
+ +We can now move on to downloading the install script from the repo, and running it to install EpicPrefill
+# Downloads the install script
+curl -o update.sh --location "https://raw.githubusercontent.com/tpill90/epic-lancache-prefill/master/scripts/update.sh"
+
+# Allows the install script to be executed
+chmod +x update.sh
+
+# Does the install!
+./update.sh
+
+# Allows EpicPrefill to be executed
+chmod +x ./EpicPrefill
+
+If everything worked as expected, you should see output similar to below
+ +EpicPrefill is now installed on your machine! You can now run it with ./EpicPrefill
If you are new to EpicPrefill and would like an introductory tutorial, see the Getting Started guide.
+Answers to common issues and questions can be found at Frequently Asked Questions.
+Alternatively, to see all of the features that EpicPrefill offers, take a look at Detailed command usage
+ +Prior to installing SteamPrefill via docker you should ensure you have a working Lancache caching and Lancache DNS server installed on your system.
+Note
+These steps assume that you are running Lancache caching server as a docker container on a custom network configured for your own subnet.
+Again from your Unraid terminal you will download and run the SteamPrefill Docker image.
+Note
+--add-host=lancache.steamcontent.com:XXX.XXX.XXX.XXX
is required in order to tell the container the IP Address of your Lancache server running on your custom network. If not specified, SteamPrefill will be unable to locate the Lancache server, and will be unable to prefill.
Next you will run the following command to setup the container, and start configuring which apps to prefill.
+docker run -it --rm \
+ --net=br0 \
+ --add-host=lancache.steamcontent.com:XXX.XXX.XXX.XXX \
+ --volume /mnt/user/appdata/SteamPrefill:/Config \
+ tpill90/steam-lancache-prefill:latest \
+ select-apps
+
+To get familiarized with how to use SteamPrefill, see the Getting Started guide.
+The User Scripts Community App can be used to create and configure custom scheduled jobs on Unraid. To begin, ensure that the app is installed from Unraid's App tab, if it isn't already installed.
+ +After installing User Scripts, click Unraid's Plugins tab, then the User Scripts icon to open up the settings for scheduled jobs.
+
Next, add a new script by clicking ADD NEW SCRIPT, and give it the name Steam Prefill
. After it has been created, click the orange gear next to Steam Prefill
, and select EDIT SCRIPT.
+Adding the following command will configure the scheduled job to run the prefill
command every time it is configured. Be sure sure to change XXX.XXX.XXX.XXX
to your Lancache server IP.
Note
+This command is almost identical to the one we used previously, except for --it
being omitted. This will make the container run non-interactively, as required by User Scripts
#!/bin/bash
+docker rm -f SteamPrefill &>/dev/null && echo 'Removed old container from previous run';
+docker run --rm --name SteamPrefill \
+ --net=br0 \
+ --add-host=lancache.steamcontent.com:XXX.XXX.XXX.XXX \
+ --volume /mnt/user/appdata/SteamPrefill:/Config \
+ tpill90/steam-lancache-prefill:latest \
+ prefill
+
+After saving changes, the final step will be to decide on a schedule, and configure that schedule. Change the schedule drop down from Schedule Disabled, to Custom, which will allow you to specify your desired schedule. Jobs are configured by specifying a Cron expression that describes the schedule to run on.
+Some examples of cron expressions:
+Schedule | +Cron Expression | +
---|---|
Every day at 2am | +0 2 * * * |
+
Every 4 hours | +0 */4 * * * |
+
If the above examples don't cover your use case, crontab.guru is an online cron expression editor that can interactively edit cron expressions, and explain what they mean.
+Finally after entering a cron expression, click APPLY to save your cron expression. You should now be all set to have SteamPrefill run on a schedule!
+If you are new to SteamPrefill and would like an introductory tutorial, see the Getting Started guide.
+Answers to common issues and questions can be found at Frequently Asked Questions.
+Alternatively, to see all of the features that SteamPrefill offers, take a look at Detailed command usage
+ +Link | +Description | +
---|---|
https://github.com/MixV2/EpicResearch | +Unofficial Documentation about Epic's non-documented API | +
https://github.com/MixV2/EpicResearch/blob/master/docs/auth/auth_clients.md | +Unofficial Documentation about Epic's Auth Client Documentation | +