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.
Install
- Installer image
- ghcr.io/ptero-eggs/installers:debian
- Install script
- 50 lines
Image
- Node.js 22 ghcr.io/ptero-eggs/yolks:nodejs_22
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
3 variables
Startup command
node ./app/main.js --dataPath="/home/container/data"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.
TIMED_URLUsers can edit
required|urlA value is required.
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.
FOUNDRY_LANGUAGEUsers can edit
string|max:20
Select what channel you want to use for automatic updates
UPDATE_CHANNELUsers can edit
string|max:256
Wings
- Stop command
- ^C (SIGINT)
- Running when the console shows
- Server started and listening on port
Files Wings edits
Wings sets these values in these files before each start.
data/Config/options.json json
- port
- {{server.build.default.port}}
- language
- {{server.build.env.FOUNDRY_LANGUAGE}}
- updateChannel
- {{server.build.env.UPDATE_CHANNEL}}
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.

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)
Changes
- Update FoundryVTT.json (#149)
· Daniel Barton · 175dc36
- Add standalone games
· Daniel Barton · 74c706a
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 50 lines bash in ghcr.io/ptero-eggs/installers:debian Show Hide
#!/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 "@"