Skip to content

Auto-download from CurseForge

Mods and plugins can be auto-downloaded and upgraded from CurseForge by setting CURSEFORGE_FILES to a comma or space delimited list of project-file references. References removed from the declaration are automatically cleaned up and setting CURSEFORGE_FILES to an empty string removes all previously managed project-files.

A specific file can be omitted from each reference to allow for auto-selecting the newest version of the selected mod/plugin. The resolved VERSION and TYPE will be taken into consideration for selecting the appropriate file.

CurseForge API key usage

A CurseForge API key must be allocated and set with CF_API_KEY as described here.

Project-file references


Individual project files typically represent a version of the mod/plugin, but CurseForge refers to these items broadly as "files" rather than "versions".

The following formats are supported in the list of project-file references:

  • A project page URL, such as The newest applicable file will be automatically selected.
  • A file page URL, such as
  • Project slug, such as jei. The newest applicable file will be automatically selected.
  • Project ID, such as 238222. The newest applicable file will be automatically selected.
  • Project slug or ID, :, and a file ID, such as jei:4593548 or 238222:4593548
  • Project slug or ID, @, and a partial filename, such as jei@ This option is useful to refer to a version of the mod/plugin rather than looking up the file ID.

An @ followed by the container path to a listing file can also be provided as a project-file reference. Each line is processed as a reference where blank lines and comments that start with # are ignored.

For example, CURSEFORGE_FILES can be set to "@/extras/cf-mods.txt" where the container file /extras/cf-mods.txt contains

# This comment is ignored

# This and previous blank line are ignore

Docker Compose

Making use of the space delimited option, compose file declarations can be organized nicely with a multi-line string, such as



The files processing can detect if a dependency is missing from the given list, but is not able to resolve the dependencies otherwise since their metadata only gives the mod ID and not the specific file version/ID that is needed.