Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pterodactyl egg setup #515

Merged
merged 3 commits into from
Jan 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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": "[email protected]",
"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
Original file line number Diff line number Diff line change
@@ -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
Loading