pelican-eggs / eggs

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

[Egg Request]: Yuzu Multiplayer Server #1990

Closed PilaScat closed 1 year ago

PilaScat commented 1 year ago

Does this expand an already existing service

No

Link to a game or software

https://yuzu-emu.org/

Links for the download

https://yuzu-emu.org/help/feature/multiplayer/

Links for the install docs

https://yuzu-emu.org/help/feature/multiplayer/

QuintenQVD0 commented 1 year ago

I don't see where you can get the server files, we are nothing with just a docker image

PilaScat commented 1 year ago

Didn't known, I thought you could get it with the docker image

QuintenQVD0 commented 1 year ago

Game files can not be in the docker image, I found a way with one. I post a test egg later here

PilaScat commented 1 year ago

any updates?

QuintenQVD0 commented 1 year ago

any updates?

I am verry bussy rn, normaly next week friday I will make the PR

QuintenQVD0 commented 1 year ago

@PilaScat

Please try:

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2022-12-17T13:55:42+01:00",
    "name": "Yuzu Multiplayer Server",
    "author": "josdekurk@gmail.com",
    "description": "yuzu is an experimental open-source emulator for the Nintendo Switch from the creators of Citra",
    "features": null,
    "docker_images": {
        "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging"
    },
    "file_denylist": [],
    "startup": "winetricks sound=disabled; export WINEARCH=\"win64\"; export WINEDLLOVERRIDES=\"mscoree=n,b;mshtml=n,b\"; xvfb-run --auto-servernum wine yuzu-room.exe --port {{SERVER_PORT}} --room-name \"{{ROOM_NAME}}\" --preferred-game \"{{PREFERRED_GAME}}\" --preferred-game-id \"{{PREFERRED_GAME_ID}}\" --token \"{{SERVER_TOKEN}}\" --web-api-url \"https:\/\/api.yuzu-emu.org\"",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": \"Executing load_sound disabled\"\r\n}",
        "logs": "{}",
        "stop": "^q"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl tar jq xz-utils \r\n\r\nmkdir -p \/mnt\/server\/tmp\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/yuzu-emu\/yuzu-mainline\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/yuzu-emu\/yuzu-mainline\/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 windows | grep -i xz | head -1)\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 windows | grep -i xz | head -1)\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 | grep -i windows | grep -i xz | head -1)\r\n    fi\r\nfi\r\n\r\ncd \/mnt\/server\/tmp\r\necho \"running= curl -sSL -o file.tar.xz ${DOWNLOAD_URL} \"\r\ncurl -sSL -o file.tar.xz ${DOWNLOAD_URL}\r\n\r\ntar xvf file.tar.xz\r\nmv yuzu-windows-msvc\/ \/mnt\/server\/\r\nrm file.tar.xz\r\ncd \/mnt\/server\r\nmv \/mnt\/server\/yuzu-windows-msvc\/ .\r\nrm -rf tmp\/\r\necho \"install finished\"",
            "container": "debian:bullseye-slim",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Version",
            "description": "",
            "env_variable": "VERSION",
            "default_value": "latest",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        },
        {
            "name": "Room name",
            "description": "Name of your room.",
            "env_variable": "ROOM_NAME",
            "default_value": "ptero",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:32",
            "field_type": "text"
        },
        {
            "name": "Preferred game",
            "description": "The name of the preferred game of your room.",
            "env_variable": "PREFERRED_GAME",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        },
        {
            "name": "Preferred game id",
            "description": "The Title ID of the preferred game of your room, in hex. You can find the Title ID with the game list of yuzu.",
            "env_variable": "PREFERRED_GAME_ID",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:10",
            "field_type": "text"
        },
        {
            "name": "Token",
            "description": "Your yuzu Community user token. Do not know your token yet? Get it https:\/\/yuzu-emu.org\/wiki\/yuzu-web-service\/",
            "env_variable": "SERVER_TOKEN",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:32",
            "field_type": "text"
        }
    ]
}
PilaScat commented 1 year ago

I would like to avoid using wine, the original consumes almost nothing

QuintenQVD0 commented 1 year ago

I would like to avoid using wine, the original consumes almost nothing

the linux version is only in a docker image as there linux git releases have no server

QuintenQVD0 commented 1 year ago

IF you don't like it then feel free to close the egg requests

PilaScat commented 1 year ago

I will ask on yuzu github to release the binaries

QuintenQVD0 commented 1 year ago

I will ask on yuzu github to release the binaries

Fine for me, if you can download the server bin from github then I will rewrite the egg, feel free to ping me if you have any updates

dreulavelle commented 1 year ago

Files can be taken out of a Docker image.

QuintenQVD0 commented 1 year ago

Files can be taken out of a Docker image.

No that is not how pterodactyl works. Not a single game file can be in the image. The must provide the linux server bin on github or somewhere on there website. Else it will be like this with wine.

dreulavelle commented 1 year ago

I mean that stuff can be taken out of an existing Docker image, for example if a server is hosted as a container.. you can take the server files out of it to turn it into an egg in some gh repo.

On Fri, Jan 13, 2023 at 4:48 PM Quinten @.***> wrote:

Files can be taken out of a Docker image.

No that is not how pterodactyl works. Not a single game file can be in the image. The must provide the linux server bin on github or somewhere on there website. Else it will be like this with wine.

— Reply to this email directly, view it on GitHub https://github.com/parkervcp/eggs/issues/1990#issuecomment-1382429441, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABMDYZTBIXPXGC6NT57DXN3WSHERZANCNFSM6AAAAAASTNILKY . You are receiving this because you commented.Message ID: @.***>

QuintenQVD0 commented 1 year ago

I mean that stuff can be taken out of an existing Docker image, for example if a server is hosted as a container.. you can take the server files out of it to turn it into an egg in some gh repo. On Fri, Jan 13, 2023 at 4:48 PM Quinten @.> wrote: Files can be taken out of a Docker image. No that is not how pterodactyl works. Not a single game file can be in the image. The must provide the linux server bin on github or somewhere on there website. Else it will be like this with wine. — Reply to this email directly, view it on GitHub <#1990 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABMDYZTBIXPXGC6NT57DXN3WSHERZANCNFSM6AAAAAASTNILKY . You are receiving this because you commented.Message ID: @.>

Thatz not how pterodactyl works. And we do not allow a 3rth party repo to prepare some files. So there 3 options

  1. The pr gets closee and no egg gets merged
  2. The wine version get merged
  3. Yuzu uploads the linux server files to github and then the egg gets rewriten and mergee with the linux version