Creating servers in Pterodactyl: Difference between revisions

add
be more specific that image lists nests, not eggs, as Fleff was confused when following this guide yesterday
 
(13 intermediate revisions by the same user not shown)
Line 7: Line 7:


== Eggs ==
== Eggs ==
An ''egg'' is a file which tells Pterodactyl ''how'' to install, launch, and manage whatever application the egg is advertising to be installable. It gives Pterodactyl the commands necessary to download server files, instructions on how to setup the environment for the software appropriately, and what configuration options should be available to server operators.<ref>For example, for the Arma server, it's egg tells Pterodactyl's GUI to provide an option to change the server's modlist. It maps the input made on the GUI to the relevant configuration file on the server.</ref>
An ''egg'' is a file which tells Pterodactyl how to install a particular application, and then Pterodactyl executes those instructions inside a docker container. The egg also translates application-specific settings (e.g. player slots for a ''Garry's Mod'' server) as options which are instead configurable in the panel.


As all games are different not ''all'' egg installations will be the same. ''Some'' degree of basic server and computer literacy will be necessary. This guide will aim to be as helpful as possible in spite of this.
While the adding of a new egg to the panel is always the same, because by their nature all game servers<ref>Pterodactyl can be used for non-game servers too, like [https://foundryvtt.com/ FoundryVTT] or TeamSpeak, but the point stands.</ref> are different, the configuration and effort required to get a server to launch for the first time is case-by-case.
 
The benefit of an egg is that, so long as it has been added to the list of eggs on the panel, EDC can terminate and boot up the relevant software on demand.


== Step 0: Checking if we have the egg ==
== Step 0: Checking if we have the egg ==
The first thing we want to do is see if we currently have the egg or not.   
Before we scour the internet for an egg let's first check that we don't already have it.   


# Log into the panel at https://edcgaming.org.
# Log into the panel at https://edcgaming.org.
# Click the cog icon to the left of the colored smiley face to access the administrative section of Pterodactyl.[[File:Pterodactyl admin panel icon.png|none|thumb|''The Pterodactyl panel button to get to the administrative section.'']]
# Click the cog icon to the left of the colored smiley face to access the administrative section of Pterodactyl.[[File:Pterodactyl admin panel icon.png|none|thumb|''The Pterodactyl panel button to get to the administrative section.'']]
# Click the <code>Nests</code> button on the following page.[[File:Pterodactyl nests panel icon circled.png|none|thumb|383x383px|''The Pterodactyl panel nests button in the administrative section.'']]
# Click the <code>Nests</code> button on the following page.[[File:Pterodactyl nests panel icon circled.png|none|thumb|383x383px|''The Pterodactyl panel nests button in the administrative section.'']]
You will be greeted with the following list (or similar looking list).
You will then be greeted with the following list (or similar looking list).
[[File:Pterodactyl list of nests.png|none|thumb|820x820px|''List of Pterodactyl egg nests.'']]
[[File:Pterodactyl list of nests.png|none|thumb|820x820px|''List of Pterodactyl egg nests.'']]
The term ''nest'' is fairly self-explanatory. Click into the nests and see if an egg for the software you want to spin up is present.
'''<u>This is not a list of all available eggs</u>'''. '''This is a list of ''nests''''' {{Em dash}} '''a ''grouping'' of eggs.''' To check if an egg exists, look into all of the nests (e.g click <code>Non-Default Games</code> in most cases, or <code>Source Engine</code>, and so on)


Review the table below for what you should do now.
Review the table below for what you should do now.
Line 34: Line 32:


== Step 1: Finding and installing an egg ==
== Step 1: Finding and installing an egg ==
{{Ambox|type=content|image=|text='''Eggs found in locations not documented below should be sanity checked by an experienced systems operator prior to installation'''.<br/>Experienced operators include Sirdog, Sushiloid, and SierraKomodo.
{{Ambox|type=content|image=|text='''Please be cautious of uploading duplicate eggs'''. Pterodactyl does not in any way stop this. To maintain consistency of server setup, and general organization, multiple eggs for the same application is not desirable.
}}
}}


=== Finding the egg ===
=== a. Finding the egg ===
The following locations are commonly used to find eggs:
The following locations are recommended for finding eggs:


* https://pelican-eggs.github.io/pterodactyl/ (Option 1)
* https://pelican-eggs.github.io/pterodactyl/ (Option 1)


For the sake of this guide, let's suppose we wish to spin up a ''Mordhau'' server. On the ''Option 1'' list, we find that ''Mordhau's'' egg is said to be located at [https://raw.githubusercontent.com/pelican-eggs/games-steamcmd/refs/heads/main/mordhau/egg-pterodactyl-mordhau.json a very long URL]. Going to this URL presents a raw page with text. You are viewing a JSON file. The entirety of this page's contents should be saved to your computer in some fashion. The advised way is to right click on the page and select <code>Save as</code>.  
Regardless as to where an egg is found, it will always be a JSON file. For example, on the ''Option 1'' list, when we select ''Mordhau's'' entry, we are sent to the raw text of the egg. Right click and select <code>Save as</code> on your browser, or copy the contents into a new text file and change the extension to <code>.json</code>.


=== Installing the egg ===
=== b. Installing the egg ===
Now, we are going to take the egg and upload it to our Pterodactyl instance. Once done, EDC has this egg forever, and it will be possible boot up and terminate it's associated application at will.
#Log into the panel at https://edcgaming.org.
#Log into the panel at https://edcgaming.org.
# Click the cog icon to the left of the colored smiley face to access the administrative section of Pterodactyl.[[File:Pterodactyl admin panel icon.png|none|thumb|''The Pterodactyl panel button to get to the administrative section.'']]
# Click the cog icon to the left of the colored smiley face to access the administrative section of Pterodactyl.[[File:Pterodactyl admin panel icon.png|none|thumb|''The Pterodactyl panel button to get to the administrative section.'']]
# Click the <code>Nests</code> button on the following page.[[File:Pterodactyl nests panel icon circled.png|none|thumb|383x383px|''The Pterodactyl panel nests button in the administrative section.'']]
# Click the <code>Nests</code> button on the following page.[[File:Pterodactyl nests panel icon circled.png|none|thumb|383x383px|''The Pterodactyl panel nests button in the administrative section.'']]
#You will be greeted with the following list (or similar looking list). Click <code>Import Egg</code>.[[File:Pterodactyl list of nests.png|none|thumb|820x820px|''List of Pterodactyl egg nests.'']]
#You will be greeted with the following list (or similar looking list). Click <code>Import Egg</code>.[[File:Pterodactyl list of nests.png|none|thumb|820x820px|''List of Pterodactyl egg nests.'']]
#You will be shown a confirmation prompt. In this prompt, select the relevant JSON file, and ensure to set the nest to <code>Non-Default Games</code>.[[File:Pterodactyl egg import prompt.png|none|thumb|402x402px|''Pterodactyl egg importing prompt.'']]
#You will be shown a confirmation prompt. In this prompt, select the JSON file, and ensure to set the nest to <code>Non-Default Games</code>.[[File:Pterodactyl egg import prompt.png|none|thumb|402x402px|''Pterodactyl egg importing prompt.'']]
#Click <code>Import</code>.
#Click <code>Import</code>.
#You should see a new page with a lot of information on it and a green prompt saying the import was successful.[[File:Pterodactyl successful egg import.png|none|thumb|361x361px|''Pterodactyl successful egg import notification.'']]
#You should see a new page with a lot of information on it and a green prompt saying the import was successful.[[File:Pterodactyl successful egg import.png|none|thumb|361x361px|''Pterodactyl successful egg import notification.'']]
If you know what you are doing, or feel confident in your server literacy, you can tinker on this page. Otherwise, you should be able to safely navigate away.


== Step 2: Spin up server ==
== Step 2: Spin up server ==
 
So, we either just installed our desired egg, or we found that the egg already exists. Let's try to launch a server running the application.
We now get to use our egg to spin up an environment.
# Click the <code>Servers</code> button while in the administrative section of the panel.[[File:Pterodactyl servers panel icon circled.png|none|thumb|529x529px|''The Pterodactyl panel "Servers" button in the administrative section.'']]
 
#Near the top right of the server list, click the green <code>Create New</code> button.
# Click the cog icon to the left of the colored smiley face to access the administrative section of Pterodactyl.[[File:Pterodactyl admin panel icon.png|none|thumb|''The Pterodactyl panel button to get to the administrative section.'']]
From here, you are going to see a form requesting a ''lot'' from you. Review the table below for assistance.
# Click the <code>Servers</code> button on the following page.[[File:Pterodactyl servers panel icon circled.png|none|thumb|529x529px|''The Pterodactyl panel servers button in the administrative section.'']]
#Near the top right of the server list, click <code>Create New</code>.
[[File:Pterodactyl portion of create server form.png|thumb|543x543px|''An unfilled portion of the'' <code>Create New</code> ''server prompt.'']]
From here, you are going to see a considerable form requesting a lot of information from you. Review the table below for assistance.
{| class="wikitable"
{| class="wikitable"
!Field
!Field
Line 68: Line 62:
|-
|-
|'''''Server Name'''''
|'''''Server Name'''''
|The fancy title of the software/video game server.
|[[File:Pencil font awesome.svg|20x20px]] Set as the name of the software/game.
|-
|-
|'''''Server Owner'''''
|'''''Server Owner'''''
|Set this as yourself; use your email address to find yourself.
|[[File:Pencil font awesome.svg|20x20px]] Set as your Pterodactyl account.
|-
|-
|'''''Server Description'''''
|'''''Server Description'''''
|Not relevant. Can be left blank.
|[[File:Shrug - Delapouite - game-icons.svg|20x20px]] Discretionary. Not relevant to anything.
|-
|-
|'''''Node'''''
|'''''Node'''''
|Do not edit.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Default Allocation'''''
|'''''Default Allocation'''''
|Do not edit.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Additional Allocation(s)'''''
|'''''Additional Allocation(s)'''''
|Do not edit.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Database Limit'''''
|'''''Database Limit'''''
|Keep at 0.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Allocation Limit'''''
|'''''Allocation Limit'''''
|Keep at 0.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Backup Limit'''''
|'''''Backup Limit'''''
|Discretionary; advise equal to or less than 3.
|[[File:Pencil font awesome.svg|20x20px]] Discretionary; advise equal to or less than 3.
|-
|-
|'''''CPU Limit'''''
|'''''CPU Limit'''''
|Keep at 0.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''CPU Pinning'''''
|'''''CPU Pinning'''''
|Keep blank.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Memory'''''
|'''''Memory'''''
|This is the server's RAM. Set to the minimum amount necessary to function. A Google search should identify what the recommended amount is. '''This may not be set to 0'''.
|[[File:Pencil font awesome.svg|20x20px]] This is the server's available memory. Set to the minimum amount necessary to function. '''This may not be set to 0'''.
|-
|-
|'''''Swap'''''
|'''''Swap'''''
|Keep blank.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Disk Space'''''
|'''''Disk Space'''''
|This is the server's actual available disk space. Set to the minimum amount necessary to function. A Google search should identify what the recommended amount is. '''This may not be set to 0'''.
|[[File:Pencil font awesome.svg|20x20px]] This is the server's actual available disk space. Set to the minimum amount necessary to function. '''This may not be set to 0'''.
|-
|-
|'''''Block IO Weight'''''
|'''''Block IO Weight'''''
|Keep at default value.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Enable OOM Killer'''''
|'''''Enable OOM Killer'''''
|Terminates a server if it exceeds given memory. Operator choice.
|[[File:Shrug - Delapouite - game-icons.svg|20x20px]] Terminates server if memory is exceeded. Discretionary.
|-
|-
|'''''Nest'''''
|'''''Nest'''''
|Select nest that has the egg you wish to use.
|[[File:Pencil font awesome.svg|20x20px]] Select nest that has the egg you wish to use.
|-
|-
|'''''Egg'''''
|'''''Egg'''''
|Select egg you wish to use.
|[[File:Pencil font awesome.svg|20x20px]] Select egg you wish to use.
|-
|-
|'''''Skip Egg Install Script'''''
|'''''Skip Egg Install Script'''''
|Uncheck.
|[[File:Information orange.svg|20x20px]] Advised it be left alone.
|-
|-
|'''''Docker Image'''''
|'''''Docker Image'''''
|Egg dependent.
|[[File:Shrug - Delapouite - game-icons.svg|20x20px]] Egg dependent.
|}
|}
Remaining options on this form are determined by the egg itself. Ergo, a vanilla ''Minecraft'' egg will ask for a game version to be specified, whereas a ''Mordhau'' egg has options for the default map and maximum player slots. This inherently makes it impossible to provide further assistance. Research online and/or seek help from other experienced systems operators if you struggle with that part.
Remaining options on this form are determined by the egg. This inherently makes it impossible to provide further assistance here. Seek help from other experienced operators and search online.
 
When all options have been set, click <code>Create Server</code>.  
 
== Footnotes ==
== Footnotes ==
{{Reflist}}
{{Reflist}}
[[Category:Systems management]]
[[Category:Systems management]]