pelican-eggs / eggs

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

[Egg Request]: IceCast 2 #2020

Open ClassicSeniorBackup opened 1 year ago

ClassicSeniorBackup commented 1 year ago

Does this expand an already existing service

Yes

Link to a game or software

https://icecast.org/

Links for the download

Linux: https://downloads.xiph.org/releases/icecast/icecast-2.4.4.tar.gz | Windows: https://downloads.xiph.org/releases/icecast/icecast_win32_2.4.4.exe

Links for the install docs

https://icecast.org/docs/

gOOvER commented 1 year ago

There is

https://github.com/parkervcp/eggs/tree/master/software/owncast

Should be enough. As i see, you must compile IceCast on install, so i think its not really for hosting on Ptero

QuintenQVD0 commented 1 year ago

Mayeby with some luck you can get the bin and requirments out of the .deb file in the install script https://download.opensuse.org/repositories/multimedia:/xiph/Debian_10/amd64/

QuintenQVD0 commented 1 year ago

@ClassicSenior I have no idea what this software needs to do but I have a basic working egg for you:

Let me know if anything is broken / you need changes It is also using a custom images as it needs extra packges if I pr this then those will be merged to the offical yolks image

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2022-12-27T16:24:21+01:00",
    "name": "IceCast 2",
    "author": "josdekurk@gmail.com",
    "description": "Icecast is a streaming media (audio\/video) server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 streams.\r\nIt can be used to create an Internet radio station or a privately running jukebox and many things in between. It is very versatile in that new formats can be added relatively easily and supports open standards for communication and interaction.",
    "features": null,
    "docker_images": {
        "quintenqvd\/pterodactyl_images:temp_debian": "quintenqvd\/pterodactyl_images:temp_debian"
    },
    "file_denylist": [],
    "startup": ".\/icecast2 -c icecast.xml",
    "config": {
        "files": "{\r\n    \"icecast.xml\": {\r\n        \"parser\": \"xml\",\r\n        \"find\": {\r\n            \"icecast.listen-socket.port\": \"{{server.build.default.port}}\",\r\n            \"icecast.authentication.admin-user\": \"{{server.build.env.ADMIN_USERNAME}}\",\r\n            \"icecast.authentication.admin-password\": \"{{server.build.env.ADMIN_PASSWORD}}\",\r\n            \"icecast.paths.basedir\": \"\/home\/container\",\r\n            \"icecast.paths.logdir\": \"\/home\/container\/log\",\r\n            \"icecast.paths.webroot\": \"\/home\/container\/web\",\r\n            \"icecast.paths.adminroot\": \"\/home\/container\/admin\",\r\n            \"icecast.location\": \"{{server.build.env.LOCATION}}\",\r\n            \"icecast.hostname\": \"{{server.build.env.HOSTNAME}}\",\r\n            \"icecast.authentication.source-password\": \"{{server.build.env.SOURCE_PASSWORD}}\",\r\n            \"icecast.authentication.relay-password\": \"{{server.build.env.RELAY_PASSWORD}}\",\r\n            \"icecast.listen-socket.bind-address\": \"0.0.0.0\",\r\n            \"icecast.admin\": \"{{server.build.env.ADMIN_EMAIL}}\"\r\n        }\r\n    }\r\n}",
        "startup": "{\r\n    \"done\": \"icecast2\"\r\n}",
        "logs": "{}",
        "stop": "^^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl binutils tar xz-utils\r\n\r\nmkdir -p \/mnt\/server\/tmp\r\ncd \/mnt\/server\r\nrm icecast2\r\ncd \/mnt\/server\/tmp\r\n\r\nDOWNLOAD_URL=https:\/\/download.opensuse.org\/repositories\/multimedia:\/xiph\/Debian_10\/amd64\/icecast2_${VERSION}_amd64.deb\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n    if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n        echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n        DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n    else        \r\n        echo -e \"link is invalid closing out\"\r\n        exit 2\r\n    fi\r\nfi\r\n\r\necho \"downloading the .deb\"\r\ncurl -sSL -o icecast2.deb ${DOWNLOAD_URL}\r\nar xv icecast2.deb\r\nrm -rf icecast2.deb control.tar.xz debian-binary\r\ntar xvf data.tar.xz\r\nrm -rf data.tar.xz\r\nmv usr\/bin\/icecast2 \/mnt\/server\r\nmv etc\/icecast2\/* \/mnt\/server\r\ncd \/mnt\/server\r\nmkdir log\/\r\nrm -rf tmp\/ icecast.xml\r\ncurl -sSL -o icecast.xml https:\/\/pteropaste.com\/7vqi8k\r\n\r\n\r\necho \"install done\"",
            "container": "debian:bullseye-slim",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Version",
            "description": "example: 2.4.4-1",
            "env_variable": "VERSION",
            "default_value": "2.4.4-1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        },
        {
            "name": "Admin user name",
            "description": "",
            "env_variable": "ADMIN_USERNAME",
            "default_value": "admin",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:32",
            "field_type": "text"
        },
        {
            "name": "Admin user password",
            "description": "",
            "env_variable": "ADMIN_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|min:8|max:32",
            "field_type": "text"
        },
        {
            "name": "Location",
            "description": "",
            "env_variable": "LOCATION",
            "default_value": "Earth",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:16",
            "field_type": "text"
        },
        {
            "name": "Hostname",
            "description": "",
            "env_variable": "HOSTNAME",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:32",
            "field_type": "text"
        },
        {
            "name": "Source Password",
            "description": "",
            "env_variable": "SOURCE_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|min:10|max:32",
            "field_type": "text"
        },
        {
            "name": "Relay password",
            "description": "",
            "env_variable": "RELAY_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|min:10|max:32",
            "field_type": "text"
        },
        {
            "name": "Admin E-mail",
            "description": "",
            "env_variable": "ADMIN_EMAIL",
            "default_value": "icemaster@localhost",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:64",
            "field_type": "text"
        }
    ]
}
QuintenQVD0 commented 1 year ago

