Skip to content

Foundry VTT

Foundry VTT is a standalone application built for experiencing multiplayer tabletop RPGs using a feature-rich and modern self-hosted application where your players connect directly through the browser.

Report an issue
updated
variables
3
images
1
author
pterodactyl@demi.cloud
sha256
d393e4c6d6f5

Readme

Foundry VTT

Foundry VTT is a standalone application built for experiencing multiplayer tabletop RPGs using a feature-rich and modern self-hosted application where your players connect directly through the browser.

Installation

Foundry requires a license. In order to use this egg, you will need to purchase a foundry license, select the Node.js platform from your profile on the website, and then paste the "Timed URL" into the variable when seting up the server.

image

Note that this egg only runs the node application. You will need to manage TLS, reverse proxying, etc. on your own.

Server Ports

This is a node application and only needs a single port that you will connect to over http(s)

Startup command

node ./app/main.js --dataPath="/home/container/data"

Docker image

  • ghcr.io/ptero-eggs/yolks:nodejs_22

1 contributor

Variables

3 settings

  • Timed URL

    This is required to download the foundry files. Available in your https://foundryvtt.com/ profile after you've purchased a license. This link generally lasts for about 5 minutes.

    env
    TIMED_URL
    default
    none
    rules
    required|url
    • viewable
    • editable
  • Language

    As may be expected, this setting configures the localization of the program and can be leveraged by localization modules to ensure that the interface is translated to the language of your choosing wherever possible.

    env
    FOUNDRY_LANGUAGE
    default
    en.core
    rules
    string|max:20
    • viewable
    • editable
  • Update Channel

    Select what channel you want to use for automatic updates

    env
    UPDATE_CHANNEL
    default
    release
    rules
    string|max:256
    • viewable
    • editable
Installation script 50 lines container ghcr.io/ptero-eggs/installers:debian entrypoint bash show
#!/bin/bash
# FoundryVTT install script
#
# Server Files: /mnt/server
declare -r DIR_ROOT="/mnt/server"
declare -r DIR_APP="${DIR_ROOT}/app"
declare -r DIR_DATA="${DIR_ROOT}/data"
declare -r ZIP_FILE_NAME="foundryvtt.zip"

main() {
  apt update
  apt install -y unzip

  printf "\nBuilding directory structure...\n"
  mkdir -p "${DIR_ROOT}/data/Config"
  mkdir -p "${DIR_ROOT}/app"
  # shellcheck disable=SC2164
  cd "${DIR_APP}"
  printf "\nDownloading FoundryVTT files...\n"
  wget "${TIMED_URL}" -O "${ZIP_FILE_NAME}"
  printf "\nunzipping FoundryVTT files...\n"
  unzip "${ZIP_FILE_NAME}" -d "${DIR_APP}"
  #rm "${ZIP_FILE_NAME}"

  printf "\nGenerating default configuration...\n"
  cat <<EOF >"${DIR_DATA}/Config/options.json"
{
  "port": 30000,
  "upnp": false,
  "fullscreen": false,
  "hostname": null,
  "localHostname": null,
  "routePrefix": null,
  "sslCert": null,
  "sslKey": null,
  "awsConfig": null,
  "dataPath": "/home/container/data",
  "passwordSalt": null,
  "proxySSL": false,
  "proxyPort": null,
  "minifyStaticFiles": true,
  "updateChannel": "release",
  "language": "en.core",
  "upnpLeaseDuration": null,
  "world": null
} 
EOF
  printf "Installation Done.\n"
}
main "@"