feat(ptreodactyl): new egg (#515)

* Leave exposing ports to the compose/run setup

* Add pterodactyl egg and adjust the start script for working in ro overlay2 setups

* Update egg-discord-tickets-bot.json
This commit is contained in:
Daleth Darko 2024-01-14 16:05:53 -05:00 committed by GitHub
parent 036c208cf8
commit db4fd843f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 107 additions and 3 deletions

View File

@ -24,11 +24,9 @@ ENV USER=container \
HOME=/home/container \
NODE_ENV=production \
HTTP_HOST=0.0.0.0 \
HTTP_PORT=80 \
DOCKER=true
WORKDIR /home/container
COPY --from=builder --chown=container:container --chmod=777 /build /app
EXPOSE ${HTTP_PORT}/tcp
ENTRYPOINT [ "/app/scripts/start.sh" ]
HEALTHCHECK --interval=15s --timeout=5s --start-period=60s \
CMD curl -f http://localhost:${HTTP_PORT}/status || exit 1

View File

@ -0,0 +1,102 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2024-01-14T14:44:45-05:00",
"name": "Discord Tickets Bot",
"author": "contact@bisecthosting.com",
"description": "An egg for the discord-tickets bot service.",
"features": null,
"docker_images": {
"docker.io\/eartharoid\/discord-tickets:main": "docker.io\/eartharoid\/discord-tickets:main"
},
"file_denylist": [],
"startup": "\/app\/scripts\/start.sh",
"config": {
"files": "{\r\n \".env\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"HTTP_PORT\": \"{{server.build.default.port}}\",\r\n \"HTTP_HOST\": \"0.0.0.0\",\r\n \"DB_PROVIDER\": \"{{env.DB_PROV}}\",\r\n \"DB_CONNECTION_URL\": \"{{env.DBHOST}}\",\r\n \"DISCORD_SECRET\": \"{{env.DISCORDSECRET}}\",\r\n \"DISCORD_TOKEN\": \"{{env.DISCORDTOKEN}}\",\r\n \"HTTP_EXTERNAL\": \"{{env.EXTERNAL}}\",\r\n \"SUPER\": \"{{env.SUPERIDS}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"SUCCESS\"\r\n}",
"logs": "{}",
"stop": "exit"
},
"scripts": {
"installation": {
"script": "output_file=\"\/mnt\/server\/.env\"\r\nrandom=$(cat \/dev\/urandom | tr -dc 'a-f0-9' | fold -w 48 | head -n 1)\r\necho \"DB_CONNECTION_URL=\" >> $output_file\r\necho \"DB_PROVIDER=\" >> $output_file\r\necho \"DISCORD_SECRET=\" >> $output_file\r\necho \"DISCORD_TOKEN=\" >> $output_file\r\necho \"ENCRYPTION_KEY=${random}\" >> $output_file\r\necho \"HTTP_EXTERNAL=http:\/\/127.0.0.1:8169\" >> $output_file\r\necho \"HTTP_HOST=0.0.0.0\" >> $output_file\r\necho \"HTTP_PORT=8169\" >> $output_file\r\necho \"HTTP_TRUST_PROXY=false\" >> $output_file\r\necho \"NODE_ENV=production\" >> $output_file\r\necho \"OVERRIDE_ARCHIVE=\" >> $output_file\r\necho \"PUBLIC_BOT=false\" >> $output_file\r\necho \"PUBLISH_COMMANDS=false\" >> $output_file\r\necho \"SUPER=319467558166069248\" >> $output_file\r\n\r\necho \"Environment variables written to $output_file\"",
"container": "node:14-buster-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Database Provider",
"description": "The database type you want to use, it is not recommended to use SQLite in production. - PostgreSQL \/ MySQL \/ SQLite",
"env_variable": "DB_PROV",
"default_value": "sqlite",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "Database URL",
"description": "It is recommended you do not use SQLite in production.\r\nhttps:\/\/discordtickets.app\/self-hosting\/configuration\/#db_connection_url",
"env_variable": "DBHOST",
"default_value": "file:\/\/home\/container\/user\/database.db?socket_timeout=120000&busy_timeout=10000",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:200",
"field_type": "text"
},
{
"name": "Discord 0Auth Secret",
"description": "",
"env_variable": "DISCORDSECRET",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:75",
"field_type": "text"
},
{
"name": "Discord Bot Token",
"description": "",
"env_variable": "DISCORDTOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:100",
"field_type": "text"
},
{
"name": "External URL",
"description": "The externally accessible url of the bot, in most cases this will be the server IP and Port assigned to you.",
"env_variable": "EXTERNAL",
"default_value": "http:\/\/ip:port",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:150",
"field_type": "text"
},
{
"name": "Owner IDs",
"description": "Comma separated list of discord owner IDs, the default is that of the bot developer and is recommended to leave in if you wan them to be able to debug issues for you.",
"env_variable": "SUPERIDS",
"default_value": "319467558166069248",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:200",
"field_type": "text"
},
{
"name": "PTERODACTYL",
"description": "Internal variable to denote to the bot that it is in a pterodactyl container, required for functionality",
"env_variable": "PTERODACTYL",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20",
"field_type": "text"
}
]
}

View File

@ -1,6 +1,10 @@
#!/usr/bin/env sh
if [ "$DOCKER" = "true" ]; then
if [ "$PTERODACTYL" = "true" ]; then
rm -rf /home/container/app
cp -R /app /home/container/
base_dir="/home/container/app"
elif [ "$DOCKER" = "true" ]; then
base_dir="/app"
else
source="${BASH_SOURCE}"