{"meta":{"slug":"pterodactyl-5e-tools","name":"Pterodactyl 5e Tools","category":"5e-tools","source":"pelican","owner":"pelican-eggs","repo":"software","branch":"main","path":"5e-tools/egg-pterodactyl-5e-tools.json","rawUrl":"https://raw.githubusercontent.com/pelican-eggs/software/main/5e-tools/egg-pterodactyl-5e-tools.json","indexedAt":1792246788483},"egg":{"_comment":"DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO","meta":{"version":"PTDL_v2","update_url":null},"exported_at":"2026-08-03T07:52:07+00:00","name":"5e Tools","author":"pterodactyl@demi.cloud","description":"A suite of tools for 5th Edition Dungeons & Dragons players and Dungeon Masters.","features":[],"docker_images":{"Debian":"ghcr.io/pelican-eggs/yolks:debian"},"file_denylist":[],"startup":"cd ~/5e-tools && git pull && cd ./img && git pull && cd && ./caddy run --config ~/caddy.json","config":{"files":"{\n    \"caddy.json\": {\n        \"parser\": \"json\",\n        \"find\": {\n            \"apps.http.servers.srv0.listen.0\": \":{{server.build.default.port}}\"\n        }\n    }\n}","startup":"{\n    \"done\": \"serving initial configuration\"\n}","logs":"{}","stop":"^C"},"scripts":{"installation":{"script":"#!/bin/bash\n# 5e Tools install script\n#\n# Server Files: /mnt/server\ndeclare -r DIR=\"/mnt/server\"\ndeclare -r CADDY_INSTALL_URL=\"https://caddyserver.com/api/download?os=linux&arch=amd64&idempotency=41554620449867\"\ndeclare -r LOCAL_REPO=\"${DIR}/5e-tools\"\n\ndie() {\n  local message=\"$1\"\n  printf \"\\n%s\\n\" \"${message}\"\n  exit 2\n}\ncd_error() {\n  die \"ERROR: installation encountered an error while trying to change directory\"\n}\n\nmain() {\n  local git_origin\n  apt update\n  apt install -y wget\n  cd \"${DIR}\" || cd_error\n  printf \"\\nInstalling Caddy...\\n\"\n  curl -L \"https://caddyserver.com/api/download?os=linux&arch=amd64\" -o caddy\n  chmod +x caddy\n  printf \"\\nGenerating Caddy configuration...\\n\"\n  # this is a default config\n  # key variables, such as the port, will get overwritten with the Pterodactyl\n  # configuration parser\n  cat <<EOF >\"${DIR}/caddy.json\"\n{\n  \"apps\": {\n    \"http\": {\n      \"servers\": {\n        \"srv0\": {\n          \"listen\": [\n            \":8080\"\n          ],\n          \"routes\": [\n            {\n              \"handle\": [\n                {\n                  \"handler\": \"vars\",\n                  \"root\": \"/home/container/5e-tools\"\n                },\n                {\n                  \"encodings\": {\n                    \"gzip\": {},\n                    \"zstd\": {}\n                  },\n                  \"handler\": \"encode\",\n                  \"prefer\": [\n                    \"zstd\",\n                    \"gzip\"\n                  ]\n                },\n                {\n                  \"handler\": \"file_server\"\n                }\n              ]\n            }\n          ]\n        }\n      }\n    }\n  }\n}\nEOF\n  git config --global pull.ff only\n  if [[ ! -d \"${LOCAL_REPO}\" ]]; then\n    printf \"\\nCloning images (this may take a while)...\\n\"\n    git clone --progress \"${IMAGE_REPOSITORY}\" \"${LOCAL_REPO}/img\"\n    printf \"\\nCloning source into temp directory\\n\"\n    git clone --progress \"${SRC_REPOSITORY}\" \"${LOCAL_REPO}\"\n  else\n    cd \"${LOCAL_REPO}\" || cd_error\n    git_origin=\"$(git config --get remote.origin.url)\"\n    cd \"${DIR}\" || cd_error\n    printf \"\\n\\ngit origin is %s\\n\\n\" \"${git_origin}\"\n    # if the user hasn't change the repository variable\n    if [[ \"${git_origin}\" == \"${SRC_REPOSITORY}\" ]]; then\n      cd \"${LOCAL_REPO}\" || cd_error\n      printf \"\\nRepository already installed - updating...\\n\"\n      git fetch --all\n      git reset --hard origin/master\n      git pull\n      cd \"${DIR}\" || cd_error\n    else\n      printf \"\\nRepository variable changed since last update\\n...\\n\"\n      rm -rf \"${LOCAL_REPO}\"\n      printf \"\\nCloning images (this may take a while)...\\n\"\n      git clone --progress \"${IMAGE_REPOSITORY}\" \"${LOCAL_REPO}/img\"\n      printf \"\\nCloning source into temp directory\\n\"\n      git clone --progress \"${SRC_REPOSITORY}\" \"${LOCAL_REPO}\"\n    fi\n  fi\n  printf \"\\nInstallation Complete\\n\"\n}\nmain \"@\"","container":"ghcr.io/pelican-eggs/installers:debian","entrypoint":"bash"}},"variables":[{"name":"5e Tools Repository","description":"Git Repository to use for cloning 5e Tools Source","env_variable":"SRC_REPOSITORY","default_value":"https://github.com/5etools-mirror-3/5etools-src","user_viewable":false,"user_editable":false,"rules":"required|url","field_type":"text"},{"name":"5e Tools Image Repository","description":"Git Repository to use for cloning 5e Tools Images","env_variable":"IMAGE_REPOSITORY","default_value":"https://github.com/5etools-mirror-3/5etools-img","user_viewable":false,"user_editable":false,"rules":"required|url","field_type":"text"}]},"readme":"# 5e Tools\n> A suite of tools for 5th Edition Dungeons & Dragons players and Dungeon Masters.\n\nThis is a self-hosted mirror of https://5e.tools. It will clone a github repository mirror on install and update on container reboot.\n"}