diff --git a/README.md b/README.md index f40261f0..a1959f88 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [Xonotic](game_eggs/xonotic/xonotic) +[YuzuEmu](game_eggs/yuzu-emu) + [FoundryVTT](game_eggs/FoundryVTT) ## [Monitoring](/monitoring/) diff --git a/game_eggs/README.md b/game_eggs/README.md index b50d9ca2..4033d169 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -205,4 +205,6 @@ [Xonotic](xonotic/xonotic) +[YuzuEmu](yuzu-emu) + [FoundryVTT](FoundryVTT) diff --git a/game_eggs/yuzu-emu/README.md b/game_eggs/yuzu-emu/README.md new file mode 100644 index 00000000..516501f4 --- /dev/null +++ b/game_eggs/yuzu-emu/README.md @@ -0,0 +1,37 @@ +# Yuzu Emulator Dedicated Multiplayer Room + + +## From their [Github](https://github.com/yuzu-emu/yuzu-mainline) + +## Description + +This egg can be used to host dedicated multiplayer rooms for the Yuzu emulator. + +## Install notes + +Running this server requires almost no resources, but the installation involves compiling the binary. This is needed because yuzu unfortunately does not release their server binaries for Linux. Depending on your configuration, the installation part may take 5 minutes or more. + +To update, simply run the installer again. + +## Minimum RAM warning + +8 MiB is enough, but 16 MiB is recommended + +## Minumim Sorage warning + +1MiB is required, but 50 MiB is recommended to have some spare space for core dumps/logs + +Note: the install part requires ~ 5GiB of free space + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 24872 | + +### Notes + +- 24872 is the default port, but any port can be used. +- Banlist is currently not supported. Upon startup, an error will be shown about the missing banlist, but the server will work regardless. diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json new file mode 100644 index 00000000..26a24c14 --- /dev/null +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -0,0 +1,102 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-02-19T15:16:38+01:00", + "name": "YuzuEmu", + "author": "me@basvandenboom.dev", + "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/yuzu-room --room-name \"{{ROOM_NAME}}\" --room-description \"{{ROOM_DESCRIPTION}}\" --preferred-game \"{{PREFERRED_GAME}}\" --preferred-game-id {{PREFERRED_GAME_ID}} --port {{SERVER_PORT}} --max_members {{MAX_MEMBERS}} --password \"{{PASSWORD}}\" --token \"{{YUZU_TOKEN}}\" --web-api-url \"https:\/\/api.yuzu-emu.org\/\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Room is open\"\r\n}", + "logs": "{}", + "stop": "Q" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\napt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports\r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Room name", + "description": "", + "env_variable": "ROOM_NAME", + "default_value": "My Yuzu Room", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Room description", + "description": "", + "env_variable": "ROOM_DESCRIPTION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:60", + "field_type": "text" + }, + { + "name": "Preferred game", + "description": "", + "env_variable": "PREFERRED_GAME", + "default_value": "Mario Kart 8 Deluxe", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Preferred game ID", + "description": "", + "env_variable": "PREFERRED_GAME_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20|alphanum", + "field_type": "text" + }, + { + "name": "Max members", + "description": "", + "env_variable": "MAX_MEMBERS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|int|max:4|min:1", + "field_type": "text" + }, + { + "name": "Room password", + "description": "Room password. Leave empty for no password.", + "env_variable": "PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Yuzu token", + "description": "Yuzu account token (retrieve yours at https:\/\/profile.yuzu-emu.org\/). Necessary when creating a public (listed) room. Leave empty to create a private room.", + "env_variable": "YUZU_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + } + ] +}