diff --git a/README.md b/README.md index 14ab3907..1154f483 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [Xonotic](game_eggs/xonotic/xonotic) +[FoundryVTT](game_eggs/FoundryVTT) + ## [Monitoring](/monitoring/) ### Prometheus diff --git a/game_eggs/FoundryVTT/README.md b/game_eggs/FoundryVTT/README.md new file mode 100644 index 00000000..eb85dd3c --- /dev/null +++ b/game_eggs/FoundryVTT/README.md @@ -0,0 +1,12 @@ +# Foundry VTT +[Foundry VTT](https://foundryvtt.com/) 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 linux platform from your profile on the website, and then paste the "Timed URL" into the variable when seting up the server. + +![image](https://user-images.githubusercontent.com/1012176/141174950-840fbf28-37d9-4244-8402-a72821458f41.png) + +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) diff --git a/game_eggs/FoundryVTT/egg-FoundryVTT.json b/game_eggs/FoundryVTT/egg-FoundryVTT.json new file mode 100644 index 00000000..a61725ca --- /dev/null +++ b/game_eggs/FoundryVTT/egg-FoundryVTT.json @@ -0,0 +1,59 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2021-11-13T13:06:21-08:00", + "name": "Foundry VTT", + "author": "pterodactyl@demi.cloud", + "description": "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.", + "features": null, + "images": [ + "ghcr.io\/parkervcp\/yolks:nodejs_17" + ], + "file_denylist": [], + "startup": "node .\/app\/resources\/app\/main.js --dataPath=\"\/home\/container\/data\"", + "config": { + "files": "{\r\n \"data\/Config\/options.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"language\": \"{{server.build.env.FOUNDRY_LANGUAGE}}\",\r\n \"updateChannel\": \"{{server.build.env.UPDATE_CHANNEL}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server started and listening on port\"\r\n}", + "logs": "{}", + "stop": "^c" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Timed URL", + "description": "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_variable": "TIMED_URL", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|url" + }, + { + "name": "Language", + "description": "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_variable": "FOUNDRY_LANGUAGE", + "default_value": "en.core", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:20" + }, + { + "name": "Update Channel", + "description": "Select what channel you want to use for automatic updates", + "env_variable": "UPDATE_CHANNEL", + "default_value": "release", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:256" + } + ] +} diff --git a/game_eggs/README.md b/game_eggs/README.md index 5458c143..b94fd9bc 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -177,3 +177,5 @@ [Vintage Story](vintage_story) [Xonotic](xonotic/xonotic) + +[FoundryVTT](FoundryVTT)