{"meta":{"slug":"daggerfall-online","name":"Daggerfall Online","category":"daggerfall_online","source":"pelican","owner":"pelican-eggs","repo":"games-standalone","branch":"main","path":"daggerfall_online/egg-daggerfall-online.json","rawUrl":"https://raw.githubusercontent.com/pelican-eggs/games-standalone/main/daggerfall_online/egg-daggerfall-online.json","indexedAt":1792246788483},"egg":{"_comment":"DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL","meta":{"version":"PLCN_v3","update_url":null},"exported_at":"2026-09-24T04:06:04+00:00","name":"Daggerfall Online","author":"dartkittenz@gmail.com","uuid":"6f3c4a75-3537-4a98-a150-9b31ce2554d2","description":"Daggerfall Online server created from the default generic Node.js egg.\nSSL is required for this egg to run properly.","icon":null,"tags":[],"features":[],"docker_images":{"Nodejs 26":"ghcr.io/pelican-eggs/yolks:nodejs_26","Nodejs 25":"ghcr.io/pelican-eggs/yolks:nodejs_25","Nodejs 24":"ghcr.io/pelican-eggs/yolks:nodejs_24","Nodejs 23":"ghcr.io/pelican-eggs/yolks:nodejs_23","Nodejs 22":"ghcr.io/pelican-eggs/yolks:nodejs_22"},"file_denylist":[],"startup_commands":{"Default":"cd /home/container/server && /usr/local/bin/npx wrangler dev --ip 0.0.0.0 --port ${DAGGERFALL_PORT}"},"config":{"files":"[]","startup":"{\n    \"done\": \"Ready on \"\n}","logs":"[]","stop":"^C"},"scripts":{"installation":{"script":"#!/bin/bash\n# NodeJS App Installation Script\n# Retrofitted for Daggerfall Enhanced\n# Server Files: /mnt/server/server\napt update\napt install -y git curl jq file unzip make gcc g++ python3 python3-dev python3-pip libtool\n\necho -e \"updating npm. please wait...\"\nnpm install npm@latest --location=global\n\nmkdir -p /mnt/server\ncd /mnt/server\n\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\n    echo -e \"assuming user knows what they are doing have a good day.\"\n    exit 0\nfi\n\n## add git ending if it's not on the address\nif [[ ${GIT_ADDRESS} != *.git ]]; then\n    GIT_ADDRESS=${GIT_ADDRESS}.git\nfi\n\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\n    echo -e \"using anon api call\"\nelse\n    GIT_ADDRESS=\"https://${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d/ -f3-)\"\nfi\n\n## pull git js repo\nif [ \"$(ls -A /mnt/server)\" ]; then\n    echo -e \"/mnt/server directory is not empty.\"\n    if [ -d .git ]; then\n        echo -e \".git directory exists\"\n        if [ -f .git/config ]; then\n            echo -e \"loading info from git config\"\n            ORIGIN=$(git config --get remote.origin.url)\n        else\n            echo -e \"files found with no git config\"\n            echo -e \"closing out without touching things to not break anything\"\n            exit 10\n        fi\n    fi\n\n    if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\n        echo \"pulling latest from github\"\n        git pull\n    fi\nelse\n    echo -e \"/mnt/server is empty.\\ncloning files into repo\"\n    if [ -z ${BRANCH} ]; then\n        echo -e \"cloning default branch\"\n        git clone ${GIT_ADDRESS} .\n    else\n        echo -e \"cloning ${BRANCH}'\"\n        git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\n    fi\n\nfi\n\necho \"Installing nodejs packages\"\n# Adding build-specific setup for the server build.\nif [[ ! -z ${NODE_PACKAGES} ]]; then\n    /usr/local/bin/npm install ${NODE_PACKAGES}\nfi\n\nif [ -f /mnt/server/server/package.json ]; then\n    cd /mnt/server/server\n    /usr/local/bin/npm install\nfi\n\necho -e \"install complete\"\nexit 0","container":"node:22-trixie-slim","entrypoint":"bash"}},"variables":[{"name":"Additional Arguments.","description":"Any extra arguments for nodejs or tsx","env_variable":"NODE_ARGS","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string","max:64"],"sort":10},{"name":"Additional Node packages","description":"Install additional node packages.\r\n\r\nUse spaces to separate.","env_variable":"NODE_PACKAGES","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string"],"sort":8},{"name":"Auto Update","description":"Pull the latest files on startup when using a GitHub repo.","env_variable":"AUTO_UPDATE","default_value":"0","user_viewable":true,"user_editable":true,"rules":["required","boolean"],"sort":2},{"name":"Git Access Token","description":"Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps://github.com/settings/tokens\r\nhttps://gitlab.com/-/profile/personal_access_tokens","env_variable":"ACCESS_TOKEN","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string"],"sort":6},{"name":"Git Repo Address","description":"GitHub Repo to clone\r\n\r\nI.E. https://github.com/parkervcp/repo_name","env_variable":"GIT_ADDRESS","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string"],"sort":3},{"name":"Git Username","description":"Username to auth with git.","env_variable":"USERNAME","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string"],"sort":5},{"name":"Install Branch","description":"The branch to install.","env_variable":"BRANCH","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string"],"sort":4},{"name":"Main file","description":"The file that starts the app.\r\nCan be .js and .ts","env_variable":"MAIN_FILE","default_value":"index.js","user_viewable":true,"user_editable":true,"rules":["required","string","max:16"],"sort":1},{"name":"Server Port","description":"The port for the server","env_variable":"DAGGERFALL_PORT","default_value":"5192","user_viewable":true,"user_editable":true,"rules":["alpha_num"],"sort":11},{"name":"Uninstall Node packages","description":"Uninstall node packages.\r\n\r\nUse spaces to separate.","env_variable":"UNNODE_PACKAGES","default_value":"","user_viewable":true,"user_editable":true,"rules":["nullable","string"],"sort":9},{"name":"User Uploaded Files","description":"Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true","env_variable":"USER_UPLOAD","default_value":"0","user_viewable":true,"user_editable":true,"rules":["required","boolean"],"sort":7}]},"readme":"# [Daggerfall Online](https://daggerfalljs.dev/)\n\nAn open-source rebuild of The Elder Scrolls II: Daggerfall that runs in a browser. Same rules, new renderer, nothing to install.\nThis egg is built off of the generic Node.js egg and utilizes wrangler.\n\n## Server Ports\n\n| Port    | Default |\n|---------|---------|\n| Game    | 5192    |\n\n## Server Prerequisites\n\nSSL with valid certificates must be used for the server or it will not connect.\nIt is recommended to use a reverse-proxy, this allows you to only need to allocate the game port.\n"}