Skip to content

Commit

Permalink
feat(ptreodactyl): new egg (#515)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Dalethium committed Jan 14, 2024
1 parent 036c208 commit db4fd84
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 3 deletions.
2 changes: 0 additions & 2 deletions Dockerfile
Expand Up @@ -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
Expand Down
102 changes: 102 additions & 0 deletions egg-discord-tickets-bot.json
@@ -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"
}
]
}
6 changes: 5 additions & 1 deletion scripts/start.sh
@@ -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}"
Expand Down

0 comments on commit db4fd84

Please sign in to comment.