pelican-eggs / eggs

Service eggs for the pterodactyl panel
MIT License
2.85k stars 2.32k forks source link

[Egg Request]: Pocketbase #2119

Closed JamieIsGeek closed 1 year ago

JamieIsGeek commented 1 year ago

Does this expand an already existing service

No

Link to a game or software

https://pocketbase.io

Links for the download

https://pocketbase.io/docs/ (right at the top)

Links for the install docs

https://pocketbase.io/docs/

QuintenQVD0 commented 1 year ago

please test:

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-02-08T15:48:13+01:00",
    "name": "Pocketbase",
    "author": "josdekurk@gmail.com",
    "description": "Open Source backend for your next SaaS and Mobile app in 1 file",
    "features": null,
    "docker_images": {
        "Debian": "ghcr.io\/parkervcp\/yolks:debian"
    },
    "file_denylist": [],
    "startup": ".\/pocketbase serve --http 0.0.0.0:{{SERVER_PORT}}",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": \"Server started at\"\r\n}",
        "logs": "{}",
        "stop": "^^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git jq unzip\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/pocketbase\/pocketbase\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/pocketbase\/pocketbase\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux_amd64\" || echo \"linux_arm64\")\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\necho \"running curl -sSL -o pocketbase.zip ${DOWNLOAD_URL}\"\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\ncurl -sSL -o pocketbase.zip ${DOWNLOAD_URL}\r\nunzip pocketbase.zip\r\n\r\nchmod +x pocketbase\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
            "container": "debian:bullseye-slim",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Version",
            "description": "The version of pocketbase installed",
            "env_variable": "VERSION",
            "default_value": "latest",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        }
    ]
}
JamieIsGeek commented 1 year ago

Will test ASAP

JamieIsGeek commented 1 year ago

It's throwing "The JSON file provided is not in a format that can be recognized." when booting

QuintenQVD0 commented 1 year ago

It's throwing "The JSON file provided is not in a format that can be recognized." when booting

panel version?

QuintenQVD0 commented 1 year ago

As it is valid json you likly have a old panel or saved it wrong

JamieIsGeek commented 1 year ago

OK I spun it up on my own ptero instance rather than the one where im using it and it seems to boot fine however I think the ip needs to be set otherwise it literally just hosts it on 0.0.0.0 and you cant really access it from anywhere lol

JamieIsGeek commented 1 year ago

So possibly need to change the startup command to change 0.0.0.0 to the server ip

JamieIsGeek commented 1 year ago

This seems to work however it does throw an error saying "bind: cannot assign requested address" but that could be to do with the allocation?

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-02-14T23:47:35+01:00",
    "name": "Pocketbase",
    "author": "josdekurk@gmail.com",
    "description": "Open Source backend for your next SaaS and Mobile app in 1 file",
    "features": null,
    "docker_images": {
        "Debian": "ghcr.io\/parkervcp\/yolks:debian"
    },
    "file_denylist": [],
    "startup": ".\/pocketbase serve --http {{SERVER_IP}}:{{SERVER_PORT}}",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": \"Server started at\"\r\n}",
        "logs": "{}",
        "stop": "^^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git jq unzip\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/pocketbase\/pocketbase\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/pocketbase\/pocketbase\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux_amd64\" || echo \"linux_arm64\")\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\necho \"running curl -sSL -o pocketbase.zip ${DOWNLOAD_URL}\"\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\ncurl -sSL -o pocketbase.zip ${DOWNLOAD_URL}\r\nunzip pocketbase.zip\r\n\r\nchmod +x pocketbase\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
            "container": "debian:bullseye-slim",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Version",
            "description": "The version of pocketbase installed",
            "env_variable": "VERSION",
            "default_value": "latest",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        }
    ]
}
QuintenQVD0 commented 1 year ago

This seems to work however it does throw an error saying "bind: cannot assign requested address" but that could be to do with the allocation?

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-02-14T23:47:35+01:00",
    "name": "Pocketbase",
    "author": "josdekurk@gmail.com",
    "description": "Open Source backend for your next SaaS and Mobile app in 1 file",
    "features": null,
    "docker_images": {
        "Debian": "ghcr.io\/parkervcp\/yolks:debian"
    },
    "file_denylist": [],
    "startup": ".\/pocketbase serve --http {{SERVER_IP}}:{{SERVER_PORT}}",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": \"Server started at\"\r\n}",
        "logs": "{}",
        "stop": "^^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl git jq unzip\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/pocketbase\/pocketbase\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/pocketbase\/pocketbase\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux_amd64\" || echo \"linux_arm64\")\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\necho \"running curl -sSL -o pocketbase.zip ${DOWNLOAD_URL}\"\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\ncurl -sSL -o pocketbase.zip ${DOWNLOAD_URL}\r\nunzip pocketbase.zip\r\n\r\nchmod +x pocketbase\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
            "container": "debian:bullseye-slim",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Version",
            "description": "The version of pocketbase installed",
            "env_variable": "VERSION",
            "default_value": "latest",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        }
    ]
}

Can, what is the allocation? as for me with local ip it works fine. I also tried with a machine where the public ip is available on a network interface

JamieIsGeek commented 1 year ago

The allocation is 25571

JamieIsGeek commented 1 year ago

Oh wait I was being really stupid, your original egg works fine :D