├── LICENSE ├── README.md └── pterodacty-eggs ├── egg-ad-guard-home.json ├── egg-autobrr.json ├── egg-filebrowser.json ├── egg-glance.json ├── egg-gokapi.json ├── egg-jenkins.json ├── egg-qbittorrent-nox.json ├── egg-reproxy.json ├── egg-spoof-d-p-i.json └── egg-you-tube-live-music.json /LICENSE: -------------------------------------------------------------------------------- 1 | MIT 2 | 3 | Copyright (c) 2025 Towsif Kafi and Contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pterodactyl & Pelican Eggs 2 | 3 | ![GitHub](https://img.shields.io/github/license/towsifkafi/eggs?color=blue) 4 | ![GitHub last commit](https://img.shields.io/github/last-commit/towsifkafi/eggs) 5 | 6 | A collection of Pterodactyl and Pelican eggs for deploying various software. 7 | 8 | ## Contents 9 | - `pterodactyl-eggs/`: Egg configs for Pterodactyl panel 10 | - `pelican-eggs/`: Egg configs for Pelican panel 11 | 12 | ## Contributing 13 | Fork, branch, commit, and submit a PR! 14 | 15 | ## License 16 | MIT License⏎ 17 | -------------------------------------------------------------------------------- /pterodacty-eggs/egg-ad-guard-home.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-12T15:37:37+06:00", 8 | "name": "AdGuard Home", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "Network-wide ads & trackers blocking DNS server", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/AdGuardHome", 17 | "config": { 18 | "files": "{\r\n \"AdGuardHome.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"http.address\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"dns.port\": \"{{env.DNS_PORT}}\"\r\n }\r\n }\r\n}", 19 | "startup": "{\r\n \"done\": \"AdGuard Home is available at the following addresses\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O AdGuardHome_linux_amd64.tar.gz $(curl -s https:\/\/api.github.com\/repos\/AdguardTeam\/AdGuardHome\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux_amd64\")) | .browser_download_url')\r\n \r\ntar --strip-components=2 -xvf AdGuardHome_linux_amd64.tar.gz\r\n\r\nrm AdGuardHome_linux_amd64.tar.gz\r\nrm CHANGELOG.md\r\nrm README.md", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "DNS Port", 33 | "description": "Port number for the DNS server to start on. (secondary port assigned to the server)", 34 | "env_variable": "DNS_PORT", 35 | "default_value": "2000", 36 | "user_viewable": true, 37 | "user_editable": true, 38 | "rules": "required|string|max:20", 39 | "field_type": "text" 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-autobrr.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-13T13:03:58+06:00", 8 | "name": "autobrr", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "Modern, easy to use download automation for torrents and usenet.", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/autobrr --config=\/home\/container\/config", 17 | "config": { 18 | "files": "{\r\n \"config\/config.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"host = \": \"host = \\\"0.0.0.0\\\"\",\r\n \"port = \": \"port = {{server.build.default.port}}\"\r\n }\r\n }\r\n}", 19 | "startup": "{\r\n \"done\": \"Listening on [::]:\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O autobrr_1.47.1_linux_x86_64.tar.gz $(curl -s https:\/\/api.github.com\/repos\/autobrr\/autobrr\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux_x86_64.tar.gz\")) | .browser_download_url')\r\n \r\ntar -xvzf autobrr_1.47.1_linux_x86_64.tar.gz\r\n\r\nrm README.md\r\nrm autobrr_1.47.1_linux_x86_64.tar.gz\r\n\r\nmkdir config\r\ncd config\r\nwget https:\/\/raw.githubusercontent.com\/autobrr\/autobrr\/refs\/heads\/develop\/config.toml", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [] 31 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-filebrowser.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-12T13:37:01+06:00", 8 | "name": "filebrowser", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "Middleware or standalone app that provides a web-based file manager within a specified directory.", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/filebrowser -c settings.json", 17 | "config": { 18 | "files": "{\r\n \"settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"baseURL\": \"{{env.BASE_URL}}\",\r\n \"database\": \"{{env.DATABASE_FILE}}\",\r\n \"root\": \"{{env.ROOT_FOLDER}}\"\r\n }\r\n }\r\n}", 19 | "startup": "{\r\n \"done\": \"Listening on\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O linux-amd64-filebrowser.tar.gz $(curl -s https:\/\/api.github.com\/repos\/filebrowser\/filebrowser\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux-amd64\")) | .browser_download_url')\r\n \r\ntar -zxvf linux-amd64-filebrowser.tar.gz\r\n\r\nmkdir files\r\nmkdir database\r\n\r\nrm CHANGELOG.md\r\nrm README.md\r\nrm LICENSE\r\nrm linux-amd64-filebrowser.tar.gz\r\n\r\nwget -O settings.json https:\/\/raw.githubusercontent.com\/filebrowser\/filebrowser\/refs\/heads\/master\/docker\/root\/defaults\/settings.json", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "Root Folder", 33 | "description": "", 34 | "env_variable": "ROOT_FOLDER", 35 | "default_value": "\/home\/container\/files", 36 | "user_viewable": true, 37 | "user_editable": true, 38 | "rules": "required|string|max:100", 39 | "field_type": "text" 40 | }, 41 | { 42 | "name": "Database File", 43 | "description": "", 44 | "env_variable": "DATABASE_FILE", 45 | "default_value": "database\/filebrowser.db", 46 | "user_viewable": true, 47 | "user_editable": true, 48 | "rules": "required|string|max:100", 49 | "field_type": "text" 50 | }, 51 | { 52 | "name": "Base URL", 53 | "description": "", 54 | "env_variable": "BASE_URL", 55 | "default_value": "", 56 | "user_viewable": true, 57 | "user_editable": true, 58 | "rules": "required|string|max:100", 59 | "field_type": "text" 60 | } 61 | ] 62 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-glance.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-12T13:36:29+06:00", 8 | "name": "glance", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "A self-hosted dashboard that puts all your feeds in one place", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/glance", 17 | "config": { 18 | "files": "{\r\n \"glance.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server.port\": \"{{server.build.default.port}}\",\r\n \"server.assets-path\": \"{{env.ASSETS_PATH}}\",\r\n \"server.base-url\": \"{{env.BASE_URL}}\"\r\n }\r\n }\r\n}", 19 | "startup": "{\r\n \"done\": \"Starting server\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O glance-linux-amd64.tar.gz $(curl -s https:\/\/api.github.com\/repos\/glanceapp\/glance\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux-amd64\")) | .browser_download_url')\r\n\r\nconfig=$(cat < glance.yml\r\nelse\r\n echo \"Config file exists.. : glance.yml\"\r\nfi\r\n\r\ntar -zxvf glance-linux-amd64.tar.gz", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "Asset Path", 33 | "description": "The path to a directory that will be served by the server under the \/assets\/ path. This is handy for widgets like the Monitor where you have to specify an icon URL and you want to self host all the icons rather than pointing to an external source.", 34 | "env_variable": "ASSETS_PATH", 35 | "default_value": "\/home\/container\/assets", 36 | "user_viewable": true, 37 | "user_editable": true, 38 | "rules": "required|string|max:100", 39 | "field_type": "text" 40 | }, 41 | { 42 | "name": "Base URL", 43 | "description": "The base URL that Glance is hosted under. No need to specify this unless you're using a reverse proxy and are hosting Glance under a directory. If that's the case then you can set this value to \/glance or whatever the directory is called. Note that the forward slash (\/) in the beginning is required unless you specify the full domain and path.", 44 | "env_variable": "BASE_URL", 45 | "default_value": "\/", 46 | "user_viewable": true, 47 | "user_editable": true, 48 | "rules": "required|string|max:100", 49 | "field_type": "text" 50 | } 51 | ] 52 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-gokapi.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-13T12:28:38+06:00", 8 | "name": "Gokapi", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "Lightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported.", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": "GOKAPI_PORT={{SERVER_PORT}} .\/gokapi-linux_amd64", 17 | "config": { 18 | "files": "{}", 19 | "startup": "{\r\n \"done\": \"Webserver can be accessed\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O gokapi-linux_amd64.zip $(curl -s https:\/\/api.github.com\/repos\/Forceu\/Gokapi\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux_amd64\")) | .browser_download_url')\r\n \r\nunzip gokapi-linux_amd64.zip\r\nrm gokapi-linux_amd64.zip", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [] 31 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-jenkins.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-13T19:19:08+06:00", 8 | "name": "Jenkins", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "An open source automation server which enables developers around the world to reliably build, test, and deploy their software.", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:java_21": "ghcr.io\/pterodactyl\/yolks:java_21" 14 | }, 15 | "file_denylist": [], 16 | "startup": "java -Dinteractive -Djava.io.tmpdir=\/home\/container\/.tmp -jar jenkins.war --httpPort={{SERVER_PORT}}", 17 | "config": { 18 | "files": "{}", 19 | "startup": "{\r\n \"done\": \"Completed initialization\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nmkdir .tmp\r\n\r\nwget -O jenkins.war https:\/\/get.jenkins.io\/war\/latest\/jenkins.war", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [] 31 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-qbittorrent-nox.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-12T13:36:56+06:00", 8 | "name": "qbittorrent-nox", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "qBittorrent-nox is a headless BitTorrent client, perfect for installing on a headless server, and accessing it using web interface from another device.", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/qbittorrent-nox --save-path=\/home\/container\/torrents --webui-port={{SERVER_PORT}}", 17 | "config": { 18 | "files": "{\r\n \".config\/qBittorrent\/qBittorrent.conf\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"LegalNotice.Accepted\": \"true\"\r\n }\r\n }\r\n}", 19 | "startup": "{\r\n \"done\": \"access the WebUI at:\" \r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\nmkdir \/mnt\/server\/torrents\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading qbitorrent-nox....\"\r\nwget -O qbittorrent-nox $(curl -s https:\/\/api.github.com\/repos\/userdocs\/qbittorrent-nox-static\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"x86_64\")) | .browser_download_url')\r\n\r\nchmod +x qbittorrent-nox\r\n\r\necho \"done\"", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [] 31 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-reproxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-13T21:44:23+06:00", 8 | "name": "reproxy", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "Simple edge server \/ reverse proxy", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/reproxy --file.enabled --file.name=config.yml --listen=0.0.0.0:{{SERVER_PORT}}", 17 | "config": { 18 | "files": "{}", 19 | "startup": "{\r\n \"done\": \"activate http proxy server on\" \r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O reproxy_v1.2.2_linux_amd64.tar.gz $(curl -s https:\/\/api.github.com\/repos\/umputun\/reproxy\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux_amd64.tar.gz\")) | .browser_download_url')\r\n \r\ntar -zxvf reproxy_v1.2.2_linux_amd64.tar.gz\r\n\r\nrm reproxy_v1.2.2_linux_amd64.tar.gz\r\nrm README.md", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "Enable Gzip", 33 | "description": "enable gz compression", 34 | "env_variable": "GZIP", 35 | "default_value": "1", 36 | "user_viewable": true, 37 | "user_editable": true, 38 | "rules": "required|boolean", 39 | "field_type": "text" 40 | }, 41 | { 42 | "name": "Skip SSL verification", 43 | "description": "skip SSL verification on destination host", 44 | "env_variable": "INSECURE", 45 | "default_value": "0", 46 | "user_viewable": true, 47 | "user_editable": true, 48 | "rules": "required|boolean", 49 | "field_type": "text" 50 | }, 51 | { 52 | "name": "Enable Logging", 53 | "description": "enable access and error rotated logs", 54 | "env_variable": "LOGGER_ENABLED", 55 | "default_value": "1", 56 | "user_viewable": true, 57 | "user_editable": true, 58 | "rules": "required|boolean", 59 | "field_type": "text" 60 | }, 61 | { 62 | "name": "Log to stdout", 63 | "description": "enable stdout logging", 64 | "env_variable": "LOGGER_STDOUT", 65 | "default_value": "1", 66 | "user_viewable": true, 67 | "user_editable": true, 68 | "rules": "required|boolean", 69 | "field_type": "text" 70 | }, 71 | { 72 | "name": "Log file", 73 | "description": "location of access log (default: access.log)", 74 | "env_variable": "LOGGER_FILE", 75 | "default_value": "access.log", 76 | "user_viewable": true, 77 | "user_editable": true, 78 | "rules": "required|string|max:100", 79 | "field_type": "text" 80 | } 81 | ] 82 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-spoof-d-p-i.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v2", 5 | "update_url": null 6 | }, 7 | "exported_at": "2024-10-14T12:39:57+06:00", 8 | "name": "SpoofDPI", 9 | "author": "kafitowsif@gmail.com", 10 | "description": "A simple and fast anti-censorship tool written in Go", 11 | "features": null, 12 | "docker_images": { 13 | "ghcr.io\/pterodactyl\/yolks:alpine": "ghcr.io\/pterodactyl\/yolks:alpine" 14 | }, 15 | "file_denylist": [], 16 | "startup": ".\/spoofdpi -addr 0.0.0.0 -dns-addr {{DNS_ADDRESS}} -dns-port {{DNS_PORT}} -port {{SERVER_PORT}} -debug", 17 | "config": { 18 | "files": "{}", 19 | "startup": "{}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\ncd \/mnt\/server\r\nwget -O spoofdpi-linux-amd64.tar.gz $(curl -s https:\/\/api.github.com\/repos\/xvzc\/SpoofDPI\/releases\/latest | \\\r\n jq -r '.assets[] | select(.name | contains (\"linux-amd64\")) | .browser_download_url')\r\n\r\ntar -zxvf spoofdpi-linux-amd64.tar.gz\r\nrm spoofdpi-linux-amd64.tar.gz", 26 | "container": "ghcr.io\/pterodactyl\/installers:alpine", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "Default DNS Server", 33 | "description": "", 34 | "env_variable": "DNS_ADDRESS", 35 | "default_value": "8.8.8.8", 36 | "user_viewable": true, 37 | "user_editable": true, 38 | "rules": "required|string|max:100", 39 | "field_type": "text" 40 | }, 41 | { 42 | "name": "Default DNS Server Port", 43 | "description": "", 44 | "env_variable": "DNS_PORT", 45 | "default_value": "53", 46 | "user_viewable": true, 47 | "user_editable": true, 48 | "rules": "required|string|max:20", 49 | "field_type": "text" 50 | } 51 | ] 52 | } -------------------------------------------------------------------------------- /pterodacty-eggs/egg-you-tube-live-music.json: -------------------------------------------------------------------------------- 1 | { 2 | "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", 3 | "meta": { 4 | "version": "PTDL_v1", 5 | "update_url": null 6 | }, 7 | "exported_at": "2021-09-21T00:44:12+06:00", 8 | "name": "YouTube Live Music", 9 | "author": "shaownsilva@gmail.com", 10 | "description": "Egg To Live Video 24\/7 Videos on YouTube", 11 | "features": null, 12 | "images": [ 13 | "ghcr.io\/pterodactyl\/yolks:debian" 14 | ], 15 | "file_denylist": [], 16 | "startup": "ffmpeg -stream_loop -1 -re -i \"{{VIDEO_SOURCE}}\" -thread_queue_size 512 -stream_loop -1 -re -f concat -i {{AUDIO_FILES}} -c:v libx264 -preset {{QUAL}} -r {{FPS}} -g 60 -b:v {{VBR}} -bufsize 3000k -maxrate {{VBR}} -c:a {{AUDIO_ENCODER}} -ar 44100 -b:a 128k -pix_fmt yuv420p -f flv {{YOUTUBE_URL}}\/{{YOUTUBE_KEY}}", 17 | "config": { 18 | "files": "{}", 19 | "startup": "{\r\n \"done\": \"Output #0\"\r\n}", 20 | "logs": "{}", 21 | "stop": "^C" 22 | }, 23 | "scripts": { 24 | "installation": { 25 | "script": "#!\/bin\/ash\r\n\r\napt update\r\napt install ffmpeg", 26 | "container": "alpine:3.4", 27 | "entrypoint": "ash" 28 | } 29 | }, 30 | "variables": [ 31 | { 32 | "name": "Video Bitrate", 33 | "description": "Bitrate to exported video output", 34 | "env_variable": "VBR", 35 | "default_value": "1500k", 36 | "user_viewable": true, 37 | "user_editable": true, 38 | "rules": "required|string|max:20" 39 | }, 40 | { 41 | "name": "FPS", 42 | "description": "Outgoing Video FPS", 43 | "env_variable": "FPS", 44 | "default_value": "30", 45 | "user_viewable": true, 46 | "user_editable": true, 47 | "rules": "required|string|max:20" 48 | }, 49 | { 50 | "name": "Quality", 51 | "description": "Video Quality | Visit FFMPEG Website for more info", 52 | "env_variable": "QUAL", 53 | "default_value": "ultrafast", 54 | "user_viewable": true, 55 | "user_editable": true, 56 | "rules": "required|string|max:20" 57 | }, 58 | { 59 | "name": "YouTube Live URL", 60 | "description": "Live URL for ffmpeg to stream to", 61 | "env_variable": "YOUTUBE_URL", 62 | "default_value": "rtmp:\/\/a.rtmp.youtube.com\/live2", 63 | "user_viewable": true, 64 | "user_editable": true, 65 | "rules": "required|string" 66 | }, 67 | { 68 | "name": "YouTube Live Secret", 69 | "description": "Secret Key required to stream on YouTube", 70 | "env_variable": "YOUTUBE_KEY", 71 | "default_value": "", 72 | "user_viewable": true, 73 | "user_editable": true, 74 | "rules": "required|string" 75 | }, 76 | { 77 | "name": "Background Video", 78 | "description": "Background Video", 79 | "env_variable": "VIDEO_SOURCE", 80 | "default_value": "background.mp4", 81 | "user_viewable": true, 82 | "user_editable": true, 83 | "rules": "required|string" 84 | }, 85 | { 86 | "name": "Audio Encoder", 87 | "description": "Audio output from ffmpeg", 88 | "env_variable": "AUDIO_ENCODER", 89 | "default_value": "aac", 90 | "user_viewable": true, 91 | "user_editable": true, 92 | "rules": "required|string|max:20" 93 | }, 94 | { 95 | "name": "Audio Files List", 96 | "description": "List file where all audio file names are written", 97 | "env_variable": "AUDIO_FILES", 98 | "default_value": "audiofiles.txt", 99 | "user_viewable": true, 100 | "user_editable": true, 101 | "rules": "required|string" 102 | } 103 | ] 104 | } 105 | --------------------------------------------------------------------------------