diff --git a/README.md b/README.md index 82d5cebc5..7e15ba4fe 100644 --- a/README.md +++ b/README.md @@ -415,6 +415,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Meilisearch](/software/meilisearch) +### Ntfy + +* [ntfy](/software/ntfy) + ### Owncast * [owncast](/software/owncast) diff --git a/software/ntfy/README.md b/software/ntfy/README.md new file mode 100644 index 000000000..eb239fa96 --- /dev/null +++ b/software/ntfy/README.md @@ -0,0 +1,7 @@ +# [NTFY](https://ntfy.sh/) + +A simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API. + +## Server Ports + +One port needs to be allocated to run ntfy. diff --git a/software/ntfy/egg-ntfy.json b/software/ntfy/egg-ntfy.json new file mode 100644 index 000000000..8d54de3a2 --- /dev/null +++ b/software/ntfy/egg-ntfy.json @@ -0,0 +1,42 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-12-08T18:01:30+01:00", + "name": "ntfy", + "author": "me@cjstevenson.com", + "description": "Send push notifications to your phone or desktop using PUT\/POST", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/ntfy serve --config server\/server.yml", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"INFO Listening on\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "## NTFY Installscript\r\n\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nMATCH=linux_${ARCH}.tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/binwiederhier\/ntfy\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/binwiederhier\/ntfy\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## install ntfy\r\necho -e \"Download url: ${DOWNLOAD_URL}\"\r\necho -e \"Downloading ntfy: ${VERSION}\"\r\ncurl -sSL -o ntfy_linux.tar.gz ${DOWNLOAD_URL}\r\n\r\necho -e \"unzipping ntfy exc\"\r\ntar xvf ntfy_linux.tar.gz --strip-components=1\r\n\r\n## clear temp stuff\r\necho -e \"deleting temp files\"\r\nrm ntfy_linux.tar.gz\r\n\r\nchmod +x ntfy\r\n\r\nFILE=\/mnt\/server\/cache.db\r\nif [ -f \"$FILE\" ]; then\r\n echo \"$FILE exists.\"\r\n echo -e \"skipping creating cache.db\"\r\nelse \r\n echo -e \"creating cache.db\"\r\n touch cache.db\r\nfi\r\n\r\nrm -f \/mnt\/server\/server\/server.yml\r\n\r\necho -e '# ntfy server config file\r\n#\r\n# Please refer to the documentation at https:\/\/ntfy.sh\/docs\/config\/ for details.\r\n# All options also support underscores (_) instead of dashes (-) to comply with the YAML spec.\r\n\r\nlisten-http: \":'${SERVER_PORT}'\"\r\ncache-file: \".\/cache.db\"' >> \/mnt\/server\/server\/server.yml\r\n\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Version", + "description": "Version for (re)installation such as 2.8.0. Defaults to latest version if no valid version is provided", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file