@ClassicSenior ^^^ please test

nickdebesten commented 11 months ago

hey @QuintenQVD0 i wanted to test your egg but i get an error when starting the server: Error Event [3bcb0dfd-024a-4367-811a-44ee21925102]: environment/docker: failed to run pre-boot process: environment/docker: failed to pull "quintenqvd/pterodactyl_images:temp_debian" image for server: Error response from daemon: manifest for quintenqvd/pterodactyl_images:temp_debian not found: manifest unknown: manifest unknown.

and i had to toggle install state because it kept saying installing..

could you try to fix it? you may add me on discord or tagg me in the ptero discord xnick1905

thanks !

QuintenQVD0 commented 11 months ago

I removee the images as no one was using this egg. I will have a look. The install will fail because it can not pull the man image or else there url changed.

gOOvER commented 11 months ago

i would create an own image for it. I do this with every egg i write and other packages are needed

TexMex100 commented 4 months ago

I removee the images as no one was using this egg. I will have a look. The install will fail because it can not pull the man image or else there url changed.

Do you have any updates about this?

sys-arch commented 2 months ago

@QuintenQVD0 Any update about this egg?

QuintenQVD0 commented 2 months ago

@QuintenQVD0 Any update about this egg?

This egg is still wanted? I could have a look again for it yes.

sys-arch commented 2 months ago

@QuintenQVD0 Any update about this egg?

This egg is still wanted? I could have a look again for it yes.

Yes, is still wanted. And now i think it's better to do it because now it can be installed from apt easily

gOOvER commented 2 months ago

@QuintenQVD0 Any update about this egg?

This egg is still wanted? I could have a look again for it yes.

Yes, is still wanted. And now i think it's better to do it because now it can be installed from apt easily

but not in an egg with apt ;)

TexMex100 commented 2 months ago

@QuintenQVD0 Any update about this egg?

This egg is still wanted? I could have a look again for it yes.

Yea its still wanted. If you could look into it would be great!