From 8204338765fb5907c6948925f2cdd658796ac3b0 Mon Sep 17 00:00:00 2001 From: Red-Banana-Official Date: Mon, 16 Feb 2026 18:46:16 +0100 Subject: [PATCH 1/7] numerous changes and fixes --- .../docs/guides/configuration/add-node.mdx | 2 +- .../configuration/creating-custom-egg.mdx | 6 +-- .../configuration/creating-custom-image.mdx | 4 +- .../docs/guides/configuration/php-upgrade.mdx | 2 +- content/docs/guides/customization/panel.mdx | 2 +- content/docs/guides/meta.json | 2 +- .../guides/panel-installation/centos7.mdx | 2 +- .../guides/panel-installation/centos8.mdx | 2 +- .../docs/guides/panel-installation/debian.mdx | 6 +-- .../guides/tutorials/ssl-certificates.mdx | 2 +- .../guides/wings-installation/centos7.mdx | 2 +- .../guides/wings-installation/centos8.mdx | 2 +- content/docs/meta.json | 8 ++++ content/docs/panel/0.7/getting-started.mdx | 20 ++++----- .../panel/0.7/webserver-configuration.mdx | 4 +- .../docs/panel/additional-configuration.mdx | 2 +- content/docs/panel/getting-started.mdx | 17 ++++---- content/docs/panel/legacy-upgrade.mdx | 4 +- content/docs/panel/updating.mdx | 43 ++++++------------- .../docs/panel/webserver-configuration.mdx | 11 ++--- content/docs/project/about.mdx | 11 ++--- content/docs/project/community.mdx | 2 +- content/docs/project/index.mdx | 2 +- content/docs/wings/installing.mdx | 7 +-- content/docs/wings/migrating.mdx | 2 +- 25 files changed, 73 insertions(+), 94 deletions(-) create mode 100644 content/docs/meta.json diff --git a/content/docs/guides/configuration/add-node.mdx b/content/docs/guides/configuration/add-node.mdx index 2a7555e9f..d1027827f 100644 --- a/content/docs/guides/configuration/add-node.mdx +++ b/content/docs/guides/configuration/add-node.mdx @@ -41,7 +41,7 @@ Don't forget to account for OS overhead and other software requirements on machi ## Install the Daemon -At this point you'll need to have the Daemon installed on your machine. Check out the [documentation](/docs/wings/installation) for more information, or try one of the community guides for [CentOS](/docs/guides/wings-installation/centos7), or [Debian](/docs/guides/panel-installation/debian). +At this point you'll need to have the Daemon installed on your machine. Check out the [documentation](/wings/installing) for more information, or try one of the community guides for [CentOS](/guides/wings-installation/centos7), or [Debian](/guides/panel-installation/debian). ## Configuring the Node diff --git a/content/docs/guides/configuration/creating-custom-egg.mdx b/content/docs/guides/configuration/creating-custom-egg.mdx index 288f0eded..4a61aa5f8 100644 --- a/content/docs/guides/configuration/creating-custom-egg.mdx +++ b/content/docs/guides/configuration/creating-custom-egg.mdx @@ -25,7 +25,7 @@ You will be taken to a new service option page which is where most of the config After that, enter an Option Name to describe it, in this case I am using `Widget`. You will also need to provide a _valid_ docker image, as well as a start command to be assigned to servers under this service option (remember, this can be tweaked per-server if needed). -_Docker images must be specifically designed to work with Pterodactyl Panel._ You should read more about that in our [Creating a Docker Image](/docs/guides/configuration/creating-custom-image) guide. +_Docker images must be specifically designed to work with Pterodactyl Panel._ You should read more about that in our [Creating a Docker Image](/guides/configuration/creating-custom-image) guide. ## Configure Process Management @@ -41,7 +41,7 @@ Next, you'll encounter `Stop Command` and, as the name implies, this should be t ### Log Storage -Logs are competely handeled by the daemon now and use the docker logs to output the complete output from the server. This can be set like below. +Logs are completely handled by the daemon now and use the docker logs to output the complete output from the server. This can be set like below. ```json {} @@ -133,7 +133,7 @@ One of the great parts of the Egg Variables is the ability to define specific va ![Egg Variables](/community/config/eggs/Pterodactyl_Create_New_Egg_Variables.png) -The name and description are rather self-explanitory, so I'll skip down to the `Environment Variable` box. This should be an Alpha-Numeric name with underscores, and should be uppercase. This will be the name of the environment variable which can be accessed in the startup command as `{{WOOZLE_WOO}}`, within file modifications as `{{env.WOOZLE_WOO}}`, or just `${WOOZLE_WOO}` in any shell scripts (it is passed through in the environment). We also define a default value for this environment variable in this example, but it is not required to do so. +The name and description are rather self-explanatory, so I'll skip down to the `Environment Variable` box. This should be an Alpha-Numeric name with underscores, and should be uppercase. This will be the name of the environment variable which can be accessed in the startup command as `{{WOOZLE_WOO}}`, within file modifications as `{{env.WOOZLE_WOO}}`, or just `${WOOZLE_WOO}` in any shell scripts (it is passed through in the environment). We also define a default value for this environment variable in this example, but it is not required to do so. The next section is `Permissions`, which is a dropdown with two options: `Users Can View` and `Users Can Edit`. diff --git a/content/docs/guides/configuration/creating-custom-image.mdx b/content/docs/guides/configuration/creating-custom-image.mdx index 5bf05d0e5..a597a9ffd 100644 --- a/content/docs/guides/configuration/creating-custom-image.mdx +++ b/content/docs/guides/configuration/creating-custom-image.mdx @@ -19,11 +19,11 @@ We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possibl # ---------------------------------- # Pterodactyl Core Dockerfile # Environment: Java -# Minimum Panel Version: 0.6.0 +# Minimum Panel Version: 1.0.0 # ---------------------------------- FROM openjdk:8-jdk-alpine -MAINTAINER Pterodactyl Software, +LABEL maintainer="Pterodactyl Software " RUN apk add --no-cache --update curl ca-certificates openssl git tar bash sqlite fontconfig \ && adduser --disabled-password --home /home/container container diff --git a/content/docs/guides/configuration/php-upgrade.mdx b/content/docs/guides/configuration/php-upgrade.mdx index 6cbeba874..266d9a15c 100644 --- a/content/docs/guides/configuration/php-upgrade.mdx +++ b/content/docs/guides/configuration/php-upgrade.mdx @@ -72,4 +72,4 @@ a2enmod php8.3 ### Return to the 1.X.X Upgrade Guide -After completing the PHP upgrade, return to the [Panel upgrade guide](/docs/panel/upgrade) to continue with the update process. +After completing the PHP upgrade, return to the [Panel upgrade guide](/panel/updating) to continue with the update process. diff --git a/content/docs/guides/customization/panel.mdx b/content/docs/guides/customization/panel.mdx index 3a0a89679..8952fad43 100644 --- a/content/docs/guides/customization/panel.mdx +++ b/content/docs/guides/customization/panel.mdx @@ -9,7 +9,7 @@ description: Learn how to build and customize Pterodactyl Panel assets Do **not** run the following steps on your production nodes. -Instructions on how to build the panel are also available in the [BUILDING.md](https://github.com/pterodactyl/panel/blob/1.0-develop/BUILDING.md) file. +Instructions on how to build the panel are also available in the [BUILDING.md](https://github.com/pterodactyl/panel/blob/develop/BUILDING.md) file. The frontend of the Panel is built with React. Any changes to the source files require to recompile it. This also applies to style sheets. The following sections explain how to do so. diff --git a/content/docs/guides/meta.json b/content/docs/guides/meta.json index 5f03ebf9a..acfc0949f 100644 --- a/content/docs/guides/meta.json +++ b/content/docs/guides/meta.json @@ -1,5 +1,5 @@ { - "title": "Guides", + "title": "Community Guides", "root": true, "pages": [ "panel-installation", diff --git a/content/docs/guides/panel-installation/centos7.mdx b/content/docs/guides/panel-installation/centos7.mdx index 95190d5e2..efae7f640 100644 --- a/content/docs/guides/panel-installation/centos7.mdx +++ b/content/docs/guides/panel-installation/centos7.mdx @@ -101,7 +101,7 @@ setsebool -P httpd_unified 1 ## Installing the Panel -Excellent, we now have all of the required dependencies installed and configured. From here, follow the [official Panel installation documentation](/docs/panel/getting-started#download-files). +Excellent, we now have all of the required dependencies installed and configured. From here, follow the [official Panel installation documentation](/panel/getting-started#download-files). You will need to change the fastcgi_pass path in the Nginx configuration to `/var/run/php-fpm/pterodactyl.sock` diff --git a/content/docs/guides/panel-installation/centos8.mdx b/content/docs/guides/panel-installation/centos8.mdx index 05583eaf0..d76f60f7e 100644 --- a/content/docs/guides/panel-installation/centos8.mdx +++ b/content/docs/guides/panel-installation/centos8.mdx @@ -80,7 +80,7 @@ sudo systemctl enable --now php-fpm ## Installing the Panel -Excellent, we now have all of the required dependencies installed and configured. From here, follow the [official Panel installation documentation](/docs/panel/getting-started#download-files). +Excellent, we now have all of the required dependencies installed and configured. From here, follow the [official Panel installation documentation](/panel/getting-started#download-files). You will need to change the fastcgi_pass path in the Nginx configuration to `/var/run/php-fpm/pterodactyl.sock` diff --git a/content/docs/guides/panel-installation/debian.mdx b/content/docs/guides/panel-installation/debian.mdx index 7eaaaeba9..c1eece140 100644 --- a/content/docs/guides/panel-installation/debian.mdx +++ b/content/docs/guides/panel-installation/debian.mdx @@ -6,7 +6,7 @@ description: Install Pterodactyl Panel on Debian 11, 12, and 13 -This guide is based off the [official installation documentation](/docs/panel/getting-started) but is tailored specifically for Debian 11, 12 and 13. +This guide is based off the [official installation documentation](/panel/getting-started) but is tailored specifically for Debian 11, 12 and 13. | Operating System | Version | Supported | Notes | @@ -51,8 +51,8 @@ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/loca ### Download Files -Great, now all of the dependencies have been dealt with. Continue the installation by following the [official documentation Download Files section](/docs/panel/getting-started#download-files). +Great, now all of the dependencies have been dealt with. Continue the installation by following the [official documentation Download Files section](/panel/getting-started#download-files). ### Wings -There is no additional configuration required for Wings on Debian 11, 12 or 13. You can follow the [official Wings install documentation](/docs/wings/installation), which covers Docker installation for Debian. +There is no additional configuration required for Wings on Debian 11, 12 or 13. You can follow the [official Wings install documentation](/wings/installing), which covers Docker installation for Debian. diff --git a/content/docs/guides/tutorials/ssl-certificates.mdx b/content/docs/guides/tutorials/ssl-certificates.mdx index 72bda7385..89dd0782a 100644 --- a/content/docs/guides/tutorials/ssl-certificates.mdx +++ b/content/docs/guides/tutorials/ssl-certificates.mdx @@ -27,7 +27,7 @@ After installing the certbot, we need to generate a certificate. There are a cou Then, in the command below, you should replace `example.com` with the domain you would like to generate a certificate for. When you have multiple domains you would like certificates for, simply add more `-d anotherdomain.com` flags to the command. You can also look into generating a wildcard certificate but that is not covered in this tutorial. -When you are using certbot's Nginx/Apache plugin, you won't need to restart your webserver to have the certificate applied assuming that you've already configured the webservers to use SSL as instructed in the [web server configuration step](/docs/panel/webserver-configuration). +When you are using certbot's Nginx/Apache plugin, you won't need to restart your webserver to have the certificate applied assuming that you've already configured the webservers to use SSL as instructed in the [web server configuration step](/panel/webserver-configuration). ### HTTP challenge diff --git a/content/docs/guides/wings-installation/centos7.mdx b/content/docs/guides/wings-installation/centos7.mdx index 5ec9edb75..51452dc2e 100644 --- a/content/docs/guides/wings-installation/centos7.mdx +++ b/content/docs/guides/wings-installation/centos7.mdx @@ -30,4 +30,4 @@ firewall-cmd --reload ## Installing Wings -Great, now all of the dependencies and firewall rules have been dealt with. From here follow the [official Wings installation documentation](/docs/wings/installation#enabling-swap). +Great, now all of the dependencies and firewall rules have been dealt with. From here follow the [official Wings installation documentation](/wings/installing#enabling-swap). diff --git a/content/docs/guides/wings-installation/centos8.mdx b/content/docs/guides/wings-installation/centos8.mdx index 1aa3bc6f9..edea6d5bf 100644 --- a/content/docs/guides/wings-installation/centos8.mdx +++ b/content/docs/guides/wings-installation/centos8.mdx @@ -34,7 +34,7 @@ firewall-cmd --reload ## Installing Wings -Great, now all of the dependencies and firewall rules have been dealt with. From here follow the [official Wings installation documentation](/docs/wings/installation#enabling-swap). +Great, now all of the dependencies and firewall rules have been dealt with. From here follow the [official Wings installation documentation](/wings/installing#enabling-swap). If you have SELinux enforcement enabled and you are getting AVC denials from your containers, try relocating your Wings data directory from `/var/lib/pterodactyl` to `/var/srv/containers/pterodactyl`. That is where the targeted policy expects Docker to read and write data from. diff --git a/content/docs/meta.json b/content/docs/meta.json new file mode 100644 index 000000000..ce0991e7f --- /dev/null +++ b/content/docs/meta.json @@ -0,0 +1,8 @@ +{ + "pages": [ + "project", + "panel", + "wings", + "guides" + ] +} diff --git a/content/docs/panel/0.7/getting-started.mdx b/content/docs/panel/0.7/getting-started.mdx index 8e60ab55a..18a166250 100644 --- a/content/docs/panel/0.7/getting-started.mdx +++ b/content/docs/panel/0.7/getting-started.mdx @@ -7,7 +7,7 @@ description: Installation guide for Pterodactyl Panel 0.7 (End-of-Life version) This documentation is for **end-of-life software** which does not receive any security updates or support from the community. This documentation has been left accessible for historical reasons. -You should be installing and using [Pterodactyl Panel 1.0](/panel/getting-started) in production environments. +You should be installing and using [Pterodactyl Panel 1.x](/panel/getting-started) in production environments. Pterodactyl Panel is designed to run on your own web server. You will need to have root access to your server in order @@ -30,11 +30,11 @@ this software on an OpenVZ based system you will — most likely — not | Operating System | Version | Supported | Notes | | ---------------- | ------------------------------------------------------------- | :----------------: | ----------------------------------------------------------- | | **Ubuntu** | 18.04 | ✅ | Documentation written assuming Ubuntu 18.04 as the base OS. | -| | [20.04](/community/installation-guides/panel/ubuntu2004.html) | ✅ | | -| **CentOS** | [7](/community/installation-guides/panel/centos7.html) | ✅ | Extra repos are required. | -| | [8](/community/installation-guides/panel/centos8.html) | ✅ | All required packages are part of the base repos. | -| **Debian** | [9](/community/installation-guides/panel/debian9.html) | ✅ | Extra repos are required. | -| | [10](/community/installation-guides/panel/debian10.html) | ✅ | All required packages are part of the base repos. | +| | 20.04 | ✅ | | +| **CentOS** | 7 | ✅ | Extra repos are required. | +| | 8 | ✅ | All required packages are part of the base repos. | +| **Debian** | 9 | ✅ | Extra repos are required. | +| | 10 | ✅ | All required packages are part of the base repos. | ## Dependencies @@ -108,14 +108,14 @@ chmod -R 755 storage/* bootstrap/cache/ This documentation is for **end-of-life software** which does not receive any security updates or support from the community. This documentation has been left accessible for historical reasons. -You should be installing and using [Pterodactyl Panel 1.0](/panel/getting-started) in production environments. +You should be installing and using [Pterodactyl Panel 1.x](/panel/getting-started) in production environments. Now that all of the files have been downloaded we need to configure some core aspects of the Panel. You will need a database setup and a user with the correct permissions created for that database before -continuing any further. See below to quickly create a user and database for your Pterodactyl panel, if you are unsure how to do this or want more information, please have a look at [Setting up MySQL](/tutorials/mysql_setup.html). +continuing any further. See below to quickly create a user and database for your Pterodactyl panel, if you are unsure how to do this or want more information, please have a look at [Setting up MySQL](/guides/tutorials/mysql-setup). ```sql mysql -u root -p @@ -253,6 +253,4 @@ Finally, enable the service and set it to boot on machine start. ```bash sudo systemctl enable --now pteroq.service -``` - -#### Next Step: [Webserver Configuration](/panel/0.7/webserver-configuration) +``` \ No newline at end of file diff --git a/content/docs/panel/0.7/webserver-configuration.mdx b/content/docs/panel/0.7/webserver-configuration.mdx index 1aa86f440..6c5b9217d 100644 --- a/content/docs/panel/0.7/webserver-configuration.mdx +++ b/content/docs/panel/0.7/webserver-configuration.mdx @@ -27,7 +27,7 @@ security between users and the Panel. You will need to get a valid SSL certifica Let's Encrypt. -When using the SSL configuration you MUST create SSL certificates, otherwise your NGINX will fail to start. See [Creating SSL Certificates](/tutorials/creating_ssl_certificates.html) documentation page for how to create these certificates before continuing. +When using the SSL configuration you MUST create SSL certificates, otherwise your NGINX will fail to start. See [Creating SSL Certificates](/guides/tutorials/ssl-certificates) documentation page for how to create these certificates before continuing. ```nginx {5,11,26-27} @@ -174,7 +174,7 @@ Note: When using Apache, make sure you have the `libapache2-mod-php` package ins Like the nginx configuration, this assumes you will be using SSL on both the Panel and Daemons for improved security. -When using the SSL configuration you MUST create SSL certificates, otherwise your Apache will fail to start. See [Creating SSL Certificates](/tutorials/creating_ssl_certificates.html) documentation page for how to create these certificates before continuing. +When using the SSL configuration you MUST create SSL certificates, otherwise your Apache will fail to start. See [Creating SSL Certificates](/guides/tutorials/ssl-certificates) documentation page for how to create these certificates before continuing. ```apache {2,8,17-18} diff --git a/content/docs/panel/additional-configuration.mdx b/content/docs/panel/additional-configuration.mdx index 1c7cdd3ec..62c6efe48 100644 --- a/content/docs/panel/additional-configuration.mdx +++ b/content/docs/panel/additional-configuration.mdx @@ -184,7 +184,7 @@ telemetry data. The telemetry data is collected every 24 hours, there is no ongo or local storage of the telemetry data, we collect the data right before we send it to the remote server. -Currently, all telemetry collection logic is handled by the [TelemetryCollectionService](https://github.com/pterodactyl/panel/blob/1.0-develop/app/Services/Telemetry/TelemetryCollectionService.php#L53) +Currently, all telemetry collection logic is handled by the [TelemetryCollectionService](https://github.com/pterodactyl/panel/blob/develop/app/Services/Telemetry/TelemetryCollectionService.php#L53) on the panel. This service is responsible for collecting all the data that is sent to the remote server. diff --git a/content/docs/panel/getting-started.mdx b/content/docs/panel/getting-started.mdx index 970243d33..c9d2c1185 100644 --- a/content/docs/panel/getting-started.mdx +++ b/content/docs/panel/getting-started.mdx @@ -19,9 +19,10 @@ of basic linux system administration you should stop and turn around now.** Pterodactyl runs on a wide range of operating systems, so pick whichever you are most comfortable using. - -Pterodactyl does not support most OpenVZ systems due to incompatibilities with Docker. If you are planning on running -this software on an OpenVZ based system you will — most likely — not be successful. + +Running Wings under LXC or OpenVZ containers is possible as long as the virtualization layer supports Docker. Most modern +providers with LXC/OpenVZ 7+ and nested virtualization enabled will work without issues. If you run into problems, ensure +that your provider has enabled the necessary kernel features for Docker. | Operating System | Version | Supported | Notes | @@ -31,8 +32,8 @@ this software on an OpenVZ based system you will — most likely — not | **RHEL / Rocky Linux / AlmaLinux** | 8 | ✅ | Extra repos are required. | | | 9 | ✅ | | | **Debian** | 11 | ✅ | [Debian Dependencies](/guides/panel-installation/debian) | -| | 12 | ✅ | [Debian Dependencies](/guides/panel-installation/debian) -| | 13 | ✅ | [Debian Dependencies](/guides/panel-installation/debian) +| | 12 | ✅ | [Debian Dependencies](/guides/panel-installation/debian) | +| | 13 | ✅ | [Debian Dependencies](/guides/panel-installation/debian) | ## Dependencies @@ -106,7 +107,7 @@ Now that all of the files have been downloaded we need to configure some core as You will need a database setup and a user with the correct permissions created for that database before continuing any further. See below to create a user and database for your Pterodactyl panel quickly. To find more detailed information -please have a look at [Setting up MySQL](/guides/mysql-setup). +please have a look at [Setting up MySQL](/guides/tutorials/mysql-setup). ```sql # If using MariaDB (v11.0.0+) (This is the default when installing Pterodactyl by following the documentation.) @@ -282,6 +283,4 @@ sudo systemctl enable --now pteroq.service Since 1.11, Pterodactyl will collect anonymous telemetry to help us better understand how the software is being used. To learn more about this feature and to opt-out, please see our [Telemetry](/panel/additional-configuration#telemetry) -documentation. Make sure to continue with the rest of the installation process. - -#### Next Step: [Webserver Configuration](/panel/webserver-configuration) +documentation. Make sure to continue with the rest of the installation process. \ No newline at end of file diff --git a/content/docs/panel/legacy-upgrade.mdx b/content/docs/panel/legacy-upgrade.mdx index 37558cb40..2e1bc4d05 100644 --- a/content/docs/panel/legacy-upgrade.mdx +++ b/content/docs/panel/legacy-upgrade.mdx @@ -26,7 +26,7 @@ reference the list below to ensure you have all of the required versions. * PHP `8.0` or `8.1` (recommended) with the following extensions: `cli`, `openssl`, `gd`, `mysql`, `PDO`, `mbstring`, `tokenizer`, `bcmath`, `xml` or `dom`, `curl`, `zip`, and `fpm` if you are planning to use nginx. See our guide - for [Upgrading PHP](/guides/php_upgrade) for details. + for [Upgrading PHP](/guides/configuration/php-upgrade) for details. * Composer v2 (`composer self-update --2`) @@ -52,7 +52,7 @@ to ensure that you're in the `/var/www/pterodactyl` directory as the command bel into your current folder. We will also be deleting the `app/` directory. Because of the way we handle installations and upgrades deleted files -are not always detected properly, so simply uppacking over this location will result in some confusing behavior. +are not always detected properly, so simply unpacking over this location will result in some confusing behavior. ```bash # Delete the app directory to ensure we start with a clean slate here. This will not affect any diff --git a/content/docs/panel/updating.mdx b/content/docs/panel/updating.mdx index e4e7d934a..45883f7e5 100644 --- a/content/docs/panel/updating.mdx +++ b/content/docs/panel/updating.mdx @@ -6,7 +6,7 @@ description: Guide for updating Pterodactyl Panel within the 1.x series This documentation covers the process for updating within the `1.x` series of releases. This means updating from -— for example — `1.5.0` to `1.6.0`. **Do not use this guide for upgrading from `0.7`.** +— for example — `1.11.x` to `1.12.x`. ## Panel Version Requirements @@ -27,7 +27,8 @@ most cases your base Wings version should match that of your Panel. | 1.8.x | 1.6.x | | 7.4, 8.0, 8.1 | | 1.9.x | 1.6.x | | 7.4, 8.0, 8.1 | | 1.10.x | 1.7.x | | 7.4, 8.0, 8.1 | -| **1.11.x** | **1.11.x** | ✅ | ~~8.1~~, 8.2, **8.3** | +| 1.11.x | 1.11.x | | ~~8.1~~, 8.2, 8.3 | +| **1.12.x** | **1.12.x** | ✅ | 8.2, **8.3** | There are no 1.8.x, 1.9.x, or 1.10.x releases of Wings. @@ -40,34 +41,22 @@ There are no 1.8.x, 1.9.x, or 1.10.x releases of Wings. **Before continuing**, please ensure that your system and web server configuration has been upgraded to at least PHP 8.2 by running `php -v` and Composer 2 by running `composer --version`. You should see an output similar to the result below. If you do not see at least PHP 8.2 and Composer 2, you will need to upgrade by following -our [PHP Upgrade Guide](/guides/php_upgrade) and return to this documentation afterward. +our [PHP Upgrade Guide](/guides/configuration/php-upgrade) and return to this documentation afterward. ```shell vagrant@pterodactyl:~/app$ php -v -PHP 8.2.5 (cli) (built: Dec 21 2022 10:32:13) (NTS) +PHP 8.3.30 (cli) (built: Dec 21 2022 10:32:13) (NTS) Copyright (c) The PHP Group -Zend Engine v4.1.5, Copyright (c) Zend Technologies - with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies +Zend Engine v4.3.30, Copyright (c) Zend Technologies + with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies vagrant@pterodactyl:~/app$ composer --version -Composer version 2.3.5 2022-04-13 16:43:00 +Composer version 2.8.12 2025-09-19 13:41:59 ``` -## Self Upgrade +## Upgrade Steps - -The self-upgrade is currently in-operable due to issues with some dependencies we make use of. -For the time being please perform a manual upgrade until this issue can be resolved. - - -## Manual Upgrade - -If you prefer not to perform the automatic self-upgrade, or need to reference any upgrade steps you can follow -the documentation below. - - -If you've already performed the self-upgrade successfully you do not need to do anything else on this page. - +Follow the steps below to upgrade your Panel to the latest version. ### Enter Maintenance Mode @@ -133,13 +122,13 @@ The last step is to set the proper owner of the files to be the user that runs y is `www-data` but can vary from system to system — sometimes being `nginx`, `caddy`, `apache`, or even `nobody`. ```bash -# If using NGINX or Apache (not on CentOS) +# If using NGINX, Apache or Caddy (not on RHEL / Rocky Linux / AlmaLinux) chown -R www-data:www-data /var/www/pterodactyl/* -# If using NGINX on CentOS +# If using NGINX on RHEL / Rocky Linux / AlmaLinux chown -R nginx:nginx /var/www/pterodactyl/* -# If using Apache on CentOS +# If using Apache on RHEL / Rocky Linux / AlmaLinux chown -R apache:apache /var/www/pterodactyl/* ``` @@ -164,8 +153,4 @@ php artisan up Since 1.11, Pterodactyl will collect anonymous telemetry to help us better understand how the software is being used. To learn more about this feature and to opt-out, please see our [Telemetry](/panel/additional-configuration#telemetry) -documentation. Remember to continue with the rest of the upgrade. - -## Next Steps - -Continue with [Upgrading Wings](/wings/upgrading). +documentation. Remember to continue with the rest of the upgrade. \ No newline at end of file diff --git a/content/docs/panel/webserver-configuration.mdx b/content/docs/panel/webserver-configuration.mdx index 657d1ac6e..499470f77 100644 --- a/content/docs/panel/webserver-configuration.mdx +++ b/content/docs/panel/webserver-configuration.mdx @@ -4,7 +4,7 @@ description: Configure your webserver to serve the Pterodactyl Panel --- -When using the SSL configuration you MUST create SSL certificates, otherwise your webserver will fail to start. See the [Creating SSL Certificates](/guides/creating_ssl_certificates) documentation page to learn how to create these certificates before continuing. +When using the SSL configuration you MUST create SSL certificates, otherwise your webserver will fail to start. See the [Creating SSL Certificates](/guides/tutorials/ssl-certificates) documentation page to learn how to create these certificates before continuing. @@ -342,7 +342,7 @@ You should paste the contents of the file below, replacing `` with your ``` -If you are using Cloudflare DNS in proxy mode, refer to [this tutorial](/guides/creating_ssl_certificates#method-3-caddy-using-cloudflare-api), to see how to configure Caddy to use DNS challenge for obtaining SSL certificates. +If you are using Cloudflare DNS in proxy mode, refer to [this tutorial](/guides/tutorials/ssl-certificates#method-3-caddy-using-cloudflare-api), to see how to configure Caddy to use DNS challenge for obtaining SSL certificates. ### Enabling Configuration @@ -398,7 +398,6 @@ The only two differences are that we have suffixed the `` with `:80` and write_timeout 300s } - header Strict-Transport-Security "max-age=16768000; preload;" header X-Content-Type-Options "nosniff" header X-XSS-Protection "1; mode=block;" header X-Robots-Tag "none" @@ -430,8 +429,4 @@ The final step is to restart Caddy. systemctl restart caddy ``` - - -## Next Steps - -Continue with the [Wings Installation](/wings/installing) guide. + \ No newline at end of file diff --git a/content/docs/project/about.mdx b/content/docs/project/about.mdx index 7f37b5f7d..6f875267f 100644 --- a/content/docs/project/about.mdx +++ b/content/docs/project/about.mdx @@ -5,12 +5,9 @@ description: Information about the Pterodactyl project team, sponsors, and licen ## Core Project Team -| Name | Discord Name | Primary Role | -| ---------------------------------------- | --------------- | ----------------------------------- | -| [Dane Everitt](https://daneeveritt.com/) | `.tacticalfish` | Founder & Former Project Maintainer | -| [Matthew Penner](https://matthewp.io/) | `matthewp` | Project Maintainer | -| Stepan Fedotov | `trixter` | WHMCS Module Maintainer | -| Michael Parker | `parkervcp` | Egg Developer, Docker Integration | +| Name | Discord Name | Primary Role | +| ---------------------------------------- | --------------- | ------------------------- | +| [Dane Everitt](https://daneeveritt.com/) | `deveritt` | Founder & Project Maintainer | Members of the project team have a red username in our Discord server. @@ -37,7 +34,7 @@ The following companies help fund Pterodactyl's development. [Interested in beco Pterodactyl® Copyright © 2015 Dane Everitt and contributors. -Code released under the [MIT License](https://github.com/pterodactyl/panel/blob/1.0-develop/LICENSE.md). +Code released under the [MIT License](https://github.com/pterodactyl/panel/blob/develop/LICENSE.md). ## Release Signing diff --git a/content/docs/project/community.mdx b/content/docs/project/community.mdx index a55f739ce..ba06a26e0 100644 --- a/content/docs/project/community.mdx +++ b/content/docs/project/community.mdx @@ -31,7 +31,7 @@ acting out is not allowed. This community is fairly lax in regards to moderating language. However, the following are some examples of behavior that is absolutely _not_ tolerated and for which you will be removed from the community. -* Racist, sexist, homophobic, transphobic, or otherwise deregatory speech, images, insinuations, or any language whose +* Racist, sexist, homophobic, transphobic, or otherwise derogatory speech, images, insinuations, or any language whose sole purpose is to denigrate any individual, organization, or class of individual. * Threats of violence against any person, group, or organization including "doxxing" of these entities. * Pornographic or excessively violent content. diff --git a/content/docs/project/index.mdx b/content/docs/project/index.mdx index 3965d4440..adbcbd39d 100644 --- a/content/docs/project/index.mdx +++ b/content/docs/project/index.mdx @@ -21,7 +21,7 @@ Some of our core supported games include: * Teamspeak * Mumble * Team Fortress 2 -* Counter Strike: Global Offensive +* Counter-Strike: Global Offensive * Garry's Mod * ARK: Survival Evolved diff --git a/content/docs/wings/installing.mdx b/content/docs/wings/installing.mdx index e9aa53a0b..44169db3a 100644 --- a/content/docs/wings/installing.mdx +++ b/content/docs/wings/installing.mdx @@ -21,8 +21,7 @@ only the versions listed below. | Operating System | Version | Supported | Notes | | ---------------------------------- | ------- | :----------------: | ----------------------------------------------------------- | -| **Ubuntu** | 20.04 | ✅ | Documentation written assuming Ubuntu 20.04 as the base OS. | -| | 22.04 | ✅ | | +| **Ubuntu** | 22.04 | ✅ | | | | 24.04 | ✅ | | | **RHEL / Rocky Linux / AlmaLinux** | 8 | ✅ | | | | 9 | ✅ | | @@ -133,14 +132,12 @@ When your Panel is using SSL, the Wings must also have one created for its FQDN. ### Starting Wings -To start Wings, simply run the command below, which will start it in a debug mode. Once you confirmed that it is running without errors, use `CTRL+C` to terminate the process and daemonize it by following the instructions below. Depending on your server's internet connection pulling and starting Wings for the first time may take a few minutes. +To start Wings, simply run the command below, which will start it in debug mode. Once you confirmed that it is running without errors, use `CTRL+C` to terminate the process and daemonize it by following the instructions below. Depending on your server's internet connection pulling and starting Wings for the first time may take a few minutes. ```bash sudo wings --debug ``` -You may optionally add the `--debug` flag to run Wings in debug mode. - ### Daemonizing (using systemd) Running Wings in the background is a simple task, just make sure that it runs without errors before doing diff --git a/content/docs/wings/migrating.mdx b/content/docs/wings/migrating.mdx index 734b8e02a..d02ccd616 100644 --- a/content/docs/wings/migrating.mdx +++ b/content/docs/wings/migrating.mdx @@ -22,7 +22,7 @@ run the commands below which will create the base directory and download the win ```bash mkdir -p /etc/pterodactyl -curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64 +curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")" chmod u+x /usr/local/bin/wings ``` From 7a70c9477f5d16fe2a923228a4d24a81e0b556b6 Mon Sep 17 00:00:00 2001 From: Red-Banana-Official Date: Mon, 16 Feb 2026 19:14:05 +0100 Subject: [PATCH 2/7] Some more changes --- app/page.tsx | 125 ++++++++++++++++++++++++++++++++++++++++++++++++ next.config.mjs | 10 ---- 2 files changed, 125 insertions(+), 10 deletions(-) create mode 100644 app/page.tsx diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 000000000..4ddd9f5b9 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,125 @@ +import Link from 'next/link'; +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Pterodactyl - Open Source Game Server Management', + description: + 'A free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers.', +}; + +const features = [ + { + title: 'Security First', + description: + 'Built with security as a priority. All servers run in isolated Docker containers with bcrypt hashing, AES-256-CBC encryption, and HTTPS support out of the box.', + }, + { + title: 'Modern Tooling', + description: + 'Built on a modern stack using React for the frontend and Go for the daemon, giving you a fast and responsive experience.', + }, + { + title: 'Docker Powered', + description: + 'All game servers run in isolated Docker containers, limiting attack vectors and providing strict resource limits on CPU, memory, and IO.', + }, + { + title: 'Free & Open Source', + description: + 'Pterodactyl is 100% free and licensed under the MIT license. All of our code is publicly available on GitHub.', + }, + { + title: 'User Friendly', + description: + 'An intuitive and clean UI that makes managing your game servers easy, whether you run one server or hundreds.', + }, + { + title: 'Scalable', + description: + 'Whether you are a hosting company, a large gaming network, or just some friends playing video games, Pterodactyl can scale to fit your needs.', + }, +]; + +export default function LandingPage() { + return ( +
+ + +
+
+ {/* eslint-disable-next-line @next/next/no-img-element */} + Pterodactyl +

+ A free, open-source game server management panel built with PHP, React, and Go. + Designed with security in mind, Pterodactyl runs all game servers in isolated Docker + containers while exposing a beautiful and intuitive UI to end users. +

+
+ + Let's Get Started! + +
+
+ +
+

+ Why use Pterodactyl? +

+
+ {features.map((feature) => ( +
+

+ {feature.title} +

+

+ {feature.description} +

+
+ ))} +
+
+
+ + +
+ ); +} diff --git a/next.config.mjs b/next.config.mjs index 19d623a9f..4dfa2bb74 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -9,16 +9,6 @@ const config = { images: { unoptimized: true, }, - basePath: '/docs', - redirects: async () => { - return [ - { - source: '/', - destination: '/panel/getting-started', - permanent: false, - }, - ]; - } }; export default withMDX(config); From e533700c30427d653982571f391a39d9c64a5816 Mon Sep 17 00:00:00 2001 From: Red-Banana-Official Date: Mon, 16 Feb 2026 19:18:56 +0100 Subject: [PATCH 3/7] Add basePath back for prod --- next.config.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/next.config.mjs b/next.config.mjs index 4dfa2bb74..8606386dd 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -6,6 +6,7 @@ const withMDX = createMDX(); const config = { reactStrictMode: true, output: 'standalone', + basePath: '/docs', images: { unoptimized: true, }, From 0bfe0c97f46c7e651b184f3204308c7b356f83fc Mon Sep 17 00:00:00 2001 From: Red-Banana-Official Date: Tue, 17 Feb 2026 16:00:53 +0100 Subject: [PATCH 4/7] Egg creation docs overhaul --- .../configuration/creating-custom-egg.mdx | 164 ------------------ .../configuration/creating-custom-image.mdx | 140 --------------- content/docs/guides/configuration/meta.json | 4 +- .../egg-creation/creating-custom-egg.mdx | 61 +++++++ .../egg-creation/creating-custom-image.mdx | 144 +++++++++++++++ .../guides/egg-creation/egg-config-parser.mdx | 118 +++++++++++++ .../guides/egg-creation/egg-docker-images.mdx | 83 +++++++++ .../egg-creation/egg-install-script.mdx | 84 +++++++++ .../guides/egg-creation/egg-variables.mdx | 85 +++++++++ content/docs/guides/egg-creation/meta.json | 11 ++ content/docs/guides/meta.json | 1 + .../eggs/Pterodactyl_Create_New_Egg.png | Bin 0 -> 89099 bytes ...ctyl_Create_New_Egg_Copy_Settings_From.png | Bin 208941 -> 96891 bytes ...ctyl_Create_New_Egg_Process_Management.png | Bin 97426 -> 62749 bytes .../Pterodactyl_Create_New_Egg_Select.png | Bin 141560 -> 63110 bytes .../Pterodactyl_Create_New_Egg_Startup.png | Bin 115350 -> 121381 bytes .../Pterodactyl_Create_New_Egg_Variables.png | Bin 101036 -> 91019 bytes .../eggs/Pterodactyl_Create_New_Nest.png | Bin 0 -> 42367 bytes 18 files changed, 588 insertions(+), 307 deletions(-) delete mode 100644 content/docs/guides/configuration/creating-custom-egg.mdx delete mode 100644 content/docs/guides/configuration/creating-custom-image.mdx create mode 100644 content/docs/guides/egg-creation/creating-custom-egg.mdx create mode 100644 content/docs/guides/egg-creation/creating-custom-image.mdx create mode 100644 content/docs/guides/egg-creation/egg-config-parser.mdx create mode 100644 content/docs/guides/egg-creation/egg-docker-images.mdx create mode 100644 content/docs/guides/egg-creation/egg-install-script.mdx create mode 100644 content/docs/guides/egg-creation/egg-variables.mdx create mode 100644 content/docs/guides/egg-creation/meta.json create mode 100644 public/community/config/eggs/Pterodactyl_Create_New_Egg.png create mode 100644 public/community/config/eggs/Pterodactyl_Create_New_Nest.png diff --git a/content/docs/guides/configuration/creating-custom-egg.mdx b/content/docs/guides/configuration/creating-custom-egg.mdx deleted file mode 100644 index 4a61aa5f8..000000000 --- a/content/docs/guides/configuration/creating-custom-egg.mdx +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: Creating a Custom Egg -description: Learn how to create custom eggs for your Pterodactyl Panel ---- - - - - -You should not edit existing services or options that ship with the Panel. Each upgrade we push can make minor changes to these, and you'll lose any changes you've made. - - -The first thing you'll need to do is create a new service. In this case, the name and description speak for themselves. The `Folder Name` _must be a unique name_ not being used by any other service, and should only contain letters, numbers, underscores, and dashes. This is the name of the folder where the daemon will be storing the service options on the daemon. - -The default start command is also required, however it can be changed per-option. - -## Create New Option - -After creating the service, in the bottom right of the page you should see a button titled `New Egg`, press it. - -![Create New Egg Button](/community/config/eggs/Pterodactyl_Create_New_Egg_Select.png) - -You will be taken to a new service option page which is where most of the configuration happens. The first thing you need to do is select your service that you created previously from the `Associated Nest` dropdown. - -![Egg Process Management](/community/config/eggs/Pterodactyl_Create_New_Egg_Process_Management.png) - -After that, enter an Option Name to describe it, in this case I am using `Widget`. You will also need to provide a _valid_ docker image, as well as a start command to be assigned to servers under this service option (remember, this can be tweaked per-server if needed). - -_Docker images must be specifically designed to work with Pterodactyl Panel._ You should read more about that in our [Creating a Docker Image](/guides/configuration/creating-custom-image) guide. - -## Configure Process Management - -This is perhaps the most important step in this service option configuration, as this tells the Daemon how to run everything. - -![Egg Process Management](/community/config/eggs/Pterodactyl_Create_New_Egg_Process_Management.png) - -The first field you'll encounter is `Copy Settings From`. The default selection is `None`. That is expected, and okay. This dropdown is discussed at the end of this article. - -### Stop Command - -Next, you'll encounter `Stop Command` and, as the name implies, this should be the command used to safely stop the option. For some games, this is `stop` or `end`. Certain programs and games don't have a specified stop command, so you can enter `^C` to have the daemon execute a `SIGINT` to end the process. - -### Log Storage - -Logs are completely handled by the daemon now and use the docker logs to output the complete output from the server. This can be set like below. - -```json -{} -``` - -### Configuration Files - -The next block is one of the most complex blocks, the `Configuration Files` descriptor. The Daemon will process this block prior to booting the server to ensure all of the required settings are defined and set correctly. - -```json -{ - "server.properties": { - "parser": "properties", - "find": { - "server-ip": "0.0.0.0", - "enable-query": "true", - "server-port": "{{server.build.default.port}}", - "query.port": "{{server.build.default.port}}" - } - } -} -``` - -In this example, we are telling the Daemon to read `server.properties` in `/home/container`. Within this block, we define a `parser`, in this case `properties` but the following are [valid parsers](https://github.com/pterodactyl/wings/blob/develop/parser/parser.go#L25-L30): - -- `file` — This parser goes based on matching the beginning of lines, and not a specific property like the other five. Avoid using this parser if possible. -- `yaml` (supports `*` notation) -- `properties` -- `ini` -- `json` (supports `*` notation) -- `xml` - -Once you have defined a parser, we then define a `find` block which tells the Daemon what specific elements to find and replace. In this example, we have provided four separate items within the `server.properties` file that we want to find and replace to the assigned values. You can use either an exact value, or define a specific server setting from the `server.json` file. In this case, we're assigning the default server port to be used as the `server-port` and `query.port`. **These placeholders are case sensitive, and should have no spaces in them.** - -You can have multiple files listed here, the Daemon will process them in parallel before starting the server. When using `yaml` or `json` you can use more advanced searching for elements. - -```json -{ - "config.yml": { - "parser": "yaml", - "find": { - "listeners[0].query_enabled": true, - "listeners[0].query_port": "{{server.build.default.port}}", - "listeners[0].host": "0.0.0.0:{{server.build.default.port}}", - "servers.*.address": { - "127.0.0.1": "{{config.docker.interface}}", - "localhost": "{{config.docker.interface}}" - } - } - } -} -``` - -In this example, we are parsing `config.yml` using the `yaml` parser. The first three find items are simply assigning ports and IPs for the first listener block. The last one, `servers.*.address` uses wildcard matching to match any items within the `servers` block, and then finding each `address` block for those items. - -An advanced feature of this file configuration is the ability to define multiple find and replace statements for a single matching line. In this case, we are looking for either `127.0.0.1` or `localhost` and replacing them with the docker interface defined in the configuration file using `{{config.docker.interface}}`. - -### Start Configuration - -The last block to configure is the `Start Configuration` for servers running using this service option. - -```json -{ - "done": ")! For help, type " -} -``` - -In the example block above, we define `done` as the entire line, or part of a line that indicates a server is done starting, and is ready for players to join. When the Daemon sees this output, it will mark the server as `ON` rather than `STARTING`. - -That concludes basic service option configuration. - -## Copy Settings From - -As mentioned above, there is a unique `Copy Settings From` dropdown when adding a new option. This gives you the ability to, as the name suggests, copy settings defined above from a different option. - -![Copy Settings From](/community/config/eggs/Pterodactyl_Create_New_Egg_Copy_Settings_From.png) - -In the panel, we use this to copy settings that remain the same between similar service options, such as many of the Minecraft options. - -For example, lets look at the `Sponge (SpongeVanilla)` service option. - -As you can see, it as been told to copy settings from `Vanilla Minecraft`. This means that any of the fields that are left blank will inherit from the assigned parent. We then define a specific `userInteraction` line that is different in Sponge compared to Vanilla, but tell it that everything else should remain the same. - -_Please note that `Copy Settings From` does not support nested copies, you can only copy from a single parent, and that parent **must not be copying from another option.**_ - -## Egg Variables - -One of the great parts of the Egg Variables is the ability to define specific variables that users and/or admins can control to tweak different settings without letting users modify the startup command. To create new variables, or edit existing ones, visit the new service option you created, and click the `Variables` tab at the top of the page. Lets take a look at an example variable that we can create. - -![Egg Variables](/community/config/eggs/Pterodactyl_Create_New_Egg_Variables.png) - -The name and description are rather self-explanatory, so I'll skip down to the `Environment Variable` box. This should be an Alpha-Numeric name with underscores, and should be uppercase. This will be the name of the environment variable which can be accessed in the startup command as `{{WOOZLE_WOO}}`, within file modifications as `{{env.WOOZLE_WOO}}`, or just `${WOOZLE_WOO}` in any shell scripts (it is passed through in the environment). We also define a default value for this environment variable in this example, but it is not required to do so. - -The next section is `Permissions`, which is a dropdown with two options: `Users Can View` and `Users Can Edit`. - -- `Users Can View` — allows a user to view the field on the front-end, as well as the assigned value of that variable. They will be able to see it replaced in their startup command. -- `Users Can Edit` — allows a user to edit the value of the variable, for example the name of their `server.jar` file if running Minecraft. - -You should use caution here, even if you assign neither of the permissions it does not mean that the value will be hidden. Crafty users will still be able to get the environment on their server. In most cases this is simply hiding it from the user, and then used within the Dockerfile to perform actions, thus it is not important for the user to see. - -Finally, you will need to define some input rules to validate the value against. In this example, we use `required|string|between:1,10`, which means the field is `required`, must be a `string`, and must be between `1` and `10` characters in length. You can find [all of the available validation rules](https://laravel.com/docs/5.6/validation#available-validation-rules) on the Laravel website. You can also use ReGEX based validation by using the `regex:` rule flag. For example, [`required|regex:/^([\w\d._-]+)(\.jar)$/`](https://regex101.com/r/k4oEOn/1) will require the field, and will match the regex as any letters or numbers (`\w\d`) including underscore (`_`), periods (`.`), and dashes (`-`) ending in `.jar`. - -They will then be visible when managing the startup for a server in both the Admin CP and on the Front-End. - -![Egg Startup](/community/config/eggs/Pterodactyl_Create_New_Egg_Startup.png) - -## List of default variables - -The default variables are always accessible to all eggs and don't have to be created separately. They can be used in the egg startup, install script, or the configuration file parser. - -| Variable | Description | Example | -| --- | --- | --- | -| TZ | Time Zone | `Etc/UTC` | -| STARTUP | Startup command of the egg | `java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}` | -| SERVER_MEMORY | Memory available for the server in MB | `512` | -| SERVER_IP | Default ip of the server | `127.0.0.1` | -| SERVER_PORT | Primary Server Port | `27015` | -| P_SERVER_LOCATION | Location of the server | `Example City` | -| P_SERVER_UUID | UUID of the server | `539fdca8-4a08-4551-a8d2-8ee5475b50d9` | -| P_SERVER_ALLOCATION_LIMIT | Limit of allocations allowed for the server | `0` | diff --git a/content/docs/guides/configuration/creating-custom-image.mdx b/content/docs/guides/configuration/creating-custom-image.mdx deleted file mode 100644 index a597a9ffd..000000000 --- a/content/docs/guides/configuration/creating-custom-image.mdx +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: Creating a Custom Docker Image -description: Build custom Docker images for use with Pterodactyl eggs ---- - - - - -This tutorial uses examples from our [`core:java`](https://github.com/pterodactyl/images/tree/java) docker image, which can be found on GitHub. This tutorial also assumes some knowledge of [Docker](https://docker.io/), we suggest reading up if this all looks foreign to you. - - -## Creating the Dockerfile - -The most important part of this process is to create the [`Dockerfile`](https://docs.docker.com/engine/reference/builder/) that will be used by the Daemon. Due to heavy restrictions on server containers, you must setup this file in a specific manner. - -We try to make use of [Alpine Linux](https://alpinelinux.org) as much as possible for our images in order to keep their size down. - -```bash -# ---------------------------------- -# Pterodactyl Core Dockerfile -# Environment: Java -# Minimum Panel Version: 1.0.0 -# ---------------------------------- -FROM openjdk:8-jdk-alpine - -LABEL maintainer="Pterodactyl Software " - -RUN apk add --no-cache --update curl ca-certificates openssl git tar bash sqlite fontconfig \ - && adduser --disabled-password --home /home/container container - -USER container -ENV USER=container HOME=/home/container - -WORKDIR /home/container - -COPY ./entrypoint.sh /entrypoint.sh - -CMD ["/bin/bash", "/entrypoint.sh"] -``` - -Lets walk through the `Dockerfile` above. The first thing you'll notice is the [`FROM`](https://docs.docker.com/engine/reference/builder/#from) declaration. - -```bash -FROM openjdk:8-jdk-alpine -``` - -In this case, we are using [`openjdk:8-jdk-alpine`](https://github.com/docker-library/openjdk) which provides us with Java 8. - -## Installing Dependencies - -The next thing we do is install the dependencies we will need using Alpine's package manager: `apk`. You'll notice some specific flags that keep the container small, including `--no-cache`, as well as everything being contained in a single [`RUN`](https://docs.docker.com/engine/reference/builder/#run) block. - -## Creating a Container User - -Within this `RUN` block, you'll notice the `useradd` command. - -```bash -adduser -D -h /home/container container -``` - - -All Pterodactyl containers must have a user named `container`, and the user home **must** be `/home/container`. - - -After we create that user, we then define the default container [`USER`](https://docs.docker.com/engine/reference/builder/#user) as well as a few [`ENV`](https://docs.docker.com/engine/reference/builder/#env) settings to be applied to things running within the container. - -## Work Directory & Entrypoint - -One of the last things we do is define a [`WORKDIR`](https://docs.docker.com/engine/reference/builder/#workdir) which is where everything else will be executed. The `WORKDIR` must be set the `/home/container`. - -Finally, we need to copy our [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#entrypoint) script into the docker image root. This is done using [`COPY`](https://docs.docker.com/engine/reference/builder/#copy), after which we define the command to be used when the container is started using [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). The `CMD` line should always point to the `entrypoint.sh` file. - -```bash -COPY ./entrypoint.sh /entrypoint.sh -CMD ["/bin/bash", "/entrypoint.sh"] -``` - -## Entrypoint Script - -In order to complete this `Dockerfile`, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type. - -These entrypoint files are actually fairly abstracted, and the Daemon will pass in the start command as an environment variable before processing it and then executing the command. - -```bash -#!/bin/bash -cd /home/container - -# Output Current Java Version -java -version ## only really needed to show what version is being used. Should be changed for different applications - -# Replace Startup Variables -MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` -echo ":/home/container$ ${MODIFIED_STARTUP}" - -# Run the Server -${MODIFIED_STARTUP} -``` - -The second command, `cd /home/container`, simply ensures we are in the correct directory when running the rest of the commands. We then follow that up with `java -version` to output this information to end-users, but that is not necessary. - -## Modifying the Startup Command - -The most significant part of this file is the `MODIFIED_STARTUP` environment variable. What we are doing in this case is parsing the environment `STARTUP` that is passed into the container by the Daemon. In most cases, this variable looks something like the example below: - -```bash -STARTUP="java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}" -``` - -You'll notice some placeholders there, specifically `{{SERVER_MEMORY}}` and `{{SERVER_JARFILE}}`. These both refer to other environment variables being passed in, and they look something like the example below. - -```bash -SERVER_MEMORY=1024 -SERVER_JARFILE=server.jar -``` - -There are a host of different environment variables, and they change depending on the specific service option configuration. However, that is not necessarily anything to worry about here. - -```bash -MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` -``` - -The command above simply evaluates the `STARTUP` environment variable, and then replaces anything surrounded in curly braces `{{EXAMPLE}}` with a matching environment variable (such as `EXAMPLE`). Thus, our `STARTUP` command: - -```bash -java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}} -``` - -Becomes: - -```bash -java -Xms128M -Xmx1024M -jar server.jar -``` - -## Run the Command - -The last step is to run this modified startup command, which is done with the line `${MODIFIED_STARTUP}`. - -### Note - -Sometimes you may need to change the permissions of the `entrypoint.sh` file, on linux you can do this by executing `chmod +x entrypoint.sh` in the directory where the file is. diff --git a/content/docs/guides/configuration/meta.json b/content/docs/guides/configuration/meta.json index d4c6f7fcc..2fc5a1e2f 100644 --- a/content/docs/guides/configuration/meta.json +++ b/content/docs/guides/configuration/meta.json @@ -3,8 +3,6 @@ "pages": [ "add-node", "php-upgrade", - "mounts", - "creating-custom-egg", - "creating-custom-image" + "mounts" ] } diff --git a/content/docs/guides/egg-creation/creating-custom-egg.mdx b/content/docs/guides/egg-creation/creating-custom-egg.mdx new file mode 100644 index 000000000..05071673c --- /dev/null +++ b/content/docs/guides/egg-creation/creating-custom-egg.mdx @@ -0,0 +1,61 @@ +--- +title: Creating a Custom Egg +description: Learn how to create custom eggs for your Pterodactyl Panel +--- + + +Do not modify the default Nests or Eggs provided by the Panel. Each Pterodactyl update may alter these defaults and override your changes. + + +Before creating a custom Egg, it's important to understand Pterodactyl's structure: + +**Nests** are collections of eggs (like categories for related server types), and **Eggs** are the specific configurations for installing and running a particular game or software. + +## Creating a New Nest (Category) + +If your egg doesn't fit into an existing Nest, you should create a new Nest for it. The Nests page can be found in the Admin Dashboard (in the left sidebar, near the bottom). + +Click the **"Create New"** button on the Nests page to create a new Nest. You will need to provide: + +- **Name:** A descriptive name for the category (for example, "Custom Games" or "Minecraft Mods"). + +- **Description:** (Optional) Details about what eggs in this nest are for. + +Once these are filled, save the new Nest. + +![Create New Nest](/community/config/eggs/Pterodactyl_Create_New_Nest.png) + + +If you have a pre-made Egg JSON file (for example, from the community), you can import it instead of creating one from scratch. Use the **"Import Egg"** button on the Nests page, select the target Nest, and upload the egg's JSON file. Check out the [Community Egg Repository](https://pterodactyleggs.com) for a large selection of ready-to-use community eggs. + + +## Creating a New Egg + +After you have a Nest, you can create a new Egg within that nest. To do this, navigate to the nest's detail page, then click the **"New Egg"** button at the bottom of the page. + +![Create New Egg Button](/community/config/eggs/Pterodactyl_Create_New_Egg_Select.png) + +This opens the egg configuration form (the "New Egg" page). If not already selected, choose the appropriate Nest from the **Associated Nest** dropdown at the top of the form. + +Now fill out the details for your new Egg: + +### Basic Details + +- **Name:** The name of the Egg (e.g. "MyGame Dedicated Server"). This is how the egg will be listed in the panel. + +- **Description:** A short description of what this egg is or does. + +### Docker Images + +Here you select the Docker image(s) that the server will run in. Docker images define the environment (OS and software) available to your server. Pterodactyl provides a variety of [Official images](https://github.com/Ptero-Eggs/yolks) (called "yolks") for many common use-cases, or you can specify a custom image. See the [Egg Docker Images](/guides/egg-creation/egg-docker-images) page for more details on available images. + + +Make sure the Docker image contains all the required runtime dependencies for your server. Any package installed **only in the install script** will **not** be present when the server is running. Also, **the image must include a user named `container` with home directory `/home/container`** (this is required by Pterodactyl for all images). + + +After filling in the basic details, you'll want to configure the remaining parts of your egg: + +- [Configuration Files & Startup Detection](/guides/egg-creation/egg-config-parser) — process management, stop commands, config file parsing, and startup detection +- [Egg Variables](/guides/egg-creation/egg-variables) — define custom and default variables +- [Egg Install Script](/guides/egg-creation/egg-install-script) — write the install script that sets up server files +- [Creating a Custom Docker Image](/guides/egg-creation/creating-custom-image) — build your own image if the official ones don't fit your needs diff --git a/content/docs/guides/egg-creation/creating-custom-image.mdx b/content/docs/guides/egg-creation/creating-custom-image.mdx new file mode 100644 index 000000000..bfca40fa1 --- /dev/null +++ b/content/docs/guides/egg-creation/creating-custom-image.mdx @@ -0,0 +1,144 @@ +--- +title: Creating a Custom Docker Image +description: Build custom Docker images for use with Pterodactyl eggs +--- + + +All Pterodactyl containers must set `USER=container` and `HOME=/home/container` as environment variables, with `/home/container` as the working directory. + + +This guide explains how to create a custom Docker image for use with Pterodactyl eggs, using a modern base example from the [Pterodactyl yolks repository](https://github.com/pterodactyl/yolks/tree/main). + +Docker images define the environment in which a server runs — what software is installed, what versions are used, and how everything is launched. Custom images allow you to add packages or modify behavior beyond what official yolks provide. + +## Dockerfile Example + +Here's a full Dockerfile example using Java 21 as the base image: + +```dockerfile +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-jammy + +LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" +LABEL org.opencontainers.image.source="https://github.com/pterodactyl/yolks" +LABEL org.opencontainers.image.licenses=MIT + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt update -y \ + && apt install -y \ + curl \ + lsof \ + ca-certificates \ + openssl \ + git \ + tar \ + sqlite3 \ + fontconfig \ + tzdata \ + iproute2 \ + libfreetype6 \ + tini \ + zip \ + unzip + +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY --chmod=755 ./entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/usr/bin/tini", "-g", "--"] +CMD ["/entrypoint.sh"] +``` + +## Breakdown of the Dockerfile + +### Base Image +```dockerfile +FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:21-jdk-jammy +``` +Uses Eclipse Temurin Java 21 JDK on Ubuntu Jammy. The `--platform` flag ensures compatibility with different system architectures. + +### Metadata Labels +```dockerfile +LABEL author="..." +``` +Provides metadata such as author, source, and license. Useful for documentation. + +### Dependencies +```dockerfile +RUN apt update -y && apt install -y [...] +``` +Installs useful server packages: + +- `curl`, `lsof`, `openssl`: Common CLI tools. +- `fontconfig`, `libfreetype6`: Support Java-based GUI rendering. +- `tini`: Handles signal forwarding and zombie reaping. + +### Environment & Working Directory +```dockerfile +ENV USER=container HOME=/home/container +WORKDIR /home/container +``` +Sets the required environment variables and default working directory. + +### Entrypoint Setup +```dockerfile +COPY --chmod=755 ./entrypoint.sh /entrypoint.sh +``` +Copies the startup script and ensures it's executable. + +### Entry Command +```dockerfile +ENTRYPOINT ["/usr/bin/tini", "-g", "--"] +CMD ["/entrypoint.sh"] +``` +Uses `tini` to launch the container and execute the custom startup script. + +## Example entrypoint.sh + +In order to complete this Dockerfile, we will need an `entrypoint.sh` file which tells Docker how to run this specific server type. + +These entrypoint files are actually fairly abstracted, and the Daemon will pass in the start command as an environment variable before processing it and then executing the command. + +```bash +#!/bin/bash + +# Default the TZ environment variable to UTC. +TZ=${TZ:-UTC} +export TZ + +# Set environment variable that holds the Internal Docker IP +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP + +# Switch to the container's working directory +cd /home/container || exit 1 + +# Print Java version +printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0mjava -version\n" +java -version + +# Convert all of the "{{VARIABLE}}" parts of the command into the expected shell +# variable format of "${VARIABLE}" before evaluating the string and automatically +# replacing the values. +PARSED=$(echo "${STARTUP}" | sed -e 's/{{/${/g' -e 's/}}/}/g' | eval echo "$(cat -)") + +# Display the command we're running in the output, and then execute it with the env +# from the container itself. +printf "\033[1m\033[33mcontainer@pterodactyl~ \033[0m%s\n" "$PARSED" +# shellcheck disable=SC2086 +eval ${PARSED} +``` + +### Breakdown + +- Navigates to the working directory. +- Outputs the Java version for confirmation. +- Processes and expands the Pterodactyl `STARTUP` variable. +- Executes the startup command. + +## Final Notes + +- Must set `ENV USER=container HOME=/home/container` and `WORKDIR /home/container`. +- Build and test locally with: `docker build -t my-image .` +- Push images to Docker Hub or a private registry and specify them in the egg under Docker Image, or run the image locally first if you want to ensure it functions as expected. diff --git a/content/docs/guides/egg-creation/egg-config-parser.mdx b/content/docs/guides/egg-creation/egg-config-parser.mdx new file mode 100644 index 000000000..e12338fc7 --- /dev/null +++ b/content/docs/guides/egg-creation/egg-config-parser.mdx @@ -0,0 +1,118 @@ +--- +title: Configuration Files & Startup Detection +description: Configure process management, startup detection, and config file parsing for Pterodactyl eggs +--- + +After setting the basic egg details, you need to configure how Wings will manage the server process. This includes defining how to start and stop the server, how to handle logs, and how to automatically update any configuration files. These settings are found on the egg's configuration page (under "Process Management"). + +## Startup Command + +The **Startup Command** is the exact command that will run to start your server. This is executed every time the server is launched (when the user clicks the Start button). You can include egg variables in this command by using the `{{VARIABLE}}` syntax. For example, a startup command might look like: + +``` +java -Xms128M -XX:MaxRAMPercentage=95.0 -jar {{SERVER_JARFILE}} +``` + +## Stop Command + +The **Stop Command** is the command or signal used to safely stop the server. By default, many eggs use `^C` (Control+C) to send an interrupt signal, which works for most console-based servers. If the application has a special shutdown command (for example, typing "stop" in a Minecraft server console), you can specify that here instead. Wings will execute this command when a user clicks the Stop button. + +## Log Configuration + +In most cases you can leave the **Log Configuration** field blank (which defaults to an empty JSON `{}`). By default, Wings will stream all output from the container's console. The log configuration field is used only in advanced cases where the server's output needs special handling (for example, if the server writes logs only to a file and not to STDOUT, you could configure Wings to tail that file). For typical eggs, this field remains empty. + +## Configuration Files + + +Using configuration file parsing is generally an advanced feature. If you are new to creating eggs, you may skip this section unless your egg needs it. + + +This section allows you to define files that Pterodactyl should automatically modify each time the server starts, to ensure certain settings are always applied. You can provide a JSON object mapping file names to the values that should be set in those files. Wings will then parse and update those files before the server fully starts. + +For example, consider a game that uses a `server.properties` file for its settings. You might add a configuration entry like this: + +```json +{ + "server.properties": { + "parser": "properties", + "find": { + "server-ip": "0.0.0.0", + "server-port": "{{server.build.default.port}}", + "max-players": "{{env.MAX_PLAYERS}}" + } + } +} +``` + +Each time the server starts, Wings checks if `server.properties` exists: +- If it exists, Wings will update those keys to the defined values (inserting the key if it's missing). +- If the file doesn't exist, Wings will create it with those keys and values. + +A more advanced example using a YAML file and wildcards: + +```json +{ + "config.yml": { + "parser": "yaml", + "find": { + "listeners[0].query_enabled": true, + "listeners[0].query_port": "{{server.build.default.port}}", + "listeners[0].host": "0.0.0.0:{{server.build.default.port}}", + "servers.*.address": { + "127.0.0.1": "{{config.docker.interface}}", + "localhost": "{{config.docker.interface}}" + } + } + } +} +``` + +## Parser Types + +The available Parser Types are: + +| Type | Description | +|------|-------------| +| `properties` | `.properties` files with key=value pairs | +| `ini` | Supports `[sections]` and `key=value` pairs | +| `yaml` | Handles nested keys, supports wildcards | +| `json` | Parses full structure, adds missing keys | +| `xml` | Can update attributes/values via xpath | +| `file` | Simple find/replace by line content (avoid if possible) | + +## Startup Configuration + +The Startup Configuration (sometimes called "startup detection") is a JSON block where you define text that indicates when the server has finished starting up. This helps Pterodactyl know when to mark the server as "Online" (running) versus "Starting". + +The `done` value can be a single string or an array of strings: + +```json +{ + "done": "Done (" +} +``` + +or with multiple possible strings: + +```json +{ + "done": [ + "Done (", + "Server is ready" + ] +} +``` + +When any of the strings appear in the console output, Wings will consider the server to be fully started. This helps avoid marking the server as "running" before it's actually ready. + +If this section is omitted, Wings relies on process status or timeout heuristics. + +## Copy Settings From + +The **Copy Settings From** option in an egg allows inheriting settings from another egg. This is useful for reducing duplication (e.g., different Minecraft flavors like Vanilla, Spigot, etc.). + +![Copy Settings From](/community/config/eggs/Pterodactyl_Create_New_Egg_Copy_Settings_From.png) + +If you select another egg as a parent in "Copy Settings From," any field in the current egg that you leave blank will be inherited from the parent egg. This is very useful when you have multiple eggs that share most of their configuration (for example, different versions or mods of the same game). + +Please note that Copy Settings From does not support nested copies — you can only copy from a single parent, and that parent **must not be copying from another option**. diff --git a/content/docs/guides/egg-creation/egg-docker-images.mdx b/content/docs/guides/egg-creation/egg-docker-images.mdx new file mode 100644 index 000000000..0f9faaa7d --- /dev/null +++ b/content/docs/guides/egg-creation/egg-docker-images.mdx @@ -0,0 +1,83 @@ +--- +title: Egg Docker Images +description: Available Docker images and yolks for Pterodactyl eggs +--- + +The [Pterodactyl yolks repository](https://github.com/pterodactyl/yolks) provides a variety of Docker images (called yolks) specifically designed for use with Pterodactyl eggs. + +These images provide the necessary runtime environments for game servers, bots, utilities, databases, and other services. +Pterodactyl eggs run within Docker containers. +The **Docker image** for an egg defines the base operating system and software environment available to the server. Choosing the right image is important: + +- Pterodactyl maintains an official repository of images (called **Yolks**) covering many common games, languages, and services. +- You may also use a [Custom Docker Image](/guides/egg-creation/creating-custom-image) for unique requirements. + +## Categories of Yolks + +### General Purpose + +| Image | Description | +|-------|-------------| +| `oses` | Base operating system images used to build other yolks. Includes core utilities for most container environments. | +| `installers` | Includes tools like `curl` and `wget`, commonly used to simplify and speed up installation scripts. | + +### Programming Languages + +| Image | Description | +|-------|-------------| +| `go` | An environment for Go (Golang) applications. Used for servers or tools written in Go. | +| `java` | Supports running Java applications, including Minecraft servers and Java-based tools. | +| `nodejs` | Provides Node.js and npm for JavaScript-based apps like bots, utilities, etc. | +| `python` | Used to run or build Python applications, scripts, or automation tools. | +| `rust` | Provides an environment for building or running applications developed in Rust. | + +### Databases + +| Image | Description | +|-------|-------------| +| `mariadb` | A drop-in replacement for MySQL, used for web apps and game server databases. | +| `mongodb` | A NoSQL database suited for dynamic data structures and fast performance. | +| `postgres` | Relational SQL database known for advanced features and data integrity. | +| `redis` | In-memory data structure store, used for caching and high-performance applications. | + +### Game Tools + +| Image | Description | +|-------|-------------| +| `steamcmd` | Allows downloading and managing game servers from Steam (e.g. ARK, CS:GO, Valheim). | +| `wine` | Runs Windows-based applications in Linux containers — useful for games that don't have Linux builds. | + +### Other + +| Image | Description | +|-------|-------------| +| `mono` | Environment for .NET applications using the Mono runtime. Supports C# programs and older .NET games. | +| `voice` | Optimized for voice servers or tools like TeamSpeak or Mumble. | + +## Architecture Support + +Most yolks support both `amd64` and `arm64` architectures. Always check the image documentation to confirm compatibility with your server hardware. + +## Custom Images + +Requirements: +- Must include all runtime dependencies. +- Must set `ENV USER=container HOME=/home/container` and `WORKDIR /home/container`. +- Use Alpine/Debian minimal bases where possible. + +If you want to build your own Docker image for an egg, refer to the [Creating a Custom Docker Image](/guides/egg-creation/creating-custom-image) guide for best practices on building and tagging images for Pterodactyl. + +## Providing Multiple Images + +An egg can offer **multiple Docker images** for the server owner to choose from. To do this, list each image on a new line in the egg's Docker Image field (in the egg configuration). You can optionally prepend a display name to each image using the format: +`Display Name|docker/image:tag` + +For example, you might offer two Java images for a Minecraft egg: +- `Java 17|ghcr.io/pterodactyl/yolks:java_17` +- `Java 21|ghcr.io/pterodactyl/yolks:java_21` + +This would present the user with a dropdown choice between **"Java 17"** and **"Java 21"** when deploying the server. The text before the `|` is the friendly name shown in the panel, and the text after the `|` is the actual Docker image to use. + + +If you're not sure which image to use for your egg, start with one of the [Official Yolks](https://github.com/pterodactyl/yolks) that closely matches your server's requirements. These images are maintained by the community and cover most common use cases. + diff --git a/content/docs/guides/egg-creation/egg-install-script.mdx b/content/docs/guides/egg-creation/egg-install-script.mdx new file mode 100644 index 000000000..46f2dfa01 --- /dev/null +++ b/content/docs/guides/egg-creation/egg-install-script.mdx @@ -0,0 +1,84 @@ +--- +title: Egg Install Script +description: Write install scripts that set up server files for Pterodactyl eggs +--- + +## What is the Install Script? + +The install script is where the **egg magic** happens. + +When you click on the **Install Script** tab for the egg, you will see four main parts: + +- A large text area to write the script. (Install Script) + +- A field where you can select a different egg's script, default set to 'None' (Copy Script From) + +- A field to select the **Docker image** in which the install script will run (Script Container). + +- A field used to specify the entrypoint command used for the script, usually 'bash' (Script Entrypoint Command) + +You can choose a special Docker image for the installation process (separate from the server's runtime image). Pterodactyl provides some "installer" images (Alpine or Debian based) that include common utilities like `curl`, `wget`, `unzip`, `git`, etc., to help with installation tasks. If you're not sure, use one of the official installer images: + +- `ghcr.io/ptero-eggs/installers:alpine` + +- `ghcr.io/ptero-eggs/installers:debian` + +- `ghcr.io/ptero-eggs/installers:ubuntu` + +You are not limited to these images — any Docker image compatible with Pterodactyl can be used as the install container. For example, some eggs use `eclipse-temurin:8-jdk-jammy` when the install process requires Java. + +Then, in the script text area, write the shell commands needed to set up the server. + + +Anything you install or change **outside of `/mnt/server`** in the install container will **not persist** to the runtime server. The install script runs in a temporary environment. Only the `/mnt/server` directory (which corresponds to the server's file directory) is transferred to the actual server container. If your server needs specific system packages or libraries, those must be installed in the **runtime Docker image**, not just in the install script. + + +**How the install process works:** + +1. **Create the server directory:** The script typically starts by making sure the `/mnt/server` directory exists and is the current working directory. + - For example, you might use: + ```bash + mkdir -p /mnt/server + cd /mnt/server + ``` + - (In many official scripts, the container's working directory is already set to `/mnt/server`, but it's good practice to ensure it.) + +2. **Download and prepare files:** Fetch any necessary files (server binaries, mods, configs, etc.) from the internet or local sources. + - Common tools for this are `curl`, `wget`, `git clone`, or using a command pipeline like `curl ... | tar ...`. + - For example, you might download a ZIP of the server software and then unzip it. + +3. **Set up configurations:** If your server requires an initial configuration file or certain directory structure, you can create those here. + - For instance, you might generate a default config file, or rename files, etc. + - You can also use the values of variables by referencing environment variables (e.g. `${MAX_PLAYERS}` in the script will use the value from a custom egg variable if one exists). + +4. **Install any additional dependencies (if needed for installation):** In some cases, the install process itself might require extra tools or packages. Since the official installer images come with common tools, this is rarely needed, but you could install others (e.g., `apk add ...` or `apt install ...`) in the install container. Remember, these tools won't be present in the runtime container, so this step is only for things needed *during installation* (not for actually running the server). + +## Example Install Script + +```bash +#!/bin/bash +# Create and navigate to the server directory +mkdir -p /mnt/server +cd /mnt/server || exit 1 + +# Install dependencies required for installation +apt update && apt install -y unzip wget + +# Download necessary files +wget -O game-server.zip "https://example.com/game-server.zip" +unzip game-server.zip +rm game-server.zip + +# Set up configuration +echo "max_players=32" > config.cfg +``` + +## What Happens After Installation? + +When the install script finishes running: + +- All files and folders **inside** `/mnt/server` (the server's directory) are retained and moved to the server's persistent storage. + +- The install container is destroyed. Then the server's normal runtime container (using the Docker image specified in the egg's configuration) will start up, and it will have all the files that were in `/mnt/server` available. + +In summary, the install script's job is to populate `/mnt/server` with everything the server needs. Once that's done, those files persist, and then the server can be launched in the proper environment. diff --git a/content/docs/guides/egg-creation/egg-variables.mdx b/content/docs/guides/egg-creation/egg-variables.mdx new file mode 100644 index 000000000..148a5c2be --- /dev/null +++ b/content/docs/guides/egg-creation/egg-variables.mdx @@ -0,0 +1,85 @@ +--- +title: Egg Variables +description: Define and manage custom and default variables for Pterodactyl eggs +--- + +One powerful feature of eggs is the ability to define **variables** that can be used to customize the server's startup and configuration without editing the startup command directly. Egg variables are exposed as environment variables to the server and can be referenced in the install script or config files. + +To manage an egg's variables, create the egg (or edit an existing one) and navigate to the **Variables** tab on the egg configuration page. + +![Egg Variables](/community/config/eggs/Pterodactyl_Create_New_Egg_Variables.png) + +## Types of Egg Variables + +- **Default Variables:** These are provided by the Panel/Wings automatically for every server. You do **not** need to create these; they always exist. + +- **Custom Variables:** These are defined by you on the egg's Variables tab. + +## Default Variables + +These are injected into every server environment by default and can be referenced using the following syntaxes: + +- In the startup command: `{{VARIABLE}}` +- In scripts: `$VARIABLE_NAME` +- In configuration parser entries: `{{env.VARIABLE}}` + +| Variable Name | Description | Example | +|---|---|---| +| `TZ` | Time Zone set in the panel's `.env` file | `Etc/UTC` | +| `STARTUP` | The actual resolved startup command for the server | `./run.sh -arg1` | +| `SERVER_MEMORY` | Allocated memory for the server in megabytes | `1024` | +| `SERVER_IP` | The IP address assigned to the primary allocation | `192.168.1.2` | +| `SERVER_PORT` | The main port assigned to the server | `27015` | +| `P_SERVER_LOCATION` | The name of the location (set by the admin in the panel) | `Amsterdam-01` | +| `P_SERVER_UUID` | UUID of the server instance (used for tracking within Wings) | `ab12cd34-5678-90ef-ghij-klmn12345678` | +| `P_SERVER_ALLOCATION_LIMIT` | The maximum number of allocations available to this server (if set) | `3` | +| `USER` | The user executing processes inside the container | `container` | +| `HOME` | The home directory inside the container | `/home/container` | + +## Custom Variables + +Each variable allows you to define: +- The Environment Variable, for example: `MAX_PLAYERS` +- A default value +- Description (shown to the user in the panel) +- Validation Rules +- Whether it is viewable or editable by the user + +## Creating a New Variable + +When creating a new custom variable, you will provide: + +- **Name:** A friendly name for the variable (e.g. "Max Players"). + +- **Description:** A description shown to the user (explain what the variable does). + +- **Environment Variable:** The actual environment variable name used in code (use **UPPERCASE** letters, numbers, and underscores only). For example, `MAX_PLAYERS`. This is the name that will be referenced in the startup command or configuration files. + +- **Default Value:** (Optional) A default value for this variable. This will be used if the user doesn't input anything else. + +- **User Permissions:** Whether the user can view and/or edit this variable on their server: + - *Users Can View* — If set, the user can see this variable (and its value) in their server's settings. + - *Users Can Edit* — If set, the user can change the value of this variable from the default. + (If neither option is enabled, the variable is essentially hidden from the user's front-end view, though it still exists in the server's environment.) + +### Validation Rules + +**Rules:** Validation rules for the user's input. This uses Laravel's validation rule format. Common rules include: + +- `required` — value must be provided +- `nullable` — value can be left empty +- `string` — must be a string +- `numeric` — must be a number +- `boolean` — must be true or false +- `between:1,10` — string length or numeric value between 1 and 10 +- `max:64` — maximum string length or numeric value +- `in:value1,value2` — must be one of the listed values (e.g., `in:true,false`) +- `regex:/pattern/` — must match a regex pattern + +Rules are combined with `|`. For example, `required|string|between:1,10` means the value is required, must be a string, and 1 to 10 characters in length. To require a value ending in ".jar", you could use `required|regex:/^([\w\d._-]+)(\.jar)$/`. + + +Even if you choose not to allow users to view or edit a variable, **be aware that it's not truly secret from the user**. Advanced users could still find the variable's value (since it exists in the server environment). Typically, hiding a variable is just to prevent casual users from changing or seeing it when it's not necessary for them to interact with (for example, a variable that is used internally by the egg). + + +After creating custom variables, both the custom and default variables can be seen when viewing the server's startup in the Panel (in both Admin and client views). The startup command preview will show these variables substituted with their actual values. diff --git a/content/docs/guides/egg-creation/meta.json b/content/docs/guides/egg-creation/meta.json new file mode 100644 index 000000000..ccc94d8ec --- /dev/null +++ b/content/docs/guides/egg-creation/meta.json @@ -0,0 +1,11 @@ +{ + "title": "Egg Creation", + "pages": [ + "creating-custom-egg", + "egg-docker-images", + "egg-config-parser", + "egg-variables", + "egg-install-script", + "creating-custom-image" + ] +} diff --git a/content/docs/guides/meta.json b/content/docs/guides/meta.json index acfc0949f..cdd15297a 100644 --- a/content/docs/guides/meta.json +++ b/content/docs/guides/meta.json @@ -6,6 +6,7 @@ "wings-installation", "tutorials", "configuration", + "egg-creation", "customization", "games" ] diff --git a/public/community/config/eggs/Pterodactyl_Create_New_Egg.png b/public/community/config/eggs/Pterodactyl_Create_New_Egg.png new file mode 100644 index 0000000000000000000000000000000000000000..24c0b786de74446aceee171e9c0a31eaa5457e3a GIT binary patch literal 89099 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%0Ay_5 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

W;K+OVzP;`bamv_*7rRqMz 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 literal 208941 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

1dAZ| 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кMp`82XJ1K!OknJBS%g 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�-ogNIS=byMLMlp^^Nelb`eKL^-IisH2XXOy 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 literal 97426 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


Jx^YbB38vn$RQtWJr_p41m^{?hbmr+4hRx($k% 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 DbBdrX diff --git a/public/community/config/eggs/Pterodactyl_Create_New_Egg_Select.png b/public/community/config/eggs/Pterodactyl_Create_New_Egg_Select.png index 4e9297c7001c0d812234af5591bd0961047d452c..cd0ecbb8544b8853aeb6d0a287fde16cb995ceb3 100644 GIT binary patch literal 63110 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�ssM$)X9;}{;>JhsP;Gnb~ua93-5;{sB3d5EO% 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

%oV2((#$i%oa6gw2xr6vpkV2b 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 b&BLQey%~0ry_ebF&oR&e-YvUr|MGtUMm=1Z literal 141560 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ⅆ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è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 wRatpe1r71`8V8-QC^Y2{17D;O?%&&P(3gJ-dH* z&-OVZx9^$T-BsOPRo_=VVP6y^QIH6bprD{oq@~1_p`c)UprBv^-ois_e7XiiAs^6= z%95X;Dkq5!AQ!OaqVkZ+nrP%_BRI%4qP>)sBNP;B-#;(tA-iG|D5%#0X>n0iH~r&P zL__Sk4&igVPne%D$q>mAVc$Z3S}>IqQU44#P&(Hrg$pl3A^qiq{KGR&xlOGa z)`tC5{P28nP8_&xvw^J{@WHT@O`w8B7#@HDpS{qjryYdSch|XufjDE}1K{mwFPE%} zE)Htmw+cvrEsc!#fU|A$eAC*W-u*Kvv-cD6eWstCpaYx(>I-3XXTA8;{C0Ykw))m- ze_xX8z*@9#6fiNxV&khk3u!sxUwz*c@b@UD*$(>sxOa3r?DWB#YePYeS6z=9a-k?v z;V=^xcq?78gHMUn(4a0Q(yOngmT+&<_kHEAUnpMVa76q1qUD&eYk(jmML6xpsTm{D z9QIsj7;|^P5IBOvXdb*6@qdQ~uNel=FoQi|mF>A*I( zDrI>x5B&9>G;-9jJ5i8oe~uIJq9PAH2v1dAZR^hNq>uFV`+LrY88sh{+{uL8xzmvH z$RBh^!B4DZU0okTWopbORWz%YBP67%xILN8gs(ncPH;4dKxaJK)S1Q!j1AmoLo-Qs zCfcgHcOk-@5{BfOfBb^Z=t^(fWdzHn$K->S;-_n%d-Dpv^;^fW`r(KB7-UqUZ&*pL z-YWn^Nok@@XG4reov~PQ9g)7~hZ#D8 zDfccXoU^Rpec5X(rUj_^4KFr7%N}=?QIY!)*Sbzucch@APQ&36%iG<^e^+a1^ipHr zm)V2mL$&vobL4!Nl%lfw;UA$DGi8(lN zMx8xl9-(TGwd_&hO;aKAG(h|M+}aSa`LhsGUvE+~4SM+ji%SM&a?4lg7$K zK_3t+oh($UBT~O?;8Q=_OZf}1=PYF6lw;eAT z9CRfeYBSI-oBb+bG#Fj=+4eyDc_Zb{KAp42tD2YckJXuzl;4#DG!lj_6%*8}Po;G= zvlFsc9=}1fO2`xpAr=)eCKucm4=pGR0@Cd*45E!Tf`Mj9&K zaLy}kG$|Q!0eW>sPiQ#Qs^KC~DiV@(>LHvT>_w-2Ylc8yeXrDRla#<)3yTJLG3rlY25BS(5N zmE1+1(zEOCtNfEco-GdZq5#5Fmz4(g$bj12gnb8%0H|nv8xNthWtWx#`i)V=lJl@z ze|u+f{gEqvut|STu04#p4HKIR6Klzf{YWJDR;jIx-=*IDT^r#SuS;6g6Is!$Fu@oH zFXA;fb5^9E`M;brkl8fy=UMeojsZ) z;KOejnWhDAQavAJFx!6{g127ul;G@@RAzQ8WCLFW|w~3kSJtB~Yx5+vwz{SAHa6=X)~EByxYv+^ zWkCDWt>M(Jn&$UXWQm)DP=yO@%~}P^zyZTWj@N5J6}V4rGH8cK5CM8D(p#|JPOdTuFVRz52eEiyrA@Gtd4`Uhh{5X4&A> zMjYpW+byZ&7ahW&j}|reqd%NhjeJa9QbxT1 z)4j({!r74Z@fl|x>i~k0w7qp-eK*{(OLkTtIgNe|oUbpVHas@-`_xC1pB@Ua7f#;# zn8>FG3k~6HW-b5JgRYJph~9kQ2HYl+Nc8?T!plthDOfuR=)~h?!4)h`+`2F~P∨ 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 literal 115350 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 z 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�Uu-Ol+#KLP!>QIcLUQe(uoE6f^z>(+5B^2N0pJ#4Vk9c=zr(RQEgoY9jgW>E zmFRe0^*IzwE1Gc9;#}x2Hbt-{9qGzTG|vghnt$Z)TY|6H+}Xzqlu1rWzeylIOXe`g zU%&iP@U^;~zDVWPxzYOhIjmy+?EHM|@K)KLVh4Lsac^eUYHX^3+%owbeY}#YK;tJp zF)h=R-dGKd-Z{<~%@;ps^&f2$bFLp-K*N$Yxji( zA4=o7@H-n69!|7Vh9We>q2MxGU45Yzp8WfZk}>gP5$bto`8Ro(?7;IWWitk8J1^N{fZ~f9XCRvjwLvWQ)rHzDrLqymkN+v=9^0j#hNHVj zydAQ__y?nuAzV(yB{1YM!Af^8S5dh+#LW8YT>&mWr>Ojn{xO@C`nr^ICi@0Eh#Mle zGu|PWKHa3CTutKUEZ=_AT9$>e18S(lTs!8(pU4Hw@rz3{AVz-?r*BgUkDLp+T9?t> zJmkaL8)3#sP$iR;W6o`u_wCiOX8W2eU;b9J;xYM3ZYs$QFr0z{t`+uD^M=#!K5ckQ z>MQdEmLWhGwbu|M>Q+uD^Et|za6Q4|>Y6!I1aph%(FpQd(05I4@VOF`7+&(d!#V5i zI9lcM%@+%>=Vtr;!y3#`zA%BWkI>fq_9I%zzk6O$-Kttcx$3#ym`9kGEXB3J5z{pu z1BWIE)SY8h8l$1r%Aqy}cs2V<4HLKo4%@qgVx_$y^Za!@6}c2jm+hd~p%^Qqr_$jBtW+-1ST=jbtbDYuTfg6A&x(~^MOmhYf(s#WF!9Z0Rw}T~ax9Dv7}YkWUTtTm`=4puZ=#}q+diI)SNA^#(veZN*kLq%^k^qv}lL7JiMB#7Z$GI>)pOGqDdQ- zlVRA?EYpe7cZzlgO~7<=Gf;fsWpqftTt{2S7bEnb4b~!SM~G28S#~8BL+$j-l6L`)LZ_{`!z|QWmm!P;*ss zSE%N#&1^`sV^q$e#9@0u;{0CJ0N8Xn&Mdz?h&3`-8wzZ`&{Ny5ZS1?7Wn*e%|6`Xt zRs=BewmF}2wE0@0&9{w@N__H@(ptJXc#~7+aqJX9!L6caQd|zxavvheyfFEp7%9q; zN~gv(*pX6H4pMhH^QZpw^M6Ep`9kf1Xa&4dvQkjC=#`^mbug^lWj9kq`C#vnMk%dP zpYLwzaIs*CS4UtP8O+V1kl!oC{(0LNZFuR{r^@BJ4rp|Ed3E<7>fN%LNpXLbOtGcG zTF6lQJ#|ET3F}P5X`{sakc9`5hCGbld3Maz4Y7wxb5eu_w^gpL!f)J5l2|EqN>gICk2iP)=?e_MakLe6N|fM17FntzQ>p!_9M*a%#t1j zR)i(eqn8tFx_^$o(h>#d0yi=3`>!+qXUCc}IT$`Y6@v<^8#%hBvb#Lv>q;WLJpE#a z@)=36*voWViC=1AncVxWL+Ogt^pYfpLpWH;$3oTmTViC;A~L8-&PSQPXU|8QJ|>BM zmK=C?r>n%dTrT!C7M2T*3ysiM<%auLjU@@<Iz z!>X}g>U`-+8d%D$Ni< z&ospB@=HBR&7S+=@Wyh zrExiyril1T{wNPpR71*TbT91C`sw@9y4rg;u(QvuW%gt!(3YG#P|#LN<;Z0sUG+LX z)5(Slyi>yU&TS<3j8P*~Ziru1K?rhAJzYeaLgg~#%y#EGySE)p>O!tb@1%x#+`z)x zYEB6QLv=1Qj8;CHQ_fPl8WWQ75fP)L#jvXWXuJ6r-VLl5TA~;=5%t49Dm#G9fbrf*DQ`@_z7xKx9#8Sj)KKf!mvkVlzt-zbq zH)(Ajoz?4|khy#-)f0CezJS1!Ky?}PXI*(|LGf*?I{hWh^-MQ9z2T3lcSiw|DJTgLt8G7S>nGyJqUJUUsVR>$YX* zwvfB$7O?z?s#U0di5_o~rrJwY8r(D5Sl5(pOKY}pOTx54uMhWCqVD_kE3fS4^50H1|FU8{>T|Q#y%tv9rY5Nv zMVGlQy_b6TV%CJvYMwlh{;P@UR6xX-OS(jqIKVPVi_1|fqg$O?N^22cKW1~Q`B&hb zf6ZUMAGWN5Vpvj`Jn2>Al$vkD$wWm}55`4u$X?#>mnxV1K6($WUNQr$7J)`b%a^K0 z=&A-RlyD~-86|_b;W%*&US^ip-KNqNnXWsuM^9v#zUI5uxg{I%M>i(4IefsmZ6{*f!4t&!5^eZVflm1h1QOEU&*AMn>NAi8KalUI30@>@X z4-ON9Zx>_@k>JMPa9q6na+q`J0q)0;eX*0&L@j}*uGafb(KlUl#BN`Hnc@_b8m8=9 z`S&CGYg+jU(?}(;^LF-3f6-`dpl)MI8@UIUyRD#B*|fCah|R(a0}*II-Fw_LLHojU=Xo9V)qK-WM1I(3;cb5Hx1Z}o#5IgX z9jd;fbKFgrpT@P9Fvs{(V+A~KF{340Zn(fbJt(ieg_Oy7{EFmPfZ*4?rvYX0^yHEBAhgzX_Nr16 z`1K{+d0aZtDwNdhqabSI`2kzd1Bn{4d6zzxORWgz1ul$8bc?OPw`a>(DO(Z-2CfpXg>PN z)2wtUVo6zrJ8ni5Qa-{d3ei_Bt+b-;*)ILP{@4KfeawzyvBR+*YAdx9#V!L!C?w4QqR>x^IY8+IipP!NMxBAbn_Pt|giT){+%+ z;w`a&M~H~J7dk(a<*(eD?Cy0ay$@1KYd%b177X07t;I#aBFAD#D=ZM#<$oVC0m_Vf zy6@j!Tt(y0RlvvYbK&2{M3VpaA8Y=F4q^im(`hsU1rW*LH+n|!#pFPq%|Fm_@{3}0 zv};!P20}Q%FRwBJO?p4SAf!lxM|C`o$WFi z@t~NYm5}3%M7|id9F{@tDug}!ygH^OMspR)_jwExfj@kG0cqUhMQ9);hkFOcMr71v z^49W48oB0jSu;$G_hz9iF{6EB3grfUiA_ucX1wOByXu!*W?5eQ$rc7L1Y<_Relb21 z-R|6(dJ}B{eM*%Yt%qM`dvj)RIs%dId%2jI4il+|ctA|G{olq;4Wwo5!amu+Y+!`h;#>Klx4)tZG{pVDk z6NgK+0eTGp!m=uC(kQi3ms-f>42|mThw;KJJXTldC47e{OGA$g%X>+On2U7heY00a z1SEAEeHy*$Z_fxfaH$VV9aG<-o)Q4W#U!?z%0lYK` zNK{U#q5M-7_ce*Y(LM$3LbLfZ0ajSdYVI6NPFug!GrrGo{aK$vMC8i&?kkViSuOoz zc@6+Cag=J;yE4qwfigD|v%~ApY4!(bL)Db8rm(Wxa%rSvprey&m)$WkRV(Inq^7OP z&CcomvH2=xqZYqLS@|m?ey(z?D9i+Xxlp(w087l-j=L}plNSq*?JlH_&fRk}b`nxI zTTMM|Wx^wXl$)p4eZZTZ$)-=Y+FK`z4oBL?Ce1 zfYz&;cfU3#x+~ZxnGCH44eU`X@N0HB;hN>uHEZl^Ep5&1O=@mGNnP~;1O%~=H>#_; zbXQ5s#^&IGktjv^szx+}|&sK~Xfu0B|Bjt8W?B~nZ) zdV~1X#lS-~k^^CWYX*ukgRB-74WjKcd^1R@&}+Ft#D5zdSz=@Tq`0tuwVxGRU2;Ag z5i5Pfxu~62M)LAT`YI;3o?kxRn}G@;S=8;?rcpdRd~J~O6b?tN!-Yta>{Vb?;i_q< z>dFKi&6kqf=G)B^Oh?LRy)YUmICfNH+S+ubJ4Q@T;b4031}QwzxSF3XQB*DfG~j>dyqQ zU6f7yW2RO~W`JA;_-{8WlJ{G+-mFKOl~8iD8T!d%@ZT4hp8%kogQ_yc_X`V!L)49Y zHe2IHMjG*&o0mI)A%TIVLV319>PH~NMfFAFG_@GDW;zIuLBqraJ1XT_DaB7n@8k~H z53WRZD^}TeD;}B~%UvK?!|$}L=q8zH+nE4pRae-a1Fb}l5v^D{A%8|`tQ8Fphq?_K z2L?RB5fQcWs2Q>>TtjikFj!@*AW?kw0P^)6h-?I^ZKw3y32nfT{xwu-iGp3TKAyPH zz-m#^u%_fLXSvwknrqF7xf7?drTSO!bhaV}zx86dOdn(wIGp2e0z$}C`~HpGcYSz+FKo$wVlujP65Mp-CQL8`1kY> z{CRMD^n-`HB@}Z$L6~zX5UplsSgaKy<4{n(7PA)fjFn&;Dv74CuUU9ZA@}*fs>j^c zf7E;$iomZm#` zayg3`b^EI_t$Y3Bd4xuO{)$c|GNZD?aM{9=ec91UT{2Mwq~E}e&G}vc&b9MURTPhE z7KCIq7h$z#v7Z(IZf-bgc`g+QLivkxDKSeXoy!a~jFMa#G5YgsJNO&8iY3>@+Hcze zQY*~rTVBa!jB?bJ%=L9Ind!xNetpI&`M zJdoJL?FrYzyuy15;lPzfO8^Iqj$bf&1$5KJ;BA-e{LH)iSMfRTF%aDllAV592OM;y zH71I=fOrffv|Q3HoH4JBS0%G=^SvHgzcbc_i1bXyO`>0$izot|?l^FR87O-@=(7WW z72+`>IbEWKX*)#g%Lw0$v}TU!BQ&AS#p-F11XjVwi! zicq52`Po@w;wVbqE=tdc{+SKc)4vo&Wwo?CZ4Scyq=?XuXfxe;@Tq6E{xGvRKOIgG zD?$WD``whBs)$0Ccz&J)8u0*mIh9Soxa$F9lRP~U@KUdj2rH@B<}C4g^xAtwT3Q0O zx6!wLH1^UM!e2?(j5!e45~6ao@z4?-H?p{c@xKDm;KeZTJD7wvYr87)V*G{`T+Vug zXXg){Ou2jc=B&0@DVPIz#j=uZjCrj~1eewxoqiHEIoGs*qaBw925hkDhb>fJ@6v5D z^I(aRM95|o$515wH9*+0=#lsvhWxxIx5Q9tvoC-!%znEXs zzz*L2=9}6Hen=MRLAkqFv$@#xvohdrph&kD6H!2-?Wsv%ikmU}*wYu^e?RYqEC9x( zIp2(%oXtdDrheL|t%Gr?uCHrgau+vW1~O`c>DwYW+;6$wF6>|B_WRk~{h|XufmtKE zLszuOnx7z&WxvZ}Uu1#`4YSa2qn6jfd-^5o&;4BKd^84UUS(YVw%JEK|(iQJ@Ui;9_ilgMWNDUBF$Kbbx!|q z{q4rh%VQs=WcG{nNxwMt-v1_kK1j>m4XQ8|auBp~1NFYh@!8$Z#m+;nu|+r?@0oHx z5(r^Ls5s2L8UB=SvWS;Hb#n56yOnVz=n%jzAL6vT>#rH|H9h_L{FZ@5zSLz-iqq=B z5)iR!F*Kh3n??umc^OP_orb*@q2}PlnGbtF&hIw$Ig?)6wLf*uMwZAe^zBuA8$ayH zQO6r~SmU{OUCu;W4M}hB5&44B>sE8U>zNoCF&gFq*oo=lJT!bVYLsF>o_@?Lj!t`g zof^z9k01p7LeJ{X!N#Y;qXPbOUDcjM?iI5V52Gj&A=y|UEFRmL-*;MMV0BncGVclo zxO_hN6m~yvWwbU|aT(NALKh)spj#dPL5r|mQl>gpLmQ_z@o#A^ASpH(w(;sOQ`F6 zaZUba{`bPOy0Ye>llic%TR5+LqJQ@c#uLCBJZ)WF-8<#h_<}uL4op_=1Fq+9rrB>G zjqL>OUl;)}Zf`Xk3yHvM9vr6mk%?atk)A!imC`J)>g!R?jK8E83t>dGPFW?;!9}*I z*O@ITVE1|`uFjB<%-6^I(ub5}oFHJ@wyyN9H>P$v7sD!kNB>qvx=cY%|BSxrKa4)# z#X!qb)<5&)w}0X5>B(EMd-n0%3QBSjQBm3oiM*z`v8iJNzPI24HtE?v=$}h}jZ#+7 za9nt^|7C|mCj7O<(N@9KNkzrURG954suOO4kE38w=Mzbt363U)Z6#UgvOX2)bxeQ! zoRt+=6);1#`9K8hU3qaSk(3w&)u(cO)7}#7cuHkAq`UQ_ODeeV%D8URs zP=SomPU3%(X@RR^5+L*~(G|_Fe=?HaZ!W@7%-uj9r~l}}OJTq%;I-KA{I@>pe|Y=! zpcW>-vjaMiIR+#~S~D+IgoTEpf5%h^7zww zzPU(b%oQT-wM>>R^2^ms#qGdsZ8h`Y;!#f@(MKTLGYB9QbX1&0l3jUB(51~eA>4!A?>2|EW0NHRH z&5bJ8vzj4bWdrNW{l4^(E`rA=$2-N$S+ZHew=-R74G(u1N)!>Y3{Z!52H71)6QAIb zm1?)8k{xLH2@*?lrc3zk7bkpKQ3&B{TS{*Wb3kX{9I4~eZ2Md>Idm}E}n zYVp_{ZDDb;&J{KaB=@!$V)#z4LFaXEF)Q3rTN`_}J<%iq*PQmHsyYNO8q*x=eD-t- z?%(s=MDlEQsHew(le`Fkc}tXIt*0#Fz0ZTyklxKRRi~@~qcFn*UXKT%5fI!=x%#5E zTG{}n90LBHz{zuspD>Z$mC~U`*m6%hV|(Z=2q{9e;GQw5z%mOF#94d&!yS|(6^0=_ z3}EtMO#MbA6y}a7m>E}25d6POm31D4n(+>;<{G|UjT^nzY?jSjY}dB>y~0-LrDXVM z-#b(K@zQF0ZHw1gI~&_0nhk>LZjJdQx1!c^JMV*RqEa`XL5R71x`qyo`{#!=S4zX8 zqrXl%qK45G!TL9+^1oii+Qe|?-#fTVG*3+pLb%H>v`R0N6RSErWba_|psf9@%53~3 z&gE2$2BG2F=4k3da|)3J0IQKQnmo}#+1eJJR>5vmKQ}~M-m+8M0|+19K5Z;9iyLJ+ zYHBj$AU{|c`GU?~9IYzb`sCCj2}cIx^pGeYkbw(G<~mM)n6Lv;`p8%GIeYKfxZx|Y z*((-9sqMZVSAJRdhP5*trwNzgU)0%oo6hJ{s-k?Y;=oD|R_5Di* z`nu!AK;e`G4uaOlG3}sK)u|$!I-=>o3#~qkCA0aqqlOgAP{=^K+8IYC``rNmx)dnp zo$(ATN)j|>OYbQBQzvYFJEI<`anFXf&+0m*OX4b-WRBOCfTY1*NjFuXuuP0dveN*r z_ZS;=D%`D>Ln>LV+~53l|Dyy?=Bt*%X11>@$amT1{@V2I$+WJSpw2K0Eq3xAx_cmz z8td?(gK4vIQgU@RxkU?91eIqpddEN0r*dZ`FH0}6MmP&eZumtX6<@+~nf2yi%&=e% zH#fP)0&`$|c{{>1XN>>pU+vBmsS_Hzp#g=XkJ~eG{Lcj8jRsI|gv5`8THcRNuJ+%f zd+GS7_>rg>J!+e4Rg2wbJch?#Q~DN!oh8tXZLSg9y)pZ-|1eZI=PK#jLj7Et!sXT z7fzMRL)?s1Y|BioJU|xc_S4v@&sV^yZSUx3VD7)e6O4LWV!=vTx$OHp`+PZ|#5g3| z_Jf%Wp!Y#aesx_2xpH{knYmt%lwjRfGQLAsw3WZ#p#6rM_6!ugdmV%;)y(qjc}55m z7gjUmZZPK5jLa_N!!kk9lU*~`znv-VDn77w#pp7M5URkJSpdDa9-{-|Pf^Q}Q;c>y zx^_f4w^4Erbj8m5ya&@LPsg>Y7iqDrgx%Gtn{>E8@ zIVdIvH2Tn~9!xTsPmzdmXWX%)fB66uA9IwLuKS)vPsn7q^Ms#Fe<8?~QxQ`Pk?C25 zWO!THxQaiSOupM;?aCTqEhM?)7v281or^-&8O%+f4mH6U!^w9q8^G;e9Z_3M81%rh zcpM(GgjwNu3hic}Anm8^Bgrl)>#qa= zJe@sk6x__j6~%RBtGSJ{ZLdm?509!NIDKTo!9j_?*y6ZqNY6Lq9>6cxbH+=fNki0{ zT~d^WhBP=BaT+NkcNR{R=kcX!^x|n6oRkx;S;r{Wj53Ey7$u6(T~}-3_`78NYcN{2 z8z)$evt~^C$gQ~O3cj0}WjOna!y~fIgK*%Tf)X>sC|*arIw!JHx+tLg{gC`V?ncNu z{A<6gE%S5u^NX5!22rHNfe56>>h_~{NzU2cv~S9^>R?h-fvvG;0RM5`G)4ta$lp;1 zo}d4&%IquZ{5NJH`qt3)*uX^Y$!z%}ZPrzqNF6zUBknd5u^)-F2Xzuw>e!$t{gMo7 zPv-MYUCqOIdu_G*(=6i{i-mOytY4!o2gm=ba(hRC*cWg+nLCo20WJoxLat@uDJhSh zwzAo`r_|zR9wBEMbDc2S)d*k|DCCcwVY{`G53Q|CT^R2UOo z4(=m_+&cB$fUr#EWK0#=h|)s$b{!2fVu}{{Fo!~U(eQSGFiK~@Tt7ZkK)MfTjD&C?rag!X{U_~T5zxAvQvm$;nRtSS! zZ7MGEJ=;LMYf`ROw(SZmnlrVed>d3@8wV@<2pAAoh*7;Mk;5y3rG+RT!xOZ!Njz9ZXb=Z*&2Vf)MAM4eUf`?ZM_5MR8--d zgRt*;eM}$r>%=pL%>qeh3?D)#Be@0g?pr_cZh67_{v>J+iX&V7AZ_PW6YZ>(f{}2m z>C5$RTOKzY+A}sn={8~Ej}Z|SBN4-i@;AK2vba$3<9Z8Nfx znqt6a#;MU$G03IK%iOpk_}@*%3oRFst>%^3-Q(;#Jz&|&xL2NqQYkl@ACqfi2yZhm zBM|x$!$Aot&&sHB>}WrAV`OG7CeYh(-dKqxzQQT#sO;900SJ_9gPQW=fL#qS*PIQ4nTba;dwhT!>M=OSw(O4dvyiQ(fRI4Y8 zxAeKN?pM5&0v;zP8}HIh0oPiKt}9*=QttdeO2oWM-7?#c1A?c!|VC#H)=ldBnby;;NUU$(IzB(~l3_kw@Hk5k1fXTOb# zKpHD-333+QXQ85M8b_<8d&4gb=b%?+CBvQ+WK3hF0P zP=O+Y28Bxs_jIxG<(Cpa6u?s?6!hy zpq);_xNiTklwG)*JiXM;K*r^iex2Pmm|9vmq}=~`(yx72N<|Qf_KL1?lp4vY7I!7x z$pX6rNy1B8CKuQhGa}S9y{BtHOqam9t4*=l{#f(i>#7&<*1Q?mNpfWi_1H-duTM5E zCdYxIO=)zXFcc7PvO~@Qx2G>bF{2NJ<U!glF$LTS4KU<ztJViG)6#UHv!vCyIz=i?mf=c@SWaJz z>j)v+kOpW2^AA*d4OPlf$mHOyY?_P~WpfDNT(+Tuo&k!UsRcCONS|@#lst=rah$sE zs$Y+nU{bGP->_A`86dBM`%G`zi#jpBJ-Sa*;nXl}m66pA9snwAl;=AdZH#K*o?QrP z)a_pGWlRxMH(0QhzDWwT@mi;JAhkD5VR!c2d4u zBabz#|r=Fw(U$e+uRLXI;WIl$aVL5rowsnm<#!QRHuit)b zt2r5D9FA(Ikkxx=oKh{qg=XfR={v?s@h{G-yl|YP@AH8C2Bk2@L*=9c{Mkg|Cl_VQ zODgawNM6DplF%bUXE%HAglD&$E99R&BaHJ5SCU!6DF^+I>{g@?!;~*2)TfMJ{TIT> zo(v~{x~Nd2r_JG@X<0^x^?L#XLcRwf0QncQKXl~Z51$bxQFSa_zQ%(6qTv?K8-NHF zfoSgi|NV?03@-Wq5CiJ}rSU=m1X^J=d}Bg9Fn*_PA00{k_z$%DIe#o3$CfsqOc`)(oeyO@lILBZgB_ zpmM7V&~1E-y$cq`NKVMG-BW600nD_A0GyOg64u*mfGm z%<4F_(ytksB2dDllp77UvZbN}6%=6iSnpN6y23GhGzg>kt}CCJBdJDl|B&RJ5-a}B z&XEk}h-AP2)a>`2-mZ=%JZte&n%xb80hp^gW3{}(uu&nWIaDeq@B8SO^5F`MgAU2e z#0NGc?MZGw1|9+LSzs4*@xK4i1sehdaP6| zqpN%}mCDM$J)DOabiV!^BDO0=?imFI! z>a*m}V{vX7s@#Pri_eDW{5CFhGUdAV?ibVm>8QLND19xiN^*e8-5M4Sh)%|6?DuwT zL~%x;t~T~xlo-ClTI0`z+JP9UQ1S5waP0W3MP)}FOa6eT>G95X2r(B zDg`sP=gK#^yKvNI07CmV(7NW??lt4^(n7p7$`~U)0>XU7XJ2)4V=q(EyW}=hV?h^KVatkVcvj~WoHIk zohO*P+MyIZm#lQrME6$$x{1!4Pw#?y_+$0o<~|dXbJ~M;u@v$;soSOR?1G!tOteo6U@S~Ft^~DwPkZGN+L6_YIKd4mS=pnzgY{E zF3~FWpOrcLw?Jp-S^=tqv$vOO#7Spht?rsxYg=)ig3U!yW6XYOVy%+TaiF)P%sl6& z`f1diP`L7uV@eT9lU8zYa(GeF6!gP^{$k8>Yi|b*vcnCFFvoWBPBpw&ThN*gQ?>jSYOUaW6=05XOHM zOD+F7_5Y8@^jFQK&81TM1ynb7y^SzLymwX?bZ0PwPmXkdmQ{E+7842P9hqUsWcghG z8r!}7r#hNiHA(6>lm$n)y zr#~FvpYJHIz6rvnI-EOyjjrY1bNdrR0n(Z*0nVcaEDbBL57m?4e?Boqe)UZV_Kz_F zEG!kqKVckLu7x1@pQ&)HE5UXpdHQ4*oNn~9n2_Ff!~ePK2)4|SGx=v&Fx?kZY*+)s zfTbax@XzCN`(pby{?~gxBE9J2Uj0c{?~gJM0S(DUtR?qm6Yy(m8QQS z5hVP_KoU9b&a1GSrJ?TI=b{_q2!Z_Qf0GG2+Xao<6nEfV2Z(AxDZF_DGj?_sv}nIr zprr&lz%Z)*@DF49|9l<)eXT+9^{m$$3yR|Hh+T-UOqZgbOBi;`UkS2U953RCh+ z{WUEMG;wmC1 zf!q#Mkbtn-Cv@kAizMMUkN@l+ux?_DB)^r7Cup-e<{FcgVk`0#QH0_{#^CttCyL5O zfbt{W5x)?{A>Gw^yt1$;8~&ais*hZF~TE#9IC1jiTqwFVy$VqJI5(TtyqtxL04DlAT<~ zN}iS+T7^HS0EpRQMVRm>;ZM({J5xGSKq27!Rx>4ZvP-`Q&j5s7lPBb=0lrrk`wZ0W&1w`@j-e^l4_cXG+|Q)|6$?NHjJ{-nfbp1^Zlfa6YZ;-! zAEr)sS`w++V0j#-Px^lN`Q7Ubyi2hXPDy|kn(Wkm{&oU#Zn5QugXW>2Sx4wc!io-4 z7F1KPYbSYG%*7cYSe~?i>Xsxgfs(ghVIcvnFHO1%`HIb2&oo&rC}(5lH=Q>) zWA;?l0KLBw(c~-)sMQYBNoRh?!9MM7|92lV>-4O@PA>ey>|23?Ik(Soo6PNlai3-e@Fs z{aOA`|L?uDca7^?%IA&3zs$YW$@PjknZ$?_Gm`f#pIEK{yx7`fgOi6Gk7`^auWBQ& ztAx;?9BHeK>aV3#$1ApAc*2BO-O>DzR_b`38Z7-huH0obQ-Q8Zt4Fs`-3cglhmh6- z_j+XaKciE`n(^*Ug?nP+%K~}l2Nts^psUCt+Fs?mwip>^#LpF>-(8dO``hEwby4) zzPs_G$~e$>VQAU6c%UG%8;KX*1T_Ea@2b<TmlCIH zHGv`T+U%b|c1LI+oAt@C)|VJ!(8Bo?pgOI9#AjpUIVh^DVAPm0{r+U)RuqXl*MS#L zkN`eCZz5}y`@YmIIEz2;7!#UV8?b#F(4(l%WaaLj9lWmmus$&fQJk<2bw8I6B-jl} z*|PoM!+!Tc$US2&@A;}tRywajwlO#Q=cb;48GYa zu%`sx< zO7jz&;y4gN+y}hSCMpP6B#{PLDO|aXIUsjcGlLwSsjG}rdDd(Ks{V&BY)(;424uA_P_L)UAKg1?Yfy<IK^XQ4wAj}b?5pxj_#*HjW%7cjvLwS8(FI*M0qOIkKkj~r9 zKT8Z3o-o#bKn(p{_l(T%+&A9fXS4Ce?tUhGEQ0MK;!5|r^3(b-*o)0xYzpf$KsgCnv39p_dDhqy5J{gnR$o2ZeYaUtwAN1?B z9$@zh2)cjo+IJ*mPWem|t$*W#?u!jQB04t@N=d+e?(Gd@zWuP~ts|SORETB^@w1EtBVp5of=YNhmt+XQOwd zQMa-SM^5yCw1#%{!81Ci>UJFq({(eeRr7S7irxGPO}2LJXlEdpx49+L zxbAjWq-BXt-UXM{KPLbaNJLkD>r;F`Z@aEicaPTbabQ8Q3Y|BZlnK>I-TR5YolDe# zIxSP{(;k4w9Y@S|uqJ&LDZdE0#4Ig4Eu&-o*duV-$AT^dGzKJ3=e-eUIC>-Hp9(~J z+0znw_Go$eXKiYv`3Edq;Y+%1ERQv#9*JBM?VlNDzx%Cj+|ZR8`>X&I`S=heuK{tt zc8O&6Xf>8% z$G?8e8^8PX;UK%;O`J>RG!YcMWZ%1Z1ik9s|6EU^NxSCpeD!JvidBj?^gv25T-$Nx z*J5G&7@=sC+>9ljf7)$5(%V0#5)i?7F=_=@E28kf*59?%*Yg;Un)c{DHU5{=NZe}A&{kQYN?0t+NTd2 zbd{#h;s;ym2nt~c-4{XQQuQYBMB}!mqr!Qk^bEKU<}VXS`twIJ@9MrNV0iPukaN`S z@tUqu)4l7rogP2E?>XC+ye#(%CoHF_{il#SPWi@Vg6P=cw>te^G5I2wHVs43kJe0k z!Q}sY;hLA>iP?XU&7-JpmCN-jedtKO%)?+=ISjp1O39?NwRF*DubOoe_rsHK9~Jzt z6X)$0IQGJOdZv9MZO2VkTI!_ro@)ac)({`g8VU3OnjOJ$hy42UoAS+d?|;Wz>lKk3 zd?&Q{TE72aA3yG9g-+PlpQ}g1 zLC&T6g^k*vKmg(yYjimDFF*Ba7IfM-&AIZ`AohBFu|H7ffM%1bGw*MJ${kC^t9h4` z`Y;nBJ)#^tj6Puc1h+z>>KwYQ5IL#fq<)>EAQ^aB9)XCH{jLo|YI~T6&@YJt>GJqm zT_w@f+Z0znG6}MAQ*PUdR=mJkeEYDWVJh8@ePO^Ucps6Mz3N*l= z`)8ob!&j%{dOfLpv4ObV%A_e6nHZW|KolTLiPRvCkvg1xW8<2>DkJKtrBz@_J!ttc z#A&NT7sN1VhI=BK;6AyjHI7YwMlC1@a@}a)0cC6xhiw%U0bL%%E1pFlURdkB%X0f+ z|J#SG)#-nt;?IQ?G-^?aw*;~DgyaRSCAvfM$ynS6iz|6W zT%b=C-MIE%7b^zuAtCxL);+6^pT(C{z$h+S)_y*H-*)ATKl&|JV2P2AI`)&*Hjt*H zI}>zBf6iU{{R{o}ef{t=FqX)@IqwTB=qbLA9k%}eN8NkIHJSE(pE@Xx4Mqh75z$dZ zjEaKv5*sjdX$EN#5J3?lAicygic&3alb=9;VA z_dfgCd-vIu7eWYU$$6B2{r<+lkNdxlEr|5p*rMzI-`?lZ%^1@jo<6HBv8Dgv_8i;~ z>gyZ}Gfr#oiA_k%{9&(|W5FdLT~qV@3W}8?Ey>W!nckXet~JR*@6tm@6%4}HEcf^& zfCMBU9JrVz^p7US?DYT6MIl`!#p|#x>}&>wYxX#WcG8SCDGovyA1P?0frI)4>3(INqhD&?e%NEa^HZ-)@2$F%;SStVDZ^S;OuB<$~+2U!DcJ!2| zb;`%fy&5SNzr1^|>;a3Y9-S`Wmfaq8I=dLV4(cujvtYZQbl_?}-?2|H00jfa&RE5L zZ(!*w`yOG)#gnL%8#y0#xr*LFYgz|MHH%et(&X$us&qWUyg&swRIjK1g0aTLH=M>O`rGo;c3C|yA zZnN$G9n^?!3$L2l=`3}UR}T~xi|qIoEdH_o1>vxyubv&?P<;` z+;trIMxiIrdPIK@EH<6=K=*tGrh|GY{am5)=cm6p^S;GJf1xxg72W0rB;%g}6xKyb zBQ5Y4=x+lA8RSV>gPL5ctADBw4YsNd3~1P zHq?c@FDA^Nzn;IPPHq&5=(Nh%9sl8yxN2z4yOkGTN8oQr?OZ%ahp9-;!8GIpljD4m zpd5X><_K(wD>_7@jEQ1kE(#xs^Lp zprGXR{Fxmu-^bsk8d!Zfl=bBvsF3Istr+SM<2wmrQ>Sw*X8aZS8uoyy(rw`mw;PAe zGEBAy^(8DT>iH#Dq?tOe)+O#Ugk=Hj!QAv%eb8ys>g_s z_{$-W>F z^X>sP?1Wo$< z;GbDs9fd+Z{#oyy=s2JER`Lr7_RR{o>%a1F%k2?1Dl-7lO6Xk?bJ;oh8V2A_kHsX^ zgo=(jRY%Aey77L8@r z5y7$* z9KofNoOI96VcZ)J?)AG;_-Sv`PLue@ilkbRT@rWP*o|e}*%_;ABjVMq&7}aHV(oC1 zXoFPqao#^LeMWbV&^Uf-?n#A-!K$d~+w9*Y?z`_NsEo^JrkSj{AOjApxrAKtH)t!> zf2&q0>G$wTA9g3U;rT1$xMg$CC$9l6p)@7b?~e(8aFITO-Cb-NE3xBpY8;IIYMzhP zC%v~xRmgMVi)M4yLo`dwtugCFg!Zw#FFKY#X`^4)W!IDoWdLecK^CMyKZ(3&#XQU} z$3mp^wj(N2iyoTx(C0z>sS~O+J*4&Y)!$~01JaQ1cSwpd98kYxJy_lXvXGe>6ZIhqXaW*75OeV2TgzZ$6D)S!fU*N^`GCe$|(Mp;qJt z#pX)Ru&TAVYC_bWi>EXDJ$v^R+Yc__hFOLvsod#3P?6yzzn*fnh#-~b6}U?3YXsm zlgj-2)tnR04y`2wbB>J_VT+ez)#AhhmvSqjhfCNM&z`YohCHbS6^l05vG#9>$>>RF z%9&Hl#dQ5R@$co*wf(QVu0{whN)4@5)<vtp#nUuP;Df9-&&9C|6*fqs!&j!6d zx9&>%UP2WR62c=5`>rjvnF+bl{dO5ryJ3aBLaL*dSsH0^B?7sD(^cr-j=WwHOQWBA zt9N3w!smg>=PB1g6Z2Au&@lIWF@AMfIpteDQrjJ@M|L!VBH|y~2P^m4_M5KwemXhS zI)YEobh&NgyW`akevAe(PUc?t;keYGrRWul_*VeYSO}V0-YGj{#3eE`wdfTA2bEEY zZZbJ6i04O>sSL2&+J0qDpk(oHwrWM!-u^Mi+;=4&(;>DTd2PviAA#r2zt(jF)9*Db zWCpB7bG<89ine7=p|C0CbLDiNGky;1RS>DxE%i_BUlLJfqp+s;)0w;Gm1C~h-0T(K zr%ksn-)cV*vary;U1875xOh-psW@k6HPQsVBC9F>x<`DL5~$=f&9q3d9{6t6RTBBz zy(x4UpgR^}j!$WwD{wAvS2e|E8TNN{xU{(R#Z9f&w#o&}79Q9qT(6b1d?m8s^0bk;IOX9G(H zxK-7nN20>la|@INaboZnn2zWgrwUCL<@!N+`Pin0tn~Pf1A2f5cUV~XCBEtF+z*IE zeOww?uC_jv=}Jmn<38viN~2VXMuxyP)D1*|GJW_6dNBD_H0+gm*OQKsrEANrzbiX< zBcuC2^n(5~P`X)v%2(nN==uRRXrMl!A?m1`y3z*8E~@%?0|Y?+Vs^f`J(VTk2-0f0 zs_2KnBEl;jfS}`FHbV9;lXb3w@?p2g$R)f~u==9D<~ej z)rt(>qIHmV)gal{ge7Cw^dw>8LBG+(sowPFyJZ|%-XzZnRm6ndAdFjlY_i!MA zC+^)d8o^3PC~9FB{?`@=$$vuSnT7^G`|5B%oJ46Y|w2r)P z7{|G#(6S`ZdjS@mw)Dz4@Syg|w;dJcUcHr~3N9u=m7ZtF2oLfkEvS2Wn{LE9}J>{b>h;fEnR=WFWV_{hZ50u7HP1Sy10L$9TWX zKk5_%GZ5lEmm&p&0+-mzW*GZS)f+j#sLC2@ll9iaJl0h~~qn|q?k|HuG!fU0$Cr`VI}e5WUlFhE5)Ay#(#;l2xETSR3 zZds1)@Pr2{g7oIvckf*#YK##z_U~>@^x$uiSfckZV^uO_O_er%^+F`J)DZdM!!661 za`efY^E(MfS)^YZt{MA)z=Q56eS}XdqB|9~d!N6oPx(Wg%h&JC>P6*p(Zpp2*#h5i zLH5ra9$TM$wv>0j(WN_k+vV$XvtdHcu;}jlUC!@xaxw{bjWs4v7o;!FJg_>f&$^Jw z8^u>idX#nj>i(W5lD;S(dmhfh;~Iy$PLs6#+b&x>T(m6r^Ybe|16oT(uxE~w!2&G| zRDysjZ7KpzoqH~{;d+`7fPog4O3231wLtHs5)lQ^%NyOHVq7~M7~RI%!1p$qPh?+k6kSpU&voQl$%n?m#%`io~?p;qlWXgIg z9kxzCjWW)TJj}o7dFY{XLai9+5Sf_iD! z?x#CUkYHK(hCpCRi(s{97t#ES)oH8fq00H(3LO1Mr2j6Q*wD@kuUBaNWB7b}cDpv5 znE^F7FI`aKCx{lq?mkE?QC}_+z;BMTx47K^$m|~YAPq!q=0#rK`!TEr_|Dlkq)?}e zZe%EUTJJIZ#qPNS03kbpp$0tS!u$NdBV~e1a@y@TI|L(~lzEJRo8b;0I8btHzxSyl3xr`bGZd6gXrKG!Gw$(Qf33EuSWad`}%1Q5oN91fRD269n|jQE=`$4)LYpT?CPuhsut_F+Y`Ti zdm>0p^#W~At6tc(JiGcEGphw8>F-q1{Zg=@_{-;52f-fN(D)5iMLal-{!s*KH^b3G zb$tM=Fs!2Rw)J#h!qd2SmOapiuxmE7ZiFko*s(K(|7=q^@@5aKf6n{2+F?l+gEu#`gb) zz#yBVTq>~auk%2xfO{i}KI`gt?-e_+u6nCozn%w1s&4M5177S#N4t0&8M{h28<4)l zzB!3%0&d16q-V&pEhWS;;PGAa4sQaTq)CbuE?sd7SY%sX%-+`*EWc9`B z!88eU%}<==bKqm-=h{Z<%S+_E$}@qI@0;JVR;$wPTKCX9z_h%Xvu-nLB1$S#xnomy z#+l{4J2WxyH^0Co|08UA3HAQ)gvyAYyf4w3U&!_BfFGw?!xFcka@6|$irPwF$x|&4 zhV+4zACZk;nZHX00yBctF7~WVHQVR({PnqYLwHmXaNybk99Lna-4y{pu4-%_>}Un3 z$k2!6Mqv^NGh>Wj-Qf*;e{IiU`&}S9%|&gkNN(|UUD(v5@Nz1`v6 zJItTMh??knt(}OS&-FiIQQ-g^l}!s-#em@(X{)9Jl^Nfd$F= zF9_9|s1yrGm8erH&k_dM;ab?@`NZE3mhZIUDBrLt17>^0uF#Mpr3&+k)8Aa$)O|<= zAkYi^=rYdZRgE~TnZ;6A!N?$C_#LB#QMjn&|W2&^}a^<(= z9LTTH)xGjU3sOFI`kzw~{nkw-_jjHMY)D*ebAhQAtiC);XhCYma&kzjANyhgNd*;0 z*3-w{1RMKkNmYhUa2>0S`#Y1H9^dju%Hkh6iqK~`Jf8+P$238UZkqffZSlW3Px1ec zG)!y^NEsCgJ70dk6QG)wCa(atAXjYWJ_JC26%H1*LQ3AA0{Og_zw&vYnRK(v{Qo7M z)cdP8H|>_YE1RNB1mtiVJpq6675^%{-XvFLfYvgwmu)f_g)VHCKmPgi{~X=wf3hl; zn>^eo6#efh%6TyX%e4oQM_9~=_ zA}iOZqFrL2455rUlp)kHX9ESag_|zF{hJN#J2fbfMsGRaTZu4(mND@TaeN6Jj|pp- zAHUR#{7vAM$O4i*g=8y|FAUSfvT@cNBuA0F%we{1@)kGyX}F|5nPcbxcDK3gO8YX? zAIACs?XhN+YZ)i8@s#9K_<1Pi7&+H5XjBlv_M5UAPt{`QlQZg*2)`9@OJu)_8JG+6 z4)xQ=zt?~E+yI+`Y){IQ=2i&uJ(85w$O-f8Mb65n#==6zJg1;J6=!`N@P^W%y((U> zKXa!%$V}R9fatb90_B>Zlu(L@Qb5BG*3L~OAzxrX-_X0#E~|ZmQd4qnr8yP^np?A^ z80kpGux09Pw2T+~wgx3l*t^v7^h&~RIld4Tm~OKungO!Gi57u(Q2z>yG8#C+o)jbhXNR;+uGtca%0 zW{AFTQ^@<=7h|X%#~VO4BAPQU4SrhXpNDpv&AuvOXTbb^rlrqT#f_~tq1l#|xdSV6 zm(izes2WN9QX%Y_UYq4~6KYO!c=mp^x5>8yRo5rtGEV<$kx%1XP%y|# z^`o2Kv%A&ylzN8Re*I}L&*X92mlyV|qmu$~#q*3Jf4*KdPIVG%nt-pEuV5XBUS!}@ zIR`n_=Qxv74t3s@kL#m3gL$|XR!dtVKa(*4XEO-MH43@9$Uo@T9(~F4tm~}#%HK=s zKQ9-q7L~)G(L>~yv|vxDud@tlhD5tu&AEW>fzBcqr+4Jm`Pl<&Qk`>kygeF!sC>49 zHGr6{PNzhc{DhXH2g45`*O;RNYEWjsp$&^<)W8U-JS@x$3T!~p40kSpFO)>bry9nX zLH5>|HqBpcw3IK)bEB+jc%mqQF+{{CVH$tFShlEjfbLM28b1&5k!=;(Ei zx1ZXRxp_e<#+_D~P4=E=5(tr9uN>uR-nv#W0pH#d`Bb@O0PqT+$>zYWEvH1|Ks2tI zv#d4Nayf9iKxr=M2hs$?p5uT`lSs|&ME+82;+RQHfpVsnlZ64CCg6m|*>Vh7kSgfd zlo?6C$8s|n{Gjl|kr5FVb6B0=K3j?{w?HyYLn-4+PfcB|@8#w?VFl)=5oMNH*>Tdt zOVEXh<=NSLENzp)L73}0JU6-Bml#r5W`yu#JfASLg9gnr8$u>a(3qLHipcb01y<*q zJv^?y(w^8MA7i+6AZD4^s*5*I2^EFm@5{=~X0J*b%6Y@dC6AXU^U9Z*OKHWC-GYLG z^zn2UbN7h?-w-)iW{ci@Z@6sa1w z2D5q;-Vfl9==z42Uszj%q}Ppiche&?EaJrtc{w!(Uf4i3ah%S*=}t&=?(lkF|CoPY z({QzdaiAXE`F@9?Z0mc~p1^`{D|a41pEi`hbARB-ZZ(9!=Cp(Ufx5N{Wur+i$HQBu zf(fpfimQ`FrevLQX=y?!Sd;OF>^W1j1*3YO0!)Ex8^1-6zud1G6>FCE!<4NB}pNobDIOKNR`4bORG__bYf^qzJ=f?5fWDj@Yn(cl-BS5hqB zhyrP!ZN3g<%}~(CLYALELF5HhP0Gi`pROi2ChoZwlr67zz_<5!VH1R8z4n6|v>;g9 z1Pzh_PJIUFk^rMIP34OEieVsNLuD}yjW9}1es_kiYJ=Lur8fdaedNZF+41yNT^I%r ziB>i=gJD#Cu992SXvLYy16{r|;}F<$f~(3+qha{~2u9rLO&AXtxtY1H9)$gst#u*y zOs3LCA@<@G2`%(XCD5T89}yQThm_Xyy~$Cj&=-{Te2OF_E87qo!0xDr<(3leE8R4* z^<%t$D12V2&nid3lRrom;9Hq%kc_Ns_>nNx599ACrqA$QfisP$2x+Cb2-sl~(_HU- zaCdiiy&+BL`v@dlP%ym&#B4KSJW!3zHU7gfvLci^Mf843WC&}yHuhUi1YF7Hqk`uS z{0&bHjWJLdw_O77GicflWT&h;jm@3%3C|vmN#!EmW}Fb_H8uS$`ie%DbJs*%`s{2S zj2DWPSzAtXjl_=Keh{AZNfFPSthXVds-hwV1-t1cXsbh%S9_Bb%z}mPbkwJo)uof~ z)>%f@mq!Gvw=|UK3)UZB+ZR%@Vuv)=?u`X6bkn2TD$rrpZb?X*kA}v3Um_Sh)12ON zGLk{M?dzaBuDe$Y&Qd*-!Dy<0(y`0Y;=C%WhIqzp_al@>XQVGxi@>4vw_kTY(x-i_ zXa+ZEv{s$?@zact7F6s|g5JeF>oqhamP08_TIVqEIJtLn>(39k{m1dfs8!40y#+uR z_sNaUxVxXua!Ps+Ax8#NWS3VOAo(Cy#1uygs6l&GsOs*d0+KnV-P`vpN3mjK-AqKT zmY)jxKoEWdW82TI#^~0HUsGRcUZ&=PYI{6JW}3Nb2*F7<=vAXjBB#LsnFnNI&zS<1nCw$ z>x#5I>05Rk`ODO@{S?@qORUO|shLjPrkXnmpZ8*?;^I~i3atvySm2+ZUKI^_dMnGe^ zE^Tr)M2LEpAj+>k;Ey#b*!`#?tvtEqZ2DTvN>ATA^_Eg3+~_P)#eqrYY|Ed5|+UZV*^w{DM|C zBpjf`tYZ<#=8#oFW{NCJK2{LvZv4oiCz`o(c};IqUa?u8KF-4_0Z z5vfzq%Kg*(A4b)XGToSh;`s-|iPc381T+K6q2r0!+HG)J69ra}G(i?D4>w#l@Lrxz ztQKP-ac&C-dfUb01K2wxlMp_0k-`~R{7I687U!$d3~&_9?ARyXMa5iue-^& zhvz%Qfh)Dft)&K$i*ii~{6X)5yV8P@12L5w|ov;%RHEP$#f+#?L|zLzJNGFxjXxv z4WW-2LUEzi+eeCfAK@=@$hSF%AGa@-IvafjV6IEdwBqwl`oUZr?ZZr>C1b8?UyZ6e z|AA(3`5;1k=KM&&XWOrtfIr?Iq3sc_Khqh;pc3Jtya+3g#4JT( znDS4*;yXfF+7dS%fAtPqQWou0JHnJsqFN%^0W8aCPSE&((?c5(RTfja4PH4Kn7u%I z?oD8{w6T#&)LK4OdR`I_b^10 zz-qT`csy%c{gR{ZeE$?>Dhu>dki6cB@$ubt^&vP(G1{GxdU+dG^11h$74jR;HDu$t z(!q08*bkhvaYv+;r7Mf%ym8{{jG*fb``)78J0mc7gORd%_)ZYt^Cgn~1?e1&lnstN z755Q<6SCNs1fX<{>Df^Ny;jhOIqky+p#efg;duHf>}jP6BJgX~&Y&?OznwUs{x&(v z*v5B!yrcqbblR3X8)!K^YE=&`Jv|50s_x84J<75i`griok+uC92g7JS1lyw@?KLn{ zqJcSPw}eL+Msj_ZhlCd|#x`*zD?eb8P0#t_@~(yrZSTXjyw`ee;n)|@~3us3HEwgR5~39Tc( zZ3>!V4gwU9vX0DXd9-ct&6fJ}M_c6N(+p)73DMIkAmde`QhwYpZ)GgNxS=N&>{5as zJrKjf_Y-Sr5LShmO{LqytUr_wiWsMGl+Uz4&@2|Njk)BQ!S0@Ko5^MO8uBT`(=HWQ zj$x)y$RuV?{^BS5bprAsxvTaf-wwt&j&t9zvdO#BokWDjdupG{^Jr%?`L6`~*DE8_ zbg8T)R>f_lZLcOm3OAqUz-Ch<@U%6ahwCt<7gr8FqTM^OKfZKQt=<_|dHDX3pBP3# zV;$SqQieQAUE8S6O<`3BZ0qCIK@ExaB&wc5vR-}4HuqkgI}&RGVvN3cH-fxu4D1}7 z9f2$THADeA>ypK;`Zx<;@z-c~=HO2gh>zIb8888K1u_sr{$U$vGUab$gdrmcHy4w- z9E>o`IWmV8HukXwEb0E(X|tH7~$I)=rBL7JH<8m zki_xtO($L@Aol20v+guCgp7k#Vt=!(PW2;T^nGit2^=<;6=D3%=({pqGiA>;R-ILC ztkw9dAC03+B@sg*xb(DwA9mQ?4K*g#gj9-0nhE?PvR_HnYheIYRSYb;j?O;u=%CW} zjHw7(nU#O1sZn5-$I^IyK4g(1tqa;Q#H$}Y?CmoJd%CmxtxQ-=x#HzpxprqN`;tsM zJSPX@((kdFT1UbAT^&7Au*$<2^6a`wPZB9}SNtMNt4MinNfH(~RrHym?c}`$Zs0v0 zfuqqVP(_jE89bxpxf(QRA)#HH)ZND5EI5`NLt{ogixz0hZ5%`MZ!wJyYQcuAyv2G% z7@Q*Zlh^vxq<4KKyUFbkRhS^E42!@ z-?V1xU!jRNwki9mp(-uBx3Gs^u6J`f8m7WYHdtj^Jt2m=UhzRR8cCsieIvrg6b&Jn zI+z)0P~{2Mf29at;`7P`Bv#~tN-u%2TmsgC`;ocQ_oQ7(mddqcrAZX^9ONGT6j%?u z`^mvrGum7b6*Z@T@Z&I(5>^S3m`1XsoPOXUq!$sg5s8`W?M{o>Cb@c>m@V#uz+?Ko zeXhRMGVXe-e1zH4H;9fgn9YV{t=5aisYv@GYTuK&7U5%x4cE>rCEw8{HfEZKdgw>@O-$$q@>`~c&I{B@6d2dc>QWO zT@&~`5Cm4W-u98AZ)T1W+?qum;d;fVcb{FWc&(>eyQ)tYSgxy|iW6Ps`rCr_afG14 zG-bs-KC~8F5FHo?(E;G)$Jr|wTc%uFuIr0)Imx;IC7$CWb5S!f*!Jt0p1#ziJ5S{L zp|``ad{-a9-go8)wN8%BDgC$kgxgivw^xtDWk6RcW}}u#J;l#sv0>xNrn}zKCFh6`EVo zE^>hWY=b^Ixv+C?7Rj1;;Noj86LX9HQJxj4V6n#hkiwY-PB6}mmXj#X`7}zamQ3P& zT%Oj=rLy;zdu2RS4o7T{m_5W!TXt*{&mE>zCn+eaFQ2sLdsF?$@@b2pTWjVH-~)5@ zM>m6czgGWggapX#U*_lGJT0qQXO5PW#YNjq|oT+bu zjLVCHA+Nk5>MssmoGWxaEql>6C z1r>$5b9;3(k^7!LTd&?SyCxWX^9}5rIq1jWwx4sOLqLUx8+5i6=3OsmSoY$B$}9+z z*yFlm2Czjtk!Kk6#1f$6LZ6k^rvs1BfT(V&>F0qqGAI6?}a1~HxWqJ3oaZzxs?Xbh)s zplnJ+|GFxm=h)$UZQn62^}w@BMlond3DiDnKeq?Cm%s6@G3e9U1u`dGt&!V`8+Y}t z5jq>sl_&u+C!e{U;D0K;$dVf|R~>^l|M4ccXoUvyJl@~bCpN&=i|~KWeZ4+|cu|V` ze&QQo(Qi;qKvz?2H0(L6k)-;bE2k84y!Go@u85PVgodxLuZ9GXF5hs${HkOKmx)m7 z=EVFqLmmq-8;m){H%sBZHvfe(-(HX$KqxF%OIGahPsV&!go1vx`4`|rwA zYA2NDA?=kHyewn>sYPE%o$;1N-8Pw{cpv|^We-wf*qDOb8PzP6N9kyQ| z#GP(K)_n>fKm{~{{p!CBOeY_wyTj+CMR>2BIxW?}ud=oKBYruik}>ftMZ>7=+}*?P z4My?bZNGA5Y(B*{NJCYG)c1Ucoa0MU=)TFpNCW|uQqc18aKqXCQ+QSQJJu~1`l`3MVHht~zNcgCy5AgdIatTsAuoYd z2rzC1B)`=UQ=buCTX)eFI>bywYyW-NvNvpbiV&Olg z4@dNCN(%FCnus~??^2B0KgVgeS=_jgq+P&8B@;NtNQ!6yoa(Z(akseUwL0|MeR3HFho zXLLtfJP?rcLaf}KHw-qghbpP5sXHwvq(ITCK+Sjg`PK%TjgR12^FK)}`2v!xT9^5L z#nMv*WU5hOqf7w9%Tl`O-=r$lc2=W8wkO(x z%x8ol1bsipSG5vD9;zD369r%cg+c2UX?1-Y?Tvi|w9#^9k?z`}OA7A{Pl^rdt}XtS zmN>Y)J|K6~qX|-205FbL^40A4uX|K&j4hpKxoWZ{NwOmMyeFQEoyC^tjm6}r^!E(j zmw_z~Mu9YvRsQm&s}Z|i{a;jF9SfhF*I0UyaE|>7W+O_kdEX2&E*!kp-b$! z9LK5mT#a2Z0P4x*s%MN5j8^`XUj1hQWRRp539J;mt5#0j?p!h4-Eq6;?ixb+lsW8r z=i%=V4=(`x)4lryQ?S~+R^M|!Q`He@!D?AOW9I*>zG^CBb5MwG4hoTYSnhx&!drx@ z{jFx`x=pOvb;1$1XG!%sP4LhC*!CpYA@8X>Tyfgd*+pdlUO30>9Lfu_cb)z{hO44l z#+6(Cd1RxW;;8KATmUK+%{h0AD^4fv9VVC79RgYh&VauUbYNX>o)54>&*b%=P0Rj< z=1)v0bS(ke!YXS+DO{<}XR8Zdz4=pDB+)|_{kk^V;3GXuA5Q|JW2Ztaz7>6<=%}l2 z=#d#Ui~xP z_auN3mbnjx%zwwoKo~PX42i2M3A?--hcPV2Y$yIyIzBM)rcH#c2=>5=_=u{j`B`VL@sl-lIKY~wo%{|~CA ze~i%BzY#2fN_9K{&qz(7rubY>)`1Sw4fY>1;4kdy?s%XkG4}1ie)qnmT6Zntc zCxQB&jWV0XrGH>O|L7jya(n21;We3w3>>4n^ZBAx;11L=GpA|!Ro1Z?%>l=0>qcqYAve%l6i!nnH)J44-O3_$ssw%i6R+YIOZ!0a#7iGi6NWN>kfXygY%QE z+V$TbMU_$~4&EzhQQ17d-D6cOiv1?Wc{fD!Ihwn{JG_OF18b-P&f7Px0~otN(p-ik zX>FJofQmXL3n59O)m;=1dbrrueqRD+uWy%dR_mn2zA<+l9B~<&HAP9Km$HOuE zYv=Y#YYaPZvQGuk?gj5rKGsoH$|bd*%(YWCdN7Y0kEY@7S480g382^p-sp}H!K^Iu$@TV~%PAQz}^i9~uPOaO{m z>B3#hm2LA3Scmkcbjbu&k=K(3LXB9y5blQ zllZkDziZ0=8F=5BLg`xR+*y4J?jm0q;^o+c;qfTV`iw|7FUO=@K&RyC|hm`5aum9H4XnM?*@>i+|YYHMQ$75v5XM0u-mgKS*EP9oN*+3*0RKo2^ovhqt_rG6Ay*TeYDu-tpQv*9n2*NGFWbLcu`ZN`9l zfW_9UC!Hq zS}NBU24p$R@Lo6vRD2m@l!)aI%SQLMWhd!}j^)5O)f{I^&nrmM%du1{1zyRveL81C zeFu`GSxBj_C2Lma6v{%M|;*W|A|@Jg$@!rCNxT1+auRN|tj zZS|vVBx|Mf5+S_?>p>b&&jyK*PVNcKva zf@aX_=)}aqP8dRypC^dgERAok$N+;w{tMRRo?XdyP~YS$0oT?oHu|U0JZi05zvJWa z>jsr(cahXsCHVm9@Bo1|$lR@7f@`TYX?>s|ntjp$d2%KWPOoObUqrGs`>7tR@Z91{ zy3tO?`?wbu8O>{=oJf?_hWA~N7r8fM1!d_8)QXDbRP{4{oDC5#qmQq7kcNM$ZAjup z+9N96%>)QYwe`@Fhr+LyDoX;DrGjX5`UE1`hX#bNDDOj&^y(g!7+ArL zX1|=JB%ymp>0ho#uO+<2R5XdJ9vFINd&^kBeh-gg^Da=rY(dZhQwOj4Yz_5~siX7C zWXLCYSip&pq*A;NXW+8AV08&O*mxDyMt-Gy(pM8oZ&R93nUg^JSQ27U$eR@+kXD5_t6NPR=^yrS7W&i z`I`An`Yw>0r79RO8@%&d6;`5aXZQ)oEc^S$@qRN0!RHE9PZG+op%Y1oUH?fvKPEFbvqy7 zk)E?Xshrno1aUuvyM=%x$7`YcG5@L<>7AEV*`f9&YXfKDr3&NT)M@8V@eA+w6Ob&bA;=Po83jxg5lH@|=ZdR$X$e?$Md#Wxy&yOwe3PI ztt+wYCG4r76Kad;p1FW6manSQYr1~n#=hX25W8a>o*C41BaLVh%^aJnF1eKrm{-GvAgQg$;mtp;mC`@(wgqIAs+ zF5HZLh0aT$bvwdC;8uurjp>UN^kCY-OYs6zihGul|fZs%f6)PGVw@i z7Y;M%X~LYRhmQ!#Hxc55(1i6f3$1o$2dPzOe)h{Ob~6c2{g>mzY*3T6}%TlSbk5PnPW`dFUH}iNBhS#(L8-5LWE& zwCtpSV|-7`h`b$nTufCrU|iC)b>qD?sA^lkEIgSfYp-CT+%gq zcUb5)$4a2K&(W$pr+3hn``mmQ$cGPhHyVtb@WiLBrb-23U7NO z7hIxW(G-ge$83IBcYTRxfT^Zqk^0Z`a1T^7eKoK_q>&N9)Z+A{9+a3D_FZj@Owt>E z&mQaP#_3~8*nkrlt$unFzcTwGt-l4BAgAGLjg0@*^4-R!=Pob_e)We)YaPQj3p{#bS`N)hB?;MFc(R}P%qD9 zvJXTf^n%>x%oy{4pWSp)GjUF`AWe52A6O5u7SvcSeC(at8@&fNGA^ckB)-V5$615f zy>$Em~i*5j!LhTxAQ+t_sDdJ+W6l$ks~k_iu*CL0(cmx(IqGGSf-D3LjfjvuD( zgKLN88+{B+`-hR&Wt{6@x^Z#Zr0lNEJJK;^?bpW3R(YMV~ ze-OyG(Y~+;n7<8^?@3ZUyEcxnQCP3tzP-TiJoi_?G6rE65JcvB3gEB7e;Z3ZO&$0c zQilXL<=nxy<(F>k`SSqa$SFT@K{%(BCQyd*icZgE3gs1;^3){w%V=1E-EA`0LE!Sm zz$^gQn)g>ctr1d^$ZUy}gr|u&Hv5q!(L#sH?f*+78~~h8kCSyMBxo~h3MQ|BHPC(M z2ED1kUfaonL@7W+%8K*sZm(~g?Bu_l45(Ra7zJSaV;OD5T<^rNea%6S6YWh7ScKx- zfA}5yn^OYr<6m8y3usW8#dU~EI3xtH+D)H#aY~l0I!REy^47mj%lB`m)obSVT==Hl z2c2hIULX4h6g^Co_r->{ocsT|*BtDCgCw8UKXU!22`@9viXlLmYi|2MKpA~7(&1TM*V zSMA5e8I_`(*u=x4+<$Rl)R3q20F5sgrd@Y?@yCXDaK~ojWRQuW(JvR1wrn|ZvKN$f zZ0EY>n_dL#FFv(mj_o7l`RjPKR<01j-*Q1A7_tFB58x&~`dH-}_!4pSy4^BZ2)NJo zuOl`7j_KeK{*|j-HIn;N>v1e!rHjuG_iJYHNpL_SG<8Q#Z>@?ucX;ox%)jA~w^ctn zZZMP6Ss5Ila_(^D>umZ9q-!c=n%iNOeTi zE{(r3E0$B_!pM$EOTgUilAjh46}_)A;jfv``IMPD>^mEL6IHU;A0RO6WmQ#G`{tm{ zSraRHF$24wfqIFGCQ3lPt8co7(P3};0GoNd^=^Z3%KXZY)Kdl#d*!2~0N&DO{WtC; z(g8~kw|e`Jr`U*LK_Yku2$ztD+lf1Zwf?m z-Z!1UBv3o!3XZ!k<5>vj3h+$bI5bLHXZ+ee4WszO;u|w2UI=7)0@lCX47{1h$vd-V zwULx6{`=U*V2q6({=qc;%vnk;kSFYndmgBdO`di_I|dBN`mDX+tfzmseZ1BtfIs=}eU9kk6{ zSoxo)1&c)E7mN(9RMF7SHEpbJWaj;IgWr=LWdh)6fbe;IIyuQ-3OBKG{r_n1y`!RP zz6DVf1p|lyM6!wmX#vTS5kw?sT4MW25{Z&igQ$RH0RhQLa%cg`(11uzl5@_XX)<&- zVXE=-{=&QWt+{W_dNY4aFBUZCRMpwFYvk&a1p3 z1AaOg_SJ%@Cl(A5@GlR^>L2is@LV+`LY)iS%)FOE?;_%}$!+!Gxp3VaS6|YbcOoS^ zG?bK*MpOzP9_Z@*>?hK`O@%u={)JlNcsNA7dKA;e;Kv?sXMZmhysj3f68x_ z43j-=-u!gubU$nfa>oZRzl1 z{)Wzq`gRZgysq*q8UTc3{B3Ok(yPn(dFc_e?L>U|g|9K28%y-@6wrJ^ia#?MP$YbU z$HMJFuS;;IJNVnTSJThjJ)Q6B{|tCz=&@?lP2Z3sf)}D!G_*#bVzPMn=XGrOZeCPIpvx4&;_ z1QmHAzo)HBnm6zr(KGu{;Fdkpc{Yc~vJO(E0oTL{u&oc!5MyqY@={z<@z-3wLw$5f zOvkt%8<&istagq(xpa58%I$L+i6W+~4&&^D) zan4Z^i>i6QX;fH@Goh+8Dv1NemEZpHzJ9RP3`hZO4!*5l_c|!`w^*=G6YG0 zMsl~2J&TnBzF+cQRqsUXL=>Q-%)bqeWpb)sl&nDZ7!F*NRF!&lh%Ooc0GWu=9-Mt^ zCc(cSu|F>{Z&022-60L3i(q?rD@T*7BMSfZHOWyZfR**tEt2C1Y1p^JP)U<6onoZz zu)JMq)J37~+%Fa^xoeuH*sK73T&`@!^;T*k(U%C-G#)qie8(U;)&SR#Ovo8LJ_q11 z!BGQday}B*+`N9{6&tE~yDzKRZT@|15f#r2U#$fRCH`EzbevZ4B-Q#`*#jcYSG9|; zSg&7NAz~sc0i|F%=Pq7Jko%FLoo7^iC0rG%m83=Sd5Hw|K6pT*_ib&M+$9Y#QqmKs zsiX7tod~faB^9blI#j_PXEH9E4=%b9; z9<%=HFD@w+pyqr1I8E&$B$nubd3A7OShFjs@oUY;UP5ND<=5;t&T0CA&iuvT9p3Yx zc*?mhU4Inhe6bEY`Kxz`42e%9Yo=fhDjI5PNm=Hl&)b81xQp%M;%(WNadKc3ojh>W zURS|ERbFWldWkI}`{%FM%O&4w63kLiX$M`suxo`Hk1_h^THkte$^-^+Vy_RPZWa_Ib?>9i^RV|ZwDDiW z<~E*vOrh7ATdu<-SbF=|+#blA*Y?kliiGukbrokdjof+6doF~^H0(vBbm`Fz*HMMs zOi767KGusx+Llyy4~gA6dFA95ecO`2&`I(gN_ha9PAkfM@Zx7)^B=Uxyz70g0W8^6degiws8&f2os6o* zWDK?YynANT&%A3Sr>fHqT4{bRR08UPRy?a*VO{^@fijtD>aJMQDJhEfc&E_0(QPYo1LOY8L_<5J_Zgu zgQw}?T5)zsVVED%GE$*Q*;kL1_}BIce;rJ^+2>=Gn4ycfd1*y$EV$FK=Lyn| zj#N7P*B!U~fiN4c1st_)KGS2b%A6ci>Zbrc=Y0% z(Zufv1yR?)lNUb`wzRXo zr_c_SyQ)X3OPtV0q|MINV)A3Ige+Xfjz_K9cExfkgG|ei{%!$>HNI@AJiT^MM0vw$ zL^ilBz(Ae|Zrm4^_f*r_)94peZsn1adGu{jmiBR-yL4VnyAiJq$5u6|^2{c&L#xm| zYK^+mpW}Er`J7t*9b&?;=L6z=v}?54z!z7}@yD>`SFBgh73<`&bqjotRmgMbmwtEE zZkYwh|If-Wml{%yNKA@ekn}sYY~3Pi#wKVw4vVj;l`N5Z|LP^Rg!408t9KE#uQlX3 zv_;K(K6vO0KZjmD>ZcurKILR7>Xuw9;vPzLDo5;mad>x?{$V5P!w^b&0-8=Q+6aGm zJx_m!v}CpI-Tos^Rvz9M*EFXK%Ee3s52437C7rl2AtPdof z$f(KyYA*Y3_vY6Mk2JS$qkSVU`c_*nX?UGyT7|TYjK6u`Dly78nt$!X>wsImQPQvT z$jw`l5P{l-u7dEiiR=1ZvQO*Qm##VM!Kmz@(Nk%(qGl8C%8)&#`BxsanRZ`hld_(o z_+F7JKi=1-P}JDxwycDcOMYUT{~54>KknlhKwJvgR-9#0VU>5lIML&eNcz7vayrA0 z%e|BoGOnL1Mhf?9mZSz>-6^Mg&kqa~467he%Mr4$1ikHPPFk$zRiy z#qCHn+y3S!!jBbPGz`~vA>kqPvtqaW2IzINQ&kx=<>f%#?+en6>%-^%HYf(1VE2zA z(10_NdSYqcj3Iy4%RmkN&E9g(^WL7_t;PXHMUFcV>`LSE>%6>CPmn0E( zk1ntw-h`r@-QH#{ahUh^ysLD8m{s+-t7e$l+os$A!Scb-Y($`-_z1O_xR3)Z+JxO{ z1j;-a1b%0yqF+!6o`~-1ULAz`=QrMctZ!U5JT>sGLK>{# zYcBJu8J&1Sa0gQ6MN;9Iw=i|UOOB{ldEs$n3G1ts#R@8Bfj(hnuOHd%Q~l(6&JLfm$+>mZPP`^l>g4ocKT#jbPDM49DDyHT z&D<$EsIhTk_!*39iRZnwRpTEL(1lUGa+AC36haawL-AnQL@{RRhQA()x@EpgKS)|t zQFV$EOQlGth8Vn2w&rS7y`H)IRGDx_>6R^TWZEMJk(Fbfy46Z2T+d#F*?=tz+<0Z& zIRl=yGa-^P`c?hn`NrDaTs7o*pv#%)&XEmdd8eeLWI~oHDJZ1ru7$crXMw#jtX#oh zW^hFud?((U;4M-O37>~QRMB4lA?1X*GU=W^db@g3sdcdeZ)oK9Q|Nu1yZOG``-@n8 zOk2OsUGisLZc2Sn|Mh{wjg33u-I8NPJ?mZlYY-*`$1rAUeUG~(Cvf!QCPGLStk=$$ zuZYk2= zfZ`%h==y`Nxr>2Cfwv#Hw^o3bew+ttggXHPprZDC1a~aaR|CYOq374DC&CJiGPE(S zq^}>dW?S)USFoo)h5J<`Nw8lqb{OYSeuo4V!7rb$sL%?}DppdzeIdKh5ju9jjYKFE zMG7xN)X|N?>)=EH)*e2*RDG)G1*&bEI6bxY$|-(wRW2}cqV5-!$v9DjecMl~_n`3G z98ru}RP>g0?`}kbm7%tFbirs85YGIoZLO`;u8b!L^~>4U;f8KYa41yQgz5!eK6}E- zkBQmZUyJ~g4KH+*Dh4^U?xHr_GuZtmV*8q z{}mCKz0OU=elJr{eZ6aH5ZjtlKEE50oMX*Ada+=Xq1q*E(ICxr*`ms*vCE*$ED+)Y1F4WI`ZnIU47ssin-Vcj&GXkCMg!Pa-?%iQy{- z`|onZ?x0Q5eKleZ27@Gl==V{O))&;Dtg6LMd#dF0F;T;F`g<)^m?|fgUO_ZgQVLgy z0!A14R|ERkiVK7v!?JkFU1@fWrC&!>WGVn_9FwBkU^IwOsE!m~fvB%H3a>%>9me0I zysC3KdNc&=D|tLF>oLQ%z2qna#d;0%Z+=}gcL9eIe5^J!i8(c%$K_4pKTSPr{RuZV zkG@*;urw`SM?K|=`zPJJ&k+PmkU`l~)Iy$@EtT{w1KWP(Zcy_0^s6Aj`8(5grXBrk z$w{5maQ?>!9MhqQZUZT=JF_u4gGpM;mGCT_Tz9|D^$HbxpH%NJrfCz2UWi@cMgEeYi(&a`nF&bK}(e;n27Lemai^29eJ$@D6>H&tA7s; zoa+jFf)7X_{=-9!RoSqWLiI@qlD-J7a6fe5Z^nAAWr=g4je0k$-;O#u0QqUfaCV#Rj80y}}pms=vQ$#tRwaApjG^ zr6TkO2_u%E+^e>a^tK-12K&e9%bumDCf^=P(b64gvZ;Sf!dDZ$6H%lUK0Ga7bR%q) z{{nCW)AQXNy%}QX%!%>V-)U4Q31oPkhCv4ZXTl&LqV#`ql;#vX?Z03c=$~kigYdsZ zh>Q$@0rxv={ zF`DO1+WRt2W!YG1<#XMfkM!A|cE?hp!BT3OBZG7L89;G4$gn?8yOsG+&e&3gjxp|wL5vI zUWA-jS=5dkZfob5)zWp;LYGrnYZ9RnH+LdPH1MPU^?P!7(;d9M%RBY4-%L!SQYNEc zlPcDAESXc>X|kJ;&&^)PQnSM=6}~>@G(A?kDOIc~l&1yNbZe%?R=bB0%j9KNHLlsm zkPR#anpPbn-_N@RSJuO3M2TC?+j+WSIc+0vGou7;4pmSIY#`t@YG@%eyTd&6Hn2pS z+%&i8%7E7L*^nh+YWjeC&g+5Y%=SOp&n%m15h{+v%o4&C-M-Jy&sVU`hT6M5T9#v+ z4Ks4%obD{3zm(t*<}P2=+3Wjyf9bm>A8`m-oS=q*n=A9QQUr&~y1nJnF43N8;dp{Y zT8n{+k2P$h`twWbPt$DIMcOBwRCGPQaUN=K>XMli6XU8{COV823Au;g)^d#7fvPBk z_(_&FIe)coG#6mV&gyyX;C6+U=Gn2bEg0EF^OgCUjKlmqpGm2GKov-zo(ScU3G_C z>2i$mCh6%Ki;OJVSH{C-%!}uVUBP2IcWL`p0-Idd7#SG}O@sSh7ZbZKJbAMoSfFPv zGGgi^MBK@XxsrB=r7>hH zl2Y%MNSlpfkMmfD>P=y zb~d_v?y_t}4@vqNKc`@O>QBz{owtfB2%GXcuVw5Wcx7*G9hgbXFu8TzswZrjs}!A< z3rDuMPaqZc)OyS$d=fwXB-`Gn3k$S4g8P0SVa^d>mbr`Jt#uv~yUVxOWkGoM#H20f zNiUtV13aYjXZkbt%PgUN4Y;w{r(Q05q-z7I8%hoZ!1CzBYP_RlR6)`j+N#%vLa8gzSTP+~MQ z21Q>KS02eS(Bg{O^i?Ym{l=COJ5$zEJIh`htd3J3OAbHrc@T0BnOJvu*`n^4A9TgZ z|Vxl5)al3Nw3(-A; z!kw{5fW>aP@S66(31r|Y7EKaA8If({Y1cRR_!nZ)L54`p{T??m5Z+%9N+KXZ`>N-u z)`FM;V>tnG_ftt#ON_hQQ%Q7j>7oS2i%}-~yKin?ox@a+J$=q4y0f5I^AbuplU>|s zw`n~ty0;jJl}_Y)O~A>_SWWjI)t`4L8k7hlfpqjBmtr^|M=(u`e{kF0zLfN@67nrD z?_lYwcjv@VkYYu`o=w^Qf@|H0OIq=oO>rrnKi!k$a`Li8?dJ}taz<&e{t5?EWr+S} z{~mZAhdJR4Z1Lmxh#mHzJDrfPV#~JWHfPnDXp5rl=bB5U6`}Wglab_IibA9x$Lm{Q zFA5_}c=0GpNk6lxI|C4jb+ED_C}Qyd6xqTxI3rs)dLxf_zD?m|&-iSJ&j6!*>-skcV)xu9y@i+;OX3LNHCvZB(Z zutF@4)MA48V|0Q7jU@@+0n+N*sCTK-%E%FP{^{QMnjyM~AmJRgI{v00>9bOq z06F}mzvv5^f&{}J+*_7YS0GH0dG|(`Wra8AfIV8+Fff7Wi}`hciS95aLj?ILQJu0T zAgaPs*8EC#<7j|6uf(htjTUAVe8aLS^Rm46tpfjTD{2)QVbW)tn02gi8l*iM< zX*#=HeveFPznB^WJE^^<-#)lf$bWn9QQ(w~BDtYbiXTZX&%7)%b0z&uG^*!k@7p;BYtPBLEm1|q#@dTAJPRXR zgo=t48&?NhG+5yKsY*run8h1aR3DC>X}a`Zb31I2+H||W4DlE5cwNpA@*zW;$&(!t zO_bZw1$q1b)ceVZc6;jE*gVCGt!$|bAY9!hH{T~)yDoNT+m1ipuKnot(@b>yJBxFq z>28s+`=L6Y^DdJ&J@sqkEs`t-p17Vf53C zk0H0)Y?e&-S(Onwns8oICfCluGkZM2=5Gc2)Xl6>Pd8tkF7u6*wqv}qcC!a$nh!2@BY!clxZC(6G`r2kJ-$87VCUrI zLqhyz-r0dW}UwVehqKLKgc?ex@R*#tj zUt=n~vzJ)Xu;XW!{s8Z745&<&^~Dj*G$v@4aVBNSA%?79%gn(oPzFmBJouU6BTWkP z1j-Js$S0JyClMmhV5MBr^OKWjwv_Y8AckwOQ9oP8sV{n&Ell*m;pOcu!k$<@W)A^0 zaK?u@6oJ0j+)UsajFjo5qJGsA8O88h9y)n;ul&g2gD`;T1a(Spx8s(*<6CwkE64eY**2WM$=WvN@2 zaL*tk6;oqiD8a_|rJV?;Jj5J>m^eRGCc$BqWXW%D;8P((cf=rVad5lK;@CiH@rY>C z!K*X1M}Elbz<>s6Y1u$kgXA-8BsA_1Cc0Bvm8CZ5U?!c36eoFhF zCV~8KCBD4xh_S6pLDx@x>=#G>b&g3R(smhJ?42B7pnIZY`q$D-&#w7l=6Ql#7{jiR z)4+G}eFm9?Ub;w!po%LkgKFov~ zOo&`1{d>5e__Zr`bMRS2E5-S!3Nx50Sb8QBO7pENjqOw*{=FkDWRj z0A#hix8nwt+8_8&sAq^ltb}l}=`~ew4->ha#Mk1|uyUf`14eSGgtoAr<{7mL#}Sb{ zFre42nAfGI+7q1RUZ$v4M@~OZ2ialiXOf@qDF>)8cFCT68>(OpzH%IgwB5x4!xf|* ziK&FP{bP`!o1FRvIyzN?aZ8A&iw!i4aVF;h9&WdkYlW0OIvj@dh>v-e9Bd@M^DL|} zJ^59v3f{d|Jjrx>c`_Y7I*IBb<@BqkG`J*=G`3K!+8aFrhSdHns@Stg6~& z@W8kL0MH4pZq8<%@Lg2BspmE>p%k}p)7k*1FZvsmTHOCYWq%Bj-WKPCj_vTF-38AXdTb_*)E=(wJF zF>}dU^l)=;#136~WY??ixrBWF=3vcSF}Qn5VQMx?r}3t>l187SCJDRZ?(P$gYYse* zAX6T~c&;x?_42oPdjHh3#&hTt$6f@EQ>P)V2$hi%40|NP&C+?4e>{s~XAGEmB5gSq zt%dfeIvTHud;VOg|9ChncA~z9Of<=3Ba9U@Ig+rCXfH0Y|C>C92`PsEK^|{A7Hu(N zrR)Z8Fg}(6QSly&w|_6oL7OB+;=cdP46GB@SG-g8rYvLTL+{G94353(t@Wl+PjuY% zBhyM(jorvecV6e$uCnB!zOhO~oG+|*IXMm}Gki6|(lqsU0ur*07~*jN!$&3Oi7%kVoj3r-I^Ye7JR-O+p2?K*hK3&USC? zT^GpoJzdzHze^6%=--GEkq@{W5akn3v1{t-WXxsD(LWt3sQSIpAag?PjmJt4-^olz zLmM=I<+vzdyAHo*-+H|KAN-Bi2@phCh&3pSccwxz4gQ`q0Tr`3-uJ`{!+q56Kz8eA zD(dHl?hpB+#pA&;TPxr@K?Px2X`zj%t~|9VKHFv{0TA{oL!iUU*M74IS(Zu)R= zgTghr=9Y;D!|L&fwn_hAM?qLmfO%2*0ip38&H*Jo&#iwC6mQ zAWh5&{e!r+A&@X_T=r;}s&+4u`=Ls?%`%9-gL~7g4X!ON{h~!k8Tp&QjUf2yfZIcDwhZUY_Rgx?-QY3T)RH4++sm=Sv%u|o)z-AO zRLHF~kd1gZ70K;xoSEEaxV~&oTLtJ^t;}I{Z>TSKHrp+a(}0Rch3b|g7akpEGWSc8 zb2#?bE}e2(bIvK~${j&vrl`)%%TiD*$B3Kdo>*-4{yY3n$W_S;ceLZCoNG;hjdgxe*Jc$O_a=9Az;&YEvw-sHLdkdGXgN2FlsSGjd zgA#@4eTimBjG>7yTd?iYql&NK=67&0;-+0(A_x5>3m^7u)e7{JPCfyl-#05xcbD+sNnU8l7TJKppgpYD@Hx+?m+-$%Depi2 z1Ev{XCY+9U`sED{4dVqiKfmZ+49LNn|Nd8A>{C6(r9pB_ngHthc z@y~xCq=4Uu{FmnV%+^26e`gKiK_|I4O=pVt4&RPfXK=b8Wa*6`jC^!W2rzfZ;THI`qlN@_u( z);Ju`-Z3iXUZXW+!C#Q74^+EwCnu5^`E6H|nn`ki<1P>Y;KRLF>tj84N{|;%FWe?3 zvv6KXH2Zw&A>c24dQZ$RQXTu$?^OQcuLz!obAiJFJ`x=CL(fhr^7P-gBBzV?_gIvt zI0ix-e45XnQr_uz0^7&`)J5-Kx{z78`gM~Z2 zH8r7a0~hnKY(dl0M^}Ki=2{+kYo&R#@CQieFrznvCf=<>D7b+$Wi^^VRAp# z^eK**d127P^Pf<(9zTTK!hW(m;28|ESKh8f)elT(X`_D}77tI?{WY2iC5Nwf`HIsd z#KprlTt%!F=a1_o&@S~Z-J8QnZ4Q=y{q^QAleyP5>^9}?bKtS`wDb-gu9Q|2*D2F2 zN`B4rfr2mf^(Ecj#iQW84ZtI(>-W}8rU%Nw-X1~%TQ3zvIQPVRi;8bXTiP@0*>)<9 zAoTYAj?0(L?ZlQ18xek>MvRRCExkSNM@Y$N9HW7%!lrZV+~&+o^VB!^LOQGeOvkEJ z353!7Ik1lYu~5n0_hT&&W{gYWOSUzZWs?iE2?h#o9nU7e=bUVB$d0QCRMU60?|g6L z6MFP;jB^#@d&T`7eht*Yp)^?K384y$lQ z0bV}<#ep1QkfwW|o}m}&e>uNydb%L%ajbdJzk+DjCM@`puFQS2waU{)S&tUyKIH0x zjd9v+94l^;+u`D3@>kvBerLxOGC`~*V>nV*7S~E15`uyN!tV4KwK>^v zIEg_8jFwtYBH_SMzv{9dv0ZXg%Gm5L15leBGDoR(OUSZ!eTj`&8CNrFV8$ zss=-f6QMOuwlc;|C8c7+)iqA&jO~DEYu^*sUR;KwMvOse`{b@Dp5tGLZW&O;RNdj| z&~sFr&|6Tqb{&W6Q4-T8lIj(Nw6l+0mwvO{xN|U-G+X2aiHhsBL!K`^+A@6~zTJYw zV{#QDZM_3;2i53A-pqU$w@QqT1~TFa$QpEq!QbRdhQ`8lEHl9=qNbS-+BI3p%Omui zY6|U3J}*!X?2o&^mUFwHb1UJTuPPAbk}3Jo z({xl=KVv9xF{2|fq-pOYlOI^T@u3{n49!uQi=d9tJ?nX2LwAOfZ(KWD;;kUa>166MJHcPE(5IeDG>nzhBuW58+ zE7bIKbYfy+u*dr~Cuy8;{3~bWdl9|*6y=wUlkcps3Qwxo6{scWF2&Tii3htQjgM-p z!a@F(X|wu*rjt)dI!T`E#DLlz*2}Rs_`MA~yf1mHz^%lxd(?eO{>lWj`oQWkoz0R3 zhX(5<-MdW;O2U?lLaUH%@M5hy*-+$G!-K9E%Zx6yER8uiF><7x>*G7OEbe1lm0v$i zg-E%bC@D5|hM1tgA@p_-Qvvc%;qwx>7TS)i>eL=+LEmG852Ah&C@;3YP*utW@k=%(*s!D4Gj$#45sFIwZ>!0ix`N5P&1er&js-A zE!_R_U`CfFE1M9b_q;t|hb59(HTbAXS<99~B->}#HWhiWR>>;olq9ZbdUaymy;C#_ zZ@obl-TmIU94QIvX^pzW?45Z&Hg^FsGu-QYb&K?{e}FtM){4SGVYw&jDgGDizW)ttEyuY&;l(E>zBtAV|C}x&GKe0nL-qKJ;oV5HQC*h)4nog3 zzt=QQ#a*4ls0KIXwS(ISB}yYG>vi$sqMq+k)-JPzixPePijhQ}do>07;dBv+Yx!tP zTZ0get5HOqx&iwMBid#odjl+$t9eaNQxil4AE{KF^mVr05Z-sJaj|t(B5x?ObhJ-s z?Y3vwmNVGJh%dfUT91D=4&|WBK{vZJjWASN(}KF|rNm65pXT}J{EB6D1kr7yX=^w*)TW7kho^$Br}*q_qcY9emn{sL|4D1H^a4 zAtf-K<_4ieD?dw~_^M*vx3{;GD_&2iMFWPtxf(kEUvg9~cv;3U(5&=azGN&t`s>&8HS<`j`y}+rOGT(Q z^_$cWI$b8e7v<=v%n@J7{Z6%&0vV|FA#>mta2i=K+&A#3=J|f(tM7fH{01t|Ypn&5 zKfoIWgWAa|b5L~719DqJN*@JB)fST6amT%7z*D<|TzlmW7sbV8v2uu2Qbn0g+$_k+ z>Ci(TPKC#{ihDkCh5v;3rI(4f(Ng^D=6OUbd(+#2T^Okdqrc>ABV}j#5X6-gd zMTEY|_o`x-)xLhTSZeMjd-Sspo_5e=q8_{u-m^Wp7*-R0-(Y;K-C$G-57~-0I0w|T6>zk0u3!2F*# z_Gl;Ki)w@8AQvJ_79{B6bPIH%$n=X*ap(t{A11Z9o*%H0w*->}twN#}Owwtn#ag<* z_;(S9qz8%xxFDyigDr7%p|OqamN$6ROjD{9XQe};-9SQ#+zJtwhK-*iG+jyTiCLI}-oe7*+ zSmgs(+&o1NTn|$lVuHu(LSD75LX{p(I_EIT^oDK+r|qPAk#V*MI~&r6ZuO^$F^rjw zCv#O(JyPm58_g0d##ICMl>rAgkuUDA2-{NY1(<>N#^@5Tq^G88c>o%69&oDBAT+p` zoJ|s?f2s3};l20p7vJ``&YM42=ILCvt9MB5xXt>xu4d0c^BFd8Ir7Id7phUH(CRjM zYi9j1cBh~Tx*#Bbgy`+70L&_4G zC?-&L9R^KPQwvfoC2yo%V_Al<_ZP^lpNH_u!l)ds8YPMWwQrh5!d?PdIcQzZU-{A6 zS@0_?Y~skoBQsA3mZidac{h}1?_;M?6MN%8!bP{*g9NVpAX4j-p-=4X(K8;;%!}f; zOZeet$WJ-#9gy5iae>bpLkeK{a`6LS(|Cpi1~gUB>(&$<{z?a#cOFHIJ8v7(t3yka z$fe(W6Ogg9wcf!j#G{E!f~mj42NbJ>5MYlepWX3Q91I1 zKoOZQH4me|kVgqkqK5`V?u_7^UMcalf1G)N=I_YzX+9GwdrG*!5lay5__-9s2C2Bk z#er{AvnvGlMpsv`5sN#LR#sCH=e>qbQq?vVzDIexF=t{>FiP-6@qyGy14F#04h9XiRN|IRdW9^ zNq8(f7QHAeZzx|grJ6MZoThHI_&I{Mjv zDa@DNQ#45Y)Nm#!uIdo^^;o`dDS8s!+&xP4VVc$%1EA$*IzE4j6pscr$k_1;Cc z&!H6^YIz!SsG^3xh%6wHu~lCr^SeG(UV4?Hr{yR(!@Xn{)#I6yPcVbH*vx zt1L_iV-2rML}MyqkphM@inK)p>2cuu?TBnRBb$_>&0sTw~xdkj*c z+`MM*_Ew*wkL#Pf-3)3wc<{Y&-RQSc!zSYV^dq{_7^&DVt}H*%8@$$6@yKgdnmV@; z9DJp8G*5+<{$s(i@JToxgL@HPZnI#ns_Tlo(gDc)LmE0=5}$an{r_qbC2= zOY@R=uhch;(43uJsx5N=<`k_VsFsf|zjf~fP!bkL$Isv;@;Ag@a^;KNFrDcm0c?lu&IgP+)xc;j1-q%FXeeXnzih_Eor0;v{`f3uj9?0(y#j~7suY< zlo?!SOSOUQ*!+R9j0vxtWgkS|@Z_;<@bMhS@_ANuG@f*KPf7QMXxV&X zVmuwy8yJ$?!`R;S^+c(CP0dWKfOWXMsJdkEuIRl5|wj%1FBg5b@;4hHj>b7E^Q7UH{V6xywMs!vnmx29x@Kg-4 z22lnkeq0Y+s9U_~p8rhBc!_*(0jheN@8%#^04m5y$aZ4+C{;ik&aC9&>H%!RMGy0O z?Lpu8MJK4^+!CXuj^|<)Em#I3aM`q;*mFeHWo35*Gj;4IFuBs)ed2;1R^86%tVSn} zY<98;^U@(adDk~UI59ZxsFxq#QMcCxs_wRr_a4d8DQ{R7u@YHdPPj2TmR8|0Ka(kS zq$Lx)aKoXfc;Rbm%S(jW`h+%BKT*1eLjl})Oe;E8Q84D$@H{v%bg84;{z?2|g2~@T z<(u51!f)SfU<`y3fbk^K-3OUD^=a2jrRR&1H>16EmlG;@#RWagmOyX-sd)HK#0i=PPaZ`Gk^!fFiqkMo zbZit%@2{mmP@}x7AA0le7)}S$Bv0Yr!@pRLZT(TDhY#&!J+}3YdW-2)lOB8H zZibapC2y)ANyEJ37C@9$7{AKYwrw|xL8{r8Xx_XemsXglCDSXp7OoZz-}Tl`uveB9J5O@E`$ z6x4LOa^>^CdY0!Qz>ECbvt)5Zi%-7TkBwEFKKsV153_I_F3hGVyc0RI*L|&Ke+b9o zq>=FJe29P^HKtFC)>Xo6@#nKG%bU_C1=!%YT2f1H5D)^kX1cfqntj6a^`dUNr8T_J z&AN2m=o@>-Tz|t(#KpZi;D9~}9w3>Z62V^h)dy-$Tv0wI@;eP;q>TKyjhC&TjI{-M zu+gWHP3mgLj-s+}WzL4{*pJ(-rX|zI0UZ01*^3+sl~~T;K)vmWFEx%XuZC7C-ayO{ zf^WJV`{Q5ampw9JST6;o6j~T+m?P$=>wQ^RSe#HJ6f2M#*!Shi6Z6^96NlNNAB`Ed z0v4K9Ln%WWKLcp!Cy%|G5>9@kierB;cEP7ZYfgSJiXZ-{Z`p2kZJ9*Wh*Ss-UyWE? z4>+vHb{giyGK|X%m*iR~L^h#oL_8B0y!*QraGay_p_Ke$$A^tg9^W^+7x_iDoM@1H zlP73SxUn{-l`*7xW0o@Uq=|uZ-|zm`ye|XXy=?#?TH-&e6q zixF^C4(w8*(g~Oo0~d^&?$C&4m%6w!CIW4(kGY<3Fb(0H7b)%( z*Z*+UWnOp^hvr1NGdZjuYaQXoTki4<#mq7cSIy5SR%3e;PiACBJ*!++)nOh71s%GH z*zP@s6VT8ZV_Hc+QDsa~ilRhZtZ`O+b~Nd<2a^r zr1N}oh6nanZza7ew%<1agAr}bArq}$1y}cesUt+nb`$AAV@2h|S)MMD?aZGy3QJwK z7dm1E#E%bVL%^@p5Hac{j*~=APfZ_}gK3!}78q`XvC^@6Ww&vHxo>s%7*}(GBP2W4 zA5LdD#HFK;(2A2suvp}_xPZs%Zcx`Hn#AGi&8)E?9`FIhojQk)kea;`@9Wr}&oh0tUBOdcut!^oM%v zMaT$nuKJm6Z`^=+?pfFD?>HfG{Y?qa^NhtXJ4Lz)n1K~5(;f?qZxqaJlP2U4#Xk)Y zzca2k8~d{`vv9$C0a0KTx z&8RmNcCe?9eF(P8Z;Kz`JP$BdcP!VBeU1PuU;u}O5YOp`D39p<)x@epx%R}9IpcZG zZI7eF;KbaSk|XToC66QP^I0c2B?IfJnl$Y^x>K6v)PTdxD(nOs$*!B= zzSV+X;JqP3&+TFvqc2Sip4@I*Lx#$6!cObMrit*|p(hMX5({qKOKB-UW>VQpKev~% zwzM?1vL}$THU7)q*yy&Cnfkj=EpGH6j0$FLLC;5^u-u(}LHf_KF diff --git a/public/community/config/eggs/Pterodactyl_Create_New_Nest.png b/public/community/config/eggs/Pterodactyl_Create_New_Nest.png new file mode 100644 index 0000000000000000000000000000000000000000..4373e64f99e7b6b9ea456d9255b20aa0454f9835 GIT binary patch literal 42367 zcmc$_XH-+o7e0ywEWCh0!me?fPjF4h=BACDpCW4-U38LiXfl@(t9U_9$E-d z6i|>(5+IOBF9AYJ0trd}==-~C-4FNMU3cACD=Tx(nsa8)KC}0pd7eG*o*L?MoaH~u z!otF#_vnEM3(Lt77MA1or`e9~2y)IYAN?KkH__E%sTmYpJ-RsQs%fCf!cw2ie)ydA z==zM$BWr&a7S3;fe#d%&6)#y>N-yd?&@>BiSf4rb?BXJwxjn>o;mVnFSMFcA&!Xwg z+Gb{E_JCjv)gTOoHQ7L?&^Aygxfy-gV#5)NZf=H|6GqU~MktzHrYY{#+2dDF`<;Hx zBJ$vo)}t%5d}59DYf^5e+Qh*^Xx_Vv90CG7M-m;CS8UGv$YcN2 zik%6oytFfB2>H1ZEn@`WjGNQLMspd|BR%tFqKj=wnB*<*2x^X^->zfavCSr@4y z&`YgS2Ck31&+QxVgm5b3*4rzZF=%(&zz3+2IHe7lmunuW_2lGuGpTL%S0{QkFBS3R zMdV6f8hM&FE>u-hG29oNKZTKp8v=qds4hD~N+_PWtaYLmg7?dR9NhuHWOx-3zt%A2IeI z%18)7cBSuHM5(|?_ z(w?=~boZVP)d-DCXz0dr^o<>u(pEAZlTem}t2Lf*{QZ~Zw)p1x=2L>tIM=e=7CBHc zYkqH}J9n%|?zT17;7(f^UfbFF_N`N572s_N>SVrSaKeT^*-WZdFMW+Bwl~se>5aZ7 zci2!?B+CD1;OnN-1}AqkHjMNpH-gua0I`6%LZLn5P?$7xHI{!^LYr$kB*PEu9H#%^ zVq#Cx$%Fw90AO$J(8L~ueQb_ueIZu7cgtJR=gW@V1#s1^AT#1qEcr$lqZ~YH8#&2{ zIR|}x#dSDTX{F=qhB=i?48%9ya5y7kBPcSZK6f*h5>?5+U{uuWbL(j_PTfMaWS$(S(+P}F0J@x!p2_rA)yZI!K zw3?h^F~)ZMW9{6kMA}@UO6l%#wL8U#vL~0SJDN>M?U`X)40mxDEA?{en33w^Yw$%; z&t*qu_`@5h=KF~0ZyM0XB%xA9^T&1%Xec-5>#WlCW`LhV*BvRH<@6Bk`Bp)zLB2n zo~a>rd+rT!Rqlku3mA2Zy9jpqKeLC6P5D-@g++W7NVvIXFT=UXGa?uK-q_`Hptl)h zz*(XFw^+isvY0m4p-4drn7d;NQ$VR~WD{4S0t5Rd z-1+j2ovT5Qj@%1q-eA6_dv|HwB=km5q62Qu=EK;KII(-Q|ig#%{Df(UGbCyCFgA3QGaG~UUQRzQ^JMyc2wS@gm)u#Q)e8M}}HHGbA zWB!QsXN&1Fs08-MO%WS{1GYA^5nbUnmbt1rp_f$6+C5({K_M2nFUI_q84_OB1*anC z5t{TX1FTQgg56>%)+X%%NxT+|5F->JY%Wa!7c_`AUrsb}u#bNHSsK;FQMh3S9oAqT zriWaeVpQk{4y3Ak*qYXK6Qzc;vceMu<({+&gJj-r9!#BAsW~+5tdi(m24QcaK>9e0 z3NT%j{BPO$sNFQe#_pUeaEu#BQ=RAr&Dw1ud>TsP=UBr4q0xS)5=UAcaIwo}%I(CK zp~uCB!y?~wS4+Nz;_h_Rgx)~e$OR|u40dSduOhXHbb=z?U(?gy5WB5Hv@Q2|+HE&O zA(WdvHu&qoCtSyQ>?+*K&&2DjjSs>t=p#H2RhTb{VPn~r^%3PYZM$lSyP$*~uAz}A z4MAuQ`BGJN4eEvx2=hLnDq!xdAbqXfxNqA6R~dI1^c)%)j`u)4KoEYp#ay*@ktkmH zI1#0wsV!o2F5u?)Rq@v5WW5>%Ud~YQrUt7ud|Rl9P4x|PzJaq^!ptzmp#k~A-o12t zvO``ED{aBUG5Ycl5M?e?afU~bau$IKP3<{=h`I1a1@^&~dzUkN#MwkL)p|KlIqV3F z(Ub08JMEOtpTZh$0sKL!I+PzKq@L)k#@1gliSAhE3{KiF=E_3nMrjonX%xv<<=M~1 zQ@d7F*vs)0S9TD#oik87l0faobG(KHsblMt_rr};hb-oo~7Ztc(>4buB zh|_lmX(Z|e;H0?(EPO<8U~1HsJ0`$Vljeb7)Sz?#kn{P7`?^7pu`CQ2O6#E8deLqN ze@2t|Yd=PuO>6NgTl!^RGuLrm#rwXPR|c~nFCrqb*}HbECx{-nSFqU!Xw;L#V}E-M zDFww3-fc?g!+{>x%0ND}hxN);m8Z^4{|(^e>h?o9JJUh8>qUke*Qjf*w5kIAG9`p* zZKrt|Jm0F^O}aIz!Gu+;2O6-OV_=8u8cZ$iKdsYFq7!l{Q0lWm0cn%)59Q zoE77pQwE-dL4*s^kbaGu5#K=_7_>MouAX111o9cHI0M^!#!;PHm_I}314iajbLEYT z;m|~TT04uB5m1fHPCsyL?o?v7epA@|pb}iY*~+yF$-2ZK2VX8q5fiLge}NU#xKG>X z0b|Et9at+NJtd-{AHQmEG2#DmCxEjc|*u?sK1_4UOcv4EZW~`6YWn+oe&i zb2P;Q^?$v_^rCcxi@Xv#7C+gXU)c+j z92fNGi+zuYtHBZHl&M3b-&rNfkcBsJXNIKsbH}G^v;gXlJhYU9a&%nuQTmR9Cmy=;5z8B zY}s`pyGw@-nbISH!z7IL(`6gA`*Ai^J1V!3_@_w8Xyt^Nqu3g3wi1H%`2L|2H*{ej zd-gI1v=6uct`^@DtM61R@+W4WZh|G)5Jzu|J3BudpK1T6VGH1z>mpV2)V>LA(7So< zxBb68Wp+qcmvRqzkY2PBL?`ePF0i;I68#C{3mAg?7ku@BX{%UxSo{n^&RLDRFjB@qPX z-{cFgNmC9Beh4dd<5%vJ@le&d zMhnqxj;zGN&IbSaIn)V%_@D8}aKu$UVh22w%98r)i*p znQ)o~V4%mQHoROmC}6nP)}w87+4Gt#$odezDWW?JKs+qVl>kEzVV50$}-t0?rX}3uF;eZNL2c z>~^_4;mD~QrsQ9u^z1be6?DXeK%S$w9ipZaiV=Qrcy~BzD(~V=*!HzyA=Ob0H$&P) zmw`2U74&8hP6knz((*B(rX6&CxhHgZXm95WgLM}+sN3Wr53bh`BqSUDvijNFO^%(Q z;Kd>gqF9HJU5Sj=_&vrsZT3fn_dlr+s%~1qpQsjBRnFXch;3cU$yIH(Z1PH5yLz4n zI90fdL_Bgt1a_(i)3tzMZotKbPz1t^R>3_{Ij})(qhVh3l^6{l?`rqDc z{qnZheW~ArIWh|!_gG^F(AR*jWGXKULp0k|n_M=Ts|?zv4=sS;6-;0(TPiV% z+}~07Jgm)!OB$g)LQ}mUubSZwYbfK<-zkNzyN0%eu{!e>cuBS_We3(+Oua2s?u&aF zHddeIp544Lt`9_2RJRXiH{TUmlR_JE#|9;#IJf&0Q;B8<2Dxw0IbX@Pzif064LyOq z0kb6q)n<#^Wl3;9*q|T0B3;Al&Ewlr#+}dItKU`3-24JB^VWN688X4Lcrg1cB4xNt z#X|cmefaib;(2lml|R%#sFMyQh9YH9cfsr+Bfsd>r;TIsO1xJdV1=A*?KvQa$Ms87 z631OT7ZHzYR2{D!eu_!0o>@5#ebaTP{>{m2sPb&OG=|EB$OkC4_daQ>#&^hXZWZ#s zRB*)%j7Kr8D?TL_rgr?OLdH}#aETZ#hi{k^H*K70-#>*PQSxV1R z*!)MUo4j7voX6YiejRW62bgaVQ+vB;zAD0bDWcUJ+YIv^^M)TqrUU}<$r`vT zFmkL9Ls|pz-~#S`co(fA?dGrWZdylR!$&p~~@`!=dgFI^F-?79+$ z^?pCxv6M4AJgkb2C{kW#jEmV+_Ce0dzic4<5QoVh%My72s0qu+=kqAff@XRoFb3t^>PM9KyE=I)+tGuSuLZsD!~~^`KkLBzjE(A35uGJ z|3u-5M3h%?SgHV{DWjgXUDtXcMpzFi>)XBgf7dA!m0>_u7s1`7ZaqX`B-y`Y2tfAf^ybuBH`yP7nOfjPHxeK9h%k*l*+G z^m<}Op1u^zNMxT&R*G!AT&F(fcgpRhR=#^BkH$f2ORjPIcSq)@4(0l#g6OF1r*ecq zwK+8lCih`4<7-Hoy2~;1;qd_AWIpu)$dMW9Q8Q(9=;6kEbFSH}R3LpV-~G5e_bq-! zMV#5evsv$G)vK0^L^bq#j|_{(b+CLtgwuVUY9n(hPLWL8_L%2VLp8Rb6iT*)&P}s%QazoMFgh8c}9g7ErAAB9%&$ z>7mZ=0HX+LmesZeEuYi$?GZ}*zt#IJ+xiGQsVz>gFQ2Z83R1SyGqMa+3wL?dNtg4NmV()m@1{EbS$pp=P)OPOVZHnv$`Zs~K|XI)|7WZ|F?)}w29 zP{k#{GSCeeJm(3?5`s}tc#TnD{!QQD&89GqkGVV^yR#H0uH%9%QwxE_h!l;;;T8Gy zn~9qrOV<+F6E3rp~14d1dU_3fDwUG zRnlGr;8Ebq^z5ZrlV5)q{pC{BEm)fkA-#Jt$l_&%?#C8-SJ6b!6s97eTT+euJB4~h zFsnCx1ETrxgnXTm(V_)(xCw)~iJyAflMHzxEInDYe(d4eSmV@wZU zk$QpGl1!M=#%Y5f+iqNJQI*E%n-&cd10eBkhm&%^s}`=wKyiC@Q*h{(HIysM+1sjE z3Zd)vv^Ec?$Yt!^9e`NQjn6on7QkOvOml%8M)4^~9UKM;m7OW>`VY;T$iDjVpNEaH z6B+B5vx!oW(GS|Ps9Mk|n0rcPkXNZTHE7tkxP5iOH&lhZRfB`Mi8;eyi`c3lU8qAY z(zu1uW~HE7J>$B*nRCf`NTR{3P3@%5{kt~-MYAbs!E2a6l$AR=pNLMN=_JSgjRrd7 zBwAU~2Ccj2nkwoJBvJYxfXm+B+YvU<7fIuL8_`UqOl!#q90Y^lFTrVB#v` zr*a)a1zI==>{9c^%;lcfC%QGQxjFI+nxhmJkFbD=d%9pypfdq~?BbtZhN)GS5>xIS z7u}2FWX<5FVKn+#H97xWS*%MdC+gaW3Ti#hgKz}J+F6#m1HDE`6v>fzAoCZ5l9yCAd^-$L99+^=&OZyf}FYMV?aef+SU_@EhyocArJR8ndWp+4zG| zzB4#+>fGkwI}77NI}#DA%Q}g&*(J}P{EK+j<=6j~a3a;(ng040u6$qBD|yo_)ck>f zlCF7srJ+Dyv3TwK3YYSh2lmy%3iDY$Q`D1gckdf>{|5kHj|)=M3$!=fB2H!Y44!rN zjC}a9fscOt_m>B8e*aU1#(Ej`JBYK48^&;?WVlk>BL- zFv>2@MPZ~P|D6cG!V&s^R3^k8w3Ao34So$h8hfQy89eek#DCDrpvfxq=HvemYmjvb zU`U-*dFkL%T`y@9>=t3rw6K&j{vV+IEdSiYIhCny0({6emw`AvX*l_KlWLBp%<3gD+~(gisZ*q7<6ju_QG=e zt=^=v!v7Fy7Fws`WLqw9r&k~?Ev>XLmUEOK=L(qWuO)1RvZtnHR?cdl0vz<2Pqj4; zO1aMVePPh2_sbgm_&#J_IY)ao=|`t!x_i^f8(8`d7-bw6HdAa1OGA6~KMGEx(R!Xw*Pio?n zg*{aJ6o;9;eQwc6MLZ_0l_VLi;;8wNFFBd;9Xo7kRI`-u*T1Dnubd$k8&K-DZb^(8 z1aFLX)1{dq3AEh!jbaX6VdX&?cPnr2<|9_X+@xVd=Hrq~I6nH>S0{y7lzQWCPC8~% z=AHXs=%X8Vk+q$S7@Ai#TUIo`h&ss?i8`yZaZt%iQLT)JfCQ{Q@9C z&^`7F$&9nH&pGP(y_%Cy6S6!!X*F#x&$&%*dresJ*E*v z4#mj;W>a&ce7Hx;&JLz1Qq@>IXHx?@^cf9P`WWf}CePoo6D zd!r`4N}TVkO$aaN$+3DL_r)rdibvP^L^caeH#d5mb%t9nvpZoBV8Ozp9-MBskKD}o zMo)(Igu2B=zyJCAg=wSyZNzREIhlCjJ<6?jAF=0ETV%27 z8hos&bkB%(_^Mnd`bkU({G_ADLFMZ~i@&RqOWl;qb17vmI7GRZ^REbX8dK1v98GQm z0-;~)3M7-4bMi8srZI0oukOj5X}crY5otAyNmnp`QZw@s`=|!tf+c>$53uTgb;5=) zi#iiyOnEjnV_n==Df@plZM)$LY1b&4o)gC{&_!Qu8}N7 zLp0KhA|@v>?Gf~iTJLSL(wz@@)Fo=3E!o9h0Vgw+qVmsZWjfdrlecR0H!5)6g!2?x zdr1+l^=Iv|4k$)NBA*y|C9>OBi>9X8e&Oc)QoUs2usrBZe_5}NYETFpKaIT3t2L?E zmHgb3#@iG9O$egt5|PVFOZ!DGuCx3qtmwSg8`;l3Zyu_LQCf zn*yibE#k0V7mn{CA50XBw%19v)yk)APSm>w z@E_c=SJ}S*k1V!|Skf41_zjArwEK64l@1C{nooKi{tXvjjybnbA2dcHaNz_YONqX$ z^EPo8YT9_lZ#Mq^ak#s>Z0}Y2EP~zn$k{#aGbDMbHg`Y;B!Tl5ypjJvq|(+zPd2~b zNS-l}m1~5;6WoTmteujD)*BVlo^TSfx~OrDfu{An4Wf1BhH8Z)P99YSY!h+Mwa1VA z+0^dvxO%^51OYjClIBkHT$Vr?2pvxpQYEJ*@rU-XW(8bXa?6a)Iz+nOB)d0oUA^~r zy>-H-#8wkop~3k~W<}1Y;_9VK@ee%XLWqxnTdnzwkm73P<%ill-WTmjjCtx;q6+}? zXe`U$q2QzP=$d6MW+;Czfntu%+1>YX1gV_ z>=A)UH5ou?Y?PxP8C7X@WMwv-u87`g{t)u$_%yv-={m@TF* z2`^Fq@}{roGv1_kY|row8@0(EF@Wf4&1*v*E{%hX{85rdyNPQOS-W^c)r`R5fiY$+ z)+hyl_Y`t35mVMVq=Kai;T~Ty7T|=-(AS#AE|w&Nj`WxqLE{QT9C2#SIZVM~{JQ=o zMZ4qIWfkg?Lx5N>e;Mm6%a7bJp=ZvZ^=1zfVSN_SLQyePlGiux8G?gg2`b4Hkb_t#^HnmR6@y&BOL*C&ghSIfc~x ze$nzaTi0h5(uk0Fwy7@L&#QQ3r?F$(ES%b|WJe(^H`RH@ju$>EcL=BvR`eQs&r{Dh zxl6k-b3Wh&nCCkjPpIhB{w89}l}L0|SS|Tgd?V<#N^3Rce2^xKzD(peW0l~kWutbjd7Vqx=A4Avm;HVqnRt)?AIzE{ z*a1)l&dCl$g$9XX5CIeu`JqYIl2EnxBg(GH+r75$;A23EPIVg)2)=)EQ1i`%5I9Qp zl5NTc9_ORu`GU)rh|hNv#Wfsp_LnyCv;ZdA29W6z8QikLK=y0=BucGz*RX#=W=~Rb zXAU}>;e?i$iQwi1qWflu#%rSY(Q@*&%i=tB7a;JmCH=?cdk-xyj@k2hZNAzgt2EPw zxkHub@wT(-m&u9R=q{#->nAO=-U}UIM)=ub9JK!P-pvp z%Cak5&npTX&cJ={NptU36?g&bX{XdO^#^_F=FgByHRF)T0qD|X*(EM@X!NE_v%SJC z2e}%N6onE?TOx%Mnnx@7+JfASJPHHe`{1(waKLwvBL&ssSI^i((0B$LmJVli5LWB-;-DZ2w8|yC=}d<|d7B^n zXIppw@w_gdog)!;d>cO*-98@_0jzUedWX6Vm$cyStK~==zVMy-!qJg?fN^fc zYn}}KwbJ41~;i2O@e znO62vh-YnO7<9JJYD*wqrgq$wzPf}hLv`bJ(GxJU5d7g(%sUwBf~`pFqUreKg`VR_ zTbwK<-jMAq_}*K`YKAL8*HLv!0a|T;kkc8ltdG;xuO{ovC9;OC6baka>RD)4OQS8V z9%p(v3GMJ1VJy8tQ#^@>bBXO90liPfs0@x%9=wEEA{6ryGXlo8Oy3AC*I zVt5_ppF~h+wfmGFzI#ia*#V6#ztu3U4n zM?hvBby-4mTRAAXay862#YxHU_Sd$vgZ5wYS}eoDYSXStCF4Ux?z-MFXXgWq{V3d~ zH-gRV65EE`jBfhZB9d%6>mWKw>*vDq`0+&h8!|wC>t3~*V8Pm&(J%7^;M#}q&8X$; zqI>N=%R0A)oVTWuG<4##%}y@=?mnXReYWSl-P64oCyXdBW)R5-4I<-P}*KIgfrM+-(V)PzcI zY=gC(n4Lkp%$X#*tsqUwqHtU64bg%@DclM^C7==32(6u<{7Y0#rBT#S!3FY?KJA_% zAYio(yD;3G(jg>a)EhChB5Uhtt?~#dghVkTpZ6+i3e%GFw<5$kfDs+r`zk+|#jP}a zZOI||V=0MXKK*ARv&QwrI{??UK2-;w(pA=ELd2>H?Ra1wcl+o1d6<*lzQZawU6PVC zR+HSJeE<ssK`-SO4$qw(dva3k>#4Ivh$;FgvHV&`aJvPHIB7lxIXO1C-i!GI9w?03Ii{`6hc_^<_()Dp@w&#~+Ggc%oihf*HBC`5 z%nN~o9PfHplfGd$^%5E8HBmZYwGd>Fuv0emvhckap=>7Wm5C*YGYKpL^2@|BKI}W9 z2ZztG-`EN3VUE58zx!2VS31cNk-0s%JA%`ws^8G4icXuQ8~Ags3%gOGzvGouald8W zkUJ1Zwl$GnzrZr^3x&Wp_9n32uJ_**2If(mB^e=A8o1Psh`r8*pUtzxC>?aHhWpU- z0w1@PyH33y+mXrgw3WORPX4>?kux#*QD)0uY;m+AZd%bYv6ez@Q9m!R4t|-wEJ9Z4 zyBr#HZ5ete5h0pg2gdQ4(Xgmp>^&RwR+3K;ZP)&`%-bIdnwv|rDNL$NflB>eI7DxYh?oKf41*B!qXMa3>L%DxD zn@C=*Fz|QLKasRmbEe0wi^ct*!=93Vj^pkt>&C&=Zgh1cl+6(Fq`d6cNV5l)JTdY4 zfD7fAqagqGTZS?b0Hb4vVUOlPdfL>$zyU3Ni_TfPUD*wS6VoSvp!Suvz<&`kY2K#E z{<(E-=C=}|$&i6EpC776E|t_dXEV8`Ee7cR@lJaD7mg?Fv{4DQ-Xls#-{Qz{=2)07 zPBzVRo7g&87~7LWbB-8PU0RYb)yo3=bA-%+;AX zbEDqH;IXR_`bW+d83BHh_k^l7{9qgGmblTfQ zpE4IkOQ|v@L7OhMTMh)x)9IUnA}ZMsPC(A>(NjGZ+i%`2JMf^Kg;- z6L|!CiVt@%ny2j;@AWb{rvvaTD@d4*siBR&$l4Knd(bZv-oRkbrBL@F(J!{WM7Nj3 zDChqL3Bl~5YJWD-lyoc;WuD{^2U|3}N7com*K(d_%b`H*EG#8+TAyMuCUH| zJWue!=I06zf9}p!(MdBKrdoa53j<;B0!O(Xli@4p;mP^}PfJ@<%`PWyYx+MS^7qrc zN2Ktynx%;4{jvC>{R2I^?qeeS_cw_A)>Saw1uu9DZHE%V7Vxz1*c#M2^DTD@DEQ2r z4~w+#f0dK8w%i%j^QOz6Eg01ch$q!oPj_0Dc6wiXaDvkfviBWN&p!T=cXhlr$xpQ5wmJ=u(cByOzNXZKeKhoe!OIa;RbgaX)p?BpnDu?tzP8e zFV|*{4_ve}Q}Pb)43?H?S-S>S5#^O{1^+m{NU#l1H}%HTN!4u^0O+=j80Kp~?RDYb z0d@vL;9TmG2Zwu!PCl*32}bUseP|sJ`y3`V%7yUEhbSV8KkZx@t_RDvlpgk*PD>9N zAexrHFd?`fzu9{>(HD>M4-S*VB_{wkpKf5fK^oVQL1<4X*M}@0&fHY&qiud*mwNm1 z^?m&U;dTY8;Pp7xM?W1O*?(B{PJEqC9bCcS0O7^1%s#3pXtuC$Z5mB^ zW54I9((p^+d6P4@$8Y%*_WHx64?k(=YSWw?W9*)pI+|k{#{yp`LG;j%Ob6vh^G`sI z6Vt6XYP){c4;QCp&$Q9q3Pp3jS$wEVj%;<)beUReGFW_5&bCjaxgj}-L-ussprP?v^qJ8f7c&3vhx%Y?{7GftI@uZWaZxrJam7p zfdJV_q<3``CV29*#z6_bS`Owl z^eav&F=uZPKx(TmWOVMttmOc6gdh)7+8#1ePuA-bg~T0q(rn$&LFr3fO*jE!gEz)TXF$(<$CZ*IRrad zX*x+}IMx}~_sb3PTFjwxh=Yp~f!5R>%v?Y9(OKMj?JRcyLHVn&{tXM$l3EJad*(sz z7kbn>#wW|vX36pnr@p;y=?xQaJc%;g8u0Z!L^-8-$tVL)c|+@W91bOHMn`W>jH34a z9b-CVbi|(25Sd-nlAD4hL=JLLMYO`yjXxn)uu{GZQBQ+tAj4Wa$ zxh2b|anNk(UJ0!OEVw@0NE3qUgFRt`>l5A>sHGwLzG~A3E_Njfr}3{ht2;FXcgI?y z>Iu=#ZZ$W-v1hP*CKy)@NR}`w3zmM2kJL+!9(*{wE)JS#^PaSo(U>w2%ifKhtl4Gi zr%+GVAvbf({#}#nBOa)!g3D%RJf>~AIA_5)gHKrJcy-{b_;G5w0K7V z*lE`+BES&u2r!(~-)(b!oD!YgIw*FlL&JBIt9`bY3zl)3S$M}Q)Kh>2n?s14u2lD} z94tgS&dzf%LN;Q4CsRb5Jr6Uc{e|-K4sQ^1ynz#cMGJd={MN&QF>X_IZPZrr>v!${C2&1tFfsdn%j zs)mO3J~eNCJSI$Si`*afB>o@_gzmc!Yy(T4^#`q4R~%PL`=!26i%D2~7va*KB^#r0 z=+!pt_@+Z7lI971H{-;#vf|m?a!mcis9MTxnGj;5)9=}aearUF*$57S<9tS*dWFFX zlXek{bofQKe(cPt4PRS3xqhMS=%QJFJFxA}{pxv&&of?j70D-9#IVSKvd=O~b)mpW z9_SMc{fF_9>$n&&a?Q{dn$?D~YuvC+JDAWooW+=}OD88rh$L*xm+gn^U84f6Fc>)xFb=#hM-Fp!%7Z> z$8a#YTlyX|1Q^sslbZ2wAb@TKDGmRYyM~rT7GnP77mOwZNUZRYdXKHMMzC?3U%#gP zF^=Or(SDWVGG$Eo6!{;>PgzZ2CH_v9JLvScta+6TKdc|`o>c+XXaCPJvURDCZ;C|z z(6-}^bw?i`l&5ej0A{v!LXI!qDzQS%g2Yd2G`jwvQ8bM&a9jXtF@NFcDK|Cw<&&?X zjI|BUo*Ax7Z-rlPbE*BCDlnmR#QIP4SNu&KWBJmV{6E&1p)UU{k-N zJ>$D9b6BZHXa|P((s8!Q$tO&Qx~@KymA&|G;@mba4foqugYJ8zog>~mcq1qdU1{oS zPwtk10P$C)96OI9C#T8elEK<1%tO_nbvNHQMep?o_CAbm8`DE$EjMRPi=oS`aGt?q zv`^?WBZn=%qwvrcZoj`T zcfNR!L1Pd6M$#~27QGG&W~eeQ)E8_Ff7Q0Pb_5C|nKQzKYPq2i_wu~T=ihW%y)qIs zm^Xw#zqVDD!Gr$0r#SyD8OqyLCi?PqQzpAQYQq<8q-@(CIJU1#sH{~uT|l?UVmHTA z3{hnUr8e-Ii8L%37eNs+2i681<)admDmua&vw@z%M>;9tN|y;7yBo3?)aO5IeOq4U zK>{1Iw?`ZKR|ogGyJe6F!0trtZ(X|tKvANgZ-#WoR>G8pd1<#k@9K|tDXE#6t8W^W zTnC1aj-8;|{9V-!f1JotB}##zW%a|W(?bpgz0BuN5aw9g*U4 z68b_a3n%%O>q9qP<*cC)edNBgmz87DClVpxSIJN5`*LJ#88mz#3q?JAn7)>pVw4K}%n}aO8emTy1g7mAA zi7xo6ZTDfZuTKf?oXBd^eE8#IY@0j#jO0z*R-evn&WZMB4(w;Iu?eS%c5+6u8uk>H z&q*YQw8-m;>5~v|xlm9TT@@Y+$FH^Vv~AbnFn{`-w&w5R;9E_lwmU<-7s zd87WlT66SE#Mve`uo;8@w9?zj}q%=&V`w%e+3i+-nIv< zE_sx*R0i~&8La-p4dDxMqgw~lyZUIVarEEZqR0RqQPIGUK!ob6)p(vz)N`yX7*Bw&wi|LFLfJ2N117+3|{MbuRobO_B|^_M*#Yqk840D zail#EFcSpu0LZ`m;e+z5b-(@n1V1l_tbDSP#d7jr4)zs#xd!fJIY(|pX*HoQ?%BKK zGEU_lobsH?vQ=m77f0$vtOQL|jMQ9m9yXfnuk9$v$q~#ATymXhsyAc+55ErabD$;f zN=U9lIy$5yp{);iUrE_C4bMEfvSK?Bi4W_y-()-CLO@GxQa*@$YpQt(6=-=nMBa`n zO_-4%mfSu$AmGdFJ;EK1%6$oc%*^JfY7l*9?i^H_KTz8#tKo_Ex_71$a{*K%YTb&z zlQJzR=QirzrO@k{d1Txf?DKC(--5?I<4{*2RaH+~SMSRLn%x!9-mQ#SZ#Y>s+;Zqy zzNe}tR3382(%d{vHsb_;x*59^gZpon;TJyDe!Ir{P`j1)6uBrb`eFRbm#uKG_UwRt zr8OUod8LihDzbayC~Ju4Lqd_b40eU@e|k&Bz~I4%%O8Vb(xI3Q+RLM)D80D$zgcS& zkfX&l{qbFcYu11H`rj!jAsmKrZ0oMmwi7hXw}1J>FJfW`)a?J~qtX*x!vTNgdxc2& zzqh#iD14SLd1V`^UZfGe>xR7kvmQe@24tMTDBT8gO<-vma&vOjO?&(p-=X{8@f|;k z^_rr#t2oAHP4 zOnZTlt9`r{*(41QYjQ-lcIc(AG~?BNXIW2etq{G(TGZ7h@>R7k)AMP}*)XB`^o);| z_(i3DL1Oy9;7Pc&WufCI8vwBwxaCgW6ao(yCx8DOdME=P&c%RruF>ON(W!e`^^-U& zaKzLSbFORRpT9!g`y+L!MK|SMQE>BPHBtK_Ko7N><7UT}D|G;6s!%Y%hS*(`SEH=m zg91$}-tk2`wnTi@s-oo=o~n zk1q@Uq+7sBW@n2Q4A*?N*Gfv-zai%0V;Br((xPRsr_Y`&SbbR>6R(tY&JebvzBZx9 zKWc2VJ4$MwC2OoOPB98>YmfuBI(@eU3%L;waiMF+5N#s7MbMBh*g?}>&;R^}pqBja zD`p34h_IXXDL?0R0r!(yJk39g=7HWx!>|7MxI%(F^(D83{-Y5aX+)xc^kH_`{X z*{*>GP6f+k^ArEeFMZYXXJSG`6*KL&e?_ZM{3~MxF4y0v+8d1(C?%he-?4Jb=l)S(EXdPzgZ=v zX`1>k0cV?@_;10lskAT}^N=U25Jn!km0e!GiL_U;i)fQ>onxCpe!+U4nit)&1V!`^g%9*`2cEGB&p@0iFU* zNtXF!*wohZ^`&D*QZk=aE>}6ly6AW7lR6~4YG&}gmmT*rFGnmKqpyRbvV}v$6JX&f zEwX=2%HaMHgtIoQeJ zOo&%O6=sqxNX?jnGdt*u6JH+`Tdfa(!xG}O+6$ysI55BZ? zg3~*L!-GTFSFMpTcA+petwK@8mY+R&mCf7buM~H09wqkr7>MSF)b{09QNC*9F$T%M zMzWxp{60r^)VCRvXLJ^S~LQg0maK8X^t+n^rXWz5$bI;j7?)6t5f#l0q-ZI`X#w+8L*+;AIiX5x2 zT*?rR(pG;S8QJG+?HlhDt=ExT;bXFDCjd&oB<*Wd?6UbfyV5yc4^M_|aKbL7COX^% z{3Y^47G!1h|6TtSc|Ewu(XdU$Z6=+O?6p#y)2XmomSHnJr~$T1)QPvRf8V0+@;&kV zeUnwo_eAM`->W}?)ReroG3+>?BNG0aR; zZ(a{wT+2WH!0j)SDdfsfo5PH9_!;P^V85qjp{``~$CcrYOOOcmnnLI9S%<2>`{N#_ zw|o_|>Q}}rG-&ArN>~G9<0ycSyRd?Sb=_8|{9!pmUB0c<;x(`oA%9{0L6N0+U8Ji1 zbOk3OtH^|NTS+$8Bc7LOov1jHhDC*E^!Ov2QxoXifyB8vGOzrHfx71(s}9%pzggS= zoBiN^xu*#k*GTI`x9nG2^^S2@g_d_U%Rd`DTKJ|hDD(B}JtjMt{R91(C{5Ng@2TEF zg*G+e#F*^d5;YA&L)R{!N{{y|?D5eNW<*hce3~0-QEX9svV+YhS?!bzWs zpRCTsnimzjlwX90f_j5oc6J!U<&Pwr{cdb#Hcqs4Hp^bNyZ=cJPQI0ZSaU3L-T&Fl zl%1i;ZI&x@>e{Wo6s=h&dFs>7_MW)?*xOWBZ9rWR^?`-+{1 z@CP$Ff^}~-1g`HCi5l9690`JK-atn#c*|S`ZC3&j?jVb%&Wv@LYjT&vnY`Zgts5-HsP?ntDVE%t!keBjk(E zZDdG3J~m2jZ`->aN;ZW0wT00E$EK)A?z^abJIv*9d|u+tPhETP$nQC*)AUF^bk`Mp z{T@>tMfgOF?C+c$wj~cJnAF@nLbjgV?l!UAt!uvPZidFh1_j5943FG4lcC6UtcZTx%Wsa(1AkbE-7}= zv%y?KG}wFcH*QPM=r|BTJZqAIpBJmT$y*hClUtlx_3`Y!pW;V95%3uY!6 zCNRlq0rJ%D6(IJMitpkp3;SDsfp`Z`2684sbW8lgiSKi51_pP$e@C4E^Te}t6?b%l zcp+Ftdg1vGyX}MGpuc9O&+TWeFwVJeyy>2PgM=l1jcSP;OeXNeYZ0 z1F0-n&mOYeY}n>k{AT1vk8&sJ>Hw9I!G-bNaf6W??ah<)mj@3D&N2vm-Qxbj!qV^V z7kv-!Q>JnT8*2clqwR-_m{DP~c=>p#LtLpRb0j*$2HX~*pQM@QrRc>ab(H^+{gSOI zhPK4kt{3Ypw#>iMC0!}fJL4W!`@vylA2K(?#dBe~bQvGqmE@Euj8ZezLYO60;#U2P z4-O!|i<HibKT7SwQHyOKd-gNY8S zKCtKV6FVAw%n{Nl;E+zeSIX|}c6ji_uACV-9S}a7vGGRTk{cb+0iA^V5(#EAAOHM@ zUi{>`T176^IJ}l`NY5$vK(-ecbG}E#WIn)rcU6#E(=2LU@N(Ve#Z+$RTr>)ny_5~j zy1{kPC@rRixWDJV*#t(o+jw1sA6rlkH;1&}N9hqcY4`^ye?P{+mZyYImAFp4sPntqW8Q0|0 zw4OWj>QJ4jhc2kBB06_`5bcogWN)1K?wQT6waEKgDSnaT+Hm7c_QV?rne#T+*BX6Ws(Ut!B;EmJB zf7fP?9z9b3+iSDUI_$y|QlkC+xBs5_tt3{ilk$q<7Ywl!!5T#4`c~)aY;EnNH8o*O z8e#tS#_79I>^x9mnU z_!D<`#{nD(kPbRAO9@Erp?6wJfYM4}TlUlIo2l}`ryj4_slwL3{muB=k8L@f{p%}- z_n2tZd(DcLae78V1rOmJONrYCW zgFz2P!_rRP7UtzROHp=tudZLd?r!e!;+RWIb=!BXBK82@4l17CB6L#QPUePX5sfxI zwfK(27LXWYb90YTS&zEt#FG}e(;eV8UIAfbYiicgygq#P`gI$a_E7HL$`2Z+|cv{qtPD61ylDmeD*>f@qf2m!cE0r-u9!8b( z%IF-tMmFmt0|4*Nnh+li?d%I|VV+sP;HBb3_$I4{@LCB|;TE>=3ekxO^0OAp$1g-; zAqZ!B9e_heNJ_FJHsGvoIS-p6G7DKe=dPoKkgUCW2s^*ityCVGA#Yi>JRC0Gih6RZ z=@wUdtq$`P|UZs4kWgF92l=<^3kfKDD#&Rr2MvCc|<3@^8f4zYbMiF`&k z0hP-x6&#zcs$6XwfZo~f#Lu7+ndgFLntweUJ)LbCg>eJd<*@tA?2(j&G8vGt2^N~P zJU_aHCC`m+Ui?G?fI&AkHn#6N6+6jw9Zk1yi5U+y%wbb&B3F9^jhm#1R#BQokLo3S zf|T9*e>vUc)u?caBU!aZwy*$dUFUQkE4_Bw3Qjh4$xW1sa!Dx<@JPA;KE#vK+ZI#= z)N=d}AnOa96$jRtMO6#&Dbh7i@40jvoqKWz5v#K|`U+h*G4|`&cy<3;Ep>V`uT-mJ zexkaaen~C7ZN~sm_9dbm9Y&x2_2yg*);=jAx)5M*$fwi@~X3jvEXIlu& zS-<;Wo|wJxGqW+F-!2W+>3DKq2EKzFzIp2RmY|V%%Ckaga2wR%u6Z-MVCQJv)Yq7} zIDC`f&UbFI)>@AZ3^w07l{&fKWvGrtE6g;k35{?cB%gaPRaRAp%{fPm#||6@Jq1Kv zEQs)46mXeFFoPrLL8yJ5Q%ndvBLp7T^OzV=>VuFCleiec{EBar*S8OfS$d}g@miOCr1L}DFwB~g1ocX7@MMriU$gq+c8CjI zgW0Jlgnp>}G2{gW2A%6u!nBWWHNDXEYvhXqNc)JX^^R#n{Q_fk{{_$clv1zS73MT@ z*y&o28wQu1ZJ;FP)zmXbv{Lcb+EzyYRbYF2^_~Ca0a%sbPFYh`cDInl`|I$PWnk`c z>Y2Xq8M9W~d1iB5jOvaL%xt z0cDJ21tUG*&wEifdzbyj(^(CXcGwO2P44g=FPkSnX0e&}xmF>_%}~P!)!GDO268P{ zmlaCv5`=Zlo_vt~y#Ot4xD5f_oVNB#IG=d?k1D|Yu!PV*Yspjx|JcSSYdZ{~6nBG7 zfNAf}{~&%{)rb+_oG|e52^`q+3*|c&&Lv(v<(`$ z?)$qd0?TMc@M*n`V{o6zXFMp=aLwe2vhSgee6eZ;bk_fF`aJ8PP^L~A+k@NDp@Xx>*X%g3tbI{-SZlIBZ0X&)S5XuZXk4hBJXX3)>EQF z4&_TrEbhMOv}5gcRLG^=6J8Wit%H`uS1_x|!lD}2M06)Iy~3!U8x?30-fHy=vK{Zh zhmhLV#pwZ4R|Ru!YeZRz4YZy^R?kJM+_sNov^&+u>%VW#jl-mTtaN-yF`gvN-|xLB zO1Tb-nhp^dFgaOHg|b)OtrnlPdUO!^6C$Vl;!_{>kGe&swq(wXLTeHpaY|b4jS^rlhDyMH~<0-RI-Er4fP>OJ3tXB1yMfqWkuj@iA0bYJ%A_MG{shgUnl{!>1$?9Df}S2i*MJ z)D1|D>esWv)UwAtZoREc5scrV7l7zG)AQG%Upb3KJzw&bJ^Sx0l?!l2ny=x`(27iO z9|PZ{81$ByrEQarG)Q97ku6bD{!M{15Ul*3gxl+fJ)$SxI`&7LR2v-}mDSD)T)1u! zpDUl_;c`DnT{n1ClkG2;cW<$G#Obzsvv@ZoyGl_u16tBwlG&YidE)K8b+N~EMp{=x z{a|y(V!&w_|E$MBwW60TIsxme)KQvIiAtwL3Knk|CndmPNMf`RN44t5M-=o&KeX74 zU36;n6NFC&^z^X%Aq_1F`O8Dx$e2*8+}X!IN8k64cF2Igqk7W=k3MS&Iprxk80dJ* zFE}^*na3YUoKPCFl9O<t$Ohf(<|t1R)C4~ zTz|&eyyZH2kJ2=$^9TH|?<6Y>dwG9E*YUGyY9Fu#^1t4kGC1 z!~P;lYZaL{GnP0}U&`L7qJ ziy#cnk67;4oysJ*4wTm~$e%qWF`RJ34Ubc+y*7ZWcO+cQ5&nr2ag{uXXz^+Jb9%0I zq5Vlb(@1|3b_XHyqsl|0zRX=>J>~>=xLT~cKD3#d9KEobHL-Fx@$Ecn%y9Zacho!u zRq-cep|_5$(_ibJ71-3}zv#b2Z3-h$5LlLAeEJ}%oQVw+*tLs>fFndE@~QS*56n!g znU3zXSAg%TV~dF!nY~zLZa-)3l0P)ljJQ@*wZg_K#`7YN_k(<<=Um+}&SK@V$31x4ji59NyqnD>&wa$;mdw~ABE=@&Q z2{otq^bUEf))%^rrb@fbcy$%F6i8JL7&!f4ITG^9=ii*kk&YWDDL_u{R4eJ{_!87B zRQIJQ)v5;=Sm~v|9WM7!Y@n06OU%xAfl$}ekS*Yqo~fLUSFEl^<`Km4Up~!7A&ZY+ z>#+4lW1X;;X6sc3@jrdVS0I1ht9U$=D?Y9Mc+9mt8okovhMrsAk5otvuvA{X2n=7@ zk^pZj_7yApfrwWar9>(rydbQ~Qoi%OpNL{o*x~F$c{J>SvhG*;VKSM&cB}_IZu`^c zX?q!J@`^0UkWnToZIm-NLjMLt!3v*y&XMm2Dl;BuQ{f?HiL>&LHD-t(IvlBC`l=(X zvmbg6Jvc+LXezsjq-q)$soNK?c+a!D_zjP)o2q&NLKILO1Qhs_BMgr+hjCJ_NJ8BI zh?=+{URa`kh>37|QubL^f115E|1eSl)m&b0<*@B`L}{HA16&xXqXrX9K&is|Ye%ZP z_kL)$fUcKLc4?RNSCFO?!n!M#>#ffeeYM)BEy8{-JVH%aw@md9tc%E4BUG4~AK06s zaoD}S$kB1K+P6=5x@Q*5QcHg`r{2>^y>D6?_7~He^J;y7sRo+$F;v&GXYZ_T(nMJ zS&ZdwOU%?KMWa{69_cg94KzE%{Yl#aH=uj(wF-mc)fWJFhK`&$22#@n0j|0c@+#A)-txR%HaDjAg`HJP)Xt8*Su6b+CQ>Ir$GHsr7AX|(rj?hV zqaN=`*Y;7XV!xvn9be9WO3F-5x>}bX_JqIv{^)phOV9r7x9`4prMI3&#mujwg(@a) zeOyjqm3}q|Jo&rcWOdp2JF1&SaD8_LFF;J9*{ORj=0x3bUmac6N%FP@pA|FMulc;b z#73!V9xH8#gW*%HYB=46^TVks z>+&xgp74KM`~3bO(a_MDU0+W9)yR5RmRAJoU%7iq=8paN@N#(}rNZ7B=~8<3AS>YE%8dZE$O$o<)6|k;`J4%;G(BCj=$8YWA=zI+t2t!kQSj4i>t0|tHUMz z0%38HzIlBwq)6WAmH69*hy-r@b+%lWy?;tB00ia1;Kn+IG#V7ZhqB<&E1LM8;*UM$ zXF;DH7pNA`&dfcnw&HhI7Ge3n!WTdAX1AZg1=JjksmXmov0=9Q#2S*?~&|1eJ zrw0(#e9YSQ_JHey#6lg#_i*-Cr;^lnDmmI#m5(lmr&=DZcdIbeoP;)2gY9>t^ZbJ0 zD$zk*bq=4vL%TF}1F;yxQS7V>IHzjpjfrjIycHdW=o4+YSNk>N40-9@f1R^H}*bWkJCqN(A0G+~O1=6Kl=TQ|w>IYu~2k{4xE4xhJ2+5#y;E1Cl`yPv(aa#(ETf^tnj`k>xvU(2a z1j>t>;;Nutj@1J#zQqXY6-Bz0?x}FM!kuGQlxHn#b>P*Q{vV73Kp96x zA4=}(q&R7fOR*RobcMI#MdvXhcEh#s+r94H-|izFU(1!XnU8+nbwdd%1h-!QQ_i%| z^rI17DPYXHva{^c_lCBl;GGk!82o{toNHmxXB4Fm!tVg5|D2BcQS0?#%U-1Xc(U|0 z@^;3}i?a$-<4%HKo$|kO2%;Jm&x!jMLX*qv6EEh$GpV zh65<0$;0x_$ByMdES^IQ6>GcdeqZ@Gkv98$r+ESB``yZ0NWoKOc}_FsAsDECZw0v1 zUhihskn^3%Bd^<++;y& zVOPin?|R^0&C@?0lK<6FUZL+a;phDJy4Cahax{T;lG#}9FRNU(=$k2Zx?vT9j&R*g zl1uyjLQP8vee@aCh(L69EiNCV8g*zi9RSa&37}ak>nI(c!YuzOL2vlo!GM!M(oGHAeu4%(g-6f`weLgJ)2S%F0~k>{IU+SfL*_=@9o8 zF(gM}NjCUnj=Ha!S1i{r^Kc^Hi8AaZk8&`6!O&iTV2tGbL`Md$!4A*Dx>@BXT^3a07@Pxp*`X0ti1-D{nd zI2*19KY2*X(Xl*IdQoE^yA}asS!vSMfeZ3S_=J5KiQ229w|ckh3Zb{L6MPBdT`t%9by43Y zL0zY-)!siiw<)z{(6UAw2#2{_gm!UTokNirrF*$#-wsY->LMaaMiMe|mUNCG7w1`> zkNdt|)|}D^^Ytr*;~WBm?YwbnEz>?A8B6hkA|CnFe=X5BOrLsav1fA%OA_c`R^{A=9)y(hgGes%!Vf zlRl0@uAxuWtK*xrWPD1rPO?M0?XOR>lFANVy@-sUMDSj;gIC10~?cu05;BN0`2zZgbT4A-d?=$%f z_%ep>J(^lxt_v+#&=R>SxM^orW_wEFqE&87EY?w>5?3@THxp%syLTeg$-t}x6dz=Z zT~1^9D6hS!0r=wL%$)3w=Q746V&=vjlRb{PPAjMZPx@)ABCF?-VmKp7KZait)>m%{LjblIz7*0JYE95XS+r6etjLXT%DXbUDt3T3RnGlt``b`e> zN!N1DCX=Y?3rul~rJ&m@^`V`dT&?Gm-M{@XbYT8mEc`P+je|VnEejIfS#tm@NUK$@ zNgpOo?FP3uiXdophoE`B;aRKNllQ&XhNflQOpgXw7d9gRR?&}3`Xm>OkC_#U)IW)K zsJoI5ILleM37vXR@;li6s>x#&BatA95kn zoX?ig-FH#W9rXGrxSDC=0rplSf1KDHyz%9s;P+nG4H_@kOO~aFHGs2nMC~4zbd400 zc|zsRm6=^C@B{USL23%uT5?iQ<{G^g?L>PzLClHxeX?kD95|E36|Ff98G=OajrBD> zYR-B0pO4=EoDZ&AF$BRUeYflM=pGAD+r)ml*TKtm+xav^drdd~gJ;$@u=$dY??N{) ztlIoN$N#QZS9iY(y$UEV5SRZ)J;r~8h;1BhBKV*4`M*v4_}=XOFT;G-|1E#4#x+K~ z%muet^RWytfcg*SfS&0Sw1lH+S5RkieCx=i3^UY&+~3*Qs~xBrggP@iU2!B?+>;pJ z7QRnmAstHG1ewJO{@rk}e{b7&V(t3q^LrctP^bYxDQtBnYn$Dfel%?0&z!XmiBAx=SxW0@kIkzA|60L``sZ=K3xXa91ac68BC$ z8qFHA*WxIz1oW-;R89PF@tLg;1{X$~gO7gVr@!!sgk?2IM@+xYcI|wK;(oQ+Bk<_9 zk+NrAW#!AJjdQ!#s^Pd;ATU(M+oN&;ccE00N@veTX{Y)5>_fuzwUjU$j_C#WtPza>^8gytKFj5` z229A}i5<9OH8A$xPrE}A+PfQq0+;LcUGU?R5igG)+xWh`)iaN5N{34Zj2R4eLjRcH zdP-7{@w<%p6cTJ+*um)IBHbyvWEn!C>dznajsW9jt&S?K$EKHAy!hDNvrdc@Ryq*B zOd*FuvST?jy{3n$7b~?1U+Z2^GMq|X%vY~-hcq~$px@qW6)aW!R=+VGzqFe-*9@e;ga~nql>!Bo z@vhl`Nq*}dR%eP0VIqrIx8u^rJEOC%`HVVuq+_LYFWeG3rK{g^RJ|)ni+KM013wGE zf0F2u-M%8o;OUgeXmtZspDFiwzDcK+{y0U#kLGAWd6C|yip$NhPpy$!435uOPUQ)^ z8DA;WQ{z*yYrT0tMf1-p%rjgHGor(Mq_iEd9y~z#YkI{w?fXe26Qoa>d_ky1zytbCEZG4smQ* zG6=^9l77C*X62%|T5cruCIy#n9^LTOtDR$02v?Kk`i0DA>NYK%SLu$rw#Hq2AP+Mf6AMdF^@&Wh; z9%S(Iy`uf88g0S~W~q&hyIlq<`p9mt5~XOE{*?wov+O0z&h+sQu)%lZEO z4y2MuG>+6@CsJ}@(RXd+KUdi?P%E$TmNC1iAAlk%c;~)H!7-V&<%Wm7+5k2}ihV-hEj_hmAMPmNbks8%-(Dz^(2;x%WN2=la?YmC zvGIeR<1CP<(?khWT9MoI_EKg$D|IJ@Qm zOWyE!=f0!KR2Zt3Iq>4`bA}rVWtzLbXe5$orbB!#xr_$}XKujQx(t1G@bn>;WMYil znn?=DOJMJjUyW`hta|w|6^`OMV|$nmM!9riq^-9$|LBl^ zz1QmOsS<8(|Isq~@x2y2=9=40)bBxf_ZLxLS~`;ZQNq@e?ze;|K1OH2X$;WEUe2Zo zGU67C=(3B-0AxaDW=5HppC8FuzsOMw9HncvTl%aTFRo7PbIs#{KfwZmj|lBhTCCzB zy0ME+c&RsY#L3Tc5t~~Fe`SW12W5#p00x7XnP;=d0mkM}+fsh}^_4}<-eS3;^raI# z;sc#c*5p=970-*f#{0E|gb>yY|3u^f%vQ%ZiNr%VIQ)g437Y5Wm$7QC22lsRX(1)6NT@=AfL)&}DQ{DhH#P_mC zW1XqHSG@viC~6=2?#`TavkT=kLugiSY{cwHTpikqRw{xTygh4|inp&El<-O0kos5^ z4-l>RNtTMu3B3Vj82ezk=phI=aQUOihxhM?M(D`2-IR?7i!X0+(uaIe?sWm$a(;w_ zRd%6`aR#{g0}GFE@H39&KV1gw$jBPjfU@`GRch*EX6XYF-9QFrfcnRc*Hp!pH9B~k zgtGH9x@&8!qN*xATp&lbyWgbJ9}CwgP4RvX_b>5h-4Ijpe5Psz63nP%7pMvl$uIjg zbk)ZVshu5cX+=euev6K%{J~|BwIOy>Gnq#$b&K#{Xajc2G#K8b*`2 z(g7wEN+l5WhKDhIHaHnGh7%fa>lIQGB{A6v#g3{PnN0IDRUk_b#3i<=I zL=@nF0DwOWBdo+yTkHk(stH;3vxn*=S7j?;mwnj)H>7Wifir2z)8-jZBnEaWEcKbr99UnA_Z{mxC@j^}Co9*w z8?U=688}(B6u#{>OHcT>``!jmd`2r%8tQdkDu{eXF|cMhoAnuQlbqF7mY;IK(oJgN z{8u4e<6JA!$B$j|72gf?G(~d>c2(33$~L{C+wyWotZ#v^9CXa7I%Ki-8I>^4CS>Cb zhy(keMn-9fJE{r|^_YnZkA6(>DEFa#=ONy73m(xFGFn(hs{0pq4f6Bm%o$1@DbQ)0 z$?ZBJ+TYp>5StTnkt}f>el?i2z-NbzvaK z`(sp8Ryq;jH}$$ccc^p1=)}5zU;wtHk?}Z>`PZ*ao9@D!9l43vfjld`9l159M{$VI z3FKP6XAUF;%a|Df1(dgJ0C)ucT_`SeqgutdC=$H;pp~hQum_U20aWQful~;|Kn=&C zcsJRNzy80coBroy)c|23$5^;$#ilBta42Z z@%1;X>1Qxhi2Xp=15pF9#P z{9!}(UjFbca$#tCjHk$uGuJQ%7)C5M9dBez)b{JY#ti%ZCvZ2Xv>?Zu zsWjc^!+Y2veFvHJBI?(d?+ep?y&3`Q>L)~pwkv&)8Iip5M1{M6H|#Ep?2lWI(2e&; z^Qv#3ey{AcmBr_lKimPHecQW}VGC(Z70E!ZT&cxE#v4!?xHwfG|E8l%F5|4i%J0I&n((@iz0jO-)YtKtM%Z>X?1c8_W@iz21a`{SnW_Vl9qT|{`K8|OYpD39hrbP+ekLI=02W}8KScOr)@ZdMz79Go!g zrSM@uHc&bf6xL^{q5z0M7KQ=m1fWUbmL$ZwE-z<&?nUpvWTxp1CJ-8D*(U*NDdQGp z#X}#DzR#}yA8bS>kaa&@?+ zQ`l!qpynv|0=e7@NYIvJz6?2^5;51!d%wGgCzUUAM=sqD)U*{&jSHA_oS>y)C^=@> zi3u0niS@)2p5_#aqYfYf_i>bR^w|ce+zkQw1pGmdOlPW+b(6>;!B$>=bL;OhWKeVG zk=KQ$l%42!uEXAJk{$ViT)ARRXt?Lr0_VJGr+XgFqp+n&ireYgjGXED7a(9E4Ko99 zJh(ZqK3LRidB#Q5oJio;Inkmrj|UzW51os%52^cToUj28E`S;0fmKA{xN=q$Y&@?f z!oB127rW!#0GqQw8z{Hj@l5*AZ@@iP#LeSs*E@abTMAC74X!+9I@!b7)y!^OiVuD^avFZA;sZJF`L?qcLllWO>#z2~3p z5{hVlbx5*q`m|Fdyy-id8%mFo=n%D!Wl|(ASif0gFFq%9SK?3Ywd#%ARC%e}_)Im6 zN}m?{33~@g=(}tEcUD;OnaugzodqydC&t%TJ3^fJ#HjeZo4~e_X+cM=iT!d8N14g^ zEiK~20Vk{8PusWxp9^z36E^OTa^orT@jSB>;K#ZHG+WWlljnZS;p2X+rEwIn z@tG?P4A|kByi__Xpy?4D{+!p7_W`yC69CyB)~?1&qFc{2AKEFwwYdjynBf^HY!R;c ztfzr@b3y2YJ2}BO-i>YvP{2Re?9;pg^ydq=y$^LlLFji<)bn_+>7`+}UbXD1C`?CN zf{+cE9^~bcH-5?2Qe1v*HF|YZ#s^&I!Y$XBe4zU$0b!gq)^7l(3NxBveG`q)tUwMM zec{o&{uoXa&Br14kD7fQy#9NF*`@O9O_kV%AN$GiiUy)@U+@ws5G=FAQ422Q*yYj) z^^xBIm;B3$1FN~9DxM-#eQ~v8g+=l?ed2@`@I)H;E!#l`w&MYfVvg!`sS!YKub~w` z3I-ZtXGkT`KCk>dY2rW&Ybo^-kq>j3e=3S#$U1t1i7<(oTfJ%cQM47eHT z?H5E|17Ia@=Rd>c{VWX$*v5a{`Ao|j(b3TygYay?yKm5+R10p~z1yFW466JLuRsO{ zo0UtnL?OKpE zWYm3{BF-C=FXnthH#U`L0h3J)_|?d>j{zEj#Gwe)DxK#&=Ych#1lKL@El^TlxT-q- z)xdM?N79;MjWZA-(`3sF5@n3=%|JV9WM-BLr2eIo?JF#Xp@BI37EMlbpi3X`E|-^C z*vSQ!CA%RTLN;*HNL7(#U-BKA=?;x)8Xjujc4%54pOi)bBtk`|whwAL^U|x~g5!E-(SkDj?ztyYsVaMV)-3IDb8vmJGtp~n-&LOd zr0xqM3_QBg0s?d_fTX*5csxUb|Nqs0dJe(?SPe<7Figo+T?OY7Ut$jPua z6@eEn4EvC&uRhAGX4d^7uqmPOj6C_?QjT?pJJdr8r!cNw%uH#Gw!zr3(|H$_lj z&(@b_zg8DZX70LtcM*^jjq#x6w9F<2Anq&iAXqDN^K770y9*%9GFCRY@2WqJYlS*? zq?#tGR=kThSj5p#*dUVUv@$&D!$%kaPes$4!1Z+yT3goS}%Sl`qiej%@d$Rx>6|I7l$t>(C2Bj zcu`DR00X%7j7Q1I^?fdzUQSbXwU|!FRBxAO+>rY>qVp>SPeP0Vbh-^d=2VXsnEBc! z^}Gb6J?Z4?ka_O8aX@`j?lR)knt0sRzdP@37B;gDP(JhmPO|%-^eDT~*@xMtxSRmI zx$+^9Kqa>izN>ZfG245IQ`-l`MP2Yc$*bV z+t2Cj*QjfgmTr^uLH+vNoUoOVp{r5RY5?_l4F7IR%;7(O3zCYf zKjINkE}fAt=2&u3!tyTFLb%;b(HPV!>i}=qRBQsf3uP|>bpU5IGm3tSa}}e`5nMd% z?L&4yW=mE+NCHKG z&J$tjh-U|S1LFFq^9OGuWzFlhD`lUIwlLVz(IBk$C-!kNZmhnGqGxcf-k!>k9ZQfc z5C3J$OJpXBvfV9)K23X8&V!-^pK+`dfnNLtWZ+I$tYYu$4j`jJgSNy9g%yU|XqP)q ziMb!!l0hbVofL3Dr0H$NOKaH2GneRaU_iNfVL9l~?S-WFQ({jjgi~k__EeWSLDk8K zM4~Bd{Kk(T?G=^?TOzrW<^|`zs{D^m zEHq6Fz|(*MorWC%yls3;qF-_T=I8OX-udtMLi|5*1e<<~JgLfNA9L+b<*VgBX%OFD zJ(QZ5V1N3(YmD+L3@(h4`FZ_P<&llkQgsY_er3BB>#t+B^FlY^BN#?H&OQEnbMwFiX8F^J&loHK9x%S!YR)qtC@3iCwFcHnQ9jsi{>~Hb)t|5fjc?JH2^7?>{e2}{}&*N3En7zafpzDB;{vjeQw&2bFv<-A04TppT0(#Hq{(v-* zwS|(&6cub}Yy~u=|3L!Ln+xYhTMA*})BwN?Vh-uk@oPx8bN0QSKF6EMEqMum*Gj`* z4SF97KdhxREsjoUfI36>NoLYr*I(i)MjrDT1;96Dv@AUyK(zoD5=cwvt43_;Lc0P7 zep}uDphI6N!L>hOZ9$c1WkCRNF9^3rJl6!!hKjUrKDs}C04wF>@Gj;AR_LYYdnF2O z>i2HI+Yg*+p=>5&hq8GKWj)mtOW=*BOtf68pQTv#RIYLN0V!1nFK<~|0tG;H9M2a~ zT+fcs<+?V$$oc_W8{1S$0hoIiu(J;RFzQ2&2e~0DD{G{61X|rEOm1`lzXU z8ki$?$#G~5g|cC1Kl7GGXwzhm+h-tkK`hp_e6)gR!hiQawBSt`;B}6!@q$E)hyg>z zm=HTkKqoqsR^V;3Bb&Twbi$`prdOD^YbdhaZyk|TP(UkzTFRKnQEy}$XTk2FSPEjF zfzfPNr!y6hQ@*eRgsQn8tvpt)f-DxpryVY>YyIRVhac9s1xP)A1}2`w(;R?-3{Z4L z-WUq}%OlRY86#55D^XMjcmq z9jLixd4Q|y4HI*hwq$-+j_?;V554TmJl~PtIr})Th%(ODyuxa|&W?mEZ3nk5+(C)$jd`e>_z*_m)$G_ySyd< z=or?1Hv6P^3(4nm>O(AS`!T@4ix)q-MatVo0tn2WfdrMaOw&sJ8`A;b6Pzp_zo7iw zi4%Uo^{MluzD3zMSIFJiGSqp(?Q-pl6Z$fhvRRf`!!GF*Ud0;!0~j*>ufrpM|AlqY z>PY(AtQAX#Vw)$p*-?qpe-C7R8^|h!nMr+fW_oq^YlS`Rbb!Jny`xax(3=bi4WUS++ovxn zvXA}U2Nbq?e>BwAx^W6JAWQiJX7%~R(N{VpG^e;TtiD7dO`M(+ zVh%|KA-C-}e3~ZO!2+fy3A14YK%J4@-@IX$k?MQY08{oL^ z_E52{xvKyOEqt1SIoaO&6iHSZW_+k{S*5vzl={9{0JhvSdTHBGro5nK$PoCB2H>W63@C&X%ATB^JNa7VRjXzy-w-2^-&4!_iPG^7&_Ut$|rA= zI!=7k zLqGPn%4$;~+`HV`?xFDNKl7LVxBh4o?F7uGsoIw*zZCK^04-N)b{Q`Fk3?*j$h{Q^ z=^c&fvz+f`qd7|)6=quZc^l*CB|`nGSHW-);m61h`8TSxE0AnIJ4WrRzHojELE^C| zGM%cGjGs(*hdwD#uRc%Z5@CdQ@D^O&#h?%k!3ao@)t9%6mEXDgG2mL15n4-Aao z{J?EfflQX@1;dS9+W*t4@Sj#>Wo~Ae6GmBoc1c*XaKJWReurT1it*^we{oGw0$&AH zNAHW0ixfB^tS_PBkO(rrleHgMm{t?Ce0jf7Iq|DYN06w{-ay%2mB+n*Oq~neClR|p zIYd(P$S?lL`|}_`Z14t`o=(Aby!r76Kwnwk=N0N}3hEkf2ue=WWsp|=%hi4_av}`} zbI)g9Dg5E9v-Bx={y|Wno`wng0%vsq~r-^*cSiF#j7&( z@*aL^`*`K9F1z!>Q1#WK_1k9iInuIw3hsV$`oC(s(r~u3w$D@-?bt@k)7maf$JpCi zW3Q2#R?*tmP-;y>Ni1m^QM6i=E>pYEc9d3=6p1ZTZ51sQTkXVFA|g_PAj12PKJ$Kh zzq}vjnGXgVXt! zW|c6DNxw;p_@0#eMM)L1WM0Ga&RW_ei+JmWG*Rq~WrBH;!ahKAYOnh6wcSWIEt&Od z!8DNoR~CI#kkU9Inqu_}_Q2&gGDk(g2cgHx_mixkuriI`wUcH7Ur#0nNJ-`nEF6N} z_Il^W9C8aroYOeGa`@08QIYefl&!ubONt^_w+DuK(Mz*5a#y{X_<4)sdfp;skVdcU zD&n;5P$O|qf;)5FrJifILb^NMA(_L+(+Ztg8tMXi<}ERI(0b%Eu#{e7Lg(~xu#}KvG0n|Sl=>=`mnKW z(OLYG9TFk)BvwiWJn3@4*U@|p5k-7jM%h7jbOBZ0hZ=QS;41PcK2w}g8?BXuD{nlq zj72Bco$>g&$G&QNk&Wsib3%?Z-x2G08q6UX#7T+ad>l0i&M|u)gK1Tb?Y;EyasrwI zG&843M0}co8n~;0Ke;Jpl}66GAkDCHzG6JLJn);N{b5pDHnm^omq3?hT@lC(QPBg^ z(y~6AI1GC&??6SNH|2)?j!zHTAPGNrs^Tc?^du(5UaH%^z@*;&q$h()W`AbRV~4fy z+6}nuTLB^-QtJi>qk?1yC6xm=i&{K_OAr0$Ic{?#zs>E)9*xom{>xBbfT1ptYd8lD za(rwY8$u-N9H`7Xe>mV0uc}JJro}lW5KjL>J?1o92So!NWj)iZ*c&sM$D>IuE;YCt z+xLk6v@xIe{bmPz?ha-Ny#^uDSmq&Ji!lnyADaHtrj^t>f6g=Q^w((=RGb^I-jOWs z@gR$9WH@%o)z{G!paOE^K10ysAkiTVWRu>lkyJE?e{lIBu`Ty>7gKTQRr$5FQ!kPJ zJ7;oH<4=$D<&&6LBOMR*5!IA*tFoU90u-M5q@3I5N+1QSo?&(dmtw@B#N%NbcbE|v{U1kbu5ZWo$E&)wK~ILj#6cf$8# zfo8)rIqyu66Q7rxujsuNpASNNB@|ULX9Fv+p9tJ<3ljsQhGm<)#iFG;CKe)mMI?Ng zkBEtx9o*^PXSc$=K2~Wv+a*8veM7oJZak1lkSh*@@MBaGuf45F79Y~Zrg@oN@^nK??avXbL!#=AIo?`psbg5BbQXPB1~b}Q0qIXT_B+7m zORP9KBg3VBavExV**UmBvh9{b-szA8{=s3_-LtJ{tnSumt5i2WtgRi$A;v&YfNoqI zi5c|eNC9&vTPlM%bE{t)Nb3FULEsB(HEJ?KChFEC6^{x6hP&Da)U)br5kTg?Th9u? z_zhbFaPCB9xlOV-^yM$wCXv}qUw!V?klevuUthvTPpBPL>mTL60i><}bqbr3jxXpL z@ww&Jc4TR)%y&(rlGaAUwR4M>y71TMjdXO5cSTK|$S9C6HPg z$U-x+eMY&XmT9d&|9ah;*zHI1q@2AY@K<2W82WhK@vef>R$TqP{UtLa543djWJr|6>3ie~<`FBRENPtX=M^6NMoYIO8U}I`jCAj3V+A*S z9_ZUKzd~z>FW05K1o)4-@$T;qogS(5ZaQU43W4-ftz4$7~L5Wn}Q&auq7g^ve20mSuv#}I5(tjSzw+bkL& zNN5NmrfxGDl;hinCyUzwD!}f!ZPs~P#V8j@4(#!7_6|xL)lC;>S~Kn18aHu_p+K6O z*`C{4V@XD^Pfu01#C8CPiF`#g!c&||+okpOz2)ird1Q{Av(&)MBwpJj^c7=wau|6b z2|4(URJ-1{yf2P3ZCQ?SV@U52AQrxSIJp26=(hDuZO72Q*icowfw}%{4dmJe6kNy{ zRz+_wI+jVP#@b0(5bHv3%Q|xB&7E*=OwR?0dUHz|0b1QEgi><4XNlKu&Zz3py-+)z zUr2P4lR0dG@Wwi5Xr%k zrQ5qi&eHM{aAmU8wcrejRuh2w6mXFk!yK3s(th<3i(VflPBFy7_**dy=0u$e4#K}0 z6%3s=u-JZD-TUaEY?)NE?cW{vx^m-3y-x`sEeaoodC**cGM(+{&hHq6qf%gO;~ih5 zDQ$NFioZ}xi-prHnSu1VHL%~N6Qm7Vh?rJqj4<(3`p0Gau4@d@z4&drQLuhG#O(E=3FYwagd<*)5o9=rO&)>{O7)qGB0=cSN#E(_uAqR zY;@Zf3p<6q?nd>r3&9BH^wo=o-FN^N{$fh?4!1F42-CE$FYQUw`7T4(8gOFln0FRH zEoZRLmb%SZwcO?L5$&JL=H9$^h0lGlAB4o&CnTfGZ9Y!s!@l@Q-7(Ys=+1e{K!3oQ~{ z=x4EuMX~Xg1HC|uhqL3a;=vo+EWQXGz^m`=;!saxi6rcekaolMh~X;G_{|P`Mz-I! zR-^=2#OpNZY_4e>1fuJ^Wu`{$rfe;Dt|T;ZEaI*-%y+mGU0DK& z@NPZqld_j<;(CB*)wi9mRV?Al;=-GCy@}~cKKo0QuSwWo++M|O`Bzm z$z%xz!|S-T*q2-jP5w7EODeC21Yh}E-MkpodLcb(jB00Gg=T+v<=2I#_ARFzrF0lD zsigXj{4-(QA1~z^SHzI94#2NML!SS-0R2ZafBnrNzY;fez{G!KjPLY+lIXIR+p*gJ zBVqQB`2Y8Yw`=|&swV7;F)~LZ9V!&P2cY+A9y^#^c^9~Bw#OYslEO3lJd>06kLxuI zp&W=T(ja!9Vmh6q@l!20ZbwBI-CRrXL0q{p|DG4^&$a%@!Ng2FLr_5&XQJQ(R=bd% zaZs5<(Ie{id}{ih8!(^Yj<_4UyDzUq&(7!!guVrzaL*f<(L)*63&s zARA_g^Q&yn> zg#V6O%93Qw<`z{G<|8~~nPcd0OJHbo+A&R3gMW5MMjpI(zwAxW!RzpK$b&4)&2Nv9 z+ts&PO`voi!Sb;>g!y~>^Ph~HOsux5re*(?ZC+(o>$)G&b5gG%IAOk7sgu{l-D>7E zSpKu#6|!hgdqh!STc);`(-t*uM-S(>>tZsKA#qGwy^HAS_MqjeaA$Q)_N^g%OCAzp z^uJ5NQbTp=i-l-#EtRL_;j?J)s+GFCozuG-=8S5!LD5aKy7VH?&AT}mU&_prc|T&A zz>?ea(8{vxnXfr6JmOFP!Tt*SLj6GRN-@McVm+_)hdz4Qk9o3Is`HQ1h8d0T6}&5P z{*fKL^xu%-v44H|)G%nh5!PbZE&RBw%YlT)yHvC|RqSdo?R*ooYJfAFNOk(rQttmn dOY#NAuJFvha0%&L<+Fl~I}diS!CU(${SO!@a>)Py literal 0 HcmV?d00001 From 8cc815442175e48ff31bff8c4b89a01414db3227 Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Tue, 23 Dec 2025 13:44:48 +0800 Subject: [PATCH 5/7] Remove legacy docs and references to them This removes legacy panel and nodejs daemon docs and references to them --- content/docs/panel/0.7/configuration.mdx | 102 ------- content/docs/panel/0.7/getting-started.mdx | 256 ------------------ content/docs/panel/0.7/meta.json | 11 - content/docs/panel/0.7/troubleshooting.mdx | 178 ------------ content/docs/panel/0.7/upgrade/0-6-to-0-7.mdx | 122 --------- content/docs/panel/0.7/upgrade/0-7.mdx | 83 ------ content/docs/panel/0.7/upgrade/meta.json | 7 - content/docs/panel/0.7/upgrading.mdx | 41 --- .../panel/0.7/webserver-configuration.mdx | 241 ----------------- content/docs/panel/legacy-upgrade.mdx | 149 ---------- content/docs/panel/meta.json | 5 +- .../docs/wings/daemon-0.6/configuration.mdx | 171 ------------ content/docs/wings/daemon-0.6/installing.mdx | 211 --------------- .../wings/daemon-0.6/kernel-modifications.mdx | 84 ------ content/docs/wings/daemon-0.6/meta.json | 11 - .../docs/wings/daemon-0.6/standalone-sftp.mdx | 101 ------- .../wings/daemon-0.6/upgrade/0-4-to-0-5.mdx | 108 -------- .../wings/daemon-0.6/upgrade/0-5-to-0-6.mdx | 78 ------ content/docs/wings/daemon-0.6/upgrade/0-5.mdx | 36 --- content/docs/wings/daemon-0.6/upgrade/0-6.mdx | 50 ---- .../docs/wings/daemon-0.6/upgrade/meta.json | 9 - content/docs/wings/daemon-0.6/upgrading.mdx | 21 -- content/docs/wings/index.mdx | 13 +- 23 files changed, 3 insertions(+), 2085 deletions(-) delete mode 100644 content/docs/panel/0.7/configuration.mdx delete mode 100644 content/docs/panel/0.7/getting-started.mdx delete mode 100644 content/docs/panel/0.7/meta.json delete mode 100644 content/docs/panel/0.7/troubleshooting.mdx delete mode 100644 content/docs/panel/0.7/upgrade/0-6-to-0-7.mdx delete mode 100644 content/docs/panel/0.7/upgrade/0-7.mdx delete mode 100644 content/docs/panel/0.7/upgrade/meta.json delete mode 100644 content/docs/panel/0.7/upgrading.mdx delete mode 100644 content/docs/panel/0.7/webserver-configuration.mdx delete mode 100644 content/docs/panel/legacy-upgrade.mdx delete mode 100644 content/docs/wings/daemon-0.6/configuration.mdx delete mode 100644 content/docs/wings/daemon-0.6/installing.mdx delete mode 100644 content/docs/wings/daemon-0.6/kernel-modifications.mdx delete mode 100644 content/docs/wings/daemon-0.6/meta.json delete mode 100644 content/docs/wings/daemon-0.6/standalone-sftp.mdx delete mode 100644 content/docs/wings/daemon-0.6/upgrade/0-4-to-0-5.mdx delete mode 100644 content/docs/wings/daemon-0.6/upgrade/0-5-to-0-6.mdx delete mode 100644 content/docs/wings/daemon-0.6/upgrade/0-5.mdx delete mode 100644 content/docs/wings/daemon-0.6/upgrade/0-6.mdx delete mode 100644 content/docs/wings/daemon-0.6/upgrade/meta.json delete mode 100644 content/docs/wings/daemon-0.6/upgrading.mdx diff --git a/content/docs/panel/0.7/configuration.mdx b/content/docs/panel/0.7/configuration.mdx deleted file mode 100644 index 398da7275..000000000 --- a/content/docs/panel/0.7/configuration.mdx +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Environment Configuration -description: Configure environment settings for Pterodactyl Panel 0.7 ---- - -Pterodactyl's environment settings are configured and stored in an environment file — `.env` — located in the -installation root directory — generally `/var/www/pterodactyl`. Some of these settings are also stored in the database -and will override settings found in the environment file. - -To change this behavior you can edit the `.env` file and change the setting `APP_ENVIRONMENT_ONLY=false` to -`APP_ENVIRONMENT_ONLY=true` which will take effect the next time you refresh a page on the Panel. Generally you will -only need to do this if you severely corrupt a setting in the Panel or are deep in development with the software. - -## Reporting All Exceptions - -By default Pterodactyl only logs and reports exceptions that are, well, exceptional by nature. There are some exceptions -that we expect to occur such as authentication failures or validation issues. However, in rare instances when developing, -or even on production servers, you might need to have all exceptions logged to detect inconsistent behavior. - -To do this, simply set `APP_REPORT_ALL_EXCEPTIONS=true` in your `.env` file. You'll want to turn this off once you've -completed whatever it is you're needing the exceptions for, otherwise your logs will become very large, very quickly. - -## Client Databases - -By default Pterodactyl ships with the ability for clients to have their own per-server databases. If you wish to disable -this ability, set `PTERODACTYL_CLIENT_DATABASES_ENABLED` to be `false`. Pterodactyl also attempts to create databases -on a database host assigned to the current server's node but will use any host if one can't be found. If you would like -to force a database to be created only on a host belonging to that server's node, set `PTERODACTYL_CLIENT_DATABASES_ALLOW_RANDOM` -to be `false`. - -```bash -PTERODACTYL_CLIENT_DATABASES_ENABLED=true -PTERODACTYL_CLIENT_DATABASES_ALLOW_RANDOM=true -``` - -## Reverse Proxy Setup - -If you are planning on running Pterodactyl behind a reverse proxy, either using NGINX or because you are using -[Cloudflare's Flexible SSL](https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-mean-), -you will need to make a quick modification to the Panel to ensure things continue to work as expected. By default when -you are using these reverse proxies your Panel will not understand how to properly handle requests and you'll most likely -be unable to login, or will see security warnings in your browser console as it attempts to load insecure assets. This -is because the internal logic the Panel is using to determine how links should be generated thinks it is running over -HTTP, and not over HTTPS. - -You will need to edit the `.env` file in the Panel's root directory to contain `TRUSTED_PROXIES=*` at minimum. We -highly suggest providing a specific IP address (or comma separated list of IPs) rather than allowing `*`. For example, -if your proxy is running on the same machine as the server, chances are that something like `TRUSTED_PROXIES=127.0.0.1` -will work for you. - -### NGINX Specific Configuration - -For Pterodactyl to properly respond to an NGINX reverse proxy, the NGINX `location` config must contain the following lines: - -```nginx -proxy_set_header X-Real-IP $remote_addr; -proxy_set_header Host $host; -proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; -proxy_set_header X-Forwarded-Proto $scheme; -proxy_redirect off; -proxy_buffering off; -proxy_request_buffering off; -``` - -### Cloudflare Specific Configuration - -If you're using Cloudflare's Flexible SSL you should set `TRUSTED_PROXIES` to contain [their IP addresses](https://www.cloudflare.com/ips/). -Below is an example of how to set this. - -```bash -TRUSTED_PROXIES=103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,104.16.0.0/12,108.162.192.0/18,131.0.72.0/22,141.101.64.0/18,162.158.0.0/15,172.64.0.0/13,173.245.48.0/20,188.114.96.0/20,190.93.240.0/20,197.234.240.0/22,198.41.128.0/17 -``` - -## Increasing the Editable File Size - -By default the Panel attempts to set a reasonable limit for editing files through the web based file manager. However, -some users find it too restrictive and wish to increase the size. This is controlled by a configuration value that can -also be set using the `.env` file. The default value is `50,000` bytes but this can be increased as you see fit. - -```bash -PTERODACTYL_FILES_MAX_EDIT_SIZE=50000 -``` - -## Disable or Modify ReCaptcha - -To disable reCAPTCHA on login or password reset, simply set `RECAPTCHA_ENABLED=false` in the environment file. This -change will take effect immediately. - -### Using Your Own Keys - -Pterodactyl comes preconfigured using a public set of reCAPTCHA keys but you may wish to use your own site -specific keys. To do so, follow the instructions below. - -1. Visit [Google's reCAPTCHA Admin Console](https://www.google.com/recaptcha/admin#list). -2. Click "Register New Site" and fill in a name for your keys. -3. Choose `reCAPTCHA v2` and ensure that the option for `Invisible` is selected. -4. Include the domain that your panel is located on. -5. On the next page displayed, locate the "Site Key" and "Secret Key". In Pterodactyl's control panel click on "Settings" and then the "Advanced" tab. Enter the keys in the boxes "Site Key" and "Secret Key", respectively. - - -If you do not want reCAPTCHA to verify the domain making the validation request you can uncheck "Verify the origin of reCaptcha solution" under "Advanced Settings" after generating your key. - diff --git a/content/docs/panel/0.7/getting-started.mdx b/content/docs/panel/0.7/getting-started.mdx deleted file mode 100644 index 18a166250..000000000 --- a/content/docs/panel/0.7/getting-started.mdx +++ /dev/null @@ -1,256 +0,0 @@ ---- -title: Getting Started -description: Installation guide for Pterodactyl Panel 0.7 (End-of-Life version) ---- - - -This documentation is for **end-of-life software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Pterodactyl Panel 1.x](/panel/getting-started) in production environments. - - -Pterodactyl Panel is designed to run on your own web server. You will need to have root access to your server in order -to run and use this panel. - -This panel does not exist as a drag-and-drop service to run your servers. It is a highly complex system -requiring multiple dependencies and administrators willing to spend some time learning how to use it. If you expect -to be able to install this with no understanding of basic Linux system administration you should stop and turn -around now. - -## Picking a Server OS - -Pterodactyl runs on a wide range of operating systems, so pick whichever you are most comfortable using. - - -Pterodactyl does not support most OpenVZ systems due to incompatibilities with Docker. If you are planning on running -this software on an OpenVZ based system you will — most likely — not be successful. - - -| Operating System | Version | Supported | Notes | -| ---------------- | ------------------------------------------------------------- | :----------------: | ----------------------------------------------------------- | -| **Ubuntu** | 18.04 | ✅ | Documentation written assuming Ubuntu 18.04 as the base OS. | -| | 20.04 | ✅ | | -| **CentOS** | 7 | ✅ | Extra repos are required. | -| | 8 | ✅ | All required packages are part of the base repos. | -| **Debian** | 9 | ✅ | Extra repos are required. | -| | 10 | ✅ | All required packages are part of the base repos. | - -## Dependencies - -* PHP `7.2` with the following extensions: `cli`, `openssl`, `gd`, `mysql`, `PDO`, `mbstring`, `tokenizer`, `bcmath`, `xml` or `dom`, `curl`, `zip`, and `fpm` if you are planning to use nginx -* MySQL `5.7` **or** MariaDB `10.1.3` or higher -* Redis (`redis-server`) -* A webserver (Apache, NGINX, Caddy, etc.) -* `curl` -* `tar` -* `unzip` -* `git` -* `composer` - -### Example Dependency Installation - -The commands below are simply an example of how you might install these dependencies. Please consult with your -operating system's package manager to determine the correct packages to install. - -```bash -# Add "add-apt-repository" command -apt -y install software-properties-common curl - -# Add additional repositories for PHP, Redis, and MariaDB -LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php -add-apt-repository -y ppa:chris-lea/redis-server -curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash - -# Update repositories list -apt update - -# Add universe repository if you are on Ubuntu 18.04 -apt-add-repository universe - -# Install Dependencies -apt -y install php7.2 php7.2-cli php7.2-gd php7.2-mysql php7.2-pdo php7.2-mbstring php7.2-tokenizer php7.2-bcmath php7.2-xml php7.2-fpm php7.2-curl php7.2-zip mariadb-server nginx tar unzip git redis-server -``` - -### Installing Composer - -Composer is a dependency manager for PHP that allows us to ship everything you'll need code wise to operate the Panel. You'll -need composer installed before continuing in this process. - -```bash -curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer --1 -``` - -## Download Files - -The first step in this process is to create the folder where the panel will live and then move ourselves into that -newly created folder. Below is an example of how to perform this operation. - -```bash -mkdir -p /var/www/pterodactyl -cd /var/www/pterodactyl -``` - -Once you have created a new directory for the Panel and moved into it you'll need to download the Panel files. This -is as simple as using `curl` to download our pre-packaged content. Once it is downloaded you'll need to unpack the archive -and then set the correct permissions on the `storage/` and `bootstrap/cache/` directories. These directories -allow us to store files as well as keep a speedy cache available to reduce load times. - -```bash -curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/download/v0.7.19/panel.tar.gz -tar --strip-components=1 -xzvf panel.tar.gz -chmod -R 755 storage/* bootstrap/cache/ -``` - -## Installation - - -This documentation is for **end-of-life software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Pterodactyl Panel 1.x](/panel/getting-started) in production environments. - - -Now that all of the files have been downloaded we need to configure some core aspects of the Panel. - - -You will need a database setup and a user with the correct permissions created for that database before -continuing any further. See below to quickly create a user and database for your Pterodactyl panel, if you are unsure how to do this or want more information, please have a look at [Setting up MySQL](/guides/tutorials/mysql-setup). - -```sql -mysql -u root -p - -CREATE USER 'pterodactyl'@'localhost' IDENTIFIED WITH mysql_native_password BY 'A secure password'; -CREATE DATABASE panel; -GRANT ALL ON panel.* TO 'pterodactyl'@'localhost' WITH GRANT OPTION; -``` - - -First we will copy over our default environment settings file, install core dependencies, and then generate a -new application encryption key. - -```bash -cp .env.example .env -composer install --no-dev --optimize-autoloader - -# Only run the command below if you are installing this Panel for -# the first time and do not have any Pterodactyl Panel data in the database. -php artisan key:generate --force -``` - - -Back up your encryption key (APP_KEY in the `.env` file). It is used as an encryption key for all data that needs to be stored securely (e.g. api keys). -Store it somewhere safe - not just on your server. If you lose it, all encrypted data is useless and can't be restored, even if you have database backups. - - -### Environment Configuration - -Pterodactyl's core environment is easily configured using a few different CLI commands built into the app. This step -will cover setting up things such as sessions, caching, database credentials, and email sending. - -```bash -php artisan p:environment:setup -php artisan p:environment:database - -# To use PHP's internal mail sending (not recommended), select "mail". To use a -# custom SMTP server, select "smtp". -php artisan p:environment:mail -``` - -### Database Setup - -Now we need to setup all of the base data for the Panel in the database you created earlier. **The command below -may take some time to run depending on your machine. Please _DO NOT_ exit the process until it is completed!** This -command will setup the database tables and then add all of the Nests & Eggs that power Pterodactyl. - -```bash -php artisan migrate --seed -``` - -### Add The First User - -You'll then need to create an administrative user so that you can log into the panel. To do so, run the command below. -At this time passwords **must** meet the following requirements: 8 characters, mixed case, at least one number. - -```bash -php artisan p:user:make -``` - -### Set Permissions - -The last step in the installation process is to set the correct permissions on the Panel files so that the webserver can -use them correctly. - -```bash -# If using NGINX or Apache (not on CentOS): -chown -R www-data:www-data * - -# If using NGINX on CentOS: -chown -R nginx:nginx * - -# If using Apache on CentOS -chown -R apache:apache * -``` - -## Queue Listeners - -We make use of queues to make the application faster and handle sending emails and other actions in the background. -You will need to setup the queue worker for these actions to be processed. - -### Crontab Configuration - -The first thing we need to do is create a new cronjob that runs every minute to process specific Pterodactyl tasks, such -as session cleanup and sending scheduled tasks to daemons. You'll want to open your crontab using `sudo crontab -e` and -then paste the line below. - -```bash -* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1 -``` - -### Create Queue Worker - -Next you need to create a new systemd worker to keep our queue process running in the background. This queue is responsible -for sending emails and handling many other background tasks for Pterodactyl. - -Create a file called `pteroq.service` in `/etc/systemd/system` with the contents below. - -```text -# Pterodactyl Queue Worker File -# ---------------------------------- - -[Unit] -Description=Pterodactyl Queue Worker -After=redis-server.service - -[Service] -# On some systems the user and group might be different. -# Some systems use `apache` or `nginx` as the user and group. -User=www-data -Group=www-data -Restart=always -ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3 - -[Install] -WantedBy=multi-user.target -``` - - -If you are using CentOS, you will need to replace `redis-server.service` with `redis.service` at the `After=` line in order to ensure `redis` starts before the queue worker. - - - -If you are not using `redis` for anything you should remove the `After=` line, otherwise you will encounter errors -when the service starts. - - -If you are are using redis for your system, you will want to make sure to enable that it will start on boot. You can do that by running the following command: - -```bash -sudo systemctl enable --now redis-server -``` - -Finally, enable the service and set it to boot on machine start. - -```bash -sudo systemctl enable --now pteroq.service -``` \ No newline at end of file diff --git a/content/docs/panel/0.7/meta.json b/content/docs/panel/0.7/meta.json deleted file mode 100644 index 3813cf627..000000000 --- a/content/docs/panel/0.7/meta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Panel 0.7 (Legacy)", - "pages": [ - "getting-started", - "webserver-configuration", - "configuration", - "upgrading", - "upgrade", - "troubleshooting" - ] -} diff --git a/content/docs/panel/0.7/troubleshooting.mdx b/content/docs/panel/0.7/troubleshooting.mdx deleted file mode 100644 index cfc5a8486..000000000 --- a/content/docs/panel/0.7/troubleshooting.mdx +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: Troubleshooting -description: Common issues and solutions for Pterodactyl Panel 0.7 ---- - -## Reading Error Logs - -If you ever encounter an unexpected error with the Panel the first thing you will likely be asked for is the logs. -To retrieve these, simply execute the command below which will output the last 100 lines of the Panel's log file. - -```bash -tail -n 100 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log -``` - -### Parsing the Error - -When you run the command above, you'll probably be hit with a huge wall of text that might scare you. Fear not, -this is simply a stacktrace leading to the cause of the error, and you can actually ignore almost all of it when -looking for the cause of the error. Lets take a look at some example output below, which has been truncated to -make this easier to follow with. - -``` -#70 /srv/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) -#71 /srv/www/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) -#72 {main} -[2018-07-19 00:50:24] local.ERROR: ErrorException: file_put_contents(/srv/www/storage/framework/views/c9c05d1357df1ce4ec8fc5df78c16c493b0d4f48.php): failed to open stream: Permission denied in /srv/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 -Stack trace: -#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'file_put_conten...', '/srv/www/vendor...', 122, Array) -#1 /srv/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/srv/www/storag...', 's...', 0) -#2 /srv/www/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122): Illuminate\Filesystem\Filesystem->put('/srv/www/storag...', 's...') -#3 /srv/www/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51): Illuminate\View\Compilers\BladeCompiler->compile('/srv/www/resour...') -#4 /srv/www/vendor/laravel/framework/src/Illuminate/View/View.php(142): Illuminate\View\Engines\CompilerEngine->get('/srv/www/resour...', Array) -#5 /srv/www/vendor/laravel/framework/src/Illuminate/View/View.php(125): Illuminate\View\View->getContents() -``` - -The first thing you'll want to do is follow the chain of numbers _up_ until you find `#0`, this will be the function that -triggered the exception. Right above line 0 you will see a line that has the date and time in brackets, `[2018-07-19 00:50:24]` -above for example. This line will be the human readable exception that you can use to understand what went wrong. - -### Understanding the Error - -In the example above we can see that the actual error was: - -``` -local.ERROR: ErrorException: file_put_contents(...): failed to open stream: Permission denied in /srv/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122 -``` - -From this error we can determine that there was an error performing a [file_put_contents()](http://php.net/manual/en/function.file-put-contents.php) call, and the error was -that we couldn't open the file because permissions were denied. Its okay if you don't understand the error at all, but -it does help you get faster support if you're able to provide these logs, and at least find the source of the error. -Sometimes the errors are pretty straightforward and will tell you exactly what went wrong, such as a `ConnectionException` -being thrown when the Panel can't connect to the Daemon. - -### Utilizing GREP - -If you're trying to go through a bunch of errors quickly, you can use the command below which will limit the results returned to only -be the actual error lines, without all of the stack traces. - -```bash -tail -n 1000 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log | grep "\[$(date +%Y)" -``` - -## Transfer Exceptions / XHR Poll Error - -If you are seeing errors similar to the examples below, chances are there is some networking related issue, or you -just don't have a required service running. - -### Example Errors - -* "We were unable to connect to the main Socket.IO server, there may be network issues currently. The panel may not work as expected." - -* "A TransferException was encountered while trying to contact the daemon, please ensure it's online and accessible. This error has been logged." - -### Basic Debugging Steps - -* Ensure you have AdBlock disabled or whitelisted for your Panel and Daemon domains. - -* Check your browser's console by pressing `Ctrl + Shift + J` (in Chrome) or `Cmd + Alt + I` (in Safari). If there is -a red error in it, chances are that it will narrow down the potential problem. - -* Make sure if the daemon is properly installed and the active configuration matches the configuration shown under -`Admin -> Node -> Configuration` in the Panel. - -* Check that the Daemon is running, and not reporting errors. Use `service wings status` to check the current status of the process. - -* Check that the Daemon ports are open on your firewall. The Daemon uses ports `8080` or `8443` for HTTP traffic, -and `2022` for SFTP traffic. - -* Check that the Panel can reach the Daemon using the domain that is configured on the Panel. Run `curl -https://domain.com:8080` on the Panel server and ensure that it can connect to the Daemon. - -* Ensure that you are using the correct HTTP scheme for your Panel and Daemon. If the Panel is running over HTTPS - the Daemon will also need to be running on HTTPS. - -### More Advanced Debugging Steps - -* Stop the Daemon and run `cd /srv/daemon; sudo npm start` to see if there are any errors being output by the Daemon. -If so, try resolving them manually, or contact us on Discord for more assistance. - -* Check your DNS and ensure that the response you receive is the one you expect using a tool such as `nslookup` or `dig`. - -* If you use CloudFlare make sure that the yellow cloud is disabled for your Daemon or Panel `A` records. - -* Make sure when using the daemon behind a firewall — pfSense, OpenSwitch, etc — that the correct NAT settings to access -the Daemon's ports from the outside network are setup. - -* If nothing is working so far, check your own DNS settings and consider switching DNS servers. - -* When running the Panel and Daemon on one server it can sometimes help if to add an entry in `/etc/hosts` that directs -the public IP back to the server. Sometimes the reverse path is also needed, so you may need to add an entry to your -servers `/etc/hosts` file that points the Panel's domain to the correct IP. - -* When running the Daemon and Panel on separate VM's using the same adapter make sure the VM's can connect to each -other. Promiscuous mode might be needed. - -## Invalid MAC Exception - - -This error should never happen if you correctly follow our installation and upgrade guides. The only time we have -ever seen this error occur is when you blindly restore the Panel database from a backup and try to use a fresh -installation of the Panel. - -When restoring backups you should _always_ restore the `.env` file! - - -Sometimes when using the Panel you'll unexpectedly encounter a broken page, and upon checking the logs you'll see -an exception mentioning an invalid MAC when decrypting. This error is caused by mismatched `APP_KEY`s in your `.env` file -when the data was encrypted versus decrypted. - -If you are seeing this error the only solution is to restore the `APP_KEY` from your `.env` file. If you have lost that -original key there is no way to recover the lost data. - -## SELinux Issues - -On systems with SELinux installed you might encounter unexpected errors when running redis or attempting to connect -to the daemon to perform actions. These issues can generally be resolved by executing the commands below to allow -these programs to work with SELinux. - -### Redis Permissions Errors - -```bash -audit2allow -a -M redis_t -semodule -i redis_t.pp -``` - -### In case there is any weirdness with parts of the panel - -```bash -restorecon -R /var/www/pterodactyl/ -``` - -### Daemon Connection Errors - -```bash -audit2allow -a -M http_port_t -semodule -i http_port_t.pp -``` - -## FirewallD issues - -If you are on a RHEL/CentOS server with firewalld installed you may have broken DNS. - -```bash -firewall-cmd --permanent --zone=trusted --change-interface=pterodactyl0 -firewall-cmd --reload -``` - -restart docker and wings after running these to be sure the rules are applied. - -## Database Errors - -### DatabaseController.php:142 - -``` -production.ERROR: ErrorException: Undefined variable: host in /var/www/pterodactyl/app/Http/Controllers/Admin/DatabaseController.php:142 -``` - -The database user you are trying to use doesn't have appropriate grants/has used incorrect password. diff --git a/content/docs/panel/0.7/upgrade/0-6-to-0-7.mdx b/content/docs/panel/0.7/upgrade/0-6-to-0-7.mdx deleted file mode 100644 index 207595c9a..000000000 --- a/content/docs/panel/0.7/upgrade/0-6-to-0-7.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Upgrading 0.6 to 0.7 -description: Guide for upgrading from Panel 0.6 to 0.7 ---- - - -This documentation is for **end-of-life software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Pterodactyl Panel 1.0](/panel/getting-started) in production environments. - - -## Fetch Updated Files - -The first step in the update process is to download the new panel files from GitHub. The command below will download -the release archive for the most recent version of Pterodactyl and save it in the current directory. Now is a good time -to ensure that you're in the `/var/www/pterodactyl` directory as the command below will automatically unpack in whatever -directory you are currently in. - -```bash -curl -L https://github.com/pterodactyl/panel/releases/download/v0.7.19/panel.tar.gz | tar --strip-components=1 -xzv -``` - -Once all of the files are downloaded we need to set the correct permissions on the cache and storage directories to avoid -any webserver related errors. - -```bash -chmod -R 755 storage/* bootstrap/cache -``` - -## Clear Compiled Assets - -Previous versions of Pterodactyl attempted to cache your configuration file for speed and performance enhancements. This -ended up just causing more headaches with minimal improvements in performance, so we decided to stop doing that. Running -the command below will clear the cached files for you so we can continue with upgrading. - - -You probably only need to run this command once when upgrading from `0.6.X`. Once you're upgraded we don't cache the configuration -file so there is no reason to remove anything. - - -```bash -rm -rf bootstrap/cache/* -``` - -Once the configuration cache is removed, you'll need to clear the template cache to ensure users get the most recent -templates. - -```bash -php artisan view:clear -``` - -## Update Dependencies - -After you've downloaded all of the new files you will need to upgrade the core components of the panel. To do this, -simply run the commands below and follow any prompts. - -```bash -composer install --no-dev --optimize-autoloader -``` - -## Update Environment - -These scripts will display your current values in brackets. To keep the current values simply press enter and it will -continue without making any modifications. - - -We've changed our recommended cache driver to be Redis, rather than Memcached. If you're using Memcached you can -continue doing so with no problems, however moving forward our installation documentation will only mention Redis. - - -```bash -php artisan p:environment:setup -php artisan p:environment:mail -php artisan p:environment:database -``` - -## Database Updates - - -The upgrade from `0.6` to `v0.7` includes some rather significant database changes. While the migration utility is -able to handle everything for you, we still suggest taking a backup of your database before proceeding — just incase. - - - -Running `db:seed` below will overwrite any changes you made to core Pterodactyl Nests, Eggs, or Egg Variables! This is -unavoidable, and this seeder must be run. To avoid this in the future, please create custom nests, or create custom -eggs for game variations. - - -```bash -php artisan migrate --force -php artisan db:seed --force -``` - -## Cleanup API Keys - -A significant change is introduced in 0.7.0 that changes how API keys are used, stored, and validated. Due to this -change, all previously created keys will no longer function. In order to keep things cleaned up you'll want to remove -these orphaned keys. To do so, run the command below. - -```bash -php artisan p:migration:clean-orphaned-keys -``` - -Don't forget to create new keys for yourself, as well as let all of your users know they'll need to do so as well. - -## Set Permissions - -The last step is to set the proper owner of the files to be the user that runs your webserver. In most cases this -is `www-data` but can vary from system to system — sometimes being `nginx`, `apache`, or even `nobody`. - -```bash -# If using NGINX or Apache (not on CentOS): -chown -R www-data:www-data * - -# If using NGINX on CentOS: -chown -R nginx:nginx * - -# If using Apache on CentOS -chown -R apache:apache * -``` diff --git a/content/docs/panel/0.7/upgrade/0-7.mdx b/content/docs/panel/0.7/upgrade/0-7.mdx deleted file mode 100644 index e17a18e58..000000000 --- a/content/docs/panel/0.7/upgrade/0-7.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Upgrading 0.7 Series -description: Guide for upgrading within the 0.7.X series of releases ---- - - -This documentation is for **end-of-life software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Pterodactyl Panel 1.0](/panel/getting-started) in production environments. - - -This documentation covers the process for upgrading within the `0.7.X` series of releases. This means upgrading from -— for example — `0.7.3` to `0.7.11`. **Do not use this guide for upgrading from `0.6` or upgrading to `1.0`.** - - -If you are using a custom theme please be aware that upgrading will remove those files. You will need to re-upload -your theme once the upgrade is complete or you will end up with server errors. - - -## Fetch Updated Files - -The first step in the update process is to download the new panel files from GitHub. The command below will download -the release archive for the most recent version of Pterodactyl and save it in the current directory. Now is a good time -to ensure that you're in the `/var/www/pterodactyl` directory as the command below will automatically unpack the archive -into your current folder. - -```bash -curl -L https://github.com/pterodactyl/panel/releases/download/v0.7.19/panel.tar.gz | tar --strip-components=1 -xzv -``` - -Once all of the files are downloaded we need to set the correct permissions on the cache and storage directories to avoid -any webserver related errors. - -```bash -chmod -R 755 storage/* bootstrap/cache -``` - -## Update Dependencies - -After you've downloaded all of the new files you will need to upgrade the core components of the panel. To do this, -simply run the commands below and follow any prompts. - -```bash -composer install --no-dev --optimize-autoloader -``` - -## Clear Compiled Template Cache - -You'll also want to clear the compiled template cache to ensure that new and modified templates show up correctly for -users. - -```bash -php artisan view:clear -php artisan config:clear -``` - -## Database Updates - -You'll also need to update your database schema for the newest version of Pterodactyl. Running the two commands below -will update the schema and ensure the default eggs we ship are up to date (and add any new ones we might have). Just -remember, _never edit core eggs we ship_! They will be overwritten by this update process. - -```bash -php artisan migrate --force -php artisan db:seed --force -``` - -## Set Permissions - -The last step is to set the proper owner of the files to be the user that runs your webserver. In most cases this -is `www-data` but can vary from system to system — sometimes being `nginx`, `apache`, or even `nobody`. - -```bash -# If using NGINX or Apache (not on CentOS): -chown -R www-data:www-data * - -# If using NGINX on CentOS: -chown -R nginx:nginx * - -# If using Apache on CentOS -chown -R apache:apache * -``` diff --git a/content/docs/panel/0.7/upgrade/meta.json b/content/docs/panel/0.7/upgrade/meta.json deleted file mode 100644 index 0a0deb88e..000000000 --- a/content/docs/panel/0.7/upgrade/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "Upgrade Guides", - "pages": [ - "0-6-to-0-7", - "0-7" - ] -} diff --git a/content/docs/panel/0.7/upgrading.mdx b/content/docs/panel/0.7/upgrading.mdx deleted file mode 100644 index cec95bd86..000000000 --- a/content/docs/panel/0.7/upgrading.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Upgrading -description: Guide for upgrading Pterodactyl Panel 0.7 versions ---- - -Upgrading the Panel is a relatively simple process. Below you will find a list of articles that will walk you through -the upgrade process for each version of the software. - - -This documentation is for **end-of-life software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Pterodactyl Panel 1.0](/panel/getting-started) in production environments. - - -## Maintenance Mode - -Whenever you are performing an upgrade, you should be sure to place your Panel into "maintenance mode". This will prevent -users from encountering unexpected errors, and ensure everything can be upgraded before users encounter potentially new features. - -```bash -# Put the Panel into maintenance mode and deny user access -php artisan down - -# Bring the Panel back up to receive connections. -php artisan up -``` - -## Restarting Queue Workers - -After _every_ update, you should restart the queue worker to ensure that the new code is being loaded in and used. - -```bash -php artisan queue:restart -``` - -## Version Specific Guides - -* [0.6.X to 0.7.19](/panel/0.7/upgrade/0-6-to-0-7) -* [0.7.X series](/panel/0.7/upgrade/0-7) -* [0.7.19 to 1.X.X](/panel/legacy-upgrade) diff --git a/content/docs/panel/0.7/webserver-configuration.mdx b/content/docs/panel/0.7/webserver-configuration.mdx deleted file mode 100644 index 6c5b9217d..000000000 --- a/content/docs/panel/0.7/webserver-configuration.mdx +++ /dev/null @@ -1,241 +0,0 @@ ---- -title: Webserver Configuration -description: Configure NGINX or Apache for Pterodactyl Panel 0.7 ---- - - -This documentation is for **end-of-life software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Pterodactyl Panel 1.0](/panel/getting-started) in production environments. - - - -You should remove the default Apache or NGINX configuration as it will expose application secrets to malicious -users by default. - - -## NGINX - -You should paste the contents of the file below, replacing `` with your domain name being used in a file called -`pterodactyl.conf` and place it in `/etc/nginx/sites-available/`, or — if on CentOS, `/etc/nginx/conf.d/`. - -### NGINX With SSL - -This configuration assumes that you will be using SSL on both the Panel and Daemons for significantly improved communication -security between users and the Panel. You will need to get a valid SSL certificate which can be done for free by using -Let's Encrypt. - - -When using the SSL configuration you MUST create SSL certificates, otherwise your NGINX will fail to start. See [Creating SSL Certificates](/guides/tutorials/ssl-certificates) documentation page for how to create these certificates before continuing. - - -```nginx {5,11,26-27} -server_tokens off; - -server { - listen 80; - server_name ; - return 301 https://$server_name$request_uri; -} - -server { - listen 443 ssl http2; - server_name ; - - root /var/www/pterodactyl/public; - index index.php; - - access_log /var/log/nginx/pterodactyl.app-access.log; - error_log /var/log/nginx/pterodactyl.app-error.log error; - - # allow larger file uploads and longer script runtimes - client_max_body_size 100m; - client_body_timeout 120s; - - sendfile off; - - # SSL Configuration - ssl_certificate /etc/letsencrypt/live//fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live//privkey.pem; - ssl_session_cache shared:SSL:10m; - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; - ssl_prefer_server_ciphers on; - - # See https://hstspreload.org/ before uncommenting the line below. - # add_header Strict-Transport-Security "max-age=15768000; preload;"; - add_header X-Content-Type-Options nosniff; - add_header X-XSS-Protection "1; mode=block"; - add_header X-Robots-Tag none; - add_header Content-Security-Policy "frame-ancestors 'self'"; - add_header X-Frame-Options DENY; - add_header Referrer-Policy same-origin; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/run/php/php7.2-fpm.sock; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M"; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTP_PROXY ""; - fastcgi_intercept_errors off; - fastcgi_buffer_size 16k; - fastcgi_buffers 4 16k; - fastcgi_connect_timeout 300; - fastcgi_send_timeout 300; - fastcgi_read_timeout 300; - include /etc/nginx/fastcgi_params; - } - - location ~ /\.ht { - deny all; - } -} -``` - -Continue reading to the bottom of this section for the final steps with NGINX! - -### NGINX Without SSL - -```nginx {3} -server { - listen 80; - server_name ; - - root /var/www/pterodactyl/public; - index index.html index.htm index.php; - charset utf-8; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - - location = /favicon.ico { access_log off; log_not_found off; } - location = /robots.txt { access_log off; log_not_found off; } - - access_log off; - error_log /var/log/nginx/pterodactyl.app-error.log error; - - # allow larger file uploads and longer script runtimes - client_max_body_size 100m; - client_body_timeout 120s; - - sendfile off; - - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/run/php/php7.2-fpm.sock; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M"; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTP_PROXY ""; - fastcgi_intercept_errors off; - fastcgi_buffer_size 16k; - fastcgi_buffers 4 16k; - fastcgi_connect_timeout 300; - fastcgi_send_timeout 300; - fastcgi_read_timeout 300; - } - - location ~ /\.ht { - deny all; - } -} -``` - -### Enabling Configuration - -The final step is to enable your NGINX configuration and restart it. - -```bash -# You do not need to symlink this file if you are using CentOS. -sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf - -# You need to restart nginx regardless of OS. -systemctl restart nginx -``` - -## Apache - -You should paste the contents of the file below, replacing `` with your domain name being used in a file called -`pterodactyl.conf` and place it in `/etc/apache2/sites-available`, or — if on CentOS, `/etc/httpd/conf.d/`. - -Note: When using Apache, make sure you have the `libapache2-mod-php` package installed or else PHP will not display on your webserver. - -### Apache With SSL - -Like the nginx configuration, this assumes you will be using SSL on both the Panel and Daemons for improved security. - - -When using the SSL configuration you MUST create SSL certificates, otherwise your Apache will fail to start. See [Creating SSL Certificates](/guides/tutorials/ssl-certificates) documentation page for how to create these certificates before continuing. - - -```apache {2,8,17-18} - - # Replace the example with your domain name or IP address - ServerName - - RewriteEngine On - RewriteCond %{HTTPS} !=on - RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] - - - - # Replace the example with your domain name or IP address - ServerName - DocumentRoot "/var/www/pterodactyl/public" - - AllowEncodedSlashes On - - php_value upload_max_filesize 100M - php_value post_max_size 100M - - - Require all granted - AllowOverride all - - - SSLEngine on - SSLCertificateFile /etc/letsencrypt/live//fullchain.pem - SSLCertificateKeyFile /etc/letsencrypt/live//privkey.pem - -``` - -### Apache Without SSL - -```apache {2} - - # Replace the example with your domain name or IP address - ServerName - DocumentRoot "/var/www/pterodactyl/public" - - AllowEncodedSlashes On - - php_value upload_max_filesize 100M - php_value post_max_size 100M - - - AllowOverride all - Require all granted - - -``` - -### Enabling Configuration - -Once you've created the file above, simply run the commands below. If you are on CentOS _you do not need to run the commands -below!_ You only need to run `systemctl restart httpd`. - -```bash -# You do not need to run any of these commands on CentOS -sudo ln -s /etc/apache2/sites-available/pterodactyl.conf /etc/apache2/sites-enabled/pterodactyl.conf -sudo a2enmod rewrite -systemctl restart apache2 -``` diff --git a/content/docs/panel/legacy-upgrade.mdx b/content/docs/panel/legacy-upgrade.mdx deleted file mode 100644 index 2e1bc4d05..000000000 --- a/content/docs/panel/legacy-upgrade.mdx +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Legacy Upgrades -description: Upgrading from Panel 0.7.X to 1.3.x ---- - - - -This upgrade guide is for **upgrading from 0.7.X to 1.3.x**. If you are trying to do an upgrade on a 1.X Panel -please [use this guide instead](/panel/updating). During this upgrade process you will have some periods -of Panel unavailability, however none of the underlying game server instances will be stopped. - -## Enter Maintenance Mode - -You'll want to put your Panel into maintenance mode by running the `down` command below before starting. This -will prevent users from accessing the Panel during a period where things will be broken or not working correctly. Make sure that you're in the `/var/www/pterodactyl` directory when executing the command. - -```bash -# Put the Panel into maintenance mode and deny user access -php artisan down -``` - -## Update Dependencies - -You'll need to make sure your system dependencies are up to date before performing this upgrade. Please -reference the list below to ensure you have all of the required versions. - -* PHP `8.0` or `8.1` (recommended) with the following extensions: `cli`, `openssl`, `gd`, `mysql`, `PDO`, `mbstring`, - `tokenizer`, `bcmath`, `xml` or `dom`, `curl`, `zip`, and `fpm` if you are planning to use nginx. See our guide - for [Upgrading PHP](/guides/configuration/php-upgrade) for details. -* Composer v2 (`composer self-update --2`) - - -If you upgrade your PHP version and are using nginx as your webserver, you will have to update the -`fastcgi_pass` value in your nginx's `pterodactyl.conf` configuration to use the correct `php-fpm` socket. - - -* MySQL `5.7.22` or higher (MySQL `8` recommended) **or** MariaDB `10.2` or higher. - - -Please make sure you are running the correct version of MariaDB or MySQL listed above! Failure to do so _will_ -result in an error when you attempt to run the migrations. - -Previous documentation (and just the age of this software) likely had you installing MariaDB 10.1 which _will not -work_ with this version of Pterodactyl. - - -## Fetch Updated Files - -The first step in the update process is to download the new panel files from GitHub. The command below will download -the release archive for the most recent version of Pterodactyl and save it in the current directory. Now is a good time -to ensure that you're in the `/var/www/pterodactyl` directory as the command below will automatically unpack the archive -into your current folder. - -We will also be deleting the `app/` directory. Because of the way we handle installations and upgrades deleted files -are not always detected properly, so simply unpacking over this location will result in some confusing behavior. - -```bash -# Delete the app directory to ensure we start with a clean slate here. This will not affect any -# of your settings or servers. -curl -L -o panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz -rm -rf $(find app public resources -depth | head -n -1 | grep -Fv "$(tar -tf panel.tar.gz)") - -# Download the updated files and delete the archive file. -tar -xzvf panel.tar.gz && rm -f panel.tar.gz -``` - -Once all of the files are downloaded we need to set the correct permissions on the cache and storage directories to avoid -any webserver related errors. - -```bash -chmod -R 755 storage/* bootstrap/cache -``` - -## Update Dependencies - -After you've downloaded all of the new files you will need to upgrade the core components of the panel. To do this, -simply run the commands below and follow any prompts. - -```bash -composer install --no-dev --optimize-autoloader -``` - -## Clear Compiled Template Cache - -You'll also want to clear the compiled template cache to ensure that new and modified templates show up correctly for -users. - -```bash -php artisan view:clear -php artisan config:clear -``` - -## Database Updates - -You'll also need to update your database schema for the newest version of Pterodactyl. Running the two commands below -will update the schema and ensure the default eggs we ship are up to date (and add any new ones we might have). Just -remember, _never edit core eggs we ship_! They will be overwritten by this update process. - - -If you used a custom plugin that allowed for server transfers on `0.7` you **MUST** delete or rename the `server_transfers` table -before continuing. - - -```bash -php artisan migrate --force -php artisan db:seed --force -``` - -## Set Permissions - -The last step is to set the proper owner of the files to be the user that runs your webserver. In most cases this -is `www-data` but can vary from system to system — sometimes being `nginx`, `apache`, or even `nobody`. - -```bash -# If using NGINX or Apache (not on CentOS): -chown -R www-data:www-data * - -# If using NGINX on CentOS: -chown -R nginx:nginx * - -# If using Apache on CentOS -chown -R apache:apache * -``` - -## Restarting Queue Workers - -After _every_ update you should restart the queue worker to ensure that the new code is loaded in and used. - -```bash -php artisan queue:restart -``` - -## Exit Maintenance Mode - -Now that the upgrade is complete, exit maintenance mode and your Panel will now be available. - -```bash -# Bring the Panel back up to receive connections. -php artisan up -``` - -## Switch to Wings - -We've deprecated the old Node.js daemon in favor of [Wings](https://github.com/pterodactyl/wings), our new server -control plane written in Go. This new system is significantly faster, easier to install, and much smaller. All you -need to do is install a single binary on your system and configure it to run on boot. **You cannot use the old Node.js -Daemon to run servers with Pterodactyl Panel 1.0.** - -Please see [Migrating to Wings](/wings/migrating) for instructions. diff --git a/content/docs/panel/meta.json b/content/docs/panel/meta.json index 6a74b191f..d77e4b59e 100644 --- a/content/docs/panel/meta.json +++ b/content/docs/panel/meta.json @@ -6,9 +6,6 @@ "webserver-configuration", "additional-configuration", "updating", - "troubleshooting", - "---Legacy---", - "legacy-upgrade", - "0.7" + "troubleshooting" ] } diff --git a/content/docs/wings/daemon-0.6/configuration.mdx b/content/docs/wings/daemon-0.6/configuration.mdx deleted file mode 100644 index ef73e9534..000000000 --- a/content/docs/wings/daemon-0.6/configuration.mdx +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Additional Configuration -description: Advanced configuration options for Pterodactyl Daemon 0.6 (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -These are advanced configurations for the daemon. You risk breaking your daemon and making containers un-usable if -you modify something incorrectly. Proceed at your own risk, and only if you know what each configuration value does. - - -The documentation below uses dot-notated JSON to explain where each setting should live. You will need to manually -expand this syntax when adding to the `core.json` file for the Daemon. For example, something like `internals.throttle.enabled` -would be expanded to the JSON below. - -```json -{ - "internals": { - "throttle": { - "enabled": true - } - } -} -``` - -## Output Throttles - -There are a few throttle limits built into the Daemon to keep people from causing issues with data volume and CPU usage. -Under normal circumstances users should not encounter these limits. You might see the occasional data throttling -warning while starting a server or when there is a sudden spike in data output. - -If you're seeing more servers than you expected being killed as a result of the Daemon throttler, you can make -adjustments to the settings below. Please note the configs below are in JSON dot-notation and should be expanded -out into a normal JSON object. - -| Setting Path | Default Value | Notes | -| ------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `enabled` | true | Determines if the throttle (and associated values below) should be used. | -| `kill_at_count` | 5 | The number of warnings that can accumulate for a particular instance before the server process is killed. The decay time below affects how quickly this value is decreased. | -| `decay` | 10 | The number of seconds that a server process must go without triggering a data throttle warning before the throttle count begins decreasing. This loop is processed every 5 seconds and will decrement the throttle count by one when the process goes more than this number of seconds without a data throttle occurring. | -| `bytes` | 30720 | ⚠️ _(removed in v0.5.5)_ The maximum number of bytes of data that can be output in the defined interval before a warning occurs. | -| `lines` | 1000 | ⚠️ _(added in v0.5.6)_ The number of lines that can be output by the server process in the defined check interval time. By default, 5,000 lines in ~500ms results in a server process kill. | -| `check_interval_ms` | 100 | The number of milliseconds between the throttle resetting the used bytes or line count. | - -Please note that all of the settings above are in the `internals.throttle.X` path. So, `enabled` is actually `internals.throttle.enabled`. - -## Custom Network Interfaces - -If for whatever reason you need to modify the network interfaces used for Pterodactyl's local Docker network you -can do so by modifying the `core.json` file for the daemon. In most cases you'll just be modifying the network -name to allow your servers to use the host network stack. To do so, just change `docker.network.name` to be `host` -rather than `pterodactyl_nw` as shown below. - - -While changing to the host network stack does allow servers running on Pterodactyl to have direct access to local -interfaces and bind to specific IP addresses (required for some Steam games), it is not recommended on public -installations of Pterodactyl (where you have other users running servers). - -Using the `host` stack removes many network specific protections afforded by Docker, and will allow server processes -to access anything on the host, as well as bind to any IP or Port they wish. - - - -Any changes to the network after the daemon has been started will require you to remove the docker network and restart the daemon. Any servers on the host need to be stopped before and most likely rebuilt. - -The following will stop the daemon, remove the network, and start the daemon again. Run at your own risk. -`systemctl stop wings && docker network rm pterodactyl_nw && systemctl start wings` - - -```json {5} -"docker": { - "socket": "/var/run/docker.sock", - "autoupdate_images": true, - "network": { - "name": "pterodactyl_nw", - "interfaces": { - "v4": { - "subnet": "172.18.0.0/16", - "gateway": "172.18.0.1" - } - } - }, - "interface": "172.18.0.1" -}, -``` - -## Private Registries - -| Setting Path | Default Value | Notes | -| --------------- | ------------- | --------------------------------------------------------------------------------------------------------- | -| `username` | _none_ | The username to use when connecting to the registry. | -| `password` | _none_ | The password associated with the account. | -| `images` | _none_ | An array of images that are associated with the private registry. | -| `auth` | _none_ | | -| `email` | _none_ | | -| `serveraddress` | _none_ | The address to the server the registry is located on. | -| `key` | _none_ | A pre-generated base64 encoded authentication string. If provided none of the above options are required. | - -Please note that all of the settings above are in the `docker.registry.X` path. So, `username` is actually `docker.registry.username`. - -## Security Policies - -This daemon ships with a very strict security configuration designed to limit access to the host system, and mitigate -a large range of potential attack vectors. However, some users might need to tweak these settings, or are running on -a private instance and are willing to decrease some of the security measures. - -| Setting Path | Default Value | Notes | -| ---------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ipv6` | true | Set this to false to disable IPv6 networking on the pterodactyl0 interface. | -| `internal` | false | Set this to true to prevent any external network access to all containers on the pterodactyl0 interface. | -| `enable_icc` | true | Set this to false to disallow containers to access services running on the host system's non-public IP addresses. Setting this to false does make it impossible to connect (from a container) to MySQL/Redis/etc. running on the host system without using the public IP address. | -| `enable_ip_masquerade` | true | Set this to false to disable IP Masquerading on the pterodactyl0 interface. | - -Please note that all of the settings above are in the `docker.policy.network.X` path. So, `ipv6` is actually `docker.policy.network.ipv6`. - -## Container Policy - -| Setting Path | Default Value | Notes | -| -------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `tmpfs` | `rw,exec,nosuid,size=50M` | These are the arguments used for mounting a `tmpfs` directory into containers to allow certain programs to run. | -| `log_driver` | none | ⚠️ This option was **removed** in `v0.6` and is forcibly set to `json-file`. The log driver to use for containers. We default to `none` to mitigate a potential DoS attack vector if a server were to spam log output. | -| `log_opts` | array | | -| `log_opts.max_size` | `5m` | The maximum size of the server output log file created by Docker. | -| `log_opts.max_files` | `1` | The maximum number of files that Docker will create with output from the server. | -| `readonly_root` | true | Determines if the root filesystem of the container should be readonly. | -| `securityopts` | array | An array of security options to apply to a container. The default array is provided below. | -| `cap_drop` | array | An array of linux capabilities to drop from the container (in addition to ones [dropped by docker already](https://docs.docker.com/engine/security/security/#linux-kernel-capabilities). A listing of the default array is below. | - -Please note that all of the settings above are in the `docker.policy.container.X` path. So, `tmpfs` is actually `docker.policy.container.tmpfs`. - -### Default Security Opts Array - -```json -[ - 'no-new-privileges', -] -``` - -### Default Capabilities Drop Array - - -Starting with `v0.6` of the Daemon, the following previously _dropped_ capabilities are available in containers: `chown`, `kill`, `setgid`, and `setuid`. - - -```json -[ - 'setpcap', - 'mknod', - 'audit_write', - 'net_raw', - 'dac_override', - 'fowner', - 'fsetid', - 'net_bind_service', - 'sys_chroot', - 'setfcap', -] -``` - -## Enabling Cloudflare - -Enabling Cloudflare on the daemon isn't particularly useful since users do not connect directly to the daemon port, and users need an unproxied hostname to access any servers on the node. As a result it's not possible to conceal the IP address of your node machine, but some people want to enable it regardless. - -Cloudflare only proxies the default daemon port (8080) when using HTTP. In order to get the daemon to work with Cloudflare when HTTPS is enabled you must change the daemon port to one that Cloudflare will proxy such as 8443. Since Cloudflare only proxies HTTP/HTTPS traffic for non-enterprise plans you cannot proxy the SFTP port. diff --git a/content/docs/wings/daemon-0.6/installing.mdx b/content/docs/wings/daemon-0.6/installing.mdx deleted file mode 100644 index b3d68a2af..000000000 --- a/content/docs/wings/daemon-0.6/installing.mdx +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: Installation -description: Installation guide for Pterodactyl Daemon 0.6 (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -This specific software is for Pterodactyl v0.7 and **must not be used for Pterodactyl v1.0**. If you have installed 1.0 you should use [Wings](/wings/installing) instead. - - -## Supported Systems - -| Operating System | Version | Supported | Notes | -| ---------------- | ------- | :----------------: | ----------------------------------------------------------- | -| **Ubuntu** | 18.04 | ✅ | Documentation written assuming Ubuntu 18.04 as the base OS. | -| | 20.04 | ✅ | | -| **CentOS** | 7 | ⚠️ | Extra repos are required | -| | 8 | ✅ | | -| **Debian** | 9 | ✅ | | -| | 10 | ✅ | | - -## System Requirements - -In order to run the Daemon you will need a system capable of running Docker containers. Most VPS and almost all -dedicated servers should be capable of running Docker, but there are edge cases. - -If your provider makes use of `Virtuozzo`, `OpenVZ` (or `OVZ`), or `LXC` then you will most likely be unable to -run the Daemon. If you are unsure what your host is using there are a couple of options. The easiest is to check -their website, or reach out to their support team. - -If you want to take a different approach, try using `lscpu` and checking what the virtualization type listed is. An -example of this is shown below which shows my hypervisor running with full virtualization — this means it will -support Docker without issues. If you see `KVM` for the vendor, chances are you're fine as well. - -```bash -dane@daemon:~$ lscpu | grep 'vendor\|type' -Hypervisor vendor: VMware -Virtualization type: full -``` - -If that doesn't work for some reason, or you're still unsure, you can also run the command below and as long as it -doesn't report `Xen` or `LXC` you're probably okay to continue. - -```bash -dane@daemon:~$ sudo dmidecode -s system-manufacturer -VMware, Inc. -``` - -## Dependencies - -Pterodactyl's Daemon requires the following dependencies be installed on your system in order for it to operate. - -* Docker -* Nodejs (`v10`, `v12`, higher versions likely work, but are untested) -* `node-gyp` -* `tar` -* `unzip` -* `make`, `gcc` (`gcc-c++` on CentOS), `g++` -* `python` - -### Installing Docker - -For a quick install of Docker CE, you can execute the command below: - -```bash -curl -sSL https://get.docker.com/ | CHANNEL=stable bash -``` - -If you would rather do a manual installation, please reference the official Docker documentation for how to install Docker CE on your server. Some quick links -are listed below for commonly supported systems. - -* [Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce) -* [CentOS](https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce) -* [Debian](https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce) - - -Please be aware that some hosts install a modified kernel that does not support important docker features. Please -check your kernel by running `uname -r`. If your kernel ends in `-xxxx-grs-ipv6-64` or `-xxxx-mod-std-ipv6-64` you're -probably using a non-supported kernel. Check our [Kernel Modifications](/wings/daemon-0.6/kernel-modifications) guide for details. - - -#### Start Docker on Boot - -If you are on an operating system with systemd (Ubuntu 16+, Debian 8+, CentOS 7+) run the command below to have Docker start when you boot your machine. - -```bash -systemctl enable docker -``` - -#### Enabling Swap - -On most systems, docker will be unable to setup swap space, you can check if this is the case by running `docker info`. -If it outputs `WARNING: No swap limit support` near the bottom, this is the case. Enabling swap is completely optional, -but we recommended doing it if you will be hosting for others, and to prevent OOM errors. - -To do so, open `/etc/default/grub` as a root user, and find the line starting with `GRUB_CMDLINE_LINUX_DEFAULT`. Make -sure the line includes `swapaccount=1`. - -After doing that, simply run `sudo update-grub` followed by `sudo reboot` to restart the server and have swap enabled. -Below is an example of what the line should look like, _do not copy this line verbatim, it often has additional -OS specific parameters._ - -```text -GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1" -``` - -### Installing Nodejs - -NodeJS is also super easy to install! Simply run the command below to make the package accessible to your system. - -```bash -curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - -apt -y install nodejs make gcc g++ -``` - - -If you are using CentOS, [please follow these instructions](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora). Ubuntu and Debian users may also follow the [official -instructions provided by Nodejs](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions). - - -## Installing Daemon Software - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - -The first step for installing the daemon is to make sure we have the required directory structure setup. To do so, -run the commands below. - -```bash -mkdir -p /srv/daemon /srv/daemon-data -cd /srv/daemon -``` - - -If you are using a server provided by OVH or SoYouStart please be aware that your main drive space is probably allocated to -`/home`, and not `/` by default. Please consider using `/home/daemon-data` for server data. This can be easily -set when creating the node. - - -The next step is to download the software and unpack the archive. - -```bash -curl -L https://github.com/pterodactyl/daemon/releases/download/v0.6.13/daemon.tar.gz | tar --strip-components=1 -xzv -``` - -Finally, we need to install the dependencies that allow the Daemon to run properly. This command will most likely -take a few minutes to run, please do not interrupt it. - -```bash -npm install --only=production --no-audit --unsafe-perm -``` - -## Configure Daemon - -Once you have installed the daemon and required components, the next step is to create a node on your installed Panel -Once you have done that there will be a tab called Configuration when you view the node. - -Simply copy and paste the code block and paste it into a file called `core.json` in `/srv/daemon/config` and save it. -You may also use the Auto-Deployment feature rather than manually creating the files. - -## Starting the Daemon - -To start your daemon simply move into the daemon directory and run the command below which will start the daemon in -foreground mode. Once you are done, use `CTRL+C` to terminate the process. Depending on your server's internet connection -pulling and starting the Daemon for the first time may take a few minutes. - -```bash -sudo npm start -``` - -### Daemonizing (using systemd) - -Running Pterodactyl Daemon in the background is a simple task, just make sure that it runs without errors before doing -this. Place the contents below in a file called `wings.service` in the `/etc/systemd/system` directory. - -```text -[Unit] -Description=Pterodactyl Wings Daemon -After=docker.service - -[Service] -User=root -#Group=some_group -WorkingDirectory=/srv/daemon -LimitNOFILE=4096 -PIDFile=/var/run/wings/daemon.pid -ExecStart=/usr/bin/node /srv/daemon/src/index.js -Restart=on-failure -StartLimitInterval=600 - -[Install] -WantedBy=multi-user.target -``` - -Then, run the commands below to reload systemd and start the daemon. - -```bash -systemctl enable --now wings -``` diff --git a/content/docs/wings/daemon-0.6/kernel-modifications.mdx b/content/docs/wings/daemon-0.6/kernel-modifications.mdx deleted file mode 100644 index 87b92f65c..000000000 --- a/content/docs/wings/daemon-0.6/kernel-modifications.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Kernel Modifications -description: Guide for modifying kernel on OVH/SYS servers for Pterodactyl Daemon ---- - - -In most cases, only users with a server provided by OVH will need to make any modifications to their kernel. - - -## Update Kernel - -Install the new kernels using apt-get. In this case we are installing the latest version of the kernel, -but feel free to browse using apt-cache search linux-image-extra to find all possible image versions you can -install. You'll want to install the latest. - -```bash -apt-get install linux-image-generic linux-image-extra-virtual -``` - -After you've installed the new kernel you'll need to update the grub loader using the command below. After that, a -server reboot is in order. - -```bash -sudo mv /etc/grub.d/06_OVHkernel /etc/grub.d/96_OVHkernel -sudo update-grub -sudo reboot -``` - -## Confirm Kernel - -Once you've rebooted, check that the latest kernel is installed using `uname -r`, it should output `4.4.0-131-generic` -(in this case) or similar. - - -If it still includes `-xxxx-grs-ipv6-64` or similar, it didn't work and you should move on top the steps below. - - -## Set Default Boot - -Ok, so unfortunately the easiest way didn't work, but don't worry, we can still fix this. Firstly, lets run a quick -command to list potential kernels, just look at the output and make sure you see your newly installed kernel listed. - -```bash -grep "menuentry '" /boot/grub/grub.cfg -``` - -After running that you should see output similar to the example below. - -```text -menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ad1a8550-963c-4a9f-b922-85827cf44fbe' { - menuentry 'Ubuntu, with Linux 4.4.0-131-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-131-generic-advanced-ad1a8550-963c-4a9f-b922-85827cf44fbe' { - menuentry 'Ubuntu, with Linux 4.4.0-131-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-131-generic-recovery-ad1a8550-963c-4a9f-b922-85827cf44fbe' { - menuentry 'Ubuntu, with Linux 4.4.0-127-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-127-generic-advanced-ad1a8550-963c-4a9f-b922-85827cf44fbe' { - menuentry 'Ubuntu, with Linux 4.4.0-127-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-127-generic-recovery-ad1a8550-963c-4a9f-b922-85827cf44fbe' { - menuentry 'Ubuntu, with Linux 4.4.0-116-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-116-generic-advanced-ad1a8550-963c-4a9f-b922-85827cf44fbe' { - menuentry 'Ubuntu, with Linux 4.4.0-116-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-116-generic-recovery-ad1a8550-963c-4a9f-b922-85827cf44fbe' { -``` - -As you can see, we have `Ubuntu, with Linux 4.4.0-131-generic` listed as the first indented option. To boot using this -specific kernel, we will need to modify our grub file. - -```bash -sudo nano /etc/default/grub -``` - -Find `GRUB_DEFAULT`, it is most likely set to `GRUB_DEFAULT=0`. We're going to modify it a bit to boot our new kernel. - -```text -GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-131-generic' -``` - -The only part of the code above that you might need to change is the `4.4.0-131-generic`, which you can find based on -the kernel version you install. You might also notice that it matches the first indented entry from the grep menuentry -command and also the version of the kernel that we installed above. Once you've done that, run the commands below to -update grub and reboot, and you should be set. - -```bash -sudo update-grub -sudo reboot -``` - -## Boot from hard disk - -It's possible that even after you modified the GRUB configuration the server's still booted into a OVH kernel. If this happens to you, go to the OVH control panel and check the server's booting settings and make sure it's booting from hard disk instead of network boot. diff --git a/content/docs/wings/daemon-0.6/meta.json b/content/docs/wings/daemon-0.6/meta.json deleted file mode 100644 index 9dcae7280..000000000 --- a/content/docs/wings/daemon-0.6/meta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Daemon 0.6 (Legacy)", - "pages": [ - "installing", - "configuration", - "kernel-modifications", - "standalone-sftp", - "upgrading", - "upgrade" - ] -} diff --git a/content/docs/wings/daemon-0.6/standalone-sftp.mdx b/content/docs/wings/daemon-0.6/standalone-sftp.mdx deleted file mode 100644 index cc2f62f0a..000000000 --- a/content/docs/wings/daemon-0.6/standalone-sftp.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: Standalone SFTP Server -description: Guide for setting up standalone SFTP server for Pterodactyl Daemon 0.6 (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -Standalone SFTP support was introduced in `Panel@v0.7.11` and `Daemon@v0.6.8` and will not work with prior versions. - - -Pterodactyl now ships with the option to use a [standalone SFTP server](https://github.com/pterodactyl/sftp-server) -rather than using the one that was built into the Daemon. This provides better compatibility with SFTP clients, improved -transfer speeds, and a more native approach to file handling and server operation. - -Because this functionality is new, we've decided to make it an opt-in process, rather than an opt-out process. This page -will cover how to setup your standalone SFTP server. - -## Disable Daemon's Server - -To disable the Daemon SFTP server, you only need to add `sftp.enabled=false` to your Daemon's `core.json` file. - -```json -{ - ... - "sftp": { - ... - "ip": "0.0.0.0", - "enabled": false, - "port": 2022, - ... - }, - ... -} -``` - -Once you've done that, restarting the Daemon will apply the change and not boot the built-in server. - -## Run the Standalone Server - -To download the standalone server, execute the command below in your Daemon's base directory (generally `/srv/daemon`). - -```bash -curl -Lo sftp-server https://github.com/pterodactyl/sftp-server/releases/download/v1.0.5/sftp-server -chmod +x sftp-server -``` - -Excellent, now you've got the server binary. Because we've written this server using [`go`](https://golang.org) there -are no additional dependencies you need to install. - -### Start the Server - -Finally, start the SFTP server so that you can then use it to access your files. - -```bash -./sftp-server -``` - -By default, this will start the SFTP server on the old port of `2022`. If you want to use a different port it can be -specified by passing the `--port` flag. For more advanced usage, please refer to the [GitHub README](https://github.com/pterodactyl/sftp-server/tree/release/v1.0.4#running) -which includes all of the flags and their default values. - -## Daemonize Server - -Chances are you'll want to daemonize the SFTP server using something like `systemd` so that it will run in the -background. Place the contents below in a file called `pterosftp.service` in the `/etc/systemd/system` directory. - -```text -[Unit] -Description=Pterodactyl Standalone SFTP Server -After=wings.service - -[Service] -User=root -WorkingDirectory=/srv/daemon -LimitNOFILE=4096 -PIDFile=/var/run/wings/sftp.pid -ExecStart=/srv/daemon/sftp-server -Restart=on-failure -StartLimitInterval=600 - -[Install] -WantedBy=multi-user.target -``` - -Then, run the command below to enable it in systemd and start the SFTP server. - -```bash -systemctl enable --now pterosftp -``` - -### Customizing Startup - -If you're trying to pass additional arguments to the server when starting it using SystemD you'll want to modify -the `ExecStart` line. Something like `ExecStart=/srv/daemon/sftp-server --port 2022` for example. diff --git a/content/docs/wings/daemon-0.6/upgrade/0-4-to-0-5.mdx b/content/docs/wings/daemon-0.6/upgrade/0-4-to-0-5.mdx deleted file mode 100644 index dd5da1fb2..000000000 --- a/content/docs/wings/daemon-0.6/upgrade/0-4-to-0-5.mdx +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Upgrading 0.4.X to 0.5.X -description: Guide for upgrading Pterodactyl Daemon from 0.4.X to 0.5.X (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -This upgrade process will require that **all** servers running through the Daemon be offline for a short period -of time while data is reorganized and server containers are rebuilt. Please plan accordingly for this. - -You will need to update your Panel to the 0.7.X series in order to complete this process as well. - - -## Docker Adjustments - -Previously we provided a quick Docker installation script in our installation instructions. We made the regrettable -mistake of not reading deeper into it and realizing it enabled edge release channels for Docker. You'll want to take -a look at the official documentation for Docker and change your channel to be a stable release channel. - -Please reference the official Docker documentation for how to install Docker CE on your server. Some quick links -are listed below for commonly supported systems. - -* [Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce) -* [CentOS](https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce) -* [Debian](https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce) - -## Download Files - -To upgrade from v0.4.X first switch the directory where you installed your Daemon. If you followed the installation -guide your Daemon is most likely located in `/srv/daemon`. Then, download and unpack the archive using the -command below. - -```bash -curl -L https://github.com/pterodactyl/daemon/releases/download/v0.5.7/daemon.tar.gz | tar --strip-components=1 -xzv -``` - -Then, update the core dependencies for the Daemon with the following command. - -```bash -npm update --only=production -``` - -## SFTP Cleanup - -This version of the Daemon ships with an internal SFTP subsystem, no more need for a special Docker container or -confusing file permissions. For the most part the Daemon can handle all of the internal changes that make this possible, -you'll just need to remove the old Docker container for SFTP. - -To do so, simply run the following commands, changing `2022` if you are using a different port. - -```bash -docker rmi -f quay.io/pterodactyl/scrappy -sudo kill $( sudo lsof -i:2022 -t ) -``` - -Once you have completed that step, you will need to boot the Daemon in order to have the new system user created -automatically. This can be done by running `sudo npm start` in the Daemon directory. You'll want to run it in the -foreground in order to monitor progress and make sure it executes without issues. Once it has finished running and -the Daemon is up and running, stop it again using `CTRL+C`. - -If for whatever reason you need your user to be named something other than `pterodactyl` you can change that in the -`core.json` before booting the Daemon by setting the `docker.container.username` key. 99.9% of users will not need -to change the username. - -## File Migration - -Now for the longest part of the upgrade: data migration. You only need to migrate data once when updating from v0.4.X. - -You'll need all of your servers to be stopped for this part of the migration. All of their containers will also need -to be rebuilt, but this will be completed on the Panel with a console command since we also need to update their -configurations with some new data. We will run that command after we migrate all of the data. - -To perform this migration, simply run the command below in the Daemon directory and follow its prompts. Be aware it -might take a few minutes to run, especially with large volumes of data. - -```bash -sudo npm run migrate -docker system prune -``` - -### Rebuild Containers - -After migrating your data, you'll also need to run a command on the Panel in order to update all of the configurations -for these servers. First, be sure to boot the Daemon in foreground mode (`sudo npm start`). You'll then want to run the -following command in the Panel directory, **not the Daemon directory**. - -```bash -php artisan p:server:rebuild --node=### -``` - -Replace `###` above with the ID of your node that is being updated. This will toggle all servers for a rebuild, as -well as push the latest information to their configurations. Once this is done, stop the Daemon, run the command below, -and then boot it. If you have all daemons running and wish to update them all at once, remove the `--node` flag. - -Boot the Daemon one last time in the foreground, make sure it completes without errors, and then you can stop it and -restart it using your service: `sudo systemctl start wings`. - - -You're all finished! Thanks for bearing with us, this update addresses a lot of flaws in the previous implementations -of the software, and also prepares your data for the eventual migration to our new daemon — which is still in the works. - diff --git a/content/docs/wings/daemon-0.6/upgrade/0-5-to-0-6.mdx b/content/docs/wings/daemon-0.6/upgrade/0-5-to-0-6.mdx deleted file mode 100644 index cbea2dbd9..000000000 --- a/content/docs/wings/daemon-0.6/upgrade/0-5-to-0-6.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Upgrading 0.5.X to 0.6.X -description: Guide for upgrading Pterodactyl Daemon from 0.5.X to 0.6.X (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -Your servers will need to be restarted after upgrading the daemon in order to see the expected log output in the Panel. - - -## Breaking Changes - -This release introduces a few breaking changes to how the Daemon operates, but maintains compatibility with `v0.7.X` of -the Panel, so you don't need to worry about updating the Panel. - -Of notable change in this release is that we've switched from using custom logging functionality to using Docker logging -functionality. This allows us to better output events that happen before we can attach to the container, centralizes logic, -and allows Docker to manage the logs (which it does very well). Now, when your server refuses to boot, instead of seeing -an unhelpful "Server has crashed" message with nothing before it, you'll see _everything_ that happened in the container -leading up to that point, assuming things were output. - -## Download Files - -To upgrade from v0.5.X first switch the directory where you installed your Daemon. If you followed the installation -guide your Daemon is most likely located in `/srv/daemon`. Then, download and unpack the archive using the -command below. - - -Stop your Daemon process before continuing in order to avoid any issues and ensure everything updates as expected. - -```bash -systemctl stop wings -``` - - -```bash -curl -L https://github.com/pterodactyl/daemon/releases/download/v0.6.13/daemon.tar.gz | tar --strip-components=1 -xzv -``` - -Then, update the core dependencies for the Daemon with the following command. - -```bash -npm update --only=production -``` - -### Start the Daemon - -Finally, start your daemon up, most likely with the command below. - -```bash -systemctl start wings -``` - -## Rebuild Containers - -Because of some changes we made behind the scenes when it comes to displaying server output you'll need to rebuild and -restart all of your servers. The rebuild step is required, the restart step is optional, but highly recommended otherwise -you will not be able to see any console output. - -Run the following commands _from the Panel server_ in order to perform a mass rebuild and restart. Replace `###` with the -ID of the node you just upgraded, or remove the `--node` flag entirely to rebuild on all nodes. - -```bash -php artisan p:server:rebuild --node=### -``` - -Then, restart all of the servers using the following command, or by manually restarting them one at a time in the Panel. - -```bash -php artisan p:server:bulk-power restart --nodes=### -``` diff --git a/content/docs/wings/daemon-0.6/upgrade/0-5.mdx b/content/docs/wings/daemon-0.6/upgrade/0-5.mdx deleted file mode 100644 index 49f8dedb2..000000000 --- a/content/docs/wings/daemon-0.6/upgrade/0-5.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Upgrading 0.5 Series -description: Guide for upgrading Pterodactyl Daemon 0.5 series (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -Your servers will not go offline during this process thanks to Docker. Clients will briefly lose connection -to the Daemon from the Panel, but only during the restart phase. - - -## Download Newest Release - -First, ensure you're in the Daemon directory, `/srv/daemon`, before continuing through this process. After you've done -that, run the command below to pull down the latest files and unpack them in the daemon directory. - -```bash -curl -L https://github.com/pterodactyl/daemon/releases/download/v0.5.7/daemon.tar.gz | tar --strip-components=1 -xzv -``` - -## Update Components - -After you've pulled down the latest files the last thing you need to do is run the commands below to update the -components and then restart the daemon. - -```bash -npm update --only=production -systemctl restart wings -``` diff --git a/content/docs/wings/daemon-0.6/upgrade/0-6.mdx b/content/docs/wings/daemon-0.6/upgrade/0-6.mdx deleted file mode 100644 index 9db91d334..000000000 --- a/content/docs/wings/daemon-0.6/upgrade/0-6.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Upgrading 0.6 Series -description: Guide for upgrading Pterodactyl Daemon 0.6 series (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - - -**DO NOT** use this guide to upgrade from `0.5.X` to `0.6.X`, it will not work and you will encounter errors afterwards. Please check the [0.5 to 0.6](/wings/daemon-0.6/upgrade/0-5-to-0-6) upgrade documentation to perform that update. - - - -Your servers will not go offline during this process thanks to Docker. Clients will briefly lose connection -to the Daemon from the Panel, but only during the restart phase. - - -## Download Newest Release - -First, ensure you're in the Daemon directory, `/srv/daemon`, before continuing through this process. After you've done -that, run the command below to pull down the latest files and unpack them in the daemon directory. - -```bash -curl -L https://github.com/pterodactyl/daemon/releases/download/v0.6.13/daemon.tar.gz | tar --strip-components=1 -xzv -``` - -## Update Components - -After you've pulled down the latest files the last thing you need to do is run the commands below to update the -components and then restart the daemon. - - -Version `0.6.13` requires Nodejs v10 or higher in order to compile the `mmmagic` dependency. Please ensure -you are running at least version 10. You can run `node -v` to check, upgrade if it is `v6` or `v8`. - - - -You may see output along the lines of "found 14 vulnerabilities (6 low, 3 moderate, 5 high) in 927 scanned packages". -You can safely ignore this output. Do not run the audit fix command, you _will_ break your Daemon. - - -```bash -npm install --only=production --no-audit --unsafe-perm -systemctl restart wings -``` diff --git a/content/docs/wings/daemon-0.6/upgrade/meta.json b/content/docs/wings/daemon-0.6/upgrade/meta.json deleted file mode 100644 index a201ce0e7..000000000 --- a/content/docs/wings/daemon-0.6/upgrade/meta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "Upgrade Guides", - "pages": [ - "0-4-to-0-5", - "0-5", - "0-5-to-0-6", - "0-6" - ] -} diff --git a/content/docs/wings/daemon-0.6/upgrading.mdx b/content/docs/wings/daemon-0.6/upgrading.mdx deleted file mode 100644 index 1941e8483..000000000 --- a/content/docs/wings/daemon-0.6/upgrading.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Upgrading -description: Guide for upgrading Pterodactyl Daemon 0.6 (Legacy) ---- - - -This documentation is for **abandoned software** which does not receive any security updates or support -from the community. This documentation has been left accessible for historical reasons. - -You should be installing and using [Wings](/wings/installing) in production environments with -[Pterodactyl Panel 1.0](/panel/getting-started). - - -## Version Specific Guides - -* [0.4.X to 0.5.X](/wings/daemon-0.6/upgrade/0-4-to-0-5) -* [0.5.X series](/wings/daemon-0.6/upgrade/0-5) -* [0.5.X to 0.6.X](/wings/daemon-0.6/upgrade/0-5-to-0-6) -* [0.6.X series](/wings/daemon-0.6/upgrade/0-6) -* [0.6.X to 1.X.X](/wings/migrating) (Current - Migrate to Wings) -* [1.X.X series](/wings/upgrading) (Current - Wings) diff --git a/content/docs/wings/index.mdx b/content/docs/wings/index.mdx index b1a6e8de8..06a758622 100644 --- a/content/docs/wings/index.mdx +++ b/content/docs/wings/index.mdx @@ -3,7 +3,7 @@ title: Wings description: Server control plane documentation for Pterodactyl Wings --- -Wings is the next generation server control plane from Pterodactyl. It has been rebuilt from the ground up using Go and lessons learned from our first Nodejs Daemon. +Wings is the server control plane from Pterodactyl. It has been rebuilt from the ground up using Go and lessons learned from our first Nodejs Daemon. ## Getting Started @@ -17,13 +17,4 @@ If you're migrating from the old Node.JS daemon (0.6.x), see the [Migrating to W - [Installing](/wings/installing) - Complete installation guide for Wings - [Configuration](/wings/configuration) - Advanced configuration options -- [Upgrading](/wings/upgrading) - Guide for upgrading Wings -- [Migrating](/wings/migrating) - Migrate from Node.JS daemon to Wings - -### Daemon 0.6 (Legacy) - - -The Daemon 0.6 documentation is provided for historical reference only. This software is abandoned and no longer receives security updates or support. You should be using Wings 1.0 with Pterodactyl Panel 1.0 in production environments. - - -- [Legacy Daemon Documentation](/wings/daemon-0.6/installing) - Archived documentation for Daemon 0.6 +- [Upgrading](/wings/upgrading) - Guide for upgrading Wings \ No newline at end of file From 6d6d4dcf26beef93257c8e254b700796110c6fd5 Mon Sep 17 00:00:00 2001 From: Red-Banana-Official Date: Fri, 20 Feb 2026 18:03:15 +0100 Subject: [PATCH 6/7] Adding API documentation --- app/global.css | 49 + components/api-page.tsx | 8 + .../delete-delete-location.mdx | 17 + .../get-list-locations.mdx | 30 + .../get-location-details.mdx | 30 + .../docs/api/application-locations/meta.json | 10 + .../patch-update-location.mdx | 17 + .../post-create-location.mdx | 17 + .../get-egg-details.mdx | 36 + .../get-list-eggs.mdx | 36 + .../meta.json | 7 + .../api/application-nests/get-list-nests.mdx | 30 + .../application-nests/get-nest-details.mdx | 30 + content/docs/api/application-nests/meta.json | 7 + .../delete-delete-allocation.mdx | 17 + .../get-list-allocations.mdx | 30 + .../application-nodes-allocations/meta.json | 8 + .../post-create-allocations.mdx | 17 + .../application-nodes/delete-delete-node.mdx | 17 + .../api/application-nodes/get-list-nodes.mdx | 42 + .../get-node-configuration.mdx | 17 + .../application-nodes/get-node-details.mdx | 42 + content/docs/api/application-nodes/meta.json | 11 + .../application-nodes/patch-update-node.mdx | 17 + .../application-nodes/post-create-node.mdx | 17 + .../delete-delete-database.mdx | 17 + .../get-database-details.mdx | 30 + .../get-list-databases.mdx | 30 + .../meta.json | 10 + .../post-create-database.mdx | 17 + .../post-reset-password.mdx | 17 + .../delete-delete-server.mdx | 17 + .../delete-force-delete-server.mdx | 17 + .../application-servers/get-list-servers.mdx | 17 + .../get-server-details.mdx | 46 + .../docs/api/application-servers/meta.json | 16 + .../patch-update-build.mdx | 17 + .../patch-update-details.mdx | 17 + .../patch-update-startup.mdx | 17 + .../post-create-server.mdx | 17 + .../post-reinstall-server.mdx | 17 + .../post-suspend-server.mdx | 17 + .../post-unsuspend-server.mdx | 17 + .../application-users/delete-delete-user.mdx | 17 + .../api/application-users/get-list-users.mdx | 56 + .../application-users/get-user-details.mdx | 28 + content/docs/api/application-users/meta.json | 10 + .../application-users/patch-update-user.mdx | 17 + .../application-users/post-create-user.mdx | 17 + .../client-account/delete-delete-api-key.mdx | 17 + .../api/client-account/delete-disable-2fa.mdx | 17 + .../api/client-account/get-2fa-details.mdx | 17 + .../client-account/get-account-details.mdx | 17 + .../api/client-account/get-list-api-keys.mdx | 17 + content/docs/api/client-account/meta.json | 14 + .../client-account/post-create-api-key.mdx | 17 + .../api/client-account/post-enable-2fa.mdx | 22 + .../api/client-account/put-update-email.mdx | 17 + .../client-account/put-update-password.mdx | 17 + .../api/client-general/get-list-servers.mdx | 30 + .../client-general/get-show-permissions.mdx | 22 + content/docs/api/client-general/meta.json | 7 + .../delete-delete-backup.mdx | 17 + .../get-backup-details.mdx | 17 + .../get-download-backup.mdx | 17 + .../get-list-backups.mdx | 17 + .../docs/api/client-server-backups/meta.json | 10 + .../post-create-backup.mdx | 17 + .../delete-delete-database.mdx | 17 + .../get-list-databases.mdx | 28 + .../api/client-server-databases/meta.json | 9 + .../post-create-database.mdx | 17 + .../post-rotate-password.mdx | 17 + .../get-download-file.mdx | 28 + .../get-get-file-contents.mdx | 28 + .../get-list-files.mdx | 28 + .../get-upload-file.mdx | 17 + .../api/client-server-file-manager/meta.json | 16 + .../post-compress-file.mdx | 17 + .../post-copy-file.mdx | 17 + .../post-create-folder.mdx | 17 + .../post-decompress-file.mdx | 17 + .../post-delete-file.mdx | 17 + .../post-write-file.mdx | 28 + .../put-rename-file.mdx | 17 + .../delete-unassign-allocation.mdx | 17 + .../get-list-allocations.mdx | 17 + .../docs/api/client-server-network/meta.json | 10 + .../post-assign-allocation.mdx | 19 + .../post-set-allocation-note.mdx | 28 + .../post-set-primary-allocation.mdx | 17 + .../delete-delete-schedule.mdx | 17 + .../delete-delete-task.mdx | 17 + .../get-list-schedules.mdx | 17 + .../get-schedule-details.mdx | 17 + .../api/client-server-schedules/meta.json | 13 + .../post-create-schedule.mdx | 17 + .../post-create-task.mdx | 17 + .../post-update-schedule.mdx | 17 + .../post-update-task.mdx | 17 + .../docs/api/client-server-settings/meta.json | 7 + .../post-reinstall-server.mdx | 17 + .../post-rename-server.mdx | 28 + .../get-list-variables.mdx | 17 + .../docs/api/client-server-startup/meta.json | 7 + .../put-update-variable.mdx | 17 + .../delete-delete-user.mdx | 17 + .../client-server-users/get-list-users.mdx | 19 + .../client-server-users/get-user-details.mdx | 17 + .../docs/api/client-server-users/meta.json | 10 + .../client-server-users/post-create-user.mdx | 38 + .../client-server-users/post-update-user.mdx | 34 + .../api/client-server/get-console-details.mdx | 88 ++ .../api/client-server/get-resource-usage.mdx | 17 + .../api/client-server/get-server-details.mdx | 30 + content/docs/api/client-server/meta.json | 10 + .../client-server/post-change-power-state.mdx | 34 + .../api/client-server/post-send-command.mdx | 24 + content/docs/api/meta.json | 27 + content/docs/meta.json | 4 +- lib/openapi.ts | 5 + mdx-components.tsx | 2 + openapi.json | 1 + package-lock.json | 969 ++++++++++++++++-- package.json | 8 +- 125 files changed, 3326 insertions(+), 96 deletions(-) create mode 100644 components/api-page.tsx create mode 100644 content/docs/api/application-locations/delete-delete-location.mdx create mode 100644 content/docs/api/application-locations/get-list-locations.mdx create mode 100644 content/docs/api/application-locations/get-location-details.mdx create mode 100644 content/docs/api/application-locations/meta.json create mode 100644 content/docs/api/application-locations/patch-update-location.mdx create mode 100644 content/docs/api/application-locations/post-create-location.mdx create mode 100644 content/docs/api/application-nests-eggs-management/get-egg-details.mdx create mode 100644 content/docs/api/application-nests-eggs-management/get-list-eggs.mdx create mode 100644 content/docs/api/application-nests-eggs-management/meta.json create mode 100644 content/docs/api/application-nests/get-list-nests.mdx create mode 100644 content/docs/api/application-nests/get-nest-details.mdx create mode 100644 content/docs/api/application-nests/meta.json create mode 100644 content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx create mode 100644 content/docs/api/application-nodes-allocations/get-list-allocations.mdx create mode 100644 content/docs/api/application-nodes-allocations/meta.json create mode 100644 content/docs/api/application-nodes-allocations/post-create-allocations.mdx create mode 100644 content/docs/api/application-nodes/delete-delete-node.mdx create mode 100644 content/docs/api/application-nodes/get-list-nodes.mdx create mode 100644 content/docs/api/application-nodes/get-node-configuration.mdx create mode 100644 content/docs/api/application-nodes/get-node-details.mdx create mode 100644 content/docs/api/application-nodes/meta.json create mode 100644 content/docs/api/application-nodes/patch-update-node.mdx create mode 100644 content/docs/api/application-nodes/post-create-node.mdx create mode 100644 content/docs/api/application-servers-database-management/delete-delete-database.mdx create mode 100644 content/docs/api/application-servers-database-management/get-database-details.mdx create mode 100644 content/docs/api/application-servers-database-management/get-list-databases.mdx create mode 100644 content/docs/api/application-servers-database-management/meta.json create mode 100644 content/docs/api/application-servers-database-management/post-create-database.mdx create mode 100644 content/docs/api/application-servers-database-management/post-reset-password.mdx create mode 100644 content/docs/api/application-servers/delete-delete-server.mdx create mode 100644 content/docs/api/application-servers/delete-force-delete-server.mdx create mode 100644 content/docs/api/application-servers/get-list-servers.mdx create mode 100644 content/docs/api/application-servers/get-server-details.mdx create mode 100644 content/docs/api/application-servers/meta.json create mode 100644 content/docs/api/application-servers/patch-update-build.mdx create mode 100644 content/docs/api/application-servers/patch-update-details.mdx create mode 100644 content/docs/api/application-servers/patch-update-startup.mdx create mode 100644 content/docs/api/application-servers/post-create-server.mdx create mode 100644 content/docs/api/application-servers/post-reinstall-server.mdx create mode 100644 content/docs/api/application-servers/post-suspend-server.mdx create mode 100644 content/docs/api/application-servers/post-unsuspend-server.mdx create mode 100644 content/docs/api/application-users/delete-delete-user.mdx create mode 100644 content/docs/api/application-users/get-list-users.mdx create mode 100644 content/docs/api/application-users/get-user-details.mdx create mode 100644 content/docs/api/application-users/meta.json create mode 100644 content/docs/api/application-users/patch-update-user.mdx create mode 100644 content/docs/api/application-users/post-create-user.mdx create mode 100644 content/docs/api/client-account/delete-delete-api-key.mdx create mode 100644 content/docs/api/client-account/delete-disable-2fa.mdx create mode 100644 content/docs/api/client-account/get-2fa-details.mdx create mode 100644 content/docs/api/client-account/get-account-details.mdx create mode 100644 content/docs/api/client-account/get-list-api-keys.mdx create mode 100644 content/docs/api/client-account/meta.json create mode 100644 content/docs/api/client-account/post-create-api-key.mdx create mode 100644 content/docs/api/client-account/post-enable-2fa.mdx create mode 100644 content/docs/api/client-account/put-update-email.mdx create mode 100644 content/docs/api/client-account/put-update-password.mdx create mode 100644 content/docs/api/client-general/get-list-servers.mdx create mode 100644 content/docs/api/client-general/get-show-permissions.mdx create mode 100644 content/docs/api/client-general/meta.json create mode 100644 content/docs/api/client-server-backups/delete-delete-backup.mdx create mode 100644 content/docs/api/client-server-backups/get-backup-details.mdx create mode 100644 content/docs/api/client-server-backups/get-download-backup.mdx create mode 100644 content/docs/api/client-server-backups/get-list-backups.mdx create mode 100644 content/docs/api/client-server-backups/meta.json create mode 100644 content/docs/api/client-server-backups/post-create-backup.mdx create mode 100644 content/docs/api/client-server-databases/delete-delete-database.mdx create mode 100644 content/docs/api/client-server-databases/get-list-databases.mdx create mode 100644 content/docs/api/client-server-databases/meta.json create mode 100644 content/docs/api/client-server-databases/post-create-database.mdx create mode 100644 content/docs/api/client-server-databases/post-rotate-password.mdx create mode 100644 content/docs/api/client-server-file-manager/get-download-file.mdx create mode 100644 content/docs/api/client-server-file-manager/get-get-file-contents.mdx create mode 100644 content/docs/api/client-server-file-manager/get-list-files.mdx create mode 100644 content/docs/api/client-server-file-manager/get-upload-file.mdx create mode 100644 content/docs/api/client-server-file-manager/meta.json create mode 100644 content/docs/api/client-server-file-manager/post-compress-file.mdx create mode 100644 content/docs/api/client-server-file-manager/post-copy-file.mdx create mode 100644 content/docs/api/client-server-file-manager/post-create-folder.mdx create mode 100644 content/docs/api/client-server-file-manager/post-decompress-file.mdx create mode 100644 content/docs/api/client-server-file-manager/post-delete-file.mdx create mode 100644 content/docs/api/client-server-file-manager/post-write-file.mdx create mode 100644 content/docs/api/client-server-file-manager/put-rename-file.mdx create mode 100644 content/docs/api/client-server-network/delete-unassign-allocation.mdx create mode 100644 content/docs/api/client-server-network/get-list-allocations.mdx create mode 100644 content/docs/api/client-server-network/meta.json create mode 100644 content/docs/api/client-server-network/post-assign-allocation.mdx create mode 100644 content/docs/api/client-server-network/post-set-allocation-note.mdx create mode 100644 content/docs/api/client-server-network/post-set-primary-allocation.mdx create mode 100644 content/docs/api/client-server-schedules/delete-delete-schedule.mdx create mode 100644 content/docs/api/client-server-schedules/delete-delete-task.mdx create mode 100644 content/docs/api/client-server-schedules/get-list-schedules.mdx create mode 100644 content/docs/api/client-server-schedules/get-schedule-details.mdx create mode 100644 content/docs/api/client-server-schedules/meta.json create mode 100644 content/docs/api/client-server-schedules/post-create-schedule.mdx create mode 100644 content/docs/api/client-server-schedules/post-create-task.mdx create mode 100644 content/docs/api/client-server-schedules/post-update-schedule.mdx create mode 100644 content/docs/api/client-server-schedules/post-update-task.mdx create mode 100644 content/docs/api/client-server-settings/meta.json create mode 100644 content/docs/api/client-server-settings/post-reinstall-server.mdx create mode 100644 content/docs/api/client-server-settings/post-rename-server.mdx create mode 100644 content/docs/api/client-server-startup/get-list-variables.mdx create mode 100644 content/docs/api/client-server-startup/meta.json create mode 100644 content/docs/api/client-server-startup/put-update-variable.mdx create mode 100644 content/docs/api/client-server-users/delete-delete-user.mdx create mode 100644 content/docs/api/client-server-users/get-list-users.mdx create mode 100644 content/docs/api/client-server-users/get-user-details.mdx create mode 100644 content/docs/api/client-server-users/meta.json create mode 100644 content/docs/api/client-server-users/post-create-user.mdx create mode 100644 content/docs/api/client-server-users/post-update-user.mdx create mode 100644 content/docs/api/client-server/get-console-details.mdx create mode 100644 content/docs/api/client-server/get-resource-usage.mdx create mode 100644 content/docs/api/client-server/get-server-details.mdx create mode 100644 content/docs/api/client-server/meta.json create mode 100644 content/docs/api/client-server/post-change-power-state.mdx create mode 100644 content/docs/api/client-server/post-send-command.mdx create mode 100644 content/docs/api/meta.json create mode 100644 lib/openapi.ts create mode 100644 openapi.json diff --git a/app/global.css b/app/global.css index bc099e492..58d5f0646 100644 --- a/app/global.css +++ b/app/global.css @@ -1,4 +1,53 @@ @import 'tailwindcss'; @import 'fumadocs-ui/css/neutral.css'; @import 'fumadocs-ui/css/preset.css'; +@import 'fumadocs-openapi/css/preset.css'; +/* API sidebar method badges — scoped to leaf page links only (have padding-inline-start) */ +a[style*="padding-inline-start"][href*="/api/"][href*="/get-"]::before, +a[style*="padding-inline-start"][href*="/api/"][href*="/post-"]::before, +a[style*="padding-inline-start"][href*="/api/"][href*="/put-"]::before, +a[style*="padding-inline-start"][href*="/api/"][href*="/patch-"]::before, +a[style*="padding-inline-start"][href*="/api/"][href*="/delete-"]::before { + font-size: 0.625rem; + font-weight: 700; + line-height: 1; + padding: 2px 5px; + border-radius: 4px; + letter-spacing: 0.02em; + flex-shrink: 0; + position: static !important; + width: auto !important; + inset: unset !important; + background: unset !important; +} + +a[style*="padding-inline-start"][href*="/api/"][href*="/get-"]::before { + content: "GET" !important; + background-color: color-mix(in srgb, #7d69cb 18%, transparent) !important; + color: #7d69cb; +} + +a[style*="padding-inline-start"][href*="/api/"][href*="/post-"]::before { + content: "POST" !important; + background-color: color-mix(in srgb, #59a210 18%, transparent) !important; + color: #59a210; +} + +a[style*="padding-inline-start"][href*="/api/"][href*="/put-"]::before { + content: "PUT" !important; + background-color: color-mix(in srgb, #ff9a1f 18%, transparent) !important; + color: #ff9a1f; +} + +a[style*="padding-inline-start"][href*="/api/"][href*="/patch-"]::before { + content: "PATCH" !important; + background-color: color-mix(in srgb, #d07502 18%, transparent) !important; + color: #d07502; +} + +a[style*="padding-inline-start"][href*="/api/"][href*="/delete-"]::before { + content: "DEL" !important; + background-color: color-mix(in srgb, #d04444 18%, transparent) !important; + color: #d04444; +} diff --git a/components/api-page.tsx b/components/api-page.tsx new file mode 100644 index 000000000..534cfa01c --- /dev/null +++ b/components/api-page.tsx @@ -0,0 +1,8 @@ +import { openapi } from '@/lib/openapi'; +import { createAPIPage } from 'fumadocs-openapi/ui'; + +export const APIPage = createAPIPage(openapi, { + playground: { + enabled: false, + }, +}); diff --git a/content/docs/api/application-locations/delete-delete-location.mdx b/content/docs/api/application-locations/delete-delete-location.mdx new file mode 100644 index 000000000..374df0f95 --- /dev/null +++ b/content/docs/api/application-locations/delete-delete-location.mdx @@ -0,0 +1,17 @@ +--- +title: Delete location +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified location +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified location + + \ No newline at end of file diff --git a/content/docs/api/application-locations/get-list-locations.mdx b/content/docs/api/application-locations/get-list-locations.mdx new file mode 100644 index 000000000..a0ffd96fe --- /dev/null +++ b/content/docs/api/application-locations/get-list-locations.mdx @@ -0,0 +1,30 @@ +--- +title: List locations +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves all locations + + # Available include parameters + | Parameter | Description | + |-----------|----------------------------------------| + | nodes | List of nodes assigned to the location | + | servers | List of servers in the location | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves all locations + +# Available include parameters +| Parameter | Description | +|-----------|----------------------------------------| +| nodes | List of nodes assigned to the location | +| servers | List of servers in the location | + + \ No newline at end of file diff --git a/content/docs/api/application-locations/get-location-details.mdx b/content/docs/api/application-locations/get-location-details.mdx new file mode 100644 index 000000000..432609cb9 --- /dev/null +++ b/content/docs/api/application-locations/get-location-details.mdx @@ -0,0 +1,30 @@ +--- +title: Location details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves the specified location + + # Available include parameters + | Parameter | Description | + |-----------|----------------------------------------| + | nodes | List of nodes assigned to the location | + | servers | List of servers in the location | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the specified location + +# Available include parameters +| Parameter | Description | +|-----------|----------------------------------------| +| nodes | List of nodes assigned to the location | +| servers | List of servers in the location | + + \ No newline at end of file diff --git a/content/docs/api/application-locations/meta.json b/content/docs/api/application-locations/meta.json new file mode 100644 index 000000000..358648ceb --- /dev/null +++ b/content/docs/api/application-locations/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Locations", + "pages": [ + "get-list-locations", + "get-location-details", + "post-create-location", + "patch-update-location", + "delete-delete-location" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-locations/patch-update-location.mdx b/content/docs/api/application-locations/patch-update-location.mdx new file mode 100644 index 000000000..d6f57f1c5 --- /dev/null +++ b/content/docs/api/application-locations/patch-update-location.mdx @@ -0,0 +1,17 @@ +--- +title: Update location +full: true +_openapi: + method: PATCH + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the specified location +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the specified location + + \ No newline at end of file diff --git a/content/docs/api/application-locations/post-create-location.mdx b/content/docs/api/application-locations/post-create-location.mdx new file mode 100644 index 000000000..63a7dce11 --- /dev/null +++ b/content/docs/api/application-locations/post-create-location.mdx @@ -0,0 +1,17 @@ +--- +title: Create location +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new location +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new location + + \ No newline at end of file diff --git a/content/docs/api/application-nests-eggs-management/get-egg-details.mdx b/content/docs/api/application-nests-eggs-management/get-egg-details.mdx new file mode 100644 index 000000000..478398752 --- /dev/null +++ b/content/docs/api/application-nests-eggs-management/get-egg-details.mdx @@ -0,0 +1,36 @@ +--- +title: Egg details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves the specified egg + + ## Available include parameters + | Parameter | Description | + |-----------|----------------------------------------------| + | nest | Information about the nest that owns the egg | + | servers | List of servers using the egg | + | config | Config options of the egg | + | script | Egg install script | + | variables | List of egg variables | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the specified egg + +## Available include parameters +| Parameter | Description | +|-----------|----------------------------------------------| +| nest | Information about the nest that owns the egg | +| servers | List of servers using the egg | +| config | Config options of the egg | +| script | Egg install script | +| variables | List of egg variables | + + \ No newline at end of file diff --git a/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx b/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx new file mode 100644 index 000000000..c4d80e6c3 --- /dev/null +++ b/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx @@ -0,0 +1,36 @@ +--- +title: List eggs +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves a list of eggs + + ## Available include parameters + | Parameter | Description | + |-----------|----------------------------------------------| + | nest | Information about the nest that owns the egg | + | servers | List of servers using the egg | + | config | Config options of the egg | + | script | Egg install script | + | variables | List of egg variables | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves a list of eggs + +## Available include parameters +| Parameter | Description | +|-----------|----------------------------------------------| +| nest | Information about the nest that owns the egg | +| servers | List of servers using the egg | +| config | Config options of the egg | +| script | Egg install script | +| variables | List of egg variables | + + \ No newline at end of file diff --git a/content/docs/api/application-nests-eggs-management/meta.json b/content/docs/api/application-nests-eggs-management/meta.json new file mode 100644 index 000000000..fbe0112cc --- /dev/null +++ b/content/docs/api/application-nests-eggs-management/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Eggs", + "pages": [ + "get-list-eggs", + "get-egg-details" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-nests/get-list-nests.mdx b/content/docs/api/application-nests/get-list-nests.mdx new file mode 100644 index 000000000..5dad18ed7 --- /dev/null +++ b/content/docs/api/application-nests/get-list-nests.mdx @@ -0,0 +1,30 @@ +--- +title: List nests +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves all nests + + # Available include parameters + | Parameter | Description | + |-----------|---------------------------------| + | eggs | List of eggs in the location | + | servers | List of servers in the location | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves all nests + +# Available include parameters +| Parameter | Description | +|-----------|---------------------------------| +| eggs | List of eggs in the location | +| servers | List of servers in the location | + + \ No newline at end of file diff --git a/content/docs/api/application-nests/get-nest-details.mdx b/content/docs/api/application-nests/get-nest-details.mdx new file mode 100644 index 000000000..462321175 --- /dev/null +++ b/content/docs/api/application-nests/get-nest-details.mdx @@ -0,0 +1,30 @@ +--- +title: Nest details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves the specified nests + + # Available include parameters + | Parameter | Description | + |-----------|---------------------------------| + | eggs | List of eggs in the location | + | servers | List of servers in the location | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the specified nests + +# Available include parameters +| Parameter | Description | +|-----------|---------------------------------| +| eggs | List of eggs in the location | +| servers | List of servers in the location | + + \ No newline at end of file diff --git a/content/docs/api/application-nests/meta.json b/content/docs/api/application-nests/meta.json new file mode 100644 index 000000000..5113bbdf3 --- /dev/null +++ b/content/docs/api/application-nests/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Nests", + "pages": [ + "get-list-nests", + "get-nest-details" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx b/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx new file mode 100644 index 000000000..247d3885d --- /dev/null +++ b/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx @@ -0,0 +1,17 @@ +--- +title: Delete allocation +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified allocation +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified allocation + + \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/get-list-allocations.mdx b/content/docs/api/application-nodes-allocations/get-list-allocations.mdx new file mode 100644 index 000000000..a5ba19a6b --- /dev/null +++ b/content/docs/api/application-nodes-allocations/get-list-allocations.mdx @@ -0,0 +1,30 @@ +--- +title: List allocations +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Lists allocations added to the node + + ## Available include parameters + | Parameter | Description | + |-----------|--------------------------------------------------------| + | node | Information about the node the allocation belongs to | + | server | Information about the server the allocation belongs to | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists allocations added to the node + +## Available include parameters +| Parameter | Description | +|-----------|--------------------------------------------------------| +| node | Information about the node the allocation belongs to | +| server | Information about the server the allocation belongs to | + + \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/meta.json b/content/docs/api/application-nodes-allocations/meta.json new file mode 100644 index 000000000..72658a91a --- /dev/null +++ b/content/docs/api/application-nodes-allocations/meta.json @@ -0,0 +1,8 @@ +{ + "title": "Allocations", + "pages": [ + "get-list-allocations", + "post-create-allocations", + "delete-delete-allocation" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/post-create-allocations.mdx b/content/docs/api/application-nodes-allocations/post-create-allocations.mdx new file mode 100644 index 000000000..594fbb5c7 --- /dev/null +++ b/content/docs/api/application-nodes-allocations/post-create-allocations.mdx @@ -0,0 +1,17 @@ +--- +title: Create allocations +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Adds an allocation to the node +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Adds an allocation to the node + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/delete-delete-node.mdx b/content/docs/api/application-nodes/delete-delete-node.mdx new file mode 100644 index 000000000..e79cc7d52 --- /dev/null +++ b/content/docs/api/application-nodes/delete-delete-node.mdx @@ -0,0 +1,17 @@ +--- +title: Delete node +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified node +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified node + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/get-list-nodes.mdx b/content/docs/api/application-nodes/get-list-nodes.mdx new file mode 100644 index 000000000..86bd6a38a --- /dev/null +++ b/content/docs/api/application-nodes/get-list-nodes.mdx @@ -0,0 +1,42 @@ +--- +title: List nodes +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Retrieves a list of nodes + + + ## Available include parameters + + | Parameter | Description + | + + |-------------|--------------------------------------------------------| + + | allocations | List of allocations added to the node + | + + | location | Information about the location the node is assigned to + | + + | servers | List of servers on the node + | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves a list of nodes + +## Available include parameters +| Parameter | Description | +|-------------|--------------------------------------------------------| +| allocations | List of allocations added to the node | +| location | Information about the location the node is assigned to | +| servers | List of servers on the node | + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/get-node-configuration.mdx b/content/docs/api/application-nodes/get-node-configuration.mdx new file mode 100644 index 000000000..c60e82ab0 --- /dev/null +++ b/content/docs/api/application-nodes/get-node-configuration.mdx @@ -0,0 +1,17 @@ +--- +title: Node configuration +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Displays the Wings configuration +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Displays the Wings configuration + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/get-node-details.mdx b/content/docs/api/application-nodes/get-node-details.mdx new file mode 100644 index 000000000..ae6a544a9 --- /dev/null +++ b/content/docs/api/application-nodes/get-node-details.mdx @@ -0,0 +1,42 @@ +--- +title: Node details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Retrieves the specified node + + + ## Available include parameters + + | Parameter | Description + | + + |-------------|--------------------------------------------------------| + + | allocations | List of allocations added to the node + | + + | location | Information about the location the node is assigned to + | + + | servers | List of servers on the node + | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the specified node + +## Available include parameters +| Parameter | Description | +|-------------|--------------------------------------------------------| +| allocations | List of allocations added to the node | +| location | Information about the location the node is assigned to | +| servers | List of servers on the node | + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/meta.json b/content/docs/api/application-nodes/meta.json new file mode 100644 index 000000000..c6dfb5a4b --- /dev/null +++ b/content/docs/api/application-nodes/meta.json @@ -0,0 +1,11 @@ +{ + "title": "Nodes", + "pages": [ + "get-list-nodes", + "get-node-details", + "get-node-configuration", + "post-create-node", + "patch-update-node", + "delete-delete-node" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-nodes/patch-update-node.mdx b/content/docs/api/application-nodes/patch-update-node.mdx new file mode 100644 index 000000000..c33244ce1 --- /dev/null +++ b/content/docs/api/application-nodes/patch-update-node.mdx @@ -0,0 +1,17 @@ +--- +title: Update node +full: true +_openapi: + method: PATCH + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the node details +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the node details + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/post-create-node.mdx b/content/docs/api/application-nodes/post-create-node.mdx new file mode 100644 index 000000000..46a14f7ba --- /dev/null +++ b/content/docs/api/application-nodes/post-create-node.mdx @@ -0,0 +1,17 @@ +--- +title: Create node +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new node +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new node + + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/delete-delete-database.mdx b/content/docs/api/application-servers-database-management/delete-delete-database.mdx new file mode 100644 index 000000000..2b70ac9b2 --- /dev/null +++ b/content/docs/api/application-servers-database-management/delete-delete-database.mdx @@ -0,0 +1,17 @@ +--- +title: Delete database +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified database +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified database + + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/get-database-details.mdx b/content/docs/api/application-servers-database-management/get-database-details.mdx new file mode 100644 index 000000000..f919ffea9 --- /dev/null +++ b/content/docs/api/application-servers-database-management/get-database-details.mdx @@ -0,0 +1,30 @@ +--- +title: Database details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves the specified database + + ## Available include parameters + | Parameter | Description | + |-----------|-------------------------------------| + | password | Includes the database user password | + | host | Information about the database host | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the specified database + +## Available include parameters +| Parameter | Description | +|-----------|-------------------------------------| +| password | Includes the database user password | +| host | Information about the database host | + + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/get-list-databases.mdx b/content/docs/api/application-servers-database-management/get-list-databases.mdx new file mode 100644 index 000000000..70f31791c --- /dev/null +++ b/content/docs/api/application-servers-database-management/get-list-databases.mdx @@ -0,0 +1,30 @@ +--- +title: List databases +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves all databases on a server + + ## Available include parameters + | Parameter | Description | + |-----------|-------------------------------------| + | password | Includes the database user password | + | host | Information about the database host | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves all databases on a server + +## Available include parameters +| Parameter | Description | +|-----------|-------------------------------------| +| password | Includes the database user password | +| host | Information about the database host | + + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/meta.json b/content/docs/api/application-servers-database-management/meta.json new file mode 100644 index 000000000..bd3ad2208 --- /dev/null +++ b/content/docs/api/application-servers-database-management/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Server Databases", + "pages": [ + "get-list-databases", + "get-database-details", + "post-create-database", + "post-reset-password", + "delete-delete-database" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/post-create-database.mdx b/content/docs/api/application-servers-database-management/post-create-database.mdx new file mode 100644 index 000000000..c2937fbac --- /dev/null +++ b/content/docs/api/application-servers-database-management/post-create-database.mdx @@ -0,0 +1,17 @@ +--- +title: Create database +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new database on the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new database on the specified server + + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/post-reset-password.mdx b/content/docs/api/application-servers-database-management/post-reset-password.mdx new file mode 100644 index 000000000..7520eae63 --- /dev/null +++ b/content/docs/api/application-servers-database-management/post-reset-password.mdx @@ -0,0 +1,17 @@ +--- +title: Reset password +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Rotates the password of the database +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Rotates the password of the database + + \ No newline at end of file diff --git a/content/docs/api/application-servers/delete-delete-server.mdx b/content/docs/api/application-servers/delete-delete-server.mdx new file mode 100644 index 000000000..89debc295 --- /dev/null +++ b/content/docs/api/application-servers/delete-delete-server.mdx @@ -0,0 +1,17 @@ +--- +title: Delete server +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified server + + \ No newline at end of file diff --git a/content/docs/api/application-servers/delete-force-delete-server.mdx b/content/docs/api/application-servers/delete-force-delete-server.mdx new file mode 100644 index 000000000..257732b4c --- /dev/null +++ b/content/docs/api/application-servers/delete-force-delete-server.mdx @@ -0,0 +1,17 @@ +--- +title: Force delete server +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Forcefully deletes the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Forcefully deletes the specified server + + \ No newline at end of file diff --git a/content/docs/api/application-servers/get-list-servers.mdx b/content/docs/api/application-servers/get-list-servers.mdx new file mode 100644 index 000000000..4e2d86c7b --- /dev/null +++ b/content/docs/api/application-servers/get-list-servers.mdx @@ -0,0 +1,17 @@ +--- +title: List servers +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves all servers +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves all servers + + \ No newline at end of file diff --git a/content/docs/api/application-servers/get-server-details.mdx b/content/docs/api/application-servers/get-server-details.mdx new file mode 100644 index 000000000..0e995a9ab --- /dev/null +++ b/content/docs/api/application-servers/get-server-details.mdx @@ -0,0 +1,46 @@ +--- +title: Server details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves a server by its external ID + + ## Available include parameters + | Parameter | Description | + |-------------|--------------------------------------------| + | allocations | List of allocations assigned to the server | + | user | Information about the server owner | + | subusers | List of users added to the server | + | pack | Information about the server pack | + | nest | Information about the server's egg nest | + | egg | Information about the server's egg | + | variables | List of server variables | + | location | Information about server's node location | + | node | Information about the server's node | + | databases | List of databases on the server | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves a server by its external ID + +## Available include parameters +| Parameter | Description | +|-------------|--------------------------------------------| +| allocations | List of allocations assigned to the server | +| user | Information about the server owner | +| subusers | List of users added to the server | +| pack | Information about the server pack | +| nest | Information about the server's egg nest | +| egg | Information about the server's egg | +| variables | List of server variables | +| location | Information about server's node location | +| node | Information about the server's node | +| databases | List of databases on the server | + + \ No newline at end of file diff --git a/content/docs/api/application-servers/meta.json b/content/docs/api/application-servers/meta.json new file mode 100644 index 000000000..6d5f53825 --- /dev/null +++ b/content/docs/api/application-servers/meta.json @@ -0,0 +1,16 @@ +{ + "title": "Servers", + "pages": [ + "get-list-servers", + "get-server-details", + "post-create-server", + "patch-update-details", + "patch-update-build", + "patch-update-startup", + "post-suspend-server", + "post-unsuspend-server", + "post-reinstall-server", + "delete-delete-server", + "delete-force-delete-server" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-servers/patch-update-build.mdx b/content/docs/api/application-servers/patch-update-build.mdx new file mode 100644 index 000000000..e83061976 --- /dev/null +++ b/content/docs/api/application-servers/patch-update-build.mdx @@ -0,0 +1,17 @@ +--- +title: Update build +full: true +_openapi: + method: PATCH + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the server build information +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the server build information + + \ No newline at end of file diff --git a/content/docs/api/application-servers/patch-update-details.mdx b/content/docs/api/application-servers/patch-update-details.mdx new file mode 100644 index 000000000..34786c303 --- /dev/null +++ b/content/docs/api/application-servers/patch-update-details.mdx @@ -0,0 +1,17 @@ +--- +title: Update details +full: true +_openapi: + method: PATCH + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the server details +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the server details + + \ No newline at end of file diff --git a/content/docs/api/application-servers/patch-update-startup.mdx b/content/docs/api/application-servers/patch-update-startup.mdx new file mode 100644 index 000000000..ba7678b2e --- /dev/null +++ b/content/docs/api/application-servers/patch-update-startup.mdx @@ -0,0 +1,17 @@ +--- +title: Update startup +full: true +_openapi: + method: PATCH + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the server startup information +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the server startup information + + \ No newline at end of file diff --git a/content/docs/api/application-servers/post-create-server.mdx b/content/docs/api/application-servers/post-create-server.mdx new file mode 100644 index 000000000..3d5343500 --- /dev/null +++ b/content/docs/api/application-servers/post-create-server.mdx @@ -0,0 +1,17 @@ +--- +title: Create server +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new server + + \ No newline at end of file diff --git a/content/docs/api/application-servers/post-reinstall-server.mdx b/content/docs/api/application-servers/post-reinstall-server.mdx new file mode 100644 index 000000000..40da3e0aa --- /dev/null +++ b/content/docs/api/application-servers/post-reinstall-server.mdx @@ -0,0 +1,17 @@ +--- +title: Reinstall server +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Reinstalls the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Reinstalls the specified server + + \ No newline at end of file diff --git a/content/docs/api/application-servers/post-suspend-server.mdx b/content/docs/api/application-servers/post-suspend-server.mdx new file mode 100644 index 000000000..3804d4eba --- /dev/null +++ b/content/docs/api/application-servers/post-suspend-server.mdx @@ -0,0 +1,17 @@ +--- +title: Suspend server +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Suspends the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Suspends the specified server + + \ No newline at end of file diff --git a/content/docs/api/application-servers/post-unsuspend-server.mdx b/content/docs/api/application-servers/post-unsuspend-server.mdx new file mode 100644 index 000000000..5f50432e3 --- /dev/null +++ b/content/docs/api/application-servers/post-unsuspend-server.mdx @@ -0,0 +1,17 @@ +--- +title: Unsuspend server +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Unuspends the specified +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Unuspends the specified + + \ No newline at end of file diff --git a/content/docs/api/application-users/delete-delete-user.mdx b/content/docs/api/application-users/delete-delete-user.mdx new file mode 100644 index 000000000..7c1a622c8 --- /dev/null +++ b/content/docs/api/application-users/delete-delete-user.mdx @@ -0,0 +1,17 @@ +--- +title: Delete user +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified user +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified user + + \ No newline at end of file diff --git a/content/docs/api/application-users/get-list-users.mdx b/content/docs/api/application-users/get-list-users.mdx new file mode 100644 index 000000000..67df28161 --- /dev/null +++ b/content/docs/api/application-users/get-list-users.mdx @@ -0,0 +1,56 @@ +--- +title: List users +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves all users + + ## Available Include parameters + | Parameter | Description | + |-----------|----------------------------------------| + | servers | List of servers the user has access to | + + ## Filters + | Parameter | + |-------------| + | email | + | uuid | + | username | + | external_id | + + ## Sort by + | Parameter | + |-------------| + | id | + | uuid | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves all users + +## Available Include parameters +| Parameter | Description | +|-----------|----------------------------------------| +| servers | List of servers the user has access to | + +## Filters +| Parameter | +|-------------| +| email | +| uuid | +| username | +| external_id | + +## Sort by +| Parameter | +|-------------| +| id | +| uuid | + + \ No newline at end of file diff --git a/content/docs/api/application-users/get-user-details.mdx b/content/docs/api/application-users/get-user-details.mdx new file mode 100644 index 000000000..a1850fe48 --- /dev/null +++ b/content/docs/api/application-users/get-user-details.mdx @@ -0,0 +1,28 @@ +--- +title: User details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves the specified user by its external ID + + ## Available include parameters + | Parameter | Description | + |-----------|----------------------------------------| + | servers | List of servers the user has access to | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the specified user by its external ID + +## Available include parameters +| Parameter | Description | +|-----------|----------------------------------------| +| servers | List of servers the user has access to | + + \ No newline at end of file diff --git a/content/docs/api/application-users/meta.json b/content/docs/api/application-users/meta.json new file mode 100644 index 000000000..8c8faabc4 --- /dev/null +++ b/content/docs/api/application-users/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Users", + "pages": [ + "get-list-users", + "get-user-details", + "post-create-user", + "patch-update-user", + "delete-delete-user" + ] +} \ No newline at end of file diff --git a/content/docs/api/application-users/patch-update-user.mdx b/content/docs/api/application-users/patch-update-user.mdx new file mode 100644 index 000000000..ee19e6d38 --- /dev/null +++ b/content/docs/api/application-users/patch-update-user.mdx @@ -0,0 +1,17 @@ +--- +title: Update user +full: true +_openapi: + method: PATCH + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the user information +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the user information + + \ No newline at end of file diff --git a/content/docs/api/application-users/post-create-user.mdx b/content/docs/api/application-users/post-create-user.mdx new file mode 100644 index 000000000..7da5c0b20 --- /dev/null +++ b/content/docs/api/application-users/post-create-user.mdx @@ -0,0 +1,17 @@ +--- +title: Create user +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new user +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new user + + \ No newline at end of file diff --git a/content/docs/api/client-account/delete-delete-api-key.mdx b/content/docs/api/client-account/delete-delete-api-key.mdx new file mode 100644 index 000000000..1e30f3b66 --- /dev/null +++ b/content/docs/api/client-account/delete-delete-api-key.mdx @@ -0,0 +1,17 @@ +--- +title: Delete API key +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified API key +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified API key + + \ No newline at end of file diff --git a/content/docs/api/client-account/delete-disable-2fa.mdx b/content/docs/api/client-account/delete-disable-2fa.mdx new file mode 100644 index 000000000..0198d7737 --- /dev/null +++ b/content/docs/api/client-account/delete-disable-2fa.mdx @@ -0,0 +1,17 @@ +--- +title: Disable 2FA +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Disables TOTP 2FA on the account +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Disables TOTP 2FA on the account + + \ No newline at end of file diff --git a/content/docs/api/client-account/get-2fa-details.mdx b/content/docs/api/client-account/get-2fa-details.mdx new file mode 100644 index 000000000..a8fcfe5e4 --- /dev/null +++ b/content/docs/api/client-account/get-2fa-details.mdx @@ -0,0 +1,17 @@ +--- +title: 2FA details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Generates a TOTP QR code image to allow the setup of 2FA +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Generates a TOTP QR code image to allow the setup of 2FA + + \ No newline at end of file diff --git a/content/docs/api/client-account/get-account-details.mdx b/content/docs/api/client-account/get-account-details.mdx new file mode 100644 index 000000000..652a69548 --- /dev/null +++ b/content/docs/api/client-account/get-account-details.mdx @@ -0,0 +1,17 @@ +--- +title: Account details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves information about the account +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves information about the account + + \ No newline at end of file diff --git a/content/docs/api/client-account/get-list-api-keys.mdx b/content/docs/api/client-account/get-list-api-keys.mdx new file mode 100644 index 000000000..b97f4e511 --- /dev/null +++ b/content/docs/api/client-account/get-list-api-keys.mdx @@ -0,0 +1,17 @@ +--- +title: List API keys +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retries a list of API keys +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retries a list of API keys + + \ No newline at end of file diff --git a/content/docs/api/client-account/meta.json b/content/docs/api/client-account/meta.json new file mode 100644 index 000000000..358673644 --- /dev/null +++ b/content/docs/api/client-account/meta.json @@ -0,0 +1,14 @@ +{ + "title": "Account", + "pages": [ + "get-account-details", + "get-2fa-details", + "post-enable-2fa", + "delete-disable-2fa", + "put-update-email", + "put-update-password", + "get-list-api-keys", + "post-create-api-key", + "delete-delete-api-key" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-account/post-create-api-key.mdx b/content/docs/api/client-account/post-create-api-key.mdx new file mode 100644 index 000000000..bc50b7fea --- /dev/null +++ b/content/docs/api/client-account/post-create-api-key.mdx @@ -0,0 +1,17 @@ +--- +title: Create API key +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Generates a new API key +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Generates a new API key + + \ No newline at end of file diff --git a/content/docs/api/client-account/post-enable-2fa.mdx b/content/docs/api/client-account/post-enable-2fa.mdx new file mode 100644 index 000000000..498b502f3 --- /dev/null +++ b/content/docs/api/client-account/post-enable-2fa.mdx @@ -0,0 +1,22 @@ +--- +title: Enable 2FA +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Enables TOTP 2FA using the QR code generated by the GET request + + Uses code generated from `GET /account/two-factor` +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Enables TOTP 2FA using the QR code generated by the GET request + +Uses code generated from `GET /account/two-factor` + + \ No newline at end of file diff --git a/content/docs/api/client-account/put-update-email.mdx b/content/docs/api/client-account/put-update-email.mdx new file mode 100644 index 000000000..5c38f35b9 --- /dev/null +++ b/content/docs/api/client-account/put-update-email.mdx @@ -0,0 +1,17 @@ +--- +title: Update email +full: true +_openapi: + method: PUT + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the email address of the account +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the email address of the account + + \ No newline at end of file diff --git a/content/docs/api/client-account/put-update-password.mdx b/content/docs/api/client-account/put-update-password.mdx new file mode 100644 index 000000000..e461f5c1e --- /dev/null +++ b/content/docs/api/client-account/put-update-password.mdx @@ -0,0 +1,17 @@ +--- +title: Update password +full: true +_openapi: + method: PUT + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the password of the account +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the password of the account + + \ No newline at end of file diff --git a/content/docs/api/client-general/get-list-servers.mdx b/content/docs/api/client-general/get-list-servers.mdx new file mode 100644 index 000000000..97dffe5c2 --- /dev/null +++ b/content/docs/api/client-general/get-list-servers.mdx @@ -0,0 +1,30 @@ +--- +title: List servers +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Lists all servers + + ## Include parameters + | Parameter | Description | + |-----------|-------------------------------------------| + | egg | Information about the egg the server uses | + | subusers | List of subusers on the server | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists all servers + +## Include parameters +| Parameter | Description | +|-----------|-------------------------------------------| +| egg | Information about the egg the server uses | +| subusers | List of subusers on the server | + + \ No newline at end of file diff --git a/content/docs/api/client-general/get-show-permissions.mdx b/content/docs/api/client-general/get-show-permissions.mdx new file mode 100644 index 000000000..78864532d --- /dev/null +++ b/content/docs/api/client-general/get-show-permissions.mdx @@ -0,0 +1,22 @@ +--- +title: Show permissions +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retries all available permissions + + This is used for the frontend +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retries all available permissions + +This is used for the frontend + + \ No newline at end of file diff --git a/content/docs/api/client-general/meta.json b/content/docs/api/client-general/meta.json new file mode 100644 index 000000000..e98df1488 --- /dev/null +++ b/content/docs/api/client-general/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Client", + "pages": [ + "get-list-servers", + "get-show-permissions" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-backups/delete-delete-backup.mdx b/content/docs/api/client-server-backups/delete-delete-backup.mdx new file mode 100644 index 000000000..596aa7aed --- /dev/null +++ b/content/docs/api/client-server-backups/delete-delete-backup.mdx @@ -0,0 +1,17 @@ +--- +title: Delete backup +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified backup +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified backup + + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/get-backup-details.mdx b/content/docs/api/client-server-backups/get-backup-details.mdx new file mode 100644 index 000000000..191d9787f --- /dev/null +++ b/content/docs/api/client-server-backups/get-backup-details.mdx @@ -0,0 +1,17 @@ +--- +title: Backup details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves information about the specified backup +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves information about the specified backup + + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/get-download-backup.mdx b/content/docs/api/client-server-backups/get-download-backup.mdx new file mode 100644 index 000000000..f27029b28 --- /dev/null +++ b/content/docs/api/client-server-backups/get-download-backup.mdx @@ -0,0 +1,17 @@ +--- +title: Download backup +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Generates a download link for a backup +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Generates a download link for a backup + + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/get-list-backups.mdx b/content/docs/api/client-server-backups/get-list-backups.mdx new file mode 100644 index 000000000..63affc826 --- /dev/null +++ b/content/docs/api/client-server-backups/get-list-backups.mdx @@ -0,0 +1,17 @@ +--- +title: List backups +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves a list of backups +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves a list of backups + + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/meta.json b/content/docs/api/client-server-backups/meta.json new file mode 100644 index 000000000..3abd59ec5 --- /dev/null +++ b/content/docs/api/client-server-backups/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Backups", + "pages": [ + "get-list-backups", + "get-backup-details", + "get-download-backup", + "post-create-backup", + "delete-delete-backup" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-backups/post-create-backup.mdx b/content/docs/api/client-server-backups/post-create-backup.mdx new file mode 100644 index 000000000..f5b4c9a22 --- /dev/null +++ b/content/docs/api/client-server-backups/post-create-backup.mdx @@ -0,0 +1,17 @@ +--- +title: Create backup +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new backup +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new backup + + \ No newline at end of file diff --git a/content/docs/api/client-server-databases/delete-delete-database.mdx b/content/docs/api/client-server-databases/delete-delete-database.mdx new file mode 100644 index 000000000..f4c38646e --- /dev/null +++ b/content/docs/api/client-server-databases/delete-delete-database.mdx @@ -0,0 +1,17 @@ +--- +title: Delete database +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified database +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified database + + \ No newline at end of file diff --git a/content/docs/api/client-server-databases/get-list-databases.mdx b/content/docs/api/client-server-databases/get-list-databases.mdx new file mode 100644 index 000000000..c185e8c09 --- /dev/null +++ b/content/docs/api/client-server-databases/get-list-databases.mdx @@ -0,0 +1,28 @@ +--- +title: List databases +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Lists all databases on a server + + ## Include parameters + | Parameter | Description | + |-----------|-------------------------------------| + | password | Includes the database user password | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists all databases on a server + +## Include parameters +| Parameter | Description | +|-----------|-------------------------------------| +| password | Includes the database user password | + + \ No newline at end of file diff --git a/content/docs/api/client-server-databases/meta.json b/content/docs/api/client-server-databases/meta.json new file mode 100644 index 000000000..4e47f9c14 --- /dev/null +++ b/content/docs/api/client-server-databases/meta.json @@ -0,0 +1,9 @@ +{ + "title": "Databases", + "pages": [ + "get-list-databases", + "post-create-database", + "post-rotate-password", + "delete-delete-database" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-databases/post-create-database.mdx b/content/docs/api/client-server-databases/post-create-database.mdx new file mode 100644 index 000000000..dcbb8e087 --- /dev/null +++ b/content/docs/api/client-server-databases/post-create-database.mdx @@ -0,0 +1,17 @@ +--- +title: Create database +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new database +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new database + + \ No newline at end of file diff --git a/content/docs/api/client-server-databases/post-rotate-password.mdx b/content/docs/api/client-server-databases/post-rotate-password.mdx new file mode 100644 index 000000000..e017df881 --- /dev/null +++ b/content/docs/api/client-server-databases/post-rotate-password.mdx @@ -0,0 +1,17 @@ +--- +title: Rotate password +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Changes the password of a specified database +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Changes the password of a specified database + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/get-download-file.mdx b/content/docs/api/client-server-file-manager/get-download-file.mdx new file mode 100644 index 000000000..b03ad0434 --- /dev/null +++ b/content/docs/api/client-server-file-manager/get-download-file.mdx @@ -0,0 +1,28 @@ +--- +title: Download file +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Generates a one-time link to download the specified file + + ## Available parameters + | Parameter | Description | + |-----------|------------------------------| + | file | URL encoded path to the desired file | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Generates a one-time link to download the specified file + +## Available parameters +| Parameter | Description | +|-----------|------------------------------| +| file | URL encoded path to the desired file | + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/get-get-file-contents.mdx b/content/docs/api/client-server-file-manager/get-get-file-contents.mdx new file mode 100644 index 000000000..49b5748b2 --- /dev/null +++ b/content/docs/api/client-server-file-manager/get-get-file-contents.mdx @@ -0,0 +1,28 @@ +--- +title: Get file contents +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Displays the contents of the specified file + + ## Available parameters + | Parameter | Description | + |-----------|--------------------------------------| + | file | URL encoded path to the desired file | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Displays the contents of the specified file + +## Available parameters +| Parameter | Description | +|-----------|--------------------------------------| +| file | URL encoded path to the desired file | + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/get-list-files.mdx b/content/docs/api/client-server-file-manager/get-list-files.mdx new file mode 100644 index 000000000..d061f8d93 --- /dev/null +++ b/content/docs/api/client-server-file-manager/get-list-files.mdx @@ -0,0 +1,28 @@ +--- +title: List files +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Lists all files of the server + + ## Available parameters + | Parameter | Description | + |-----------|-------------------------------------| + | directory | URL encoded path to list files from | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists all files of the server + +## Available parameters +| Parameter | Description | +|-----------|-------------------------------------| +| directory | URL encoded path to list files from | + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/get-upload-file.mdx b/content/docs/api/client-server-file-manager/get-upload-file.mdx new file mode 100644 index 000000000..e1be0018d --- /dev/null +++ b/content/docs/api/client-server-file-manager/get-upload-file.mdx @@ -0,0 +1,17 @@ +--- +title: Upload file +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Returns a signed URL used to upload files to the server using POST +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Returns a signed URL used to upload files to the server using POST + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/meta.json b/content/docs/api/client-server-file-manager/meta.json new file mode 100644 index 000000000..82a2b4f94 --- /dev/null +++ b/content/docs/api/client-server-file-manager/meta.json @@ -0,0 +1,16 @@ +{ + "title": "File Manager", + "pages": [ + "get-list-files", + "get-get-file-contents", + "get-download-file", + "post-write-file", + "post-create-folder", + "post-copy-file", + "put-rename-file", + "post-compress-file", + "post-decompress-file", + "post-delete-file", + "get-upload-file" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-compress-file.mdx b/content/docs/api/client-server-file-manager/post-compress-file.mdx new file mode 100644 index 000000000..e2106fed8 --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-compress-file.mdx @@ -0,0 +1,17 @@ +--- +title: Compress file +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Compresses the specified file +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Compresses the specified file + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-copy-file.mdx b/content/docs/api/client-server-file-manager/post-copy-file.mdx new file mode 100644 index 000000000..f796d12fb --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-copy-file.mdx @@ -0,0 +1,17 @@ +--- +title: Copy file +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Copies the specified file +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Copies the specified file + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-create-folder.mdx b/content/docs/api/client-server-file-manager/post-create-folder.mdx new file mode 100644 index 000000000..7ef86d1ee --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-create-folder.mdx @@ -0,0 +1,17 @@ +--- +title: Create folder +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates the specified folder in the specified directory +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates the specified folder in the specified directory + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-decompress-file.mdx b/content/docs/api/client-server-file-manager/post-decompress-file.mdx new file mode 100644 index 000000000..de8f548b5 --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-decompress-file.mdx @@ -0,0 +1,17 @@ +--- +title: Decompress file +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Decompresses the selected file +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Decompresses the selected file + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-delete-file.mdx b/content/docs/api/client-server-file-manager/post-delete-file.mdx new file mode 100644 index 000000000..e599acfaa --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-delete-file.mdx @@ -0,0 +1,17 @@ +--- +title: Delete file +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified file(s) or folder(s) +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified file(s) or folder(s) + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-write-file.mdx b/content/docs/api/client-server-file-manager/post-write-file.mdx new file mode 100644 index 000000000..fde48f1ad --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-write-file.mdx @@ -0,0 +1,28 @@ +--- +title: Write file +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Writes data to the specified file + + ## Available parameters + | Parameter | Description | + |-----------|--------------------------------------| + | file | URL encoded path to the desired file | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Writes data to the specified file + +## Available parameters +| Parameter | Description | +|-----------|--------------------------------------| +| file | URL encoded path to the desired file | + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/put-rename-file.mdx b/content/docs/api/client-server-file-manager/put-rename-file.mdx new file mode 100644 index 000000000..5184d8335 --- /dev/null +++ b/content/docs/api/client-server-file-manager/put-rename-file.mdx @@ -0,0 +1,17 @@ +--- +title: Rename file +full: true +_openapi: + method: PUT + toc: [] + structuredData: + headings: [] + contents: + - content: Renames the specified file(s) or folder(s) +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Renames the specified file(s) or folder(s) + + \ No newline at end of file diff --git a/content/docs/api/client-server-network/delete-unassign-allocation.mdx b/content/docs/api/client-server-network/delete-unassign-allocation.mdx new file mode 100644 index 000000000..95de880a5 --- /dev/null +++ b/content/docs/api/client-server-network/delete-unassign-allocation.mdx @@ -0,0 +1,17 @@ +--- +title: Unassign allocation +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified non-primary allocation +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified non-primary allocation + + \ No newline at end of file diff --git a/content/docs/api/client-server-network/get-list-allocations.mdx b/content/docs/api/client-server-network/get-list-allocations.mdx new file mode 100644 index 000000000..222fb765a --- /dev/null +++ b/content/docs/api/client-server-network/get-list-allocations.mdx @@ -0,0 +1,17 @@ +--- +title: List allocations +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves the network information for the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves the network information for the specified server + + \ No newline at end of file diff --git a/content/docs/api/client-server-network/meta.json b/content/docs/api/client-server-network/meta.json new file mode 100644 index 000000000..865104afe --- /dev/null +++ b/content/docs/api/client-server-network/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Network", + "pages": [ + "get-list-allocations", + "post-assign-allocation", + "post-set-primary-allocation", + "post-set-allocation-note", + "delete-unassign-allocation" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-network/post-assign-allocation.mdx b/content/docs/api/client-server-network/post-assign-allocation.mdx new file mode 100644 index 000000000..30334c14a --- /dev/null +++ b/content/docs/api/client-server-network/post-assign-allocation.mdx @@ -0,0 +1,19 @@ +--- +title: Assign allocation +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Automatically assigns a new allocation if auto-assign is enabled on + the instance +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Automatically assigns a new allocation if auto-assign is enabled on the instance + + \ No newline at end of file diff --git a/content/docs/api/client-server-network/post-set-allocation-note.mdx b/content/docs/api/client-server-network/post-set-allocation-note.mdx new file mode 100644 index 000000000..335d96390 --- /dev/null +++ b/content/docs/api/client-server-network/post-set-allocation-note.mdx @@ -0,0 +1,28 @@ +--- +title: Set allocation note +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Sets a note for the allocation + + # Fields + | Name | Required? | Type | Description | Rules | + |-------|-----------|--------|---------------------|-------| + | notes | required | string | Note for allocation | | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Sets a note for the allocation + +# Fields +| Name | Required? | Type | Description | Rules | +|-------|-----------|--------|---------------------|-------| +| notes | required | string | Note for allocation | | + + \ No newline at end of file diff --git a/content/docs/api/client-server-network/post-set-primary-allocation.mdx b/content/docs/api/client-server-network/post-set-primary-allocation.mdx new file mode 100644 index 000000000..07196a811 --- /dev/null +++ b/content/docs/api/client-server-network/post-set-primary-allocation.mdx @@ -0,0 +1,17 @@ +--- +title: Set primary allocation +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Sets the primary allocation +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Sets the primary allocation + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/delete-delete-schedule.mdx b/content/docs/api/client-server-schedules/delete-delete-schedule.mdx new file mode 100644 index 000000000..9f4382352 --- /dev/null +++ b/content/docs/api/client-server-schedules/delete-delete-schedule.mdx @@ -0,0 +1,17 @@ +--- +title: Delete schedule +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified schedule +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified schedule + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/delete-delete-task.mdx b/content/docs/api/client-server-schedules/delete-delete-task.mdx new file mode 100644 index 000000000..54418d8be --- /dev/null +++ b/content/docs/api/client-server-schedules/delete-delete-task.mdx @@ -0,0 +1,17 @@ +--- +title: Delete task +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Deletes the specified task +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Deletes the specified task + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/get-list-schedules.mdx b/content/docs/api/client-server-schedules/get-list-schedules.mdx new file mode 100644 index 000000000..ba7b2f5bb --- /dev/null +++ b/content/docs/api/client-server-schedules/get-list-schedules.mdx @@ -0,0 +1,17 @@ +--- +title: List schedules +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Lists all schedules added to the server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists all schedules added to the server + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/get-schedule-details.mdx b/content/docs/api/client-server-schedules/get-schedule-details.mdx new file mode 100644 index 000000000..a0e712089 --- /dev/null +++ b/content/docs/api/client-server-schedules/get-schedule-details.mdx @@ -0,0 +1,17 @@ +--- +title: Schedule details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves specific schedule +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves specific schedule + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/meta.json b/content/docs/api/client-server-schedules/meta.json new file mode 100644 index 000000000..fad716fd2 --- /dev/null +++ b/content/docs/api/client-server-schedules/meta.json @@ -0,0 +1,13 @@ +{ + "title": "Schedules", + "pages": [ + "get-list-schedules", + "get-schedule-details", + "post-create-schedule", + "post-update-schedule", + "delete-delete-schedule", + "post-create-task", + "post-update-task", + "delete-delete-task" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-create-schedule.mdx b/content/docs/api/client-server-schedules/post-create-schedule.mdx new file mode 100644 index 000000000..3dc1b8115 --- /dev/null +++ b/content/docs/api/client-server-schedules/post-create-schedule.mdx @@ -0,0 +1,17 @@ +--- +title: Create schedule +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new schedule +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new schedule + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-create-task.mdx b/content/docs/api/client-server-schedules/post-create-task.mdx new file mode 100644 index 000000000..027b0bc5d --- /dev/null +++ b/content/docs/api/client-server-schedules/post-create-task.mdx @@ -0,0 +1,17 @@ +--- +title: Create task +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Creates a new task on the specified schedule +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Creates a new task on the specified schedule + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-update-schedule.mdx b/content/docs/api/client-server-schedules/post-update-schedule.mdx new file mode 100644 index 000000000..b5a8636c4 --- /dev/null +++ b/content/docs/api/client-server-schedules/post-update-schedule.mdx @@ -0,0 +1,17 @@ +--- +title: Update schedule +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the specified schedule +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the specified schedule + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-update-task.mdx b/content/docs/api/client-server-schedules/post-update-task.mdx new file mode 100644 index 000000000..569d7fe85 --- /dev/null +++ b/content/docs/api/client-server-schedules/post-update-task.mdx @@ -0,0 +1,17 @@ +--- +title: Update task +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the specified task +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the specified task + + \ No newline at end of file diff --git a/content/docs/api/client-server-settings/meta.json b/content/docs/api/client-server-settings/meta.json new file mode 100644 index 000000000..719beb354 --- /dev/null +++ b/content/docs/api/client-server-settings/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Settings", + "pages": [ + "post-rename-server", + "post-reinstall-server" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-settings/post-reinstall-server.mdx b/content/docs/api/client-server-settings/post-reinstall-server.mdx new file mode 100644 index 000000000..3c6ad442c --- /dev/null +++ b/content/docs/api/client-server-settings/post-reinstall-server.mdx @@ -0,0 +1,17 @@ +--- +title: Reinstall server +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Renames the server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Renames the server + + \ No newline at end of file diff --git a/content/docs/api/client-server-settings/post-rename-server.mdx b/content/docs/api/client-server-settings/post-rename-server.mdx new file mode 100644 index 000000000..f95ce2c1a --- /dev/null +++ b/content/docs/api/client-server-settings/post-rename-server.mdx @@ -0,0 +1,28 @@ +--- +title: Rename server +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Renames the server + + # Fields + | Name | Required? | Type | Description | Rules | + |------|-----------|--------|-------------------------|-------| + | name | required | string | New name for the server | | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Renames the server + +# Fields +| Name | Required? | Type | Description | Rules | +|------|-----------|--------|-------------------------|-------| +| name | required | string | New name for the server | | + + \ No newline at end of file diff --git a/content/docs/api/client-server-startup/get-list-variables.mdx b/content/docs/api/client-server-startup/get-list-variables.mdx new file mode 100644 index 000000000..52576f5c5 --- /dev/null +++ b/content/docs/api/client-server-startup/get-list-variables.mdx @@ -0,0 +1,17 @@ +--- +title: List Variables +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Lists all variables on the server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists all variables on the server + + \ No newline at end of file diff --git a/content/docs/api/client-server-startup/meta.json b/content/docs/api/client-server-startup/meta.json new file mode 100644 index 000000000..7eddec3ed --- /dev/null +++ b/content/docs/api/client-server-startup/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Startup", + "pages": [ + "get-list-variables", + "put-update-variable" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-startup/put-update-variable.mdx b/content/docs/api/client-server-startup/put-update-variable.mdx new file mode 100644 index 000000000..3f93f5405 --- /dev/null +++ b/content/docs/api/client-server-startup/put-update-variable.mdx @@ -0,0 +1,17 @@ +--- +title: Update Variable +full: true +_openapi: + method: PUT + toc: [] + structuredData: + headings: [] + contents: + - content: Updates the specified variable +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the specified variable + + \ No newline at end of file diff --git a/content/docs/api/client-server-users/delete-delete-user.mdx b/content/docs/api/client-server-users/delete-delete-user.mdx new file mode 100644 index 000000000..62d4ac1f9 --- /dev/null +++ b/content/docs/api/client-server-users/delete-delete-user.mdx @@ -0,0 +1,17 @@ +--- +title: Delete user +full: true +_openapi: + method: DELETE + toc: [] + structuredData: + headings: [] + contents: + - content: Removes the specified user from the server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Removes the specified user from the server + + \ No newline at end of file diff --git a/content/docs/api/client-server-users/get-list-users.mdx b/content/docs/api/client-server-users/get-list-users.mdx new file mode 100644 index 000000000..7a6ce2ae6 --- /dev/null +++ b/content/docs/api/client-server-users/get-list-users.mdx @@ -0,0 +1,19 @@ +--- +title: List Users +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Lists all users added to the server, along with details about them and + their permissions +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Lists all users added to the server, along with details about them and their permissions + + \ No newline at end of file diff --git a/content/docs/api/client-server-users/get-user-details.mdx b/content/docs/api/client-server-users/get-user-details.mdx new file mode 100644 index 000000000..2a9a1c181 --- /dev/null +++ b/content/docs/api/client-server-users/get-user-details.mdx @@ -0,0 +1,17 @@ +--- +title: User details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves information about a specific user +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves information about a specific user + + \ No newline at end of file diff --git a/content/docs/api/client-server-users/meta.json b/content/docs/api/client-server-users/meta.json new file mode 100644 index 000000000..2d9faf5d3 --- /dev/null +++ b/content/docs/api/client-server-users/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Subusers", + "pages": [ + "get-list-users", + "get-user-details", + "post-create-user", + "post-update-user", + "delete-delete-user" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server-users/post-create-user.mdx b/content/docs/api/client-server-users/post-create-user.mdx new file mode 100644 index 000000000..b19609550 --- /dev/null +++ b/content/docs/api/client-server-users/post-create-user.mdx @@ -0,0 +1,38 @@ +--- +title: Create User +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Adds a user to the server + + + # Fields + + | Name | Required? | Type | + Description | Rules | + + |-------------|-----------|--------|------------------------------------|-------| + + | email | required | string | Email address of the + user | | + + | permissions | required | object | Permissions that user is + permitted | | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Adds a user to the server + +# Fields +| Name | Required? | Type | Description | Rules | +|-------------|-----------|--------|------------------------------------|-------| +| email | required | string | Email address of the user | | +| permissions | required | object | Permissions that user is permitted | | + + \ No newline at end of file diff --git a/content/docs/api/client-server-users/post-update-user.mdx b/content/docs/api/client-server-users/post-update-user.mdx new file mode 100644 index 000000000..8afcfa782 --- /dev/null +++ b/content/docs/api/client-server-users/post-update-user.mdx @@ -0,0 +1,34 @@ +--- +title: Update user +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Updates the specified user + + + # Fields + + | Name | Required? | Type | + Description | Rules | + + |-------------|-----------|--------|------------------------------------|-------| + + | permissions | required | object | Permissions that user is + permitted | | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates the specified user + +# Fields +| Name | Required? | Type | Description | Rules | +|-------------|-----------|--------|------------------------------------|-------| +| permissions | required | object | Permissions that user is permitted | | + + \ No newline at end of file diff --git a/content/docs/api/client-server/get-console-details.mdx b/content/docs/api/client-server/get-console-details.mdx new file mode 100644 index 000000000..1dfed2c41 --- /dev/null +++ b/content/docs/api/client-server/get-console-details.mdx @@ -0,0 +1,88 @@ +--- +title: Console details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Generates credentials to establish a websocket + + + ## How to connect + + 1. Connect to the websocket address (in this example + "wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws") + + 2. Send the token to the websocket like this: + `{"event":"auth","args":["eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij..."]}` + + + * Tokens last about 10-15 minutes, and the websocket will notify you + once you need to send a new token with `{"event":"token expiring"}` + and `{"event":"token expired"}` + + + ## Things you can send + + * `{"event":"auth","args":[""]}` # Authenticate with websocket + + * `{"event":"send stats","args":[null]}` # Request stats + + * `{"event":"send logs","args":[null]}` # Request logs + + * `{"event":"set state","args":[""]}` # Send power + action + + * `{"event":"send command","args":[""]}` # Send command + + + ## Things you'll receive + + * `{"event":"auth success"}` # Upon successful websocket + authentication + + * `{"event":"status","args":["offline"]}` # Status updates of the + server + + * `{"event":"console output","args":["[14:07:12] [Query Listener + #1/INFO]: Query running on 0.0.0.0:25565"]}` # Logs from server + + * + `{"event":"stats","args":["{\"memory_bytes\":526626816,\"memory_limit_bytes\":588800000,\"cpu_absolute\":588.815,\"network\":{\"rx_bytes\":1126,\"tx_bytes\":1126},\"state\":\"stopping\",\"disk_bytes\":128118626}"]}` + # Stats from server + + * `{"event":"token expiring"}` # Token is expiring soon so request a + new one and send it to the websocket + + * `{"event":"token expired"}` # Token has expired +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Generates credentials to establish a websocket + +## How to connect +1. Connect to the websocket address (in this example "wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws") +2. Send the token to the websocket like this: `{"event":"auth","args":["eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij..."]}` + +* Tokens last about 10-15 minutes, and the websocket will notify you once you need to send a new token with `{"event":"token expiring"}` and `{"event":"token expired"}` + +## Things you can send +* `{"event":"auth","args":[""]}` # Authenticate with websocket +* `{"event":"send stats","args":[null]}` # Request stats +* `{"event":"send logs","args":[null]}` # Request logs +* `{"event":"set state","args":[""]}` # Send power action +* `{"event":"send command","args":[""]}` # Send command + +## Things you'll receive +* `{"event":"auth success"}` # Upon successful websocket authentication +* `{"event":"status","args":["offline"]}` # Status updates of the server +* `{"event":"console output","args":["[14:07:12] [Query Listener #1/INFO]: Query running on 0.0.0.0:25565"]}` # Logs from server +* `{"event":"stats","args":["{\"memory_bytes\":526626816,\"memory_limit_bytes\":588800000,\"cpu_absolute\":588.815,\"network\":{\"rx_bytes\":1126,\"tx_bytes\":1126},\"state\":\"stopping\",\"disk_bytes\":128118626}"]}` # Stats from server +* `{"event":"token expiring"}` # Token is expiring soon so request a new one and send it to the websocket +* `{"event":"token expired"}` # Token has expired + + \ No newline at end of file diff --git a/content/docs/api/client-server/get-resource-usage.mdx b/content/docs/api/client-server/get-resource-usage.mdx new file mode 100644 index 000000000..a741d0212 --- /dev/null +++ b/content/docs/api/client-server/get-resource-usage.mdx @@ -0,0 +1,17 @@ +--- +title: Resource usage +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Retrieves resource utilization of the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves resource utilization of the specified server + + \ No newline at end of file diff --git a/content/docs/api/client-server/get-server-details.mdx b/content/docs/api/client-server/get-server-details.mdx new file mode 100644 index 000000000..39b331f28 --- /dev/null +++ b/content/docs/api/client-server/get-server-details.mdx @@ -0,0 +1,30 @@ +--- +title: Server details +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Retrieves information about the specified server + + ## Include parameters + | Parameter | Description | + |-----------|-------------------------------------------| + | egg | Information about the egg the server uses | + | subusers | List of subusers on the server | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Retrieves information about the specified server + +## Include parameters +| Parameter | Description | +|-----------|-------------------------------------------| +| egg | Information about the egg the server uses | +| subusers | List of subusers on the server | + + \ No newline at end of file diff --git a/content/docs/api/client-server/meta.json b/content/docs/api/client-server/meta.json new file mode 100644 index 000000000..622101fa7 --- /dev/null +++ b/content/docs/api/client-server/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Server", + "pages": [ + "get-server-details", + "get-console-details", + "get-resource-usage", + "post-send-command", + "post-change-power-state" + ] +} \ No newline at end of file diff --git a/content/docs/api/client-server/post-change-power-state.mdx b/content/docs/api/client-server/post-change-power-state.mdx new file mode 100644 index 000000000..50247f9f4 --- /dev/null +++ b/content/docs/api/client-server/post-change-power-state.mdx @@ -0,0 +1,34 @@ +--- +title: Change power state +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: |- + Sends a power signal to the server + + ## Signals + | Signal | Description | + |---------|----------------------------------| + | start | Starts the server | + | stop | Gracefully stops the server | + | restart | Stops then starts the server | + | kill | Instantly end the server process | +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Sends a power signal to the server + +## Signals +| Signal | Description | +|---------|----------------------------------| +| start | Starts the server | +| stop | Gracefully stops the server | +| restart | Stops then starts the server | +| kill | Instantly end the server process | + + \ No newline at end of file diff --git a/content/docs/api/client-server/post-send-command.mdx b/content/docs/api/client-server/post-send-command.mdx new file mode 100644 index 000000000..0aba0b5e4 --- /dev/null +++ b/content/docs/api/client-server/post-send-command.mdx @@ -0,0 +1,24 @@ +--- +title: Send command +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Sends a command to the server + + + The server must be online to send a command to it. You will get HTTP + 502 is the server if not online. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Sends a command to the server + +The server must be online to send a command to it. You will get HTTP 502 is the server if not online. + + \ No newline at end of file diff --git a/content/docs/api/meta.json b/content/docs/api/meta.json new file mode 100644 index 000000000..a0dff9b63 --- /dev/null +++ b/content/docs/api/meta.json @@ -0,0 +1,27 @@ +{ + "title": "API Reference", + "root": true, + "pages": [ + "---Client API---", + "client-general", + "client-account", + "client-server", + "client-server-databases", + "client-server-file-manager", + "client-server-schedules", + "client-server-network", + "client-server-users", + "client-server-backups", + "client-server-startup", + "client-server-settings", + "---Application API---", + "application-users", + "application-nodes", + "application-nodes-allocations", + "application-locations", + "application-servers", + "application-servers-database-management", + "application-nests", + "application-nests-eggs-management" + ] +} \ No newline at end of file diff --git a/content/docs/meta.json b/content/docs/meta.json index ce0991e7f..395e93a92 100644 --- a/content/docs/meta.json +++ b/content/docs/meta.json @@ -3,6 +3,8 @@ "project", "panel", "wings", - "guides" + "docker", + "guides", + "api" ] } diff --git a/lib/openapi.ts b/lib/openapi.ts new file mode 100644 index 000000000..f6ddf3ba5 --- /dev/null +++ b/lib/openapi.ts @@ -0,0 +1,5 @@ +import { createOpenAPI } from 'fumadocs-openapi/server'; + +export const openapi = createOpenAPI({ + input: ['./openapi.json'], +}); diff --git a/mdx-components.tsx b/mdx-components.tsx index 3690dc297..7fca3040d 100644 --- a/mdx-components.tsx +++ b/mdx-components.tsx @@ -1,11 +1,13 @@ import defaultMdxComponents from 'fumadocs-ui/mdx'; import type { MDXComponents } from 'mdx/types'; import * as TabsComponents from 'fumadocs-ui/components/tabs'; +import { APIPage } from '@/components/api-page'; export function getMDXComponents(components?: MDXComponents): MDXComponents { return { ...defaultMdxComponents, ...TabsComponents, + APIPage, ...components, }; } diff --git a/openapi.json b/openapi.json new file mode 100644 index 000000000..87482f6f6 --- /dev/null +++ b/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.3","info":{"title":"Pterodactyl Panel API v1","version":"1.0.0"},"servers":[{"url":"{panel}","description":"Pterodactyl Panel","variables":{"panel":{"default":"https://pterodactyl.file.properties","description":"Your panel URL"}}}],"tags":[{"name":"Application - Servers"},{"name":"Application - Servers - Database Management"},{"name":"Application - Nests"},{"name":"Application - Nests - Eggs Management"},{"name":"Client - Server - Startup"},{"name":"Client - General"},{"name":"Client - Server"},{"name":"Client - Server - Databases"},{"name":"Client - Server - File Manager"},{"name":"Client - Server - Schedules"},{"name":"Client - Server - Network"},{"name":"Client - Server - Users"},{"name":"Client - Server - Backups"},{"name":"Application - Users"},{"name":"Application - Nodes"},{"name":"Application - Locations"},{"name":"Application - Nodes - Allocations"},{"name":"Client - Server - Settings"},{"name":"Client - Account"}],"paths":{"/api/application/servers":{"get":{"tags":["Application - Servers"],"summary":"List servers","operationId":"get-list-servers","description":"Retrieves all servers","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"pack":{"type":"string","nullable":true},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"},"relationships":{"type":"object","properties":{"databases":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Wuhu Island","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"Test","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca"}},"updated_at":"2020-06-13T04:20:53+00:00","created_at":"2019-12-23T06:46:27+00:00","relationships":{"databases":{"object":"list","data":[{"object":"databases","attributes":{"id":1,"server":5,"host":4,"database":"s5_perms","username":"u5_QsIAp1jhvS","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:13+01:00","updated_at":"2020-06-12T23:00:13+01:00"}},{"object":"databases","attributes":{"id":2,"server":5,"host":4,"database":"s5_coreprotect","username":"u5_2jtJx1nO1d","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:20+01:00","updated_at":"2020-06-12T23:00:20+01:00"}}]}}}}],"meta":{"pagination":{"total":1,"count":1,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Servers"],"summary":"Create server","operationId":"post-create-server","description":"Creates a new server","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"user":{"type":"integer"},"egg":{"type":"integer"},"docker_image":{"type":"string"},"startup":{"type":"string"},"environment":{"type":"object","properties":{"BUNGEE_VERSION":{"type":"string"},"SERVER_JARFILE":{"type":"string"}}},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"backups":{"type":"integer"}}},"allocation":{"type":"object","properties":{"default":{"type":"integer"}}}}},"example":{"name":"Building","user":1,"egg":1,"docker_image":"quay.io/pterodactyl/core:java","startup":"java -Xms128M -Xmx128M -jar server.jar","environment":{"BUNGEE_VERSION":"latest","SERVER_JARFILE":"server.jar"},"limits":{"memory":128,"swap":0,"disk":512,"io":500,"cpu":100},"feature_limits":{"databases":5,"backups":1},"allocation":{"default":17}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string","nullable":true},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"BUNGEE_VERSION":{"type":"string"},"SERVER_JARFILE":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":7,"external_id":null,"uuid":"d557c19c-8b21-4456-a9e5-181beda429f4","identifier":"d557c19c","name":"Building","description":"","suspended":false,"limits":{"memory":128,"swap":0,"disk":512,"io":500,"cpu":100,"threads":null},"feature_limits":{"databases":5,"allocations":0,"backups":1},"user":1,"node":1,"allocation":17,"nest":1,"egg":1,"container":{"startup_command":"java -Xms128M -Xmx128M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":false,"environment":{"BUNGEE_VERSION":"latest","SERVER_JARFILE":"server.jar","STARTUP":"java -Xms128M -Xmx128M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"d557c19c-8b21-4456-a9e5-181beda429f4","P_SERVER_ALLOCATION_LIMIT":0}},"updated_at":"2020-10-29T01:38:59+00:00","created_at":"2020-10-29T01:38:59+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/databases":{"get":{"tags":["Application - Servers - Database Management"],"summary":"List databases","operationId":"get-list-databases","description":"Retrieves all databases on a server\n\n## Available include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |\n| host | Information about the database host |","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5},{"name":"include","in":"query","schema":{"type":"string"},"example":"password,host"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"password":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"password":{"type":"string"}}}}},"host":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"host":{"type":"string"},"port":{"type":"integer"},"username":{"type":"string"},"node":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}},"example":{"object":"list","data":[{"object":"server_database","attributes":{"id":1,"server":5,"host":4,"database":"s5_perms","username":"u5_QsIAp1jhvS","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:13+01:00","updated_at":"2020-06-12T23:00:13+01:00","relationships":{"password":{"object":"database_password","attributes":{"password":".FjJ!5w945L3tuG4DrSxF+T@"}},"host":{"object":"database_host","attributes":{"id":4,"name":"MariaDB","host":"127.0.0.1","port":3306,"username":"pterodactyluser","node":1,"created_at":"2020-06-12T22:59:25+01:00","updated_at":"2020-06-12T22:59:25+01:00"}}}}},{"object":"server_database","attributes":{"id":2,"server":5,"host":4,"database":"s5_coreprotect","username":"u5_2jtJx1nO1d","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:20+01:00","updated_at":"2020-06-12T23:00:20+01:00","relationships":{"password":{"object":"database_password","attributes":{"password":"4=rv^0vHuOPSHCfj!tM1OlMC"}},"host":{"object":"database_host","attributes":{"id":4,"name":"MariaDB","host":"127.0.0.1","port":3306,"username":"pterodactyluser","node":1,"created_at":"2020-06-12T22:59:25+01:00","updated_at":"2020-06-12T22:59:25+01:00"}}}}}]}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Servers - Database Management"],"summary":"Create database","operationId":"post-create-database","description":"Creates a new database on the specified server","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"database":{"type":"string","description":"Name for database"},"remote":{"type":"string","description":"Permitted remotes that can access the database"},"host":{"type":"integer","description":"ID of the database host to use"}},"required":["database"]},"example":{"database":"matches","remote":"%","host":4}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"server_database","attributes":{"id":6,"server":5,"host":4,"database":"s5_matches","username":"u5_LhG3aGWBtk","remote":"%","max_connections":null,"created_at":"2020-11-04T21:00:42+00:00","updated_at":"2020-11-04T21:00:42+00:00"},"meta":{"resource":"https://pterodactyl.file.properties/api/application/servers/5/databases/6"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/databases/1":{"get":{"tags":["Application - Servers - Database Management"],"summary":"Database details","operationId":"get-database-details","description":"Retrieves the specified database\n\n## Available include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |\n| host | Information about the database host |","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"server_database","attributes":{"id":1,"server":5,"host":4,"database":"s5_perms","username":"u5_QsIAp1jhvS","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:13+01:00","updated_at":"2020-06-12T23:00:13+01:00"}}}}}},"security":[{"ApplicationToken":[]}]},"delete":{"tags":["Application - Servers - Database Management"],"summary":"Delete database","operationId":"delete-delete-database","description":"Deletes the specified database","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}":{"get":{"tags":["Application - Servers"],"summary":"Server details","operationId":"get-server-details","description":"Retrieves the specified server\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------|\n| allocations | List of allocations assigned to the server |\n| user | Information about the server owner |\n| subusers | List of users added to the server |\n| pack | Information about the server pack |\n| nest | Information about the server's egg nest |\n| egg | Information about the server's egg |\n| variables | List of server variables |\n| location | Information about server's node location |\n| node | Information about the server's node |\n| databases | List of databases on the server |","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"pack":{"type":"string","nullable":true},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-07-19T15:22:39+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/external/RemoteId1":{"get":{"tags":["Application - Servers"],"summary":"Server details","operationId":"get-server-details","description":"Retrieves a server by its external ID\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------|\n| allocations | List of allocations assigned to the server |\n| user | Information about the server owner |\n| subusers | List of users added to the server |\n| pack | Information about the server pack |\n| nest | Information about the server's egg nest |\n| egg | Information about the server's egg |\n| variables | List of server variables |\n| location | Information about server's node location |\n| node | Information about the server's node |\n| databases | List of databases on the server |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"pack":{"type":"string","nullable":true},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-07-19T15:22:39+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/details":{"patch":{"tags":["Application - Servers"],"summary":"Update details","operationId":"patch-update-details","description":"Updates the server details","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the server"},"user":{"type":"integer","description":"ID of the user which the server belongs to"}},"required":["name","user"]},"example":{"name":"Gaming","user":1,"external_id":"RemoteID1","description":"Matt from Wii Sports"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteID1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"container":{"startup_command":"java -Xms128M -Xmx2014M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx2048M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-11-04T21:11:26+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/build":{"patch":{"tags":["Application - Servers"],"summary":"Update build","operationId":"patch-update-build","description":"Updates the server build information","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allocation":{"type":"integer","description":"ID of primary allocation"},"memory":{"type":"integer","description":"The maximum amount of memory allowed for this container. Setting this to 0 will allow unlimited memory in a container."},"swap":{"type":"integer","description":"Setting this to 0 will disable swap space on this server. Setting to -1 will allow unlimited swap."},"io":{"type":"integer","description":"IO performance of this server relative to other running containers"},"cpu":{"type":"integer","description":"Each physical core on the system is considered to be 100%. Setting this value to 0 will allow a server to use CPU time without restrictions."},"disk":{"type":"integer","description":"This server will not be allowed to boot if it is using more than this amount of space. If a server goes over this limit while running it will be safely stopped and locked until enough space is available. Set to 0 to allow unlimited disk usage."},"feature_limits.databases":{"type":"integer","description":"The total number of databases a user is allowed to create for this server."},"feature_limits.backups":{"type":"integer","description":"The total number of allocations a user is allowed to create for this server."}},"required":["allocation","memory","swap","io","cpu","disk"]},"example":{"allocation":1,"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null,"feature_limits":{"databases":5,"allocations":5,"backups":2}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteID1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"container":{"startup_command":"java -Xms128M -Xmx2014M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx2048M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-11-04T21:11:26+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/startup":{"patch":{"tags":["Application - Servers"],"summary":"Update startup","operationId":"patch-update-startup","description":"Updates the server startup information","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startup":{"type":"string","description":"Edit your server's startup command here."},"environment":{"type":"object","description":"Environment variables that the egg requires/supports"},"egg":{"type":"string","description":"ID of the egg to use"},"image":{"type":"string","description":"The Docker image to use for this server"},"skip_scripts":{"type":"string","description":"If enabled, if the Egg has an install script, it will NOT be ran during install."}},"required":["startup","egg","image"]},"example":{"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest"},"egg":5,"image":"quay.io/pterodactyl/core:java","skip_scripts":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteID1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"container":{"startup_command":"java -Xms128M -Xmx2014M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx2048M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-11-04T21:11:26+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/suspend":{"post":{"tags":["Application - Servers"],"summary":"Suspend server","operationId":"post-suspend-server","description":"Suspends the specified server","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/unsuspend":{"post":{"tags":["Application - Servers"],"summary":"Unsuspend server","operationId":"post-unsuspend-server","description":"Unuspends the specified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/reinstall":{"post":{"tags":["Application - Servers"],"summary":"Reinstall server","operationId":"post-reinstall-server","description":"Reinstalls the specified server","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/1":{"delete":{"tags":["Application - Servers"],"summary":"Delete server","operationId":"delete-delete-server","description":"Deletes the specified server","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/1/force":{"delete":{"tags":["Application - Servers"],"summary":"Force delete server","operationId":"delete-force-delete-server","description":"Forcefully deletes the specified server","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/databases/1/reset-password":{"post":{"tags":["Application - Servers - Database Management"],"summary":"Reset password","operationId":"post-reset-password","description":"Rotates the password of the database","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests":{"get":{"tags":["Application - Nests"],"summary":"List nests","operationId":"get-list-nests","description":"Retrieves all nests\n\n# Available include parameters\n| Parameter | Description |\n|-----------|---------------------------------|\n| eggs | List of eggs in the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"author":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},{"object":"nest","attributes":{"id":2,"uuid":"5246d226-e8e8-46f5-b624-e99cf1a68c9a","author":"support@pterodactyl.io","name":"Source Engine","description":"Includes support for most Source Dedicated Server games.","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},{"object":"nest","attributes":{"id":3,"uuid":"0eb05bf7-3a00-4b1d-bef5-a6d8d7375e44","author":"support@pterodactyl.io","name":"Voice Servers","description":"Voice servers such as Mumble and Teamspeak 3.","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},{"object":"nest","attributes":{"id":4,"uuid":"e2a21c82-7175-4db0-9510-8d1ed525b2bf","author":"support@pterodactyl.io","name":"Rust","description":"Rust - A game where you must fight to survive.","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}}],"meta":{"pagination":{"total":4,"count":4,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests/1/eggs":{"get":{"tags":["Application - Nests - Eggs Management"],"summary":"List eggs","operationId":"get-list-eggs","description":"Retrieves a list of eggs\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------------|\n| nest | Information about the nest that owns the egg |\n| servers | List of servers using the egg |\n| config | Config options of the egg |\n| script | Egg install script |\n| variables | List of egg variables |","parameters":[{"name":"include","in":"query","schema":{"type":"string"},"example":"nest,servers"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"name":{"type":"string"},"nest":{"type":"integer"},"author":{"type":"string"},"description":{"type":"string"},"docker_image":{"type":"string"},"config":{"type":"object","properties":{"files":{"type":"object","properties":{"config.yml":{"type":"object","properties":{"parser":{"type":"string"},"find":{"type":"object","properties":{"listeners[0].query_enabled":{"type":"boolean"},"listeners[0].query_port":{"type":"string"},"listeners[0].host":{"type":"string"},"servers.*.address":{"type":"object","properties":{"127.0.0.1":{"type":"string"},"localhost":{"type":"string"}}}}}}}}},"startup":{"type":"object","properties":{"done":{"type":"string"},"userInteraction":{"type":"array","items":{"type":"string"}}}},"stop":{"type":"string"},"logs":{"type":"object","properties":{"custom":{"type":"boolean"},"location":{"type":"string"}}},"extends":{"type":"string","nullable":true}}},"startup":{"type":"string"},"script":{"type":"object","properties":{"privileged":{"type":"boolean"},"install":{"type":"string"},"entry":{"type":"string"},"container":{"type":"string"},"extends":{"type":"string","nullable":true}}},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"nest":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"author":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"servers":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{}}}}}}}}}}}}},"example":{"object":"list","data":[{"object":"egg","attributes":{"id":1,"uuid":"695648dd-01a3-4ced-b075-d4ec4fb9fbf4","name":"Bungeecord","nest":1,"author":"support@pterodactyl.io","description":"For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"config.yml":{"parser":"yaml","find":{"listeners[0].query_enabled":true,"listeners[0].query_port":"{{server.build.default.port}}","listeners[0].host":"0.0.0.0:{{server.build.default.port}}","servers.*.address":{"127.0.0.1":"{{config.docker.interface}}","localhost":"{{config.docker.interface}}"}}}},"startup":{"done":"Listening on ","userInteraction":["Listening on /0.0.0.0:25577"]},"stop":"end","logs":{"custom":false,"location":"proxy.log.0"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":2,"uuid":"7f8736d8-fd99-465f-8c3e-cb4d42c18541","name":"Forge Minecraft","nest":1,"author":"support@pterodactyl.io","description":"Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","enable-query":"true","server-port":"{{server.build.default.port}}","query.port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":{"custom":false,"location":"logs/latest.log"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napt update\r\napt install -y curl\r\n\r\n#Fetching version\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n echo \"Fetching latest\"\r\n MC_VERSION=$(curl -sl https://files.minecraftforge.net/maven/net/minecraftforge/forge/index.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's/ //g')\r\nelif [[ ! \"$MC_VERSION\" =~ - ]]; then\r\n echo \"Fetching latest from version $MC_VERSION\"\r\n MC_VERSION=$(curl -sl https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_$MC_VERSION.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's/ //g')\r\nfi\r\n\r\n#Checking if forge version valid\r\nif [[ ! \"$MC_VERSION\" =~ [1].[0-9]*.[0-9]*-[0-9]*.[0-9]*.[0-9]*.[0-9]* ]]; then\r\n echo \"!!! Invalid forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Go into main direction\r\ncd /mnt/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version \\\"$MC_VERSION\\\"\"\r\ncurl -o installer.jar -sS https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MC_VERSION/forge-$MC_VERSION-installer.jar\r\ncurl -o $SERVER_JARFILE -sS https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MC_VERSION/forge-$MC_VERSION-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f ./installer.jar ] || [ ! -f ./$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar","entry":"bash","container":"openjdk:8","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":3,"uuid":"2ad75dfd-892d-4441-a452-6d7be7cc895a","name":"Paper","nest":1,"author":"parker@pterodactyl.io","description":"High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","server-port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":[],"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`\r\nelse\r\n VER_EXISTS=`curl -s https://papermc.io/api/v1/paper | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_PAPER_VERSION=`curl -s https://papermc.io/api/v1/paper | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest paper version\"\r\n MINECRAFT_VERSION=${LATEST_PAPER_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https://papermc.io/api/v1/paper/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https://papermc.io/api/v1/paper/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https://papermc.io/api/v1/paper/${MINECRAFT_VERSION}/${BUILD_NUMBER}/download \r\nfi\r\n\r\ncd /mnt/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https://raw.githubusercontent.com/parkervcp/eggs/master/minecraft_java/server.properties\r\nfi","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":4,"uuid":"00274063-5d21-439f-80b9-c4cc0dba8188","name":"Sponge (SpongeVanilla)","nest":1,"author":"support@pterodactyl.io","description":"SpongeVanilla is the SpongeAPI implementation for Vanilla Minecraft.","docker_image":"quay.io/pterodactyl/core:java-glibc","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","enable-query":"true","server-port":"{{server.build.default.port}}","query.port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":{"custom":false,"location":"logs/latest.log"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\n# Sponge Installation Script\n#\n# Server Files: /mnt/server\n\napk update\napk add curl\n\ncd /mnt/server\n\ncurl -sSL \"https://repo.spongepowered.org/maven/org/spongepowered/spongevanilla/${SPONGE_VERSION}/spongevanilla-${SPONGE_VERSION}.jar\" -o ${SERVER_JARFILE}","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":5,"uuid":"cd4cc5cf-de80-4a50-b458-dbd7d3193175","name":"Vanilla Minecraft","nest":1,"author":"support@pterodactyl.io","description":"Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","enable-query":"true","server-port":"{{server.build.default.port}}","query.port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":{"custom":false,"location":"logs/latest.log"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk update\r\napk add curl jq\r\n\r\ncd /mnt/server\r\n\r\nLATEST_VERSION=`curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$LATEST_VERSION'\") | .url')\r\nelse\r\n MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$VANILLA_VERSION'\") | .url')\r\nfi\r\n\r\nDOWNLOAD_URL=`curl $MANIFEST_URL | jq .downloads.server | jq -r '. | .url'`\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Wuhu Island","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"Test","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca"}},"updated_at":"2020-06-13T04:20:53+00:00","created_at":"2019-12-23T06:46:27+00:00"}}]}}}}]}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests/1/eggs/1":{"get":{"tags":["Application - Nests - Eggs Management"],"summary":"Egg details","operationId":"get-egg-details","description":"Retrieves the specified egg\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------------|\n| nest | Information about the nest that owns the egg |\n| servers | List of servers using the egg |\n| config | Config options of the egg |\n| script | Egg install script |\n| variables | List of egg variables |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"name":{"type":"string"},"nest":{"type":"integer"},"author":{"type":"string"},"description":{"type":"string"},"docker_image":{"type":"string"},"config":{"type":"object","properties":{"files":{"type":"object","properties":{"config.yml":{"type":"object","properties":{"parser":{"type":"string"},"find":{"type":"object","properties":{"listeners[0].query_enabled":{"type":"boolean"},"listeners[0].query_port":{"type":"string"},"listeners[0].host":{"type":"string"},"servers.*.address":{"type":"object","properties":{"127.0.0.1":{"type":"string"},"localhost":{"type":"string"}}}}}}}}},"startup":{"type":"object","properties":{"done":{"type":"string"},"userInteraction":{"type":"array","items":{"type":"string"}}}},"stop":{"type":"string"},"logs":{"type":"object","properties":{"custom":{"type":"boolean"},"location":{"type":"string"}}},"extends":{"type":"string","nullable":true}}},"startup":{"type":"string"},"script":{"type":"object","properties":{"privileged":{"type":"boolean"},"install":{"type":"string"},"entry":{"type":"string"},"container":{"type":"string"},"extends":{"type":"string","nullable":true}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"egg","attributes":{"id":1,"uuid":"695648dd-01a3-4ced-b075-d4ec4fb9fbf4","name":"Bungeecord","nest":1,"author":"support@pterodactyl.io","description":"For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"config.yml":{"parser":"yaml","find":{"listeners[0].query_enabled":true,"listeners[0].query_port":"{{server.build.default.port}}","listeners[0].host":"0.0.0.0:{{server.build.default.port}}","servers.*.address":{"127.0.0.1":"{{config.docker.interface}}","localhost":"{{config.docker.interface}}"}}}},"startup":{"done":"Listening on ","userInteraction":["Listening on /0.0.0.0:25577"]},"stop":"end","logs":{"custom":false,"location":"proxy.log.0"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests/1":{"get":{"tags":["Application - Nests"],"summary":"Nest details","operationId":"get-nest-details","description":"Retrieves the specified nests\n\n# Available include parameters\n| Parameter | Description |\n|-----------|---------------------------------|\n| eggs | List of eggs in the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"author":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/client/servers/{server}/startup":{"get":{"tags":["Client - Server - Startup"],"summary":"List Variables","operationId":"get-list-variables","description":"Lists all variables on the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"egg_variable\",\n \"attributes\": {\n \"name\": \"Server Jar File\",\n \"description\": \"The name of the server jarfile to run the server with.\",\n \"env_variable\": \"SERVER_JARFILE\",\n \"default_value\": \"server.jar\",\n \"server_value\": \"server.jar\",\n \"is_editable\": true,\n \"rules\": \"required|regex:\\/^([\\\\w\\\\d._-]+)(\\\\.jar)$\\/\"\n }\n },\n {\n \"object\": \"egg_variable\",\n \"attributes\": {\n \"name\": \"Server Version\",\n \"description\": \"The version of Minecraft Vanilla to install. Use \\\"latest\\\" to install the latest version.\",\n \"env_variable\": \"VANILLA_VERSION\",\n \"default_value\": \"latest\",\n \"server_value\": \"latest\",\n \"is_editable\": true,\n \"rules\": \"required|string|between:3,15\"\n }\n }\n ],\n \"meta\": {\n \"startup_command\": \"java -Xms128M -Xmx512M -jar server.jar\",\n \"raw_startup_command\": \"java -Xms128M -Xmx\\{\\{ SERVER_MEMORY }}M -jar {\\{ SERVER_JARFILE }}\"\n }\n}"}},"security":[{"ClientToken":[]}]}},"/api/client":{"get":{"tags":["Client - General"],"summary":"List servers","operationId":"get-list-servers","description":"Lists all servers\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------------|\n| egg | Information about the egg the server uses |\n| subusers | List of subusers on the server |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"server_owner":{"type":"boolean"},"identifier":{"type":"string"},"uuid":{"type":"string"},"name":{"type":"string"},"node":{"type":"string"},"sftp_details":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"}}},"description":{"type":"string"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"is_suspended":{"type":"boolean"},"is_installing":{"type":"boolean"},"relationships":{"type":"object","properties":{"allocations":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}}}}}}}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"server","attributes":{"server_owner":true,"identifier":"1a7ce997","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","name":"Gaming","node":"Test","sftp_details":{"ip":"pterodactyl.file.properties","port":2022},"description":"Matt from Wii Sports","limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0},"feature_limits":{"databases":5,"allocations":5,"backups":2},"is_suspended":false,"is_installing":false,"relationships":{"allocations":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","ip_alias":null,"port":25565,"notes":null,"is_default":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}]}}}}],"meta":{"pagination":{"total":1,"count":1,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}":{"get":{"tags":["Client - Server"],"summary":"Server details","operationId":"get-server-details","description":"Retrieves information about the specified server\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------------|\n| egg | Information about the egg the server uses |\n| subusers | List of subusers on the server |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"server_owner":{"type":"boolean"},"identifier":{"type":"string"},"uuid":{"type":"string"},"name":{"type":"string"},"node":{"type":"string"},"sftp_details":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"}}},"description":{"type":"string"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"is_suspended":{"type":"boolean"},"is_installing":{"type":"boolean"},"relationships":{"type":"object","properties":{"allocations":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}}}}}}}}},"meta":{"type":"object","properties":{"is_server_owner":{"type":"boolean"},"user_permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server","attributes":{"server_owner":true,"identifier":"1a7ce997","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","name":"Wuhu Island","node":"Test","sftp_details":{"ip":"pterodactyl.file.properties","port":2022},"description":"Matt from Wii Sports","limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0},"feature_limits":{"databases":5,"allocations":5,"backups":2},"is_suspended":false,"is_installing":false,"relationships":{"allocations":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","ip_alias":null,"port":25565,"notes":null,"is_default":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}]}}},"meta":{"is_server_owner":true,"user_permissions":["*","admin.websocket.errors","admin.websocket.install"]}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/websocket":{"get":{"tags":["Client - Server"],"summary":"Console details","operationId":"get-console-details","description":"Generates credentials to establish a websocket\n\n## How to connect\n1. Connect to the websocket address (in this example \"wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws\")\n2. Send the token to the websocket like this: `{\"event\":\"auth\",\"args\":[\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij...\"]}`\n\n* Tokens last about 10-15 minutes, and the websocket will notify you once you need to send a new token with `{\"event\":\"token expiring\"}` and `{\"event\":\"token expired\"}`\n\n## Things you can send\n* `{\"event\":\"auth\",\"args\":[\"\"]}` # Authenticate with websocket\n* `{\"event\":\"send stats\",\"args\":[null]}` # Request stats\n* `{\"event\":\"send logs\",\"args\":[null]}` # Request logs\n* `{\"event\":\"set state\",\"args\":[\"\"]}` # Send power action\n* `{\"event\":\"send command\",\"args\":[\"\"]}` # Send command\n\n## Things you'll receive\n* `{\"event\":\"auth success\"}` # Upon successful websocket authentication\n* `{\"event\":\"status\",\"args\":[\"offline\"]}` # Status updates of the server\n* `{\"event\":\"console output\",\"args\":[\"[14:07:12] [Query Listener #1/INFO]: Query running on 0.0.0.0:25565\"]}` # Logs from server\n* `{\"event\":\"stats\",\"args\":[\"{\\\"memory_bytes\\\":526626816,\\\"memory_limit_bytes\\\":588800000,\\\"cpu_absolute\\\":588.815,\\\"network\\\":{\\\"rx_bytes\\\":1126,\\\"tx_bytes\\\":1126},\\\"state\\\":\\\"stopping\\\",\\\"disk_bytes\\\":128118626}\"]}` # Stats from server\n* `{\"event\":\"token expiring\"}` # Token is expiring soon so request a new one and send it to the websocket\n* `{\"event\":\"token expired\"}` # Token has expired","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"token":{"type":"string"},"socket":{"type":"string"}}}}},"example":{"data":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij...","socket":"wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/resources":{"get":{"tags":["Client - Server"],"summary":"Resource usage","operationId":"get-resource-usage","description":"Retrieves resource utilization of the specified server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"current_state":{"type":"string"},"is_suspended":{"type":"boolean"},"resources":{"type":"object","properties":{"memory_bytes":{"type":"integer"},"cpu_absolute":{"type":"integer"},"disk_bytes":{"type":"integer"},"network_rx_bytes":{"type":"integer"},"network_tx_bytes":{"type":"integer"}}}}}}},"example":{"object":"stats","attributes":{"current_state":"starting","is_suspended":false,"resources":{"memory_bytes":588701696,"cpu_absolute":0,"disk_bytes":130156361,"network_rx_bytes":694220,"network_tx_bytes":337090}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/command":{"post":{"tags":["Client - Server"],"summary":"Send command","operationId":"post-send-command","description":"Sends a command to the server\n\nThe server must be online to send a command to it. You will get HTTP 502 is the server if not online.","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string","description":"Command to send"}},"required":["command"]},"example":{"command":"say CodeCo says Hi!"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/power":{"post":{"tags":["Client - Server"],"summary":"Change power state","operationId":"post-change-power-state","description":"Sends a power signal to the server\n\n## Signals\n| Signal | Description |\n|---------|----------------------------------|\n| start | Starts the server |\n| stop | Gracefully stops the server |\n| restart | Stops then starts the server |\n| kill | Instantly end the server process |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signal":{"type":"string","description":"Power signal to send"}},"required":["signal"]},"example":{"signal":"start"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/permissions":{"get":{"tags":["Client - General"],"summary":"Show permissions","operationId":"get-show-permissions","description":"Retries all available permissions\n\nThis is used for the frontend","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"permissions":{"type":"object","properties":{"websocket":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"connect":{"type":"string"}}}}},"control":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"console":{"type":"string"},"start":{"type":"string"},"stop":{"type":"string"},"restart":{"type":"string"}}}}},"user":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"}}}}},"file":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"},"archive":{"type":"string"},"sftp":{"type":"string"}}}}},"backup":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"},"download":{"type":"string"}}}}},"allocation":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"read":{"type":"string"},"create":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"}}}}},"startup":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"read":{"type":"string"},"update":{"type":"string"}}}}},"database":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"},"view_password":{"type":"string"}}}}},"schedule":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"}}}}},"settings":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"rename":{"type":"string"},"reinstall":{"type":"string"}}}}}}}}}}},"example":{"object":"system_permissions","attributes":{"permissions":{"websocket":{"description":"Allows the user to connect to the server websocket, giving them access to view console output and realtime server stats.","keys":{"connect":"Allows a user to connect to the websocket instance for a server to stream the console."}},"control":{"description":"Permissions that control a user's ability to control the power state of a server, or send commands.","keys":{"console":"Allows a user to send commands to the server instance via the console.","start":"Allows a user to start the server if it is stopped.","stop":"Allows a user to stop a server if it is running.","restart":"Allows a user to perform a server restart. This allows them to start the server if it is offline, but not put the server in a completely stopped state."}},"user":{"description":"Permissions that allow a user to manage other subusers on a server. They will never be able to edit their own account, or assign permissions they do not have themselves.","keys":{"create":"Allows a user to create new subusers for the server.","read":"Allows the user to view subusers and their permissions for the server.","update":"Allows a user to modify other subusers.","delete":"Allows a user to delete a subuser from the server."}},"file":{"description":"Permissions that control a user's ability to modify the filesystem for this server.","keys":{"create":"Allows a user to create additional files and folders via the Panel or direct upload.","read":"Allows a user to view the contents of a directory and read the contents of a file. Users with this permission can also download files.","update":"Allows a user to update the contents of an existing file or directory.","delete":"Allows a user to delete files or directories.","archive":"Allows a user to archive the contents of a directory as well as decompress existing archives on the system.","sftp":"Allows a user to connect to SFTP and manage server files using the other assigned file permissions."}},"backup":{"description":"Permissions that control a user's ability to generate and manage server backups.","keys":{"create":"Allows a user to create new backups for this server.","read":"Allows a user to view all backups that exist for this server.","update":"","delete":"Allows a user to remove backups from the system.","download":"Allows a user to download backups."}},"allocation":{"description":"Permissions that control a user's ability to modify the port allocations for this server.","keys":{"read":"Allows a user to view the allocations assigned to this server.","create":"Allows a user to assign additional allocations to the server.","update":"Allows a user to change the primary server allocation and attach notes to each allocation.","delete":"Allows a user to delete an allocation from the server."}},"startup":{"description":"Permissions that control a user's ability to view this server's startup parameters.","keys":{"read":"","update":""}},"database":{"description":"Permissions that control a user's access to the database management for this server.","keys":{"create":"Allows a user to create a new database for this server.","read":"Allows a user to view the database associated with this server.","update":"Allows a user to rotate the password on a database instance. If the user does not have the view_password permission they will not see the updated password.","delete":"Allows a user to remove a database instance from this server.","view_password":"Allows a user to view the password associated with a database instance for this server."}},"schedule":{"description":"Permissions that control a user's access to the schedule management for this server.","keys":{"create":"","read":"","update":"","delete":""}},"settings":{"description":"Permissions that control a user's access to the settings for this server.","keys":{"rename":"","reinstall":""}}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/databases":{"get":{"tags":["Client - Server - Databases"],"summary":"List databases","operationId":"get-list-databases","description":"Lists all databases on a server\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"object","properties":{"address":{"type":"string"},"port":{"type":"integer"}}},"name":{"type":"string"},"username":{"type":"string"},"connections_from":{"type":"string"},"max_connections":{"type":"integer"}}}}}}}},"example":{"object":"list","data":[{"object":"server_database","attributes":{"id":"bEY4yAD5","host":{"address":"127.0.0.1","port":3306},"name":"s5_perms","username":"u5_QsIAp1jhvS","connections_from":"%","max_connections":0}},{"object":"server_database","attributes":{"id":"E0A0Rw42","host":{"address":"127.0.0.1","port":3306},"name":"s5_coreprotect","username":"u5_2jtJx1nO1d","connections_from":"%","max_connections":0}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Databases"],"summary":"Create database","operationId":"post-create-database","description":"Creates a new database","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"database":{"type":"string"},"remote":{"type":"string"}}},"example":{"database":"bans","remote":"%"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"object","properties":{"address":{"type":"string"},"port":{"type":"integer"}}},"name":{"type":"string"},"username":{"type":"string"},"connections_from":{"type":"string"},"max_connections":{"type":"integer"},"relationships":{"type":"object","properties":{"password":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"password":{"type":"string"}}}}}}}}}}},"example":{"object":"server_database","attributes":{"id":"y9YVxO4V","host":{"address":"127.0.0.1","port":3306},"name":"s5_punishments","username":"u5_aeZqbGdCM9","connections_from":"%","max_connections":0,"relationships":{"password":{"object":"database_password","attributes":{"password":"=lR2orDOcwfKkM=BXb.BVF.C"}}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/list":{"get":{"tags":["Client - Server - File Manager"],"summary":"List files","operationId":"get-list-files","description":"Lists all files of the server\n\n## Available parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| directory | URL encoded path to list files from |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"directory","in":"query","schema":{"type":"string"},"example":"/cache"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"mode":{"type":"string"},"size":{"type":"integer"},"is_file":{"type":"boolean"},"is_symlink":{"type":"boolean"},"is_editable":{"type":"boolean"},"mimetype":{"type":"string"},"created_at":{"type":"string"},"modified_at":{"type":"string"}}}}}}}},"example":{"object":"list","data":[{"object":"file_object","attributes":{"name":"cache","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:20:36+00:00"}},{"object":"file_object","attributes":{"name":"logs","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:42:02+00:00","modified_at":"2020-07-13T12:42:02+00:00"}},{"object":"file_object","attributes":{"name":"plugins","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:07+00:00"}},{"object":"file_object","attributes":{"name":"world","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T13:26:22+00:00","modified_at":"2020-07-13T13:26:22+00:00"}},{"object":"file_object","attributes":{"name":"world_nether","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:15+00:00"}},{"object":"file_object","attributes":{"name":"world_the_end","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:15+00:00"}},{"object":"file_object","attributes":{"name":"whitelist.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:07+00:00"}},{"object":"file_object","attributes":{"name":"version_history.json","mode":"-rw-r--r--","size":46,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:08+00:00"}},{"object":"file_object","attributes":{"name":"usercache.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}},{"object":"file_object","attributes":{"name":"spigot.yml","mode":"-rw-r--r--","size":3567,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:42+00:00"}},{"object":"file_object","attributes":{"name":"server.properties","mode":"-rw-r--r--","size":955,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:59+00:00","modified_at":"2020-07-13T12:41:59+00:00"}},{"object":"file_object","attributes":{"name":"server.jar","mode":"-rw-r--r--","size":36175593,"is_file":true,"is_symlink":false,"is_editable":false,"mimetype":"application/jar","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T22:38:46+00:00"}},{"object":"file_object","attributes":{"name":"permissions.yml","mode":"-rw-r--r--","size":0,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"inode/x-empty","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:08+00:00"}},{"object":"file_object","attributes":{"name":"paper.yml","mode":"-rw-r--r--","size":5310,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:42+00:00"}},{"object":"file_object","attributes":{"name":"ops.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}},{"object":"file_object","attributes":{"name":"hs_err_pid25.log","mode":"-rw-r--r--","size":57099,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T20:36:55+00:00"}},{"object":"file_object","attributes":{"name":"help.yml","mode":"-rw-r--r--","size":2576,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:07+00:00"}},{"object":"file_object","attributes":{"name":"eula.txt","mode":"-rw-r--r--","size":250,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:20:57+00:00"}},{"object":"file_object","attributes":{"name":"commands.yml","mode":"-rw-r--r--","size":598,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:36+00:00"}},{"object":"file_object","attributes":{"name":"bukkit.yml","mode":"-rw-r--r--","size":1053,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:36+00:00"}},{"object":"file_object","attributes":{"name":"banned-players.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}},{"object":"file_object","attributes":{"name":"banned-ips.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}}]}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/startup/variable":{"put":{"tags":["Client - Server - Startup"],"summary":"Update Variable","operationId":"put-update-variable","description":"Updates the specified variable","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}},"example":{"key":"SERVER_JARFILE","value":"server.jar"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"env_variable":{"type":"string"},"default_value":{"type":"string"},"server_value":{"type":"string"},"is_editable":{"type":"boolean"},"rules":{"type":"string"}}}}},"example":{"object":"egg_variable","attributes":{"name":"Server Jar File","description":"The name of the server jarfile to run the server with.","env_variable":"SERVER_JARFILE","default_value":"server.jar","server_value":"server.jar","is_editable":true,"rules":"required|regex:/^([\\w\\d._-]+)(\\.jar)$/"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules":{"get":{"tags":["Client - Server - Schedules"],"summary":"List schedules","operationId":"get-list-schedules","description":"Lists all schedules added to the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}}}}},"example":{"object":"list","data":[{"object":"server_schedule","attributes":{"id":1,"name":"Daily Reboot","cron":{"day_of_week":"*","day_of_month":"*","hour":"0","minute":"0"},"is_active":true,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T00:00:00+01:00","created_at":"2020-06-12T23:50:14+01:00","updated_at":"2020-06-12T23:53:07+01:00","relationships":{"tasks":{"object":"list","data":[{"object":"schedule_task","attributes":{"id":1,"sequence_id":1,"action":"command","payload":"say Rebooting...","time_offset":0,"is_queued":false,"created_at":"2020-06-12T23:50:46+01:00","updated_at":"2020-06-12T23:52:54+01:00"}},{"object":"schedule_task","attributes":{"id":2,"sequence_id":2,"action":"power","payload":"restart","time_offset":5,"is_queued":false,"created_at":"2020-06-12T23:53:07+01:00","updated_at":"2020-06-12T23:53:07+01:00"}}]}}}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Schedules"],"summary":"Create schedule","operationId":"post-create-schedule","description":"Creates a new schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Friendly name for the schedule"},"is_active":{"type":"boolean","description":"Specifies whether the schedule is active"},"minute":{"type":"string","description":"Cron minute syntax"},"hour":{"type":"string","description":"Cron hour syntax"},"day\\_of\\_week":{"type":"string","description":"Cron day-of-month syntax"},"day\\_of\\_month":{"type":"string","description":"Cron day-of-month syntax"}},"required":["name","minute","hour","day\\_of\\_week","day\\_of\\_month"]},"example":{"name":"Minute Hello","minute":"*","hour":"*","day_of_month":"*","day_of_week":"*","is_active":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{}}}}}}}}}},"example":{"object":"server_schedule","attributes":{"id":4,"name":"Minute Hello","cron":{"day_of_week":"*","day_of_month":"*","hour":"*","minute":"*"},"is_active":true,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T15:17:00+01:00","created_at":"2020-06-13T15:16:45+01:00","updated_at":"2020-06-13T15:16:45+01:00","relationships":{"tasks":{"object":"list","data":[]}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/network/allocations":{"get":{"tags":["Client - Server - Network"],"summary":"List allocations","operationId":"get-list-allocations","description":"Retrieves the network information for the specified server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}}}}},"example":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","ip_alias":null,"port":25565,"notes":null,"is_default":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Network"],"summary":"Assign allocation","operationId":"post-assign-allocation","description":"Automatically assigns a new allocation if auto-assign is enabled on the instance","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}},"example":{"object":"allocation","attributes":{"id":6,"ip":"45.86.168.218","ip_alias":null,"port":25570,"notes":null,"is_default":false}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/network/allocations/2":{"post":{"tags":["Client - Server - Network"],"summary":"Set allocation note","operationId":"post-set-allocation-note","description":"Sets a note for the allocation\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------|-----------|--------|---------------------|-------|\n| notes | required | string | Note for allocation | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"notes":{"type":"string"}}},"example":{"notes":"Votifier"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string"},"is_default":{"type":"boolean"}}}}},"example":{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Server - Network"],"summary":"Unassign allocation","operationId":"delete-unassign-allocation","description":"Deletes the specified non-primary allocation","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string"},"detail":{"type":"string"}}}}}},"example":{"errors":[{"code":"DisplayException","status":"400","detail":"Cannot delete the primary allocation for a server."}]}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/network/allocations/1/primary":{"post":{"tags":["Client - Server - Network"],"summary":"Set primary allocation","operationId":"post-set-primary-allocation","description":"Sets the primary allocation","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string"},"is_default":{"type":"boolean"}}}}},"example":{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":true}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/users":{"get":{"tags":["Client - Server - Users"],"summary":"List Users","operationId":"get-list-users","description":"Lists all users added to the server, along with details about them and their permissions","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}}}}},"example":{"object":"list","data":[{"object":"server_subuser","attributes":{"uuid":"73f233ca-99e0-47a9-bd46-efd3296d7ad9","username":"subuser1uxk","email":"subuser1@example.com","image":"https://gravatar.com/avatar/c0da5391b64449c1ecbfd4349184377c","2fa_enabled":false,"created_at":"2020-06-12T23:18:43+01:00","permissions":["control.console","control.start","control.stop","control.restart","user.create","user.update","user.delete","user.read","file.create","file.read","file.update","file.delete","file.archive","file.sftp","backup.create","backup.read","backup.delete","backup.update","backup.download","allocation.update","startup.update","startup.read","database.create","database.read","database.update","database.delete","database.view_password","schedule.create","schedule.read","schedule.update","settings.rename","schedule.delete","settings.reinstall","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"1287632d-9224-40c0-906e-f543423400bc","username":"subuser3bvo","email":"subuser3@example.com","image":"https://gravatar.com/avatar/8b28d32aaa64a1564450d16f71a81f65","2fa_enabled":false,"created_at":"2020-07-13T14:27:46+01:00","permissions":["control.console","control.start","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"2fcb6f7e-342a-423a-93a4-6111a237c0c7","username":"geboc70057d6r","email":"geboc70057@djemail.net","image":"https://gravatar.com/avatar/354d25d88e2c73b9f8d8e9bb8f1bf15e","2fa_enabled":false,"created_at":"2020-07-13T14:36:44+01:00","permissions":["control.console","control.start","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"b20e4e11-550f-4c52-893d-94fc8bc46a06","username":"testidq","email":"test@example.com","image":"https://gravatar.com/avatar/55502f40dc8b7c769880b10874abc9d0","2fa_enabled":false,"created_at":"2020-07-19T13:48:38+01:00","permissions":["control.*","websocket.connect"]}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Users"],"summary":"Create User","operationId":"post-create-user","description":"Adds a user to the server\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------------|-----------|--------|------------------------------------|-------|\n| email | required | string | Email address of the user | |\n| permissions | required | object | Permissions that user is permitted | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}},"example":{"email":"subuser2@example.com","permissions":["control.console","control.start"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/backups":{"get":{"tags":["Client - Server - Backups"],"summary":"List backups","operationId":"get-list-backups","description":"Retrieves a list of backups","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"ignored_files":{"type":"array","items":{}},"sha256_hash":{"type":"string"},"bytes":{"type":"integer"},"created_at":{"type":"string"},"completed_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"backup","attributes":{"uuid":"904df120-a66f-4375-a4ae-40eedbeae630","name":"Quick Backup","ignored_files":[],"sha256_hash":"7c20d6a269b441a9dfd044e3f8ad13d77c09c83af8832d29ad603084a9a63726","bytes":114402862,"created_at":"2020-06-13T05:21:01+01:00","completed_at":"2020-06-13T05:21:04+01:00"}},{"object":"backup","attributes":{"uuid":"63087048-eada-419c-ad72-803c1c949cac","name":"Backup at 2020-07-19 16:21:34","ignored_files":[],"sha256_hash":"39bf93b9d8aee45316fa7ec8bbed0530904558851fa8e712452845c969873b16","bytes":114567250,"created_at":"2020-07-19T16:21:34+01:00","completed_at":"2020-07-19T16:21:35+01:00"}}],"meta":{"pagination":{"total":2,"count":2,"per_page":20,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Backups"],"summary":"Create backup","operationId":"post-create-backup","description":"Creates a new backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"ignored_files":{"type":"array","items":{}},"sha256_hash":{"type":"string","nullable":true},"bytes":{"type":"integer"},"created_at":{"type":"string"},"completed_at":{"type":"string","nullable":true}}}}},"example":{"object":"backup","attributes":{"uuid":"63087048-eada-419c-ad72-803c1c949cac","name":"Backup at 2020-07-19 16:21:34","ignored_files":[],"sha256_hash":null,"bytes":0,"created_at":"2020-07-19T16:21:34+01:00","completed_at":null}}}}}},"security":[{"ClientToken":[]}]}},"/api/application/users":{"get":{"tags":["Application - Users"],"summary":"List users","operationId":"get-list-users","description":"Retrieves all users\n\n## Available Include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |\n\n## Filters\n| Parameter |\n|-------------|\n| email |\n| uuid |\n| username |\n| external_id |\n\n## Sort by\n| Parameter |\n|-------------|\n| id |\n| uuid |","responses":{"200":{"description":"// GET /api/application/users?filter%5Bemail%5D=dane%40daneeveritt.com\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"user\",\n \"attributes\": {\n \"id\": 27,\n \"external_id\": null,\n \"uuid\": \"18528bb9-8f60-45e2-adc6-f72611559fd7\",\n \"username\": \"hodor7wm\",\n \"email\": \"hodor@example.com\",\n \"first_name\": \"Server\",\n \"last_name\": \"Subuser\",\n \"language\": \"en\",\n \"root_admin\": false,\n \"2fa\": false,\n \"created_at\": \"2020-08-19T03:23:35+00:00\",\n \"updated_at\": \"2020-08-19T03:23:35+00:00\"\n }\n },\n {\n \"object\": \"user\",\n \"attributes\": {\n \"id\": 26,\n \"external_id\": null,\n \"uuid\": \"b83673f6-3387-4a37-97cd-dd3a4f508343\",\n \"username\": \"testfz0\",\n \"email\": \"test@example.com\",\n \"first_name\": \"Server\",\n \"last_name\": \"Subuser\",\n \"language\": \"en\",\n \"root_admin\": false,\n \"2fa\": false,\n \"created_at\": \"2020-08-19T03:15:51+00:00\",\n \"updated_at\": \"2020-08-19T03:15:51+00:00\"\n }\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"total\": 2,\n \"count\": 2,\n \"per_page\": 100,\n \"current_page\": 1,\n \"total_pages\": 1,\n \"links\": {}\n }\n }\n}"}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Users"],"summary":"Create user","operationId":"post-create-user","description":"Creates a new user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}}},"example":{"email":"example10@example.com","username":"exampleuser","first_name":"Example","last_name":"User"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string","nullable":true},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":9,"external_id":null,"uuid":"dac03ece-fd51-4e4b-bd4f-a79e3b2794f9","username":"exampleuser","email":"example10@example.com","first_name":"Example","last_name":"User","language":"en","root_admin":false,"2fa":false,"created_at":"2020-10-29T01:25:12+00:00","updated_at":"2020-10-29T01:25:12+00:00"},"meta":{"resource":"https://pterodactyl.file.properties/api/application/users/9"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes":{"get":{"tags":["Application - Nodes"],"summary":"List nodes","operationId":"get-list-nodes","description":"Retrieves a list of nodes\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------------------|\n| allocations | List of allocations added to the node |\n| location | Information about the location the node is assigned to |\n| servers | List of servers on the node |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"node","attributes":{"id":1,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","public":true,"name":"Test","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/srv/daemon-data","created_at":"2019-12-22T04:44:51+00:00","updated_at":"2019-12-22T04:44:51+00:00"}},{"object":"node","attributes":{"id":3,"uuid":"71b15cf6-909a-4b60-aa04-abb4c8f98f61","public":true,"name":"2","description":"e","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":100,"memory_overallocate":0,"disk":100,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/var/lib/pterodactyl/volumes","created_at":"2020-06-23T04:50:37+00:00","updated_at":"2020-06-23T04:50:37+00:00"}}],"meta":{"pagination":{"total":2,"count":2,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Nodes"],"summary":"Create node","operationId":"post-create-node","description":"Creates a new node","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_listen":{"type":"integer"}}},"example":{"name":"New Node","location_id":1,"fqdn":"node2.example.com","scheme":"https","memory":10240,"memory_overallocate":0,"disk":50000,"disk_overallocate":0,"upload_size":100,"daemon_sftp":2022,"daemon_listen":8080}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"allocated_resources":{"type":"object","properties":{"memory":{"type":"integer"},"disk":{"type":"integer"}}}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"node","attributes":{"id":4,"uuid":"4158cfe9-2aa8-4812-bf6e-d88beeb08e98","public":true,"name":"New Node","description":null,"location_id":1,"fqdn":"node2.example.com","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":10240,"memory_overallocate":0,"disk":50000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/var/lib/pterodactyl/volumes","created_at":"2020-10-29T01:17:38+00:00","updated_at":"2020-10-29T01:17:38+00:00","allocated_resources":{"memory":0,"disk":0}},"meta":{"resource":"https://pterodactyl.file.properties/api/application/nodes/4"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/locations":{"get":{"tags":["Application - Locations"],"summary":"List locations","operationId":"get-list-locations","description":"Retrieves all locations\n\n# Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| nodes | List of nodes assigned to the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"location","attributes":{"id":1,"short":"GB","long":"London Datacenter","updated_at":"2020-06-13T21:16:58+00:00","created_at":"2019-12-22T04:44:18+00:00"}}],"meta":{"pagination":{"total":1,"count":1,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Locations"],"summary":"Create location","operationId":"post-create-location","description":"Creates a new location","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"short":{"type":"string","description":"Location identifier"},"long":{"type":"string","description":"Location description"}},"required":["short"]},"example":{"short":"GB","long":"London Datacenter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"location","attributes":{"id":3,"short":"G","long":"London Datacenter","updated_at":"2020-06-13T20:44:48+00:00","created_at":"2020-06-13T20:44:48+00:00"},"meta":{"resource":"https://pterodactyl.file.properties/api/application/locations/3"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/locations/1":{"get":{"tags":["Application - Locations"],"summary":"Location details","operationId":"get-location-details","description":"Retrieves the specified location\n\n# Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| nodes | List of nodes assigned to the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"location","attributes":{"id":1,"short":"Test","long":"Test","updated_at":"2019-12-22T04:44:18+00:00","created_at":"2019-12-22T04:44:18+00:00"}}}}}},"security":[{"ApplicationToken":[]}]},"patch":{"tags":["Application - Locations"],"summary":"Update location","operationId":"patch-update-location","description":"Updates the specified location","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"short":{"type":"string"},"long":{"type":"string"}}},"example":{"short":"GB","long":"London Datacenter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"location","attributes":{"id":1,"short":"GB","long":"London Datacenter","updated_at":"2020-06-13T21:16:58+00:00","created_at":"2019-12-22T04:44:18+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes/1":{"get":{"tags":["Application - Nodes"],"summary":"Node details","operationId":"get-node-details","description":"Retrieves the specified node\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------------------|\n| allocations | List of allocations added to the node |\n| location | Information about the location the node is assigned to |\n| servers | List of servers on the node |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"node","attributes":{"id":1,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","public":true,"name":"Test","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/srv/daemon-data","created_at":"2019-12-22T04:44:51+00:00","updated_at":"2019-12-22T04:44:51+00:00"}}}}}},"security":[{"ApplicationToken":[]}]},"patch":{"tags":["Application - Nodes"],"summary":"Update node","operationId":"patch-update-node","description":"Updates the node details","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_listen":{"type":"integer"}}},"example":{"name":"Test Renamed","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_sftp":2022,"daemon_listen":8080}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"mounts":{"type":"array","items":{}},"allocated_resources":{"type":"object","properties":{"memory":{"type":"integer"},"disk":{"type":"integer"}}}}}}},"example":{"object":"node","attributes":{"id":1,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","public":true,"name":"Test Renamed","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/var/lib/pterodactyl/volumes","created_at":"2019-12-22T04:44:51+00:00","updated_at":"2020-10-29T01:20:23+00:00","mounts":[],"allocated_resources":{"memory":640,"disk":700}}}}}}},"security":[{"ApplicationToken":[]}]},"delete":{"tags":["Application - Nodes"],"summary":"Delete node","operationId":"delete-delete-node","description":"Deletes the specified node","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes/1/configuration":{"get":{"tags":["Application - Nodes"],"summary":"Node configuration","operationId":"get-node-configuration","description":"Displays the Wings configuration","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"debug":{"type":"boolean"},"uuid":{"type":"string"},"token_id":{"type":"string"},"token":{"type":"string"},"api":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"ssl":{"type":"object","properties":{"enabled":{"type":"boolean"},"cert":{"type":"string"},"key":{"type":"string"}}},"upload_limit":{"type":"integer"}}},"system":{"type":"object","properties":{"data":{"type":"string"},"sftp":{"type":"object","properties":{"bind_port":{"type":"integer"}}}}},"remote":{"type":"string"}}},"example":{"debug":false,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","token_id":"iAcosCn1KCAgVjVO","token":"FanPzLCptUxkGow3vi7Z","api":{"host":"0.0.0.0","port":8080,"ssl":{"enabled":true,"cert":"/etc/letsencrypt/live/pterodactyl.file.properties/fullchain.pem","key":"/etc/letsencrypt/live/pterodactyl.file.properties/privkey.pem"},"upload_limit":100},"system":{"data":"/srv/daemon-data","sftp":{"bind_port":2022}},"remote":"https://pterodactyl.file.properties"}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/1":{"get":{"tags":["Application - Users"],"summary":"User details","operationId":"get-user-details","description":"Retrieves the specified user\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":1,"external_id":"RemoteId1","uuid":"4de5a357-ed95-426b-aec1-8c328cfe9751","username":"admin","email":"example@example.com","first_name":"Admin","last_name":"User","language":"en","root_admin":true,"2fa":false,"created_at":"2019-12-22T04:43:29+00:00","updated_at":"2020-07-13T13:10:23+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/locations/3":{"delete":{"tags":["Application - Locations"],"summary":"Delete location","operationId":"delete-delete-location","description":"Deletes the specified location","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/external/RemoteId1":{"get":{"tags":["Application - Users"],"summary":"User details","operationId":"get-user-details","description":"Retrieves the specified user by its external ID\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":1,"external_id":"RemoteId1","uuid":"4de5a357-ed95-426b-aec1-8c328cfe9751","username":"admin","email":"example@example.com","first_name":"Admin","last_name":"User","language":"en","root_admin":true,"2fa":false,"created_at":"2019-12-22T04:43:29+00:00","updated_at":"2020-07-13T13:10:23+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes/1/allocations":{"get":{"tags":["Application - Nodes - Allocations"],"summary":"List allocations","operationId":"get-list-allocations","description":"Lists allocations added to the node\n\n## Available include parameters\n| Parameter | Description |\n|-----------|--------------------------------------------------------|\n| node | Information about the node the allocation belongs to |\n| server | Information about the server the allocation belongs to |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"assigned":{"type":"boolean"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","alias":null,"port":25565,"notes":null,"assigned":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","alias":null,"port":25566,"notes":"Votifier","assigned":true}},{"object":"allocation","attributes":{"id":3,"ip":"45.86.168.218","alias":null,"port":25567,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":4,"ip":"45.86.168.218","alias":null,"port":25568,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":5,"ip":"45.86.168.218","alias":null,"port":25569,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":6,"ip":"45.86.168.218","alias":null,"port":25570,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":8,"ip":"10.0.0.1","alias":null,"port":25565,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":9,"ip":"45.86.168.218","alias":null,"port":25571,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":10,"ip":"45.86.168.218","alias":null,"port":25572,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":11,"ip":"45.86.168.218","alias":null,"port":25573,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":12,"ip":"45.86.168.218","alias":null,"port":25574,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":13,"ip":"45.86.168.218","alias":null,"port":25575,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":14,"ip":"45.86.168.218","alias":null,"port":25576,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":15,"ip":"45.86.168.218","alias":null,"port":25577,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":16,"ip":"45.86.168.218","alias":null,"port":25578,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":17,"ip":"45.86.168.218","alias":null,"port":25579,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":18,"ip":"45.86.168.218","alias":null,"port":25580,"notes":null,"assigned":false}}],"meta":{"pagination":{"total":17,"count":17,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Nodes - Allocations"],"summary":"Create allocations","operationId":"post-create-allocations","description":"Adds an allocation to the node","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string","description":"IP address for the allocations"},"ports":{"type":"object","description":"Object containing the ports to add"}},"required":["ip","ports"]},"example":{"ip":"10.0.0.1","ports":["25565"]}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/9":{"patch":{"tags":["Application - Users"],"summary":"Update user","operationId":"patch-update-user","description":"Updates the user information","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"password":{"type":"string"}}},"example":{"email":"example10@example.com","username":"exampleuser","first_name":"Example","last_name":"User","language":"en","password":"New Password"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string","nullable":true},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":9,"external_id":null,"uuid":"dac03ece-fd51-4e4b-bd4f-a79e3b2794f9","username":"exampleuser","email":"example10@example.com","first_name":"Example","last_name":"User","language":"en","root_admin":false,"2fa":false,"created_at":"2020-10-29T01:25:12+00:00","updated_at":"2020-10-29T01:28:29+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/client/servers/{server}/settings/rename":{"post":{"tags":["Client - Server - Settings"],"summary":"Rename server","operationId":"post-rename-server","description":"Renames the server\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|------|-----------|--------|-------------------------|-------|\n| name | required | string | New name for the server | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"}}},"example":{"name":"Gaming"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/settings/reinstall":{"post":{"tags":["Client - Server - Settings"],"summary":"Reinstall server","operationId":"post-reinstall-server","description":"Renames the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/application/nodes/1/allocations/18":{"delete":{"tags":["Application - Nodes - Allocations"],"summary":"Delete allocation","operationId":"delete-delete-allocation","description":"Deletes the specified allocation","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/8":{"delete":{"tags":["Application - Users"],"summary":"Delete user","operationId":"delete-delete-user","description":"Deletes the specified user","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/client/servers/{server}/backups/904df120-a66f-4375-a4ae-40eedbeae630":{"get":{"tags":["Client - Server - Backups"],"summary":"Backup details","operationId":"get-backup-details","description":"Retrieves information about the specified backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"ignored_files":{"type":"array","items":{}},"sha256_hash":{"type":"string"},"bytes":{"type":"integer"},"created_at":{"type":"string"},"completed_at":{"type":"string"}}}}},"example":{"object":"backup","attributes":{"uuid":"904df120-a66f-4375-a4ae-40eedbeae630","name":"Quick Backup","ignored_files":[],"sha256_hash":"7c20d6a269b441a9dfd044e3f8ad13d77c09c83af8832d29ad603084a9a63726","bytes":114402862,"created_at":"2020-06-13T05:21:01+01:00","completed_at":"2020-06-13T05:21:04+01:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/backups/904df120-a66f-4375-a4ae-40eedbeae630/download":{"get":{"tags":["Client - Server - Backups"],"summary":"Download backup","operationId":"get-download-backup","description":"Generates a download link for a backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"url":{"type":"string"}}}}},"example":{"object":"signed_url","attributes":{"url":"https://pterodactyl.file.properties:8080/download/backup?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5NTE3MjEyNSwibmJmIjoxNTk1MTcxODI1LCJleHAiOjE1OTUxNzMwMjUsImJhY2t1cF91dWlkIjoiOTA0ZGYxMjAtYTY2Zi00Mzc1LWE0YWUtNDBlZWRiZWFlNjMwIiwic2VydmVyX3V1aWQiOiIxYTdjZTk5Ny0yNTliLTQ1MmUtOGI0ZS1jZWNjNDY0MTQyY2EiLCJ1bmlxdWVfaWQiOiJKN1lIQUFUZzVoYVg4M1VOIn0.0zSozCFyjsYjGjUiPS76wM1WXX09FecNxdSZnj6rNt4"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/backups/63087048-eada-419c-ad72-803c1c949cac":{"delete":{"tags":["Client - Server - Backups"],"summary":"Delete backup","operationId":"delete-delete-backup","description":"Deletes the specified backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/users/60a7aec3-e17d-4aa9-abb3-56d944d204b4":{"get":{"tags":["Client - Server - Users"],"summary":"User details","operationId":"get-user-details","description":"Retrieves information about a specific user","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Users"],"summary":"Update user","operationId":"post-update-user","description":"Updates the specified user\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------------|-----------|--------|------------------------------------|-------|\n| permissions | required | object | Permissions that user is permitted | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"permissions":{"type":"array","items":{"type":"string"}}}},"example":{"permissions":["control.console","control.start"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Server - Users"],"summary":"Delete user","operationId":"delete-delete-user","description":"Removes the specified user from the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/1":{"get":{"tags":["Client - Server - Schedules"],"summary":"Schedule details","operationId":"get-schedule-details","description":"Retrieves specific schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}},"example":{"object":"server_schedule","attributes":{"id":1,"name":"Daily Reboot","cron":{"day_of_week":"*","day_of_month":"*","hour":"0","minute":"0"},"is_active":true,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T00:00:00+01:00","created_at":"2020-06-12T23:50:14+01:00","updated_at":"2020-06-12T23:53:07+01:00","relationships":{"tasks":{"object":"list","data":[{"object":"schedule_task","attributes":{"id":1,"sequence_id":1,"action":"command","payload":"say Rebooting...","time_offset":0,"is_queued":false,"created_at":"2020-06-12T23:50:46+01:00","updated_at":"2020-06-12T23:52:54+01:00"}},{"object":"schedule_task","attributes":{"id":2,"sequence_id":2,"action":"power","payload":"restart","time_offset":5,"is_queued":false,"created_at":"2020-06-12T23:53:07+01:00","updated_at":"2020-06-12T23:53:07+01:00"}}]}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/2":{"post":{"tags":["Client - Server - Schedules"],"summary":"Update schedule","operationId":"post-update-schedule","description":"Updates the specified schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Friendly name for the schedule"},"is_active":{"type":"boolean","description":"Specifies whether the schedule is active"},"minute":{"type":"string","description":"Cron minute syntax"},"hour":{"type":"string","description":"Cron hour syntax"},"day_of_week":{"type":"string","description":"Cron day-of-month syntax"},"day_of_month":{"type":"string","description":"Cron day-of-month syntax"}},"required":["name","minute","hour","day_of_week","day_of_month"]},"example":{"name":"Hourly Hello","minute":"0","hour":"*","day_of_month":"*","day_of_week":"*"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{}}}}}}}}}},"example":{"object":"server_schedule","attributes":{"id":2,"name":"Hourly Hello","cron":{"day_of_week":"*","day_of_month":"*","hour":"*","minute":"0"},"is_active":false,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T16:00:00+01:00","created_at":"2020-06-13T15:05:25+01:00","updated_at":"2020-06-13T15:14:07+01:00","relationships":{"tasks":{"object":"list","data":[]}}}}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Server - Schedules"],"summary":"Delete schedule","operationId":"delete-delete-schedule","description":"Deletes the specified schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/7/tasks":{"post":{"tags":["Client - Server - Schedules"],"summary":"Create task","operationId":"post-create-task","description":"Creates a new task on the specified schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"Type of action to use"},"payload":{"type":"string","description":"Payload to send"},"time_offset":{"type":"string","description":"Offset in seconds"}},"required":["action","payload","time_offset"]},"example":{"action":"command","payload":"say Hello World","time_offset":"0"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"schedule_task","attributes":{"id":6,"sequence_id":1,"action":"command","payload":"say Hello World","time_offset":0,"is_queued":false,"created_at":"2020-10-29T01:09:03+00:00","updated_at":"2020-10-29T01:09:03+00:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/7/tasks/6":{"post":{"tags":["Client - Server - Schedules"],"summary":"Update task","operationId":"post-update-task","description":"Updates the specified task","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"Type of action to use"},"payload":{"type":"string","description":"Payload to send"},"time_offset":{"type":"string","description":"Offset in seconds"}},"required":["action","payload","time_offset"]},"example":{"action":"command","payload":"say Updated Statement!?","time_offset":"0"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"schedule_task","attributes":{"id":6,"sequence_id":1,"action":"command","payload":"say Updated Statement!?","time_offset":0,"is_queued":false,"created_at":"2020-10-29T01:09:03+00:00","updated_at":"2020-10-29T01:10:30+00:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/2/tasks/3":{"delete":{"tags":["Client - Server - Schedules"],"summary":"Delete task","operationId":"delete-delete-task","description":"Deletes the specified task","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/contents":{"get":{"tags":["Client - Server - File Manager"],"summary":"Get file contents","operationId":"get-get-file-contents","description":"Displays the contents of the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|--------------------------------------|\n| file | URL encoded path to the desired file |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"file","in":"query","schema":{"type":"string"},"example":"/paper.yml"}],"responses":{"200":{"description":"# This is the main configuration file for Paper.\n# As you can see, there's tons to configure. Some options may impact gameplay, so use\n# with caution, and make sure you know what each option does before configuring.\n# \n# If you need help with the configuration or have any questions related to Paper,\n# join us in our Discord or IRC channel.\n# \n# Discord: https://paperdiscord.emc.gs\n# IRC: #paper @ irc.spi.gt ( http://irc.spi.gt/iris/?channels=paper )\n# Website: https://papermc.io/ \n# Docs: https://paper.readthedocs.org/ \n\nverbose: false\nconfig-version: 20\nsettings:\n load-permissions-yml-before-plugins: true\n bungee-online-mode: true\n region-file-cache-size: 256\n incoming-packet-spam-threshold: 300\n save-player-data: true\n use-alternative-luck-formula: false\n suggest-player-names-when-null-tab-completions: true\n enable-player-collisions: true\n save-empty-scoreboard-teams: false\n velocity-support:\n enabled: false\n online-mode: false\n secret: ''\n async-chunks:\n enable: true\n load-threads: -1\n watchdog:\n early-warning-every: 5000\n early-warning-delay: 10000\n spam-limiter:\n tab-spam-increment: 1\n tab-spam-limit: 500\n book-size:\n page-max: 2560\n total-multiplier: 0.98\nmessages:\n no-permission: '&cI''m sorry, but you do not have permission to perform this command.\n Please contact the server administrators if you believe that this is in error.'\n kick:\n authentication-servers-down: ''\n connection-throttle: Connection throttled! Please wait before reconnecting.\n flying-player: Flying is not enabled on this server\n flying-vehicle: Flying is not enabled on this server\ntimings:\n enabled: true\n verbose: true\n server-name-privacy: false\n hidden-config-entries:\n - database\n - settings.bungeecord-addresses\n history-interval: 300\n history-length: 3600\n server-name: Unknown Server\nworld-settings:\n default:\n per-player-mob-spawns: false\n optimize-explosions: false\n portal-search-radius: 128\n disable-teleportation-suffocation-check: false\n fixed-chunk-inhabited-time: -1\n use-vanilla-world-scoreboard-name-coloring: false\n remove-corrupt-tile-entities: false\n enable-treasure-maps: true\n treasure-maps-return-already-discovered: false\n experience-merge-max-value: -1\n prevent-moving-into-unloaded-chunks: false\n max-auto-save-chunks-per-tick: 24\n falling-block-height-nerf: 0\n tnt-entity-height-nerf: 0\n filter-nbt-data-from-spawn-eggs-and-related: true\n max-entity-collisions: 8\n disable-creeper-lingering-effect: false\n duplicate-uuid-resolver: saferegen\n duplicate-uuid-saferegen-delete-range: 32\n prevent-tnt-from-moving-in-water: false\n disable-thunder: false\n skeleton-horse-thunder-spawn-chance: 0.01\n disable-ice-and-snow: false\n count-all-mobs-for-spawning: false\n keep-spawn-loaded-range: 10\n keep-spawn-loaded: true\n auto-save-interval: -1\n armor-stands-do-collision-entity-lookups: true\n non-player-arrow-despawn-rate: -1\n creative-arrow-despawn-rate: -1\n nether-ceiling-void-damage-height: 0\n grass-spread-tick-rate: 1\n water-over-lava-flow-speed: 5\n bed-search-radius: 1\n fix-zero-tick-instant-grow-farms: true\n use-faster-eigencraft-redstone: false\n allow-non-player-entities-on-scoreboards: false\n disable-explosion-knockback: false\n container-update-tick-rate: 1\n parrots-are-unaffected-by-player-movement: false\n armor-stands-tick: true\n spawner-nerfed-mobs-should-jump: false\n entities-target-with-follow-range: false\n allow-leashing-undead-horse: false\n baby-zombie-movement-modifier: 0.5\n mob-spawner-tick-rate: 1\n all-chunks-are-slime-chunks: false\n game-mechanics:\n scan-for-legacy-ender-dragon: true\n disable-pillager-patrols: false\n disable-relative-projectile-velocity: false\n disable-chest-cat-detection: false\n shield-blocking-delay: 5\n disable-end-credits: false\n disable-player-crits: false\n disable-sprint-interruption-on-attack: false\n disable-unloaded-chunk-enderpearl-exploit: true\n max-growth-height:\n cactus: 3\n reeds: 3\n fishing-time-range:\n MinimumTicks: 100\n MaximumTicks: 600\n despawn-ranges:\n soft: 32\n hard: 128\n lightning-strike-distance-limit:\n sound: -1\n impact-sound: -1\n flash: -1\n frosted-ice:\n enabled: true\n delay:\n min: 20\n max: 40\n lootables:\n auto-replenish: false\n restrict-player-reloot: true\n reset-seed-on-fill: true\n max-refills: -1\n refresh-min: 12h\n refresh-max: 2d\n alt-item-despawn-rate:\n enabled: false\n items:\n COBBLESTONE: 300\n hopper:\n cooldown-when-full: true\n disable-move-event: false\n anti-xray:\n enabled: false\n engine-mode: 1\n chunk-edge-mode: 2\n max-chunk-section-index: 3\n update-radius: 2\n hidden-blocks:\n - gold_ore\n - iron_ore\n - coal_ore\n - lapis_ore\n - mossy_cobblestone\n - obsidian\n - chest\n - diamond_ore\n - redstone_ore\n - clay\n - emerald_ore\n - ender_chest\n replacement-blocks:\n - stone\n - oak_planks\n generator-settings:\n flat-bedrock: false\n squid-spawn-height:\n maximum: 0.0"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/download":{"get":{"tags":["Client - Server - File Manager"],"summary":"Download file","operationId":"get-download-file","description":"Generates a one-time link to download the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|------------------------------|\n| file | URL encoded path to the desired file |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"file","in":"query","schema":{"type":"string"},"example":"/eula.txt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"url":{"type":"string"}}}}},"example":{"object":"signed_url","attributes":{"url":"https://pterodactyl.file.properties:8080/download/file?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5NDY0ODEwMCwibmJmIjoxNTk0NjQ3ODAwLCJleHAiOjE1OTQ2NDkwMDAsImZpbGVfcGF0aCI6IlwvZXVsYS50eHQiLCJzZXJ2ZXJfdXVpZCI6IjFhN2NlOTk3LTI1OWItNDUyZS04YjRlLWNlY2M0NjQxNDJjYSIsInVuaXF1ZV9pZCI6IlNvWUdIamNaNmhKUVlieHUifQ.h4eBmxDXf-4GAwVuAWZFU5QTqd62jw7HTre4aKQGpvw"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/rename":{"put":{"tags":["Client - Server - File Manager"],"summary":"Rename file","operationId":"put-rename-file","description":"Renames the specified file(s) or folder(s)","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}}}}}},"example":{"root":"/","files":[{"from":"data","to":"abc"}]}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/copy":{"post":{"tags":["Client - Server - File Manager"],"summary":"Copy file","operationId":"post-copy-file","description":"Copies the specified file","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"string"}}},"example":{"location":"/server.properties"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/write":{"post":{"tags":["Client - Server - File Manager"],"summary":"Write file","operationId":"post-write-file","description":"Writes data to the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|--------------------------------------|\n| file | URL encoded path to the desired file |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"file","in":"query","schema":{"type":"string"},"example":"/eula.txt"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/compress":{"post":{"tags":["Client - Server - File Manager"],"summary":"Compress file","operationId":"post-compress-file","description":"Compresses the specified file","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}}},"example":{"root":"/","files":["abc"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"mode":{"type":"string"},"size":{"type":"integer"},"is_file":{"type":"boolean"},"is_symlink":{"type":"boolean"},"is_editable":{"type":"boolean"},"mimetype":{"type":"string"},"created_at":{"type":"string"},"modified_at":{"type":"string"}}}}},"example":{"object":"file_object","attributes":{"name":"archive-2020-08-23T220805Z.tar.gz","mode":"-rw-------","size":0,"is_file":true,"is_symlink":false,"is_editable":false,"mimetype":"application/tar+gzip","created_at":"2020-08-23T22:08:05+00:00","modified_at":"2020-08-23T22:08:05+00:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/decompress":{"post":{"tags":["Client - Server - File Manager"],"summary":"Decompress file","operationId":"post-decompress-file","description":"Decompresses the selected file","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"file":{"type":"string"}}},"example":{"root":"/","file":"archive-2020-08-23T220655Z.tar.gz"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/delete":{"post":{"tags":["Client - Server - File Manager"],"summary":"Delete file","operationId":"post-delete-file","description":"Deletes the specified file(s) or folder(s)","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}}},"example":{"root":"/maps","files":["worlds"]}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/create-folder":{"post":{"tags":["Client - Server - File Manager"],"summary":"Create folder","operationId":"post-create-folder","description":"Creates the specified folder in the specified directory","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"name":{"type":"string"}}},"example":{"root":"/maps","name":"worlds"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/upload":{"get":{"tags":["Client - Server - File Manager"],"summary":"Upload file","operationId":"get-upload-file","description":"Returns a signed URL used to upload files to the server using POST","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"url":{"type":"string"}}}}},"example":{"object":"signed_url","attributes":{"url":"https://pterodactyl.file.properties:8080/upload/file?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5ODIyMTMyMSwibmJmIjoxNTk4MjIxMDIxLCJleHAiOjE1OTgyMjIyMjEsInNlcnZlcl91dWlkIjoiMWE3Y2U5OTctMjU5Yi00NTJlLThiNGUtY2VjYzQ2NDE0MmNhIiwidW5pcXVlX2lkIjoiNmM2OFdkSkJTVzg0RlBsUiJ9.GJ5681K9ehhPCcXevyxw-RO1jhv4UWg5T8b_P7r6s8Q"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/databases/bEY4yAD5/rotate-password":{"post":{"tags":["Client - Server - Databases"],"summary":"Rotate password","operationId":"post-rotate-password","description":"Changes the password of a specified database","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"object","properties":{"address":{"type":"string"},"port":{"type":"integer"}}},"name":{"type":"string"},"username":{"type":"string"},"connections_from":{"type":"string"},"max_connections":{"type":"integer"},"relationships":{"type":"object","properties":{"password":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"password":{"type":"string"}}}}}}}}}}},"example":{"object":"server_database","attributes":{"id":"y9YVxO4V","host":{"address":"127.0.0.1","port":3306},"name":"s5_punishments","username":"u5_aeZqbGdCM9","connections_from":"%","max_connections":0,"relationships":{"password":{"object":"database_password","attributes":{"password":"vnFKXlJ.p77!EiGR+Kd3muB."}}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/databases/y9YVxO4V":{"delete":{"tags":["Client - Server - Databases"],"summary":"Delete database","operationId":"delete-delete-database","description":"Deletes the specified database","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/account":{"get":{"tags":["Client - Account"],"summary":"Account details","operationId":"get-account-details","description":"Retrieves information about the account","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"admin":{"type":"boolean"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":1,"admin":true,"username":"admin","email":"example@example.com","first_name":"Admin","last_name":"User","language":"en"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/account/two-factor":{"get":{"tags":["Client - Account"],"summary":"2FA details","operationId":"get-2fa-details","description":"Generates a TOTP QR code image to allow the setup of 2FA","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"image_url_data":{"type":"string"}}}}},"example":{"data":{"image_url_data":"otpauth://totp/Pterodactyl:example%40example.com?secret=LGYOWJEGVRPPGPWATP5ZHOYC7DHAYQ6S&issuer=Pterodactyl"}}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Account"],"summary":"Enable 2FA","operationId":"post-enable-2fa","description":"Enables TOTP 2FA using the QR code generated by the GET request\n\nUses code generated from `GET /account/two-factor`","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"TOTP Code"}},"required":["code"]},"example":{"code":"505134"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"recovery_tokens","attributes":{"tokens":["MpBjHH8O08","D9H0hktN6L","ho8KiUpeV8","06vZEfrYPf","nFRySZ2ryh","7K1cTrhGoV","n6xpwwlJfv","hAmyCsZxYO","5FiMKFyNpH","IViSFoRFvW"]}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string"},"detail":{"type":"string"}}}}}},"example":{"errors":[{"code":"TwoFactorAuthenticationTokenInvalid","status":"400","detail":"The token provided is not valid."}]}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Account"],"summary":"Disable 2FA","operationId":"delete-disable-2fa","description":"Disables TOTP 2FA on the account","responses":{"204":{"description":"No Content"},"400":{"description":"// Incorrect password\n{\n \"errors\": [\n {\n \"code\": \"BadRequestHttpException\",\n \"status\": \"400\",\n \"detail\": \"An error was encountered while processing this request.\"\n }\n ]\n}"}},"security":[{"ClientToken":[]}]}},"/api/client/account/email":{"put":{"tags":["Client - Account"],"summary":"Update email","operationId":"put-update-email","description":"Updates the email address of the account","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"New email"},"password":{"type":"string","description":"Existing password"}},"required":["email","password"]},"example":{"email":"example@xample.com","password":"Password"}}}},"responses":{"201":{"description":"Successful"},"400":{"description":"// Invalid password\n{\n \"errors\": [\n {\n \"code\": \"InvalidPasswordProvidedException\",\n \"status\": \"400\",\n \"detail\": \"The password provided was invalid for this account.\"\n }\n ]\n}"}},"security":[{"ClientToken":[]}]}},"/api/client/account/password":{"put":{"tags":["Client - Account"],"summary":"Update password","operationId":"put-update-password","description":"Updates the password of the account","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_password":{"type":"string","description":"Existing password"},"password":{"type":"string","description":"New password"},"password_confirmation":{"type":"string","description":"Confirm new password"}},"required":["current_password","password","password_confirmation"]},"example":{"current_password":"Password","password":"password","password_confirmation":"password"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/account/api-keys":{"get":{"tags":["Client - Account"],"summary":"List API keys","operationId":"get-list-api-keys","description":"Retries a list of API keys","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"identifier":{"type":"string"},"description":{"type":"string"},"allowed_ips":{"type":"array","items":{}},"last_used_at":{"type":"string"},"created_at":{"type":"string"}}}}}}}},"example":{"object":"list","data":[{"object":"api_key","attributes":{"identifier":"wwQ5DJ6X1XaFznQS","description":"API Docs","allowed_ips":[],"last_used_at":"2020-06-03T15:04:47+01:00","created_at":"2020-05-18T00:12:43+01:00"}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Account"],"summary":"Create API key","operationId":"post-create-api-key","description":"Generates a new API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","description":"Note for the API key"}},"required":["description"]},"example":{"description":"Restricted IPs","allowed_ips":["127.0.0.1","192.168.0.1"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"identifier":{"type":"string"},"description":{"type":"string"},"allowed_ips":{"type":"array","items":{"type":"string"}},"last_used_at":{"type":"string","nullable":true},"created_at":{"type":"string"}}},"meta":{"type":"object","properties":{"secret_token":{"type":"string"}}}}},"example":{"object":"api_key","attributes":{"identifier":"yjAZbHMyKrv9YRZ0","description":"Restricted IPs","allowed_ips":["127.0.0.1","192.168.0.1"],"last_used_at":null,"created_at":"2020-08-17T04:44:42+01:00"},"meta":{"secret_token":"wiHiMbmgjLOkA2fPzRD6KdMe7Q9Cqaka"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/account/api-keys/NWKMYMT2Mrav0Iq2":{"delete":{"tags":["Client - Account"],"summary":"Delete API key","operationId":"delete-delete-api-key","description":"Deletes the specified API key","responses":{"204":{"description":"No Content"},"404":{"description":"// Non existing API key\n{\n \"errors\": [\n {\n \"code\": \"NotFoundHttpException\",\n \"status\": \"404\",\n \"detail\": \"An error was encountered while processing this request.\"\n }\n ]\n}"}},"security":[{"ClientToken":[]}]}}},"components":{"securitySchemes":{"ClientToken":{"type":"http","scheme":"bearer","description":"Client API key (generated at /account/api)"},"ApplicationToken":{"type":"http","scheme":"bearer","description":"Application API key (generated at /admin/api)"}}}} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 23bc62485..e8028c03f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,13 +10,15 @@ "hasInstallScript": true, "dependencies": { "@orama/orama": "^3.1.17", - "fumadocs-core": "16.2.5", + "fumadocs-core": "^16.6.4", "fumadocs-mdx": "14.1.1", - "fumadocs-ui": "16.2.5", + "fumadocs-openapi": "^10.3.7", + "fumadocs-ui": "^16.6.4", "lucide-react": "^0.556.0", "next": "16.0.10", "react": "^19.2.1", - "react-dom": "^19.2.1" + "react-dom": "^19.2.1", + "shiki": "^3.22.0" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.17", @@ -473,12 +475,80 @@ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==" }, + "node_modules/@formatjs/fast-memoize": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.0.tgz", + "integrity": "sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", - "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.1.tgz", + "integrity": "sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==", + "license": "MIT", "dependencies": { - "tslib": "^2.8.0" + "@formatjs/fast-memoize": "3.1.0", + "tslib": "^2.8.1" + } + }, + "node_modules/@fumadocs/tailwind": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@fumadocs/tailwind/-/tailwind-0.0.2.tgz", + "integrity": "sha512-4JrTJLRDKKdFF3gy07rAsakqGr17/0cJE042B1icCmMRrPA4a38cjR1qd4EqUiDJ+fzM0wgVN9QYiqds3HB2rg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.1" + }, + "peerDependencies": { + "tailwindcss": "^4.0.0" + }, + "peerDependenciesMeta": { + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@fumari/json-schema-to-typescript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fumari/json-schema-to-typescript/-/json-schema-to-typescript-2.0.0.tgz", + "integrity": "sha512-X0Wm3QJLj1Rtb1nY2exM6QwMXb9LGyIKLf35+n6xyltDDBLMECOC4R/zPaw3RwgFVmvRLSmLCd+ht4sKabgmNw==", + "license": "MIT", + "dependencies": { + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@apidevtools/json-schema-ref-parser": "14.x.x", + "prettier": "3.x.x" + }, + "peerDependenciesMeta": { + "@apidevtools/json-schema-ref-parser": { + "optional": true + }, + "prettier": { + "optional": true + } + } + }, + "node_modules/@fumari/stf": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@fumari/stf/-/stf-0.0.3.tgz", + "integrity": "sha512-EDgfqz6oWJLPfmrekl4sCssypPmQ1dV8J7RqWR9Wbzj2mekUIeAqljGkh1EgykZp8Yve9Ehnmn3gjHggFgQU2A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^19.2.0", + "react-dom": "^19.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@img/colour": { @@ -1129,9 +1199,10 @@ } }, "node_modules/@orama/orama": { - "version": "3.1.17", - "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.17.tgz", - "integrity": "sha512-APwpZ+FTGMryo4QEeD6ti+Ei8suBkvxe8PeWdUcQHVfJDpjpt4c1dKojjNswcBmdeWSiiTYcnkKKH+yuo6727g==", + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.18.tgz", + "integrity": "sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==", + "license": "Apache-2.0", "engines": { "node": ">= 20.0.0" } @@ -1708,6 +1779,67 @@ } } }, + "node_modules/@radix-ui/react-select": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-slot": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", @@ -1909,78 +2041,176 @@ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==" }, + "node_modules/@scalar/helpers": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.15.tgz", + "integrity": "sha512-hMHXejGFVOS4HwCo7C2qddChuvMJs3sEOALo7gNOvwLS4dGLrW8flbSglDki4ttyremlKQstP5WJuPxmHQU3sA==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@scalar/json-magic": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.11.4.tgz", + "integrity": "sha512-F40E18vp6GIcJU5kV9UOKGhIrzN2IYdEMCcG3vw3INvvkXqJGqVPnCjcnSWFk27MByaD5Dzjlc3TvkgTiqNGYw==", + "license": "MIT", + "dependencies": { + "@scalar/helpers": "0.2.15", + "pathe": "^2.0.3", + "yaml": "^2.8.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@scalar/openapi-parser": { + "version": "0.24.10", + "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.24.10.tgz", + "integrity": "sha512-E9K8OYD7XKHsvTyLTSdILKHbm4Q3n/MA3EGdDTEBLJHSJd1vLOwiJzrp3+h+xiqFxlX7vlecInZvFy/3c1fqPg==", + "license": "MIT", + "dependencies": { + "@scalar/helpers": "0.2.12", + "@scalar/json-magic": "0.11.1", + "@scalar/openapi-types": "0.5.3", + "@scalar/openapi-upgrader": "0.1.8", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "ajv-formats": "^3.0.1", + "jsonpointer": "^5.0.1", + "leven": "^4.0.0", + "yaml": "^2.8.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@scalar/openapi-parser/node_modules/@scalar/helpers": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.12.tgz", + "integrity": "sha512-Ig/H1Je8nqcDiY+YwFIpATxF2ko7zKrjIZFWK2gGeNTYK4Np9XnqDHg56jM3Xru439Eh4qHq9P/lX7Se5nnxFA==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@scalar/openapi-parser/node_modules/@scalar/json-magic": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.11.1.tgz", + "integrity": "sha512-JsugkVpZ9SmKW6fDhamcmkttc9YOPGgb9Azbwc7hXTlZgG6YeYXx8qFvYr5eJE4cfzCqalodS/9w7moZnVG3cw==", + "license": "MIT", + "dependencies": { + "@scalar/helpers": "0.2.12", + "yaml": "^2.8.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@scalar/openapi-types": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@scalar/openapi-types/-/openapi-types-0.5.3.tgz", + "integrity": "sha512-m4n/Su3K01d15dmdWO1LlqecdSPKuNjuokrJLdiQ485kW/hRHbXW1QP6tJL75myhw/XhX5YhYAR+jrwnGjXiMw==", + "license": "MIT", + "dependencies": { + "zod": "^4.1.11" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@scalar/openapi-upgrader": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@scalar/openapi-upgrader/-/openapi-upgrader-0.1.8.tgz", + "integrity": "sha512-2xuYLLs0fBadLIk4I1ObjMiCnOyLPEMPf24A1HtHQvhKGDnGlvT63F2rU2Xw8lxCjgHnzveMPnOJEbwIy64RCg==", + "license": "MIT", + "dependencies": { + "@scalar/openapi-types": "0.5.3" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/@shikijs/core": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.20.0.tgz", - "integrity": "sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz", + "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.20.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "node_modules/@shikijs/engine-javascript": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.20.0.tgz", - "integrity": "sha512-OFx8fHAZuk7I42Z9YAdZ95To6jDePQ9Rnfbw9uSRTSbBhYBp1kEOKv/3jOimcj3VRUKusDYM6DswLauwfhboLg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz", + "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.20.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.20.0.tgz", - "integrity": "sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", + "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.20.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.20.0.tgz", - "integrity": "sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", + "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.20.0" + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/rehype": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.20.0.tgz", - "integrity": "sha512-/sqob3V/lJK0m2mZ64nkcWPN88im0D9atkI3S3PUBvtJZTHnJXVwZhHQFRDyObgEIa37IpHYHR3CuFtXB5bT2g==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.22.0.tgz", + "integrity": "sha512-69b2VPc6XBy/VmAJlpBU5By+bJSBdE2nvgRCZXav7zujbrjXuT0F60DIrjKuutjPqNufuizE+E8tIZr2Yn8Z+g==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.20.0", + "@shikijs/types": "3.22.0", "@types/hast": "^3.0.4", "hast-util-to-string": "^3.0.1", - "shiki": "3.20.0", + "shiki": "3.22.0", "unified": "^11.0.5", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.1.0" } }, "node_modules/@shikijs/themes": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.20.0.tgz", - "integrity": "sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", + "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", + "license": "MIT", "dependencies": { - "@shikijs/types": "3.20.0" + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/transformers": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.20.0.tgz", - "integrity": "sha512-PrHHMRr3Q5W1qB/42kJW6laqFyWdhrPF2hNR9qjOm1xcSiAO3hAHo7HaVyHE6pMyevmy3i51O8kuGGXC78uK3g==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.22.0.tgz", + "integrity": "sha512-E7eRV7mwDBjueLF6852n2oYeJYxBq3NSsDk+uyruYAXONv4U8holGmIrT+mPRJQ1J1SNOH6L8G19KRzmBawrFw==", + "license": "MIT", "dependencies": { - "@shikijs/core": "3.20.0", - "@shikijs/types": "3.20.0" + "@shikijs/core": "3.22.0", + "@shikijs/types": "3.22.0" } }, "node_modules/@shikijs/types": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.20.0.tgz", - "integrity": "sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", + "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", + "license": "MIT", "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" @@ -1989,7 +2219,8 @@ "node_modules/@shikijs/vscode-textmate": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==" + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" }, "node_modules/@standard-schema/spec": { "version": "1.1.0", @@ -2348,6 +2579,12 @@ "@types/unist": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", @@ -2419,6 +2656,53 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2581,6 +2865,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -2669,6 +2954,18 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/esast-util-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", @@ -2850,6 +3147,46 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-parser": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.7.tgz", + "integrity": "sha512-JzVLro9NQv92pOM/jTCR6mHlJh2FGwtomH8ZQjhFj/R29P2Fnj38OgPJVtcvYw6SuKClhgYuwUZf5b3rd8u2mA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^2.1.2" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -2866,21 +3203,56 @@ } } }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "license": "MIT" + }, + "node_modules/framer-motion": { + "version": "12.34.3", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.34.3.tgz", + "integrity": "sha512-v81ecyZKYO/DfpTwHivqkxSUBzvceOpoI+wLfgCgoUIKxlFKEXdg0oR9imxwXumT4SFy8vRk9xzJ5l3/Du/55Q==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.34.3", + "motion-utils": "^12.29.2", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fumadocs-core": { - "version": "16.2.5", - "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-16.2.5.tgz", - "integrity": "sha512-u07n2oQJ2XaEQpWOdCyJnICYEasQiZhTFNf40C+Q2AJ3kKFeiz42mHccea0t/sjfBbO9pEDHyvZVHhSf/Cm3AA==", + "version": "16.6.4", + "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-16.6.4.tgz", + "integrity": "sha512-/8nY7zGJHBCi8hk/WI3oGVNijvUdsiUVE6bZbq7hw6CgleRndyXQGnumrBJO8kPrefFzagHNBrzzLEuJAW15Og==", "license": "MIT", "dependencies": { - "@formatjs/intl-localematcher": "^0.6.2", - "@orama/orama": "^3.1.16", - "@shikijs/rehype": "^3.20.0", - "@shikijs/transformers": "^3.20.0", + "@formatjs/intl-localematcher": "^0.8.1", + "@orama/orama": "^3.1.18", + "@shikijs/rehype": "^3.22.0", + "@shikijs/transformers": "^3.22.0", "estree-util-value-to-estree": "^3.5.0", "github-slugger": "^2.0.0", "hast-util-to-estree": "^3.1.3", "hast-util-to-jsx-runtime": "^2.3.6", "image-size": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-markdown": "^2.1.2", "negotiator": "^1.0.0", "npm-to-yarn": "^3.0.1", "path-to-regexp": "^8.3.0", @@ -2888,13 +3260,21 @@ "remark-gfm": "^4.0.1", "remark-rehype": "^11.1.2", "scroll-into-view-if-needed": "^3.1.0", - "shiki": "^3.20.0", - "unist-util-visit": "^5.0.0" + "shiki": "^3.22.0", + "tinyglobby": "^0.2.15", + "unified": "^11.0.5", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" }, "peerDependencies": { - "@mixedbread/sdk": "^0.19.0", + "@mdx-js/mdx": "*", + "@mixedbread/sdk": "^0.46.0", "@orama/core": "1.x.x", + "@oramacloud/client": "2.x.x", "@tanstack/react-router": "1.x.x", + "@types/estree-jsx": "*", + "@types/hast": "*", + "@types/mdast": "*", "@types/react": "*", "algoliasearch": "5.x.x", "lucide-react": "*", @@ -2902,19 +3282,34 @@ "react": "^19.2.0", "react-dom": "^19.2.0", "react-router": "7.x.x", - "waku": "^0.26.0 || ^0.27.0", - "zod": "*" + "waku": "^0.26.0 || ^0.27.0 || ^1.0.0", + "zod": "4.x.x" }, "peerDependenciesMeta": { + "@mdx-js/mdx": { + "optional": true + }, "@mixedbread/sdk": { "optional": true }, "@orama/core": { "optional": true }, + "@oramacloud/client": { + "optional": true + }, "@tanstack/react-router": { "optional": true }, + "@types/estree-jsx": { + "optional": true + }, + "@types/hast": { + "optional": true + }, + "@types/mdast": { + "optional": true + }, "@types/react": { "optional": true }, @@ -2991,10 +3386,72 @@ } } }, + "node_modules/fumadocs-openapi": { + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/fumadocs-openapi/-/fumadocs-openapi-10.3.7.tgz", + "integrity": "sha512-nD3xoQy9Ra2GlkKKzRZNUvJexPB3XxSJjP7vAyN5gXKvesyLKIlkC7N2XOy617p+2fZbgBPsdoId1sfIQL1h6g==", + "license": "MIT", + "dependencies": { + "@fumari/json-schema-to-typescript": "^2.0.0", + "@fumari/stf": "^0.0.3", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-slot": "^1.2.4", + "@scalar/json-magic": "^0.11.1", + "@scalar/openapi-parser": "0.24.10", + "@scalar/openapi-upgrader": "^0.1.8", + "ajv": "^8.18.0", + "class-variance-authority": "^0.7.1", + "github-slugger": "^2.0.0", + "hast-util-to-jsx-runtime": "^2.3.6", + "js-yaml": "^4.1.1", + "lucide-react": "^0.570.0", + "next-themes": "^0.4.6", + "openapi-sampler": "^1.7.0", + "react-hook-form": "^7.71.1", + "remark": "^15.0.1", + "remark-rehype": "^11.1.2", + "tailwind-merge": "^3.4.1", + "xml-js": "^1.6.11" + }, + "peerDependencies": { + "@scalar/api-client-react": "*", + "@types/react": "*", + "fumadocs-core": "^16.5.0", + "fumadocs-ui": "^16.5.0", + "json-schema-typed": "*", + "react": "^19.2.0", + "react-dom": "^19.2.0" + }, + "peerDependenciesMeta": { + "@scalar/api-client-react": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "json-schema-typed": { + "optional": true + } + } + }, + "node_modules/fumadocs-openapi/node_modules/lucide-react": { + "version": "0.570.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.570.0.tgz", + "integrity": "sha512-qGnQ8bEPJLMseKo7kI6jK6GW6Y2Yl4PpqoWbroNsobZ8+tZR4SUuO4EXK3oWCdZr48SZ7PnaulTkvzkKvG/Iqg==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/fumadocs-ui": { - "version": "16.2.5", - "integrity": "sha512-pn16BD2CTk5vfzkxkRzSCzXOxn6ldon5StrUoxV4v6TkizkV5R6AfEyfX0wknVuWRu/2wgec9dLh3qu4R82zTQ==", + "version": "16.6.4", + "resolved": "https://registry.npmjs.org/fumadocs-ui/-/fumadocs-ui-16.6.4.tgz", + "integrity": "sha512-DY/JKtupsL8HheBXqOarwOhTrPf8g1ms5oynlZcq5izNwQmvb1zAZr/GNB4FKaBlaZqNujQc30lk9yDis8IMlQ==", + "license": "MIT", "dependencies": { + "@fumadocs/tailwind": "0.0.2", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", @@ -3006,20 +3463,22 @@ "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-tabs": "^1.1.13", "class-variance-authority": "^0.7.1", - "fumadocs-core": "16.2.5", - "lodash.merge": "^4.6.2", + "lucide-react": "^0.570.0", + "motion": "^12.34.0", "next-themes": "^0.4.6", - "postcss-selector-parser": "^7.1.1", "react-medium-image-zoom": "^5.4.0", + "react-remove-scroll": "^2.7.2", + "rehype-raw": "^7.0.0", "scroll-into-view-if-needed": "^3.1.0", - "tailwind-merge": "^3.4.0" + "tailwind-merge": "^3.4.1", + "unist-util-visit": "^5.1.0" }, "peerDependencies": { "@types/react": "*", + "fumadocs-core": "16.6.4", "next": "16.x.x", "react": "^19.2.0", - "react-dom": "^19.2.0", - "tailwindcss": "^4.0.0" + "react-dom": "^19.2.0" }, "peerDependenciesMeta": { "@types/react": { @@ -3027,12 +3486,18 @@ }, "next": { "optional": true - }, - "tailwindcss": { - "optional": true } } }, + "node_modules/fumadocs-ui/node_modules/lucide-react": { + "version": "0.570.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.570.0.tgz", + "integrity": "sha512-qGnQ8bEPJLMseKo7kI6jK6GW6Y2Yl4PpqoWbroNsobZ8+tZR4SUuO4EXK3oWCdZr48SZ7PnaulTkvzkKvG/Iqg==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/get-nonce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", @@ -3052,6 +3517,64 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-to-estree": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", @@ -3083,6 +3606,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -3127,10 +3651,30 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-to-string": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -3151,10 +3695,28 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/html-void-elements": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -3247,6 +3809,42 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "license": "MIT", + "dependencies": { + "foreach": "^2.0.4" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-4.1.0.tgz", + "integrity": "sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lightningcss": { "version": "1.30.2", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", @@ -3496,11 +4094,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -4499,6 +5092,47 @@ } ] }, + "node_modules/motion": { + "version": "12.34.3", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.34.3.tgz", + "integrity": "sha512-xZIkBGO7v/Uvm+EyaqYd+9IpXu0sZqLywVlGdCFrrMiaO9JI4Kx51mO9KlHSWwll+gZUVY5OJsWgYI5FywJ/tw==", + "license": "MIT", + "dependencies": { + "framer-motion": "^12.34.3", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion-dom": { + "version": "12.34.3", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.34.3.tgz", + "integrity": "sha512-sYgFe+pR9aIM7o4fhs2aXtOI+oqlUd33N9Yoxcgo1Fv7M20sRkHtCmzE/VRNIcq7uNJ+qio+Xubt1FXH3pQ+eQ==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.29.2" + } + }, + "node_modules/motion-utils": { + "version": "12.29.2", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.29.2.tgz", + "integrity": "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4629,18 +5263,31 @@ "node_modules/oniguruma-parser": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", - "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==" + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT" }, "node_modules/oniguruma-to-es": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", + "license": "MIT", "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, + "node_modules/openapi-sampler": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.7.0.tgz", + "integrity": "sha512-fWq32F5vqGpgRJYIarC/9Y1wC9tKnRDcCOjsDJ7MIcSv2HsE7kNifcXIZ8FVtNStBUWxYrEk/MKqVF0SwZ5gog==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.7", + "fast-xml-parser": "^5.3.4", + "json-pointer": "0.6.2" + } + }, "node_modules/parse-entities": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", @@ -4664,6 +5311,18 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-to-regexp": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", @@ -4673,6 +5332,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4721,6 +5386,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -4755,6 +5421,22 @@ "react": "^19.2.3" } }, + "node_modules/react-hook-form": { + "version": "7.71.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.71.1.tgz", + "integrity": "sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, "node_modules/react-medium-image-zoom": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.4.0.tgz", @@ -4915,6 +5597,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } @@ -4923,6 +5606,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } @@ -4930,7 +5614,23 @@ "node_modules/regex-utilities": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==" + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/rehype-recma": { "version": "1.0.0", @@ -5036,6 +5736,24 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -5106,16 +5824,17 @@ } }, "node_modules/shiki": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.20.0.tgz", - "integrity": "sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==", - "dependencies": { - "@shikijs/core": "3.20.0", - "@shikijs/engine-javascript": "3.20.0", - "@shikijs/engine-oniguruma": "3.20.0", - "@shikijs/langs": "3.20.0", - "@shikijs/themes": "3.20.0", - "@shikijs/types": "3.20.0", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz", + "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.22.0", + "@shikijs/engine-javascript": "3.22.0", + "@shikijs/engine-oniguruma": "3.22.0", + "@shikijs/langs": "3.22.0", + "@shikijs/themes": "3.22.0", + "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } @@ -5158,6 +5877,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/strnum": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", + "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/style-to-js": { "version": "1.1.21", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", @@ -5197,9 +5928,10 @@ } }, "node_modules/tailwind-merge": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", - "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz", + "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" @@ -5368,9 +6100,10 @@ } }, "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -5438,7 +6171,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/vfile": { "version": "6.0.3", @@ -5453,6 +6187,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vfile-message": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", @@ -5466,6 +6214,43 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/zod": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz", diff --git a/package.json b/package.json index 55872e600..1bea9039d 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,15 @@ }, "dependencies": { "@orama/orama": "^3.1.17", - "fumadocs-core": "16.2.5", + "fumadocs-core": "^16.6.4", "fumadocs-mdx": "14.1.1", - "fumadocs-ui": "16.2.5", + "fumadocs-openapi": "^10.3.7", + "fumadocs-ui": "^16.6.4", "lucide-react": "^0.556.0", "next": "16.0.10", "react": "^19.2.1", - "react-dom": "^19.2.1" + "react-dom": "^19.2.1", + "shiki": "^3.22.0" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.17", From 66f3e678054e6c5e86ab02a03f97989dce3a96b2 Mon Sep 17 00:00:00 2001 From: Red-Banana-Official Date: Sun, 22 Feb 2026 15:55:56 +0100 Subject: [PATCH 7/7] Overhaul API spec: clean up paths, add missing endpoints, general cleanup --- .../delete-delete-location.mdx | 2 +- .../get-location-details.mdx | 2 +- .../docs/api/application-locations/meta.json | 10 - .../patch-update-location.mdx | 2 +- .../get-egg-details.mdx | 2 +- .../get-list-eggs.mdx | 2 +- .../meta.json | 7 - .../application-nests/get-nest-details.mdx | 2 +- content/docs/api/application-nests/meta.json | 7 - .../delete-delete-allocation.mdx | 2 +- .../get-list-allocations.mdx | 2 +- .../application-nodes-allocations/meta.json | 8 - .../post-create-allocations.mdx | 2 +- .../application-nodes/delete-delete-node.mdx | 2 +- .../get-deployable-nodes.mdx | 19 + .../get-node-configuration.mdx | 2 +- .../application-nodes/get-node-details.mdx | 2 +- content/docs/api/application-nodes/meta.json | 11 - .../application-nodes/patch-update-node.mdx | 2 +- .../delete-delete-database.mdx | 2 +- .../get-database-details.mdx | 2 +- .../meta.json | 10 - .../post-reset-password.mdx | 2 +- .../delete-delete-server.mdx | 2 +- .../delete-force-delete-server.mdx | 2 +- .../get-server-details.mdx | 2 +- .../docs/api/application-servers/meta.json | 16 - .../application-users/delete-delete-user.mdx | 2 +- .../application-users/get-user-details.mdx | 2 +- content/docs/api/application-users/meta.json | 10 - .../application-users/patch-update-user.mdx | 2 +- .../client-account/delete-delete-api-key.mdx | 2 +- .../client-account/get-account-activity.mdx | 17 + .../api/client-account/get-list-ssh-keys.mdx | 17 + content/docs/api/client-account/meta.json | 14 - .../client-account/post-create-ssh-key.mdx | 19 + ...e-disable-2fa.mdx => post-disable-2fa.mdx} | 8 +- .../client-account/post-remove-ssh-key.mdx | 17 + content/docs/api/client-general/meta.json | 7 - .../delete-delete-backup.mdx | 2 +- .../get-backup-details.mdx | 2 +- .../get-download-backup.mdx | 2 +- .../docs/api/client-server-backups/meta.json | 10 - .../post-restore-backup.mdx | 20 + .../post-toggle-backup-lock.mdx | 19 + .../delete-delete-database.mdx | 2 +- .../api/client-server-databases/meta.json | 9 - .../post-rotate-password.mdx | 2 +- .../api/client-server-file-manager/meta.json | 16 - .../post-chmod-file.mdx | 17 + .../post-pull-file.mdx | 17 + .../delete-unassign-allocation.mdx | 2 +- .../docs/api/client-server-network/meta.json | 10 - .../post-set-allocation-note.mdx | 2 +- .../post-set-primary-allocation.mdx | 2 +- .../delete-delete-schedule.mdx | 2 +- .../delete-delete-task.mdx | 2 +- .../get-schedule-details.mdx | 2 +- .../api/client-server-schedules/meta.json | 13 - .../post-create-task.mdx | 2 +- .../post-execute-schedule.mdx | 17 + .../post-update-schedule.mdx | 2 +- .../post-update-task.mdx | 2 +- .../docs/api/client-server-settings/meta.json | 7 - .../put-update-docker-image.mdx | 20 + .../docs/api/client-server-startup/meta.json | 7 - .../delete-delete-user.mdx | 2 +- .../client-server-users/get-user-details.mdx | 2 +- .../docs/api/client-server-users/meta.json | 10 - .../client-server-users/post-update-user.mdx | 2 +- .../api/client-server/get-server-activity.mdx | 17 + content/docs/api/client-server/meta.json | 10 - openapi.json | 12987 +++++++++++++++- 73 files changed, 13246 insertions(+), 237 deletions(-) delete mode 100644 content/docs/api/application-locations/meta.json delete mode 100644 content/docs/api/application-nests-eggs-management/meta.json delete mode 100644 content/docs/api/application-nests/meta.json delete mode 100644 content/docs/api/application-nodes-allocations/meta.json create mode 100644 content/docs/api/application-nodes/get-deployable-nodes.mdx delete mode 100644 content/docs/api/application-nodes/meta.json delete mode 100644 content/docs/api/application-servers-database-management/meta.json delete mode 100644 content/docs/api/application-servers/meta.json delete mode 100644 content/docs/api/application-users/meta.json create mode 100644 content/docs/api/client-account/get-account-activity.mdx create mode 100644 content/docs/api/client-account/get-list-ssh-keys.mdx delete mode 100644 content/docs/api/client-account/meta.json create mode 100644 content/docs/api/client-account/post-create-ssh-key.mdx rename content/docs/api/client-account/{delete-disable-2fa.mdx => post-disable-2fa.mdx} (62%) create mode 100644 content/docs/api/client-account/post-remove-ssh-key.mdx delete mode 100644 content/docs/api/client-general/meta.json delete mode 100644 content/docs/api/client-server-backups/meta.json create mode 100644 content/docs/api/client-server-backups/post-restore-backup.mdx create mode 100644 content/docs/api/client-server-backups/post-toggle-backup-lock.mdx delete mode 100644 content/docs/api/client-server-databases/meta.json delete mode 100644 content/docs/api/client-server-file-manager/meta.json create mode 100644 content/docs/api/client-server-file-manager/post-chmod-file.mdx create mode 100644 content/docs/api/client-server-file-manager/post-pull-file.mdx delete mode 100644 content/docs/api/client-server-network/meta.json delete mode 100644 content/docs/api/client-server-schedules/meta.json create mode 100644 content/docs/api/client-server-schedules/post-execute-schedule.mdx delete mode 100644 content/docs/api/client-server-settings/meta.json create mode 100644 content/docs/api/client-server-settings/put-update-docker-image.mdx delete mode 100644 content/docs/api/client-server-startup/meta.json delete mode 100644 content/docs/api/client-server-users/meta.json create mode 100644 content/docs/api/client-server/get-server-activity.mdx delete mode 100644 content/docs/api/client-server/meta.json diff --git a/content/docs/api/application-locations/delete-delete-location.mdx b/content/docs/api/application-locations/delete-delete-location.mdx index 374df0f95..6281ce63f 100644 --- a/content/docs/api/application-locations/delete-delete-location.mdx +++ b/content/docs/api/application-locations/delete-delete-location.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified location - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-locations/get-location-details.mdx b/content/docs/api/application-locations/get-location-details.mdx index 432609cb9..3fd40138e 100644 --- a/content/docs/api/application-locations/get-location-details.mdx +++ b/content/docs/api/application-locations/get-location-details.mdx @@ -27,4 +27,4 @@ Retrieves the specified location | nodes | List of nodes assigned to the location | | servers | List of servers in the location | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-locations/meta.json b/content/docs/api/application-locations/meta.json deleted file mode 100644 index 358648ceb..000000000 --- a/content/docs/api/application-locations/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Locations", - "pages": [ - "get-list-locations", - "get-location-details", - "post-create-location", - "patch-update-location", - "delete-delete-location" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-locations/patch-update-location.mdx b/content/docs/api/application-locations/patch-update-location.mdx index d6f57f1c5..70fb3576f 100644 --- a/content/docs/api/application-locations/patch-update-location.mdx +++ b/content/docs/api/application-locations/patch-update-location.mdx @@ -14,4 +14,4 @@ _openapi: Updates the specified location - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nests-eggs-management/get-egg-details.mdx b/content/docs/api/application-nests-eggs-management/get-egg-details.mdx index 478398752..4b7b19436 100644 --- a/content/docs/api/application-nests-eggs-management/get-egg-details.mdx +++ b/content/docs/api/application-nests-eggs-management/get-egg-details.mdx @@ -33,4 +33,4 @@ Retrieves the specified egg | script | Egg install script | | variables | List of egg variables | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx b/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx index c4d80e6c3..cc40bb15f 100644 --- a/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx +++ b/content/docs/api/application-nests-eggs-management/get-list-eggs.mdx @@ -33,4 +33,4 @@ Retrieves a list of eggs | script | Egg install script | | variables | List of egg variables | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nests-eggs-management/meta.json b/content/docs/api/application-nests-eggs-management/meta.json deleted file mode 100644 index fbe0112cc..000000000 --- a/content/docs/api/application-nests-eggs-management/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "Eggs", - "pages": [ - "get-list-eggs", - "get-egg-details" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-nests/get-nest-details.mdx b/content/docs/api/application-nests/get-nest-details.mdx index 462321175..d391baa8a 100644 --- a/content/docs/api/application-nests/get-nest-details.mdx +++ b/content/docs/api/application-nests/get-nest-details.mdx @@ -27,4 +27,4 @@ Retrieves the specified nests | eggs | List of eggs in the location | | servers | List of servers in the location | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nests/meta.json b/content/docs/api/application-nests/meta.json deleted file mode 100644 index 5113bbdf3..000000000 --- a/content/docs/api/application-nests/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "Nests", - "pages": [ - "get-list-nests", - "get-nest-details" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx b/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx index 247d3885d..7d4df18ae 100644 --- a/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx +++ b/content/docs/api/application-nodes-allocations/delete-delete-allocation.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified allocation - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/get-list-allocations.mdx b/content/docs/api/application-nodes-allocations/get-list-allocations.mdx index a5ba19a6b..7e5d119e8 100644 --- a/content/docs/api/application-nodes-allocations/get-list-allocations.mdx +++ b/content/docs/api/application-nodes-allocations/get-list-allocations.mdx @@ -27,4 +27,4 @@ Lists allocations added to the node | node | Information about the node the allocation belongs to | | server | Information about the server the allocation belongs to | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/meta.json b/content/docs/api/application-nodes-allocations/meta.json deleted file mode 100644 index 72658a91a..000000000 --- a/content/docs/api/application-nodes-allocations/meta.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "title": "Allocations", - "pages": [ - "get-list-allocations", - "post-create-allocations", - "delete-delete-allocation" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-nodes-allocations/post-create-allocations.mdx b/content/docs/api/application-nodes-allocations/post-create-allocations.mdx index 594fbb5c7..da0826cd9 100644 --- a/content/docs/api/application-nodes-allocations/post-create-allocations.mdx +++ b/content/docs/api/application-nodes-allocations/post-create-allocations.mdx @@ -14,4 +14,4 @@ _openapi: Adds an allocation to the node - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nodes/delete-delete-node.mdx b/content/docs/api/application-nodes/delete-delete-node.mdx index e79cc7d52..df68ac1dd 100644 --- a/content/docs/api/application-nodes/delete-delete-node.mdx +++ b/content/docs/api/application-nodes/delete-delete-node.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified node - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nodes/get-deployable-nodes.mdx b/content/docs/api/application-nodes/get-deployable-nodes.mdx new file mode 100644 index 000000000..feb288cd1 --- /dev/null +++ b/content/docs/api/application-nodes/get-deployable-nodes.mdx @@ -0,0 +1,19 @@ +--- +title: List deployable nodes +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Returns nodes that have enough resources for a new server with the + given requirements +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Returns nodes that have enough resources for a new server with the given requirements + + \ No newline at end of file diff --git a/content/docs/api/application-nodes/get-node-configuration.mdx b/content/docs/api/application-nodes/get-node-configuration.mdx index c60e82ab0..1930e4e7d 100644 --- a/content/docs/api/application-nodes/get-node-configuration.mdx +++ b/content/docs/api/application-nodes/get-node-configuration.mdx @@ -14,4 +14,4 @@ _openapi: Displays the Wings configuration - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nodes/get-node-details.mdx b/content/docs/api/application-nodes/get-node-details.mdx index ae6a544a9..791b88415 100644 --- a/content/docs/api/application-nodes/get-node-details.mdx +++ b/content/docs/api/application-nodes/get-node-details.mdx @@ -39,4 +39,4 @@ Retrieves the specified node | location | Information about the location the node is assigned to | | servers | List of servers on the node | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-nodes/meta.json b/content/docs/api/application-nodes/meta.json deleted file mode 100644 index c6dfb5a4b..000000000 --- a/content/docs/api/application-nodes/meta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "title": "Nodes", - "pages": [ - "get-list-nodes", - "get-node-details", - "get-node-configuration", - "post-create-node", - "patch-update-node", - "delete-delete-node" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-nodes/patch-update-node.mdx b/content/docs/api/application-nodes/patch-update-node.mdx index c33244ce1..b65117b39 100644 --- a/content/docs/api/application-nodes/patch-update-node.mdx +++ b/content/docs/api/application-nodes/patch-update-node.mdx @@ -14,4 +14,4 @@ _openapi: Updates the node details - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/delete-delete-database.mdx b/content/docs/api/application-servers-database-management/delete-delete-database.mdx index 2b70ac9b2..53326d5b0 100644 --- a/content/docs/api/application-servers-database-management/delete-delete-database.mdx +++ b/content/docs/api/application-servers-database-management/delete-delete-database.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified database - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/get-database-details.mdx b/content/docs/api/application-servers-database-management/get-database-details.mdx index f919ffea9..635c159bf 100644 --- a/content/docs/api/application-servers-database-management/get-database-details.mdx +++ b/content/docs/api/application-servers-database-management/get-database-details.mdx @@ -27,4 +27,4 @@ Retrieves the specified database | password | Includes the database user password | | host | Information about the database host | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/meta.json b/content/docs/api/application-servers-database-management/meta.json deleted file mode 100644 index bd3ad2208..000000000 --- a/content/docs/api/application-servers-database-management/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Server Databases", - "pages": [ - "get-list-databases", - "get-database-details", - "post-create-database", - "post-reset-password", - "delete-delete-database" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-servers-database-management/post-reset-password.mdx b/content/docs/api/application-servers-database-management/post-reset-password.mdx index 7520eae63..77eb963c8 100644 --- a/content/docs/api/application-servers-database-management/post-reset-password.mdx +++ b/content/docs/api/application-servers-database-management/post-reset-password.mdx @@ -14,4 +14,4 @@ _openapi: Rotates the password of the database - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers/delete-delete-server.mdx b/content/docs/api/application-servers/delete-delete-server.mdx index 89debc295..0feadf8e5 100644 --- a/content/docs/api/application-servers/delete-delete-server.mdx +++ b/content/docs/api/application-servers/delete-delete-server.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified server - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers/delete-force-delete-server.mdx b/content/docs/api/application-servers/delete-force-delete-server.mdx index 257732b4c..9cc965bdb 100644 --- a/content/docs/api/application-servers/delete-force-delete-server.mdx +++ b/content/docs/api/application-servers/delete-force-delete-server.mdx @@ -14,4 +14,4 @@ _openapi: Forcefully deletes the specified server - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers/get-server-details.mdx b/content/docs/api/application-servers/get-server-details.mdx index 0e995a9ab..b79f2582b 100644 --- a/content/docs/api/application-servers/get-server-details.mdx +++ b/content/docs/api/application-servers/get-server-details.mdx @@ -43,4 +43,4 @@ Retrieves a server by its external ID | node | Information about the server's node | | databases | List of databases on the server | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-servers/meta.json b/content/docs/api/application-servers/meta.json deleted file mode 100644 index 6d5f53825..000000000 --- a/content/docs/api/application-servers/meta.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title": "Servers", - "pages": [ - "get-list-servers", - "get-server-details", - "post-create-server", - "patch-update-details", - "patch-update-build", - "patch-update-startup", - "post-suspend-server", - "post-unsuspend-server", - "post-reinstall-server", - "delete-delete-server", - "delete-force-delete-server" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-users/delete-delete-user.mdx b/content/docs/api/application-users/delete-delete-user.mdx index 7c1a622c8..83410db98 100644 --- a/content/docs/api/application-users/delete-delete-user.mdx +++ b/content/docs/api/application-users/delete-delete-user.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified user - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-users/get-user-details.mdx b/content/docs/api/application-users/get-user-details.mdx index a1850fe48..0fc8935bc 100644 --- a/content/docs/api/application-users/get-user-details.mdx +++ b/content/docs/api/application-users/get-user-details.mdx @@ -25,4 +25,4 @@ Retrieves the specified user by its external ID |-----------|----------------------------------------| | servers | List of servers the user has access to | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/application-users/meta.json b/content/docs/api/application-users/meta.json deleted file mode 100644 index 8c8faabc4..000000000 --- a/content/docs/api/application-users/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Users", - "pages": [ - "get-list-users", - "get-user-details", - "post-create-user", - "patch-update-user", - "delete-delete-user" - ] -} \ No newline at end of file diff --git a/content/docs/api/application-users/patch-update-user.mdx b/content/docs/api/application-users/patch-update-user.mdx index ee19e6d38..e16c87270 100644 --- a/content/docs/api/application-users/patch-update-user.mdx +++ b/content/docs/api/application-users/patch-update-user.mdx @@ -14,4 +14,4 @@ _openapi: Updates the user information - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-account/delete-delete-api-key.mdx b/content/docs/api/client-account/delete-delete-api-key.mdx index 1e30f3b66..2b0fbf961 100644 --- a/content/docs/api/client-account/delete-delete-api-key.mdx +++ b/content/docs/api/client-account/delete-delete-api-key.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified API key - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-account/get-account-activity.mdx b/content/docs/api/client-account/get-account-activity.mdx new file mode 100644 index 000000000..173d8c643 --- /dev/null +++ b/content/docs/api/client-account/get-account-activity.mdx @@ -0,0 +1,17 @@ +--- +title: Account activity +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Returns the activity log for the authenticated user's account +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Returns the activity log for the authenticated user's account + + \ No newline at end of file diff --git a/content/docs/api/client-account/get-list-ssh-keys.mdx b/content/docs/api/client-account/get-list-ssh-keys.mdx new file mode 100644 index 000000000..37b557cdf --- /dev/null +++ b/content/docs/api/client-account/get-list-ssh-keys.mdx @@ -0,0 +1,17 @@ +--- +title: List SSH keys +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Returns all SSH keys on the authenticated user's account +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Returns all SSH keys on the authenticated user's account + + \ No newline at end of file diff --git a/content/docs/api/client-account/meta.json b/content/docs/api/client-account/meta.json deleted file mode 100644 index 358673644..000000000 --- a/content/docs/api/client-account/meta.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Account", - "pages": [ - "get-account-details", - "get-2fa-details", - "post-enable-2fa", - "delete-disable-2fa", - "put-update-email", - "put-update-password", - "get-list-api-keys", - "post-create-api-key", - "delete-delete-api-key" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-account/post-create-ssh-key.mdx b/content/docs/api/client-account/post-create-ssh-key.mdx new file mode 100644 index 000000000..9e1f1aff5 --- /dev/null +++ b/content/docs/api/client-account/post-create-ssh-key.mdx @@ -0,0 +1,19 @@ +--- +title: Create SSH key +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Adds an SSH key to the user's account. Used for SFTP authentication. + Requires a 2048+ bit RSA key or an ECDSA/Ed25519 key. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Adds an SSH key to the user's account. Used for SFTP authentication. Requires a 2048+ bit RSA key or an ECDSA/Ed25519 key. + + \ No newline at end of file diff --git a/content/docs/api/client-account/delete-disable-2fa.mdx b/content/docs/api/client-account/post-disable-2fa.mdx similarity index 62% rename from content/docs/api/client-account/delete-disable-2fa.mdx rename to content/docs/api/client-account/post-disable-2fa.mdx index 0198d7737..39c6491de 100644 --- a/content/docs/api/client-account/delete-disable-2fa.mdx +++ b/content/docs/api/client-account/post-disable-2fa.mdx @@ -2,16 +2,16 @@ title: Disable 2FA full: true _openapi: - method: DELETE + method: POST toc: [] structuredData: headings: [] contents: - - content: Disables TOTP 2FA on the account + - content: Disables two-factor authentication on the account --- {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} -Disables TOTP 2FA on the account +Disables two-factor authentication on the account - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-account/post-remove-ssh-key.mdx b/content/docs/api/client-account/post-remove-ssh-key.mdx new file mode 100644 index 000000000..ba5dcb8cf --- /dev/null +++ b/content/docs/api/client-account/post-remove-ssh-key.mdx @@ -0,0 +1,17 @@ +--- +title: Remove SSH key +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Removes an SSH key from the user's account by its fingerprint +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Removes an SSH key from the user's account by its fingerprint + + \ No newline at end of file diff --git a/content/docs/api/client-general/meta.json b/content/docs/api/client-general/meta.json deleted file mode 100644 index e98df1488..000000000 --- a/content/docs/api/client-general/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "Client", - "pages": [ - "get-list-servers", - "get-show-permissions" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-backups/delete-delete-backup.mdx b/content/docs/api/client-server-backups/delete-delete-backup.mdx index 596aa7aed..24ae575ea 100644 --- a/content/docs/api/client-server-backups/delete-delete-backup.mdx +++ b/content/docs/api/client-server-backups/delete-delete-backup.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified backup - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/get-backup-details.mdx b/content/docs/api/client-server-backups/get-backup-details.mdx index 191d9787f..f2bce487d 100644 --- a/content/docs/api/client-server-backups/get-backup-details.mdx +++ b/content/docs/api/client-server-backups/get-backup-details.mdx @@ -14,4 +14,4 @@ _openapi: Retrieves information about the specified backup - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/get-download-backup.mdx b/content/docs/api/client-server-backups/get-download-backup.mdx index f27029b28..3386ee809 100644 --- a/content/docs/api/client-server-backups/get-download-backup.mdx +++ b/content/docs/api/client-server-backups/get-download-backup.mdx @@ -14,4 +14,4 @@ _openapi: Generates a download link for a backup - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/meta.json b/content/docs/api/client-server-backups/meta.json deleted file mode 100644 index 3abd59ec5..000000000 --- a/content/docs/api/client-server-backups/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Backups", - "pages": [ - "get-list-backups", - "get-backup-details", - "get-download-backup", - "post-create-backup", - "delete-delete-backup" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-backups/post-restore-backup.mdx b/content/docs/api/client-server-backups/post-restore-backup.mdx new file mode 100644 index 000000000..349d704bf --- /dev/null +++ b/content/docs/api/client-server-backups/post-restore-backup.mdx @@ -0,0 +1,20 @@ +--- +title: Restore backup +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Restores a backup to the server. Existing files will be overwritten. + Returns 400 if the backup has not completed, or if the server is + currently installing, transferring, or restoring a different backup. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Restores a backup to the server. Existing files will be overwritten. Returns 400 if the backup has not completed, or if the server is currently installing, transferring, or restoring a different backup. + + \ No newline at end of file diff --git a/content/docs/api/client-server-backups/post-toggle-backup-lock.mdx b/content/docs/api/client-server-backups/post-toggle-backup-lock.mdx new file mode 100644 index 000000000..6ae4e8ee1 --- /dev/null +++ b/content/docs/api/client-server-backups/post-toggle-backup-lock.mdx @@ -0,0 +1,19 @@ +--- +title: Toggle backup lock +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Toggles the locked status of a backup. A locked backup cannot be + deleted by the automatic backup rotation. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Toggles the locked status of a backup. A locked backup cannot be deleted by the automatic backup rotation. + + \ No newline at end of file diff --git a/content/docs/api/client-server-databases/delete-delete-database.mdx b/content/docs/api/client-server-databases/delete-delete-database.mdx index f4c38646e..fca894008 100644 --- a/content/docs/api/client-server-databases/delete-delete-database.mdx +++ b/content/docs/api/client-server-databases/delete-delete-database.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified database - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-databases/meta.json b/content/docs/api/client-server-databases/meta.json deleted file mode 100644 index 4e47f9c14..000000000 --- a/content/docs/api/client-server-databases/meta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "Databases", - "pages": [ - "get-list-databases", - "post-create-database", - "post-rotate-password", - "delete-delete-database" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-databases/post-rotate-password.mdx b/content/docs/api/client-server-databases/post-rotate-password.mdx index e017df881..14198c944 100644 --- a/content/docs/api/client-server-databases/post-rotate-password.mdx +++ b/content/docs/api/client-server-databases/post-rotate-password.mdx @@ -14,4 +14,4 @@ _openapi: Changes the password of a specified database - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/meta.json b/content/docs/api/client-server-file-manager/meta.json deleted file mode 100644 index 82a2b4f94..000000000 --- a/content/docs/api/client-server-file-manager/meta.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title": "File Manager", - "pages": [ - "get-list-files", - "get-get-file-contents", - "get-download-file", - "post-write-file", - "post-create-folder", - "post-copy-file", - "put-rename-file", - "post-compress-file", - "post-decompress-file", - "post-delete-file", - "get-upload-file" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-chmod-file.mdx b/content/docs/api/client-server-file-manager/post-chmod-file.mdx new file mode 100644 index 000000000..9bb556e63 --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-chmod-file.mdx @@ -0,0 +1,17 @@ +--- +title: Change file permissions +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Updates file permissions for one or more files in the given directory +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Updates file permissions for one or more files in the given directory + + \ No newline at end of file diff --git a/content/docs/api/client-server-file-manager/post-pull-file.mdx b/content/docs/api/client-server-file-manager/post-pull-file.mdx new file mode 100644 index 000000000..80ae2f683 --- /dev/null +++ b/content/docs/api/client-server-file-manager/post-pull-file.mdx @@ -0,0 +1,17 @@ +--- +title: Pull remote file +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Downloads a file from an external URL to the server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Downloads a file from an external URL to the server + + \ No newline at end of file diff --git a/content/docs/api/client-server-network/delete-unassign-allocation.mdx b/content/docs/api/client-server-network/delete-unassign-allocation.mdx index 95de880a5..dfe744832 100644 --- a/content/docs/api/client-server-network/delete-unassign-allocation.mdx +++ b/content/docs/api/client-server-network/delete-unassign-allocation.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified non-primary allocation - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-network/meta.json b/content/docs/api/client-server-network/meta.json deleted file mode 100644 index 865104afe..000000000 --- a/content/docs/api/client-server-network/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Network", - "pages": [ - "get-list-allocations", - "post-assign-allocation", - "post-set-primary-allocation", - "post-set-allocation-note", - "delete-unassign-allocation" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-network/post-set-allocation-note.mdx b/content/docs/api/client-server-network/post-set-allocation-note.mdx index 335d96390..990a7a729 100644 --- a/content/docs/api/client-server-network/post-set-allocation-note.mdx +++ b/content/docs/api/client-server-network/post-set-allocation-note.mdx @@ -25,4 +25,4 @@ Sets a note for the allocation |-------|-----------|--------|---------------------|-------| | notes | required | string | Note for allocation | | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-network/post-set-primary-allocation.mdx b/content/docs/api/client-server-network/post-set-primary-allocation.mdx index 07196a811..748400889 100644 --- a/content/docs/api/client-server-network/post-set-primary-allocation.mdx +++ b/content/docs/api/client-server-network/post-set-primary-allocation.mdx @@ -14,4 +14,4 @@ _openapi: Sets the primary allocation - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/delete-delete-schedule.mdx b/content/docs/api/client-server-schedules/delete-delete-schedule.mdx index 9f4382352..563f421a1 100644 --- a/content/docs/api/client-server-schedules/delete-delete-schedule.mdx +++ b/content/docs/api/client-server-schedules/delete-delete-schedule.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified schedule - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/delete-delete-task.mdx b/content/docs/api/client-server-schedules/delete-delete-task.mdx index 54418d8be..6133f1a6a 100644 --- a/content/docs/api/client-server-schedules/delete-delete-task.mdx +++ b/content/docs/api/client-server-schedules/delete-delete-task.mdx @@ -14,4 +14,4 @@ _openapi: Deletes the specified task - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/get-schedule-details.mdx b/content/docs/api/client-server-schedules/get-schedule-details.mdx index a0e712089..c19d0c13b 100644 --- a/content/docs/api/client-server-schedules/get-schedule-details.mdx +++ b/content/docs/api/client-server-schedules/get-schedule-details.mdx @@ -14,4 +14,4 @@ _openapi: Retrieves specific schedule - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/meta.json b/content/docs/api/client-server-schedules/meta.json deleted file mode 100644 index fad716fd2..000000000 --- a/content/docs/api/client-server-schedules/meta.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "Schedules", - "pages": [ - "get-list-schedules", - "get-schedule-details", - "post-create-schedule", - "post-update-schedule", - "delete-delete-schedule", - "post-create-task", - "post-update-task", - "delete-delete-task" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-create-task.mdx b/content/docs/api/client-server-schedules/post-create-task.mdx index 027b0bc5d..f27b7a621 100644 --- a/content/docs/api/client-server-schedules/post-create-task.mdx +++ b/content/docs/api/client-server-schedules/post-create-task.mdx @@ -14,4 +14,4 @@ _openapi: Creates a new task on the specified schedule - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-execute-schedule.mdx b/content/docs/api/client-server-schedules/post-execute-schedule.mdx new file mode 100644 index 000000000..8760d4f77 --- /dev/null +++ b/content/docs/api/client-server-schedules/post-execute-schedule.mdx @@ -0,0 +1,17 @@ +--- +title: Execute schedule +full: true +_openapi: + method: POST + toc: [] + structuredData: + headings: [] + contents: + - content: Triggers a schedule to run now, regardless of its cron timing +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Triggers a schedule to run now, regardless of its cron timing + + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-update-schedule.mdx b/content/docs/api/client-server-schedules/post-update-schedule.mdx index b5a8636c4..d736b5b4e 100644 --- a/content/docs/api/client-server-schedules/post-update-schedule.mdx +++ b/content/docs/api/client-server-schedules/post-update-schedule.mdx @@ -14,4 +14,4 @@ _openapi: Updates the specified schedule - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-schedules/post-update-task.mdx b/content/docs/api/client-server-schedules/post-update-task.mdx index 569d7fe85..672a613bc 100644 --- a/content/docs/api/client-server-schedules/post-update-task.mdx +++ b/content/docs/api/client-server-schedules/post-update-task.mdx @@ -14,4 +14,4 @@ _openapi: Updates the specified task - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-settings/meta.json b/content/docs/api/client-server-settings/meta.json deleted file mode 100644 index 719beb354..000000000 --- a/content/docs/api/client-server-settings/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "Settings", - "pages": [ - "post-rename-server", - "post-reinstall-server" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-settings/put-update-docker-image.mdx b/content/docs/api/client-server-settings/put-update-docker-image.mdx new file mode 100644 index 000000000..38ffcb9ad --- /dev/null +++ b/content/docs/api/client-server-settings/put-update-docker-image.mdx @@ -0,0 +1,20 @@ +--- +title: Update Docker image +full: true +_openapi: + method: PUT + toc: [] + structuredData: + headings: [] + contents: + - content: >- + Changes the Docker image the server runs with. The image must be one + of the images allowed by the server's egg. Returns 400 if the image + was manually set by an admin. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Changes the Docker image the server runs with. The image must be one of the images allowed by the server's egg. Returns 400 if the image was manually set by an admin. + + \ No newline at end of file diff --git a/content/docs/api/client-server-startup/meta.json b/content/docs/api/client-server-startup/meta.json deleted file mode 100644 index 7eddec3ed..000000000 --- a/content/docs/api/client-server-startup/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "Startup", - "pages": [ - "get-list-variables", - "put-update-variable" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-users/delete-delete-user.mdx b/content/docs/api/client-server-users/delete-delete-user.mdx index 62d4ac1f9..b76770f19 100644 --- a/content/docs/api/client-server-users/delete-delete-user.mdx +++ b/content/docs/api/client-server-users/delete-delete-user.mdx @@ -14,4 +14,4 @@ _openapi: Removes the specified user from the server - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-users/get-user-details.mdx b/content/docs/api/client-server-users/get-user-details.mdx index 2a9a1c181..97e436736 100644 --- a/content/docs/api/client-server-users/get-user-details.mdx +++ b/content/docs/api/client-server-users/get-user-details.mdx @@ -14,4 +14,4 @@ _openapi: Retrieves information about a specific user - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server-users/meta.json b/content/docs/api/client-server-users/meta.json deleted file mode 100644 index 2d9faf5d3..000000000 --- a/content/docs/api/client-server-users/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Subusers", - "pages": [ - "get-list-users", - "get-user-details", - "post-create-user", - "post-update-user", - "delete-delete-user" - ] -} \ No newline at end of file diff --git a/content/docs/api/client-server-users/post-update-user.mdx b/content/docs/api/client-server-users/post-update-user.mdx index 8afcfa782..995d4e453 100644 --- a/content/docs/api/client-server-users/post-update-user.mdx +++ b/content/docs/api/client-server-users/post-update-user.mdx @@ -31,4 +31,4 @@ Updates the specified user |-------------|-----------|--------|------------------------------------|-------| | permissions | required | object | Permissions that user is permitted | | - \ No newline at end of file + \ No newline at end of file diff --git a/content/docs/api/client-server/get-server-activity.mdx b/content/docs/api/client-server/get-server-activity.mdx new file mode 100644 index 000000000..8b2b625fb --- /dev/null +++ b/content/docs/api/client-server/get-server-activity.mdx @@ -0,0 +1,17 @@ +--- +title: Server activity +full: true +_openapi: + method: GET + toc: [] + structuredData: + headings: [] + contents: + - content: Returns the activity log for the specified server +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + +Returns the activity log for the specified server + + \ No newline at end of file diff --git a/content/docs/api/client-server/meta.json b/content/docs/api/client-server/meta.json deleted file mode 100644 index 622101fa7..000000000 --- a/content/docs/api/client-server/meta.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "title": "Server", - "pages": [ - "get-server-details", - "get-console-details", - "get-resource-usage", - "post-send-command", - "post-change-power-state" - ] -} \ No newline at end of file diff --git a/openapi.json b/openapi.json index 87482f6f6..65906ddc4 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1,12986 @@ -{"openapi":"3.0.3","info":{"title":"Pterodactyl Panel API v1","version":"1.0.0"},"servers":[{"url":"{panel}","description":"Pterodactyl Panel","variables":{"panel":{"default":"https://pterodactyl.file.properties","description":"Your panel URL"}}}],"tags":[{"name":"Application - Servers"},{"name":"Application - Servers - Database Management"},{"name":"Application - Nests"},{"name":"Application - Nests - Eggs Management"},{"name":"Client - Server - Startup"},{"name":"Client - General"},{"name":"Client - Server"},{"name":"Client - Server - Databases"},{"name":"Client - Server - File Manager"},{"name":"Client - Server - Schedules"},{"name":"Client - Server - Network"},{"name":"Client - Server - Users"},{"name":"Client - Server - Backups"},{"name":"Application - Users"},{"name":"Application - Nodes"},{"name":"Application - Locations"},{"name":"Application - Nodes - Allocations"},{"name":"Client - Server - Settings"},{"name":"Client - Account"}],"paths":{"/api/application/servers":{"get":{"tags":["Application - Servers"],"summary":"List servers","operationId":"get-list-servers","description":"Retrieves all servers","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"pack":{"type":"string","nullable":true},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"},"relationships":{"type":"object","properties":{"databases":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Wuhu Island","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"Test","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca"}},"updated_at":"2020-06-13T04:20:53+00:00","created_at":"2019-12-23T06:46:27+00:00","relationships":{"databases":{"object":"list","data":[{"object":"databases","attributes":{"id":1,"server":5,"host":4,"database":"s5_perms","username":"u5_QsIAp1jhvS","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:13+01:00","updated_at":"2020-06-12T23:00:13+01:00"}},{"object":"databases","attributes":{"id":2,"server":5,"host":4,"database":"s5_coreprotect","username":"u5_2jtJx1nO1d","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:20+01:00","updated_at":"2020-06-12T23:00:20+01:00"}}]}}}}],"meta":{"pagination":{"total":1,"count":1,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Servers"],"summary":"Create server","operationId":"post-create-server","description":"Creates a new server","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"user":{"type":"integer"},"egg":{"type":"integer"},"docker_image":{"type":"string"},"startup":{"type":"string"},"environment":{"type":"object","properties":{"BUNGEE_VERSION":{"type":"string"},"SERVER_JARFILE":{"type":"string"}}},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"backups":{"type":"integer"}}},"allocation":{"type":"object","properties":{"default":{"type":"integer"}}}}},"example":{"name":"Building","user":1,"egg":1,"docker_image":"quay.io/pterodactyl/core:java","startup":"java -Xms128M -Xmx128M -jar server.jar","environment":{"BUNGEE_VERSION":"latest","SERVER_JARFILE":"server.jar"},"limits":{"memory":128,"swap":0,"disk":512,"io":500,"cpu":100},"feature_limits":{"databases":5,"backups":1},"allocation":{"default":17}}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string","nullable":true},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"BUNGEE_VERSION":{"type":"string"},"SERVER_JARFILE":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":7,"external_id":null,"uuid":"d557c19c-8b21-4456-a9e5-181beda429f4","identifier":"d557c19c","name":"Building","description":"","suspended":false,"limits":{"memory":128,"swap":0,"disk":512,"io":500,"cpu":100,"threads":null},"feature_limits":{"databases":5,"allocations":0,"backups":1},"user":1,"node":1,"allocation":17,"nest":1,"egg":1,"container":{"startup_command":"java -Xms128M -Xmx128M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":false,"environment":{"BUNGEE_VERSION":"latest","SERVER_JARFILE":"server.jar","STARTUP":"java -Xms128M -Xmx128M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"d557c19c-8b21-4456-a9e5-181beda429f4","P_SERVER_ALLOCATION_LIMIT":0}},"updated_at":"2020-10-29T01:38:59+00:00","created_at":"2020-10-29T01:38:59+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/databases":{"get":{"tags":["Application - Servers - Database Management"],"summary":"List databases","operationId":"get-list-databases","description":"Retrieves all databases on a server\n\n## Available include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |\n| host | Information about the database host |","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5},{"name":"include","in":"query","schema":{"type":"string"},"example":"password,host"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"password":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"password":{"type":"string"}}}}},"host":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"host":{"type":"string"},"port":{"type":"integer"},"username":{"type":"string"},"node":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}},"example":{"object":"list","data":[{"object":"server_database","attributes":{"id":1,"server":5,"host":4,"database":"s5_perms","username":"u5_QsIAp1jhvS","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:13+01:00","updated_at":"2020-06-12T23:00:13+01:00","relationships":{"password":{"object":"database_password","attributes":{"password":".FjJ!5w945L3tuG4DrSxF+T@"}},"host":{"object":"database_host","attributes":{"id":4,"name":"MariaDB","host":"127.0.0.1","port":3306,"username":"pterodactyluser","node":1,"created_at":"2020-06-12T22:59:25+01:00","updated_at":"2020-06-12T22:59:25+01:00"}}}}},{"object":"server_database","attributes":{"id":2,"server":5,"host":4,"database":"s5_coreprotect","username":"u5_2jtJx1nO1d","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:20+01:00","updated_at":"2020-06-12T23:00:20+01:00","relationships":{"password":{"object":"database_password","attributes":{"password":"4=rv^0vHuOPSHCfj!tM1OlMC"}},"host":{"object":"database_host","attributes":{"id":4,"name":"MariaDB","host":"127.0.0.1","port":3306,"username":"pterodactyluser","node":1,"created_at":"2020-06-12T22:59:25+01:00","updated_at":"2020-06-12T22:59:25+01:00"}}}}}]}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Servers - Database Management"],"summary":"Create database","operationId":"post-create-database","description":"Creates a new database on the specified server","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"database":{"type":"string","description":"Name for database"},"remote":{"type":"string","description":"Permitted remotes that can access the database"},"host":{"type":"integer","description":"ID of the database host to use"}},"required":["database"]},"example":{"database":"matches","remote":"%","host":4}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"server_database","attributes":{"id":6,"server":5,"host":4,"database":"s5_matches","username":"u5_LhG3aGWBtk","remote":"%","max_connections":null,"created_at":"2020-11-04T21:00:42+00:00","updated_at":"2020-11-04T21:00:42+00:00"},"meta":{"resource":"https://pterodactyl.file.properties/api/application/servers/5/databases/6"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/databases/1":{"get":{"tags":["Application - Servers - Database Management"],"summary":"Database details","operationId":"get-database-details","description":"Retrieves the specified database\n\n## Available include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |\n| host | Information about the database host |","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"server":{"type":"integer"},"host":{"type":"integer"},"database":{"type":"string"},"username":{"type":"string"},"remote":{"type":"string"},"max_connections":{"type":"integer"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"server_database","attributes":{"id":1,"server":5,"host":4,"database":"s5_perms","username":"u5_QsIAp1jhvS","remote":"%","max_connections":0,"created_at":"2020-06-12T23:00:13+01:00","updated_at":"2020-06-12T23:00:13+01:00"}}}}}},"security":[{"ApplicationToken":[]}]},"delete":{"tags":["Application - Servers - Database Management"],"summary":"Delete database","operationId":"delete-delete-database","description":"Deletes the specified database","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}":{"get":{"tags":["Application - Servers"],"summary":"Server details","operationId":"get-server-details","description":"Retrieves the specified server\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------|\n| allocations | List of allocations assigned to the server |\n| user | Information about the server owner |\n| subusers | List of users added to the server |\n| pack | Information about the server pack |\n| nest | Information about the server's egg nest |\n| egg | Information about the server's egg |\n| variables | List of server variables |\n| location | Information about server's node location |\n| node | Information about the server's node |\n| databases | List of databases on the server |","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"pack":{"type":"string","nullable":true},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-07-19T15:22:39+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/external/RemoteId1":{"get":{"tags":["Application - Servers"],"summary":"Server details","operationId":"get-server-details","description":"Retrieves a server by its external ID\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------|\n| allocations | List of allocations assigned to the server |\n| user | Information about the server owner |\n| subusers | List of users added to the server |\n| pack | Information about the server pack |\n| nest | Information about the server's egg nest |\n| egg | Information about the server's egg |\n| variables | List of server variables |\n| location | Information about server's node location |\n| node | Information about the server's node |\n| databases | List of databases on the server |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"pack":{"type":"string","nullable":true},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-07-19T15:22:39+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/details":{"patch":{"tags":["Application - Servers"],"summary":"Update details","operationId":"patch-update-details","description":"Updates the server details","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the server"},"user":{"type":"integer","description":"ID of the user which the server belongs to"}},"required":["name","user"]},"example":{"name":"Gaming","user":1,"external_id":"RemoteID1","description":"Matt from Wii Sports"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteID1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"container":{"startup_command":"java -Xms128M -Xmx2014M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx2048M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-11-04T21:11:26+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/build":{"patch":{"tags":["Application - Servers"],"summary":"Update build","operationId":"patch-update-build","description":"Updates the server build information","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allocation":{"type":"integer","description":"ID of primary allocation"},"memory":{"type":"integer","description":"The maximum amount of memory allowed for this container. Setting this to 0 will allow unlimited memory in a container."},"swap":{"type":"integer","description":"Setting this to 0 will disable swap space on this server. Setting to -1 will allow unlimited swap."},"io":{"type":"integer","description":"IO performance of this server relative to other running containers"},"cpu":{"type":"integer","description":"Each physical core on the system is considered to be 100%. Setting this value to 0 will allow a server to use CPU time without restrictions."},"disk":{"type":"integer","description":"This server will not be allowed to boot if it is using more than this amount of space. If a server goes over this limit while running it will be safely stopped and locked until enough space is available. Set to 0 to allow unlimited disk usage."},"feature_limits.databases":{"type":"integer","description":"The total number of databases a user is allowed to create for this server."},"feature_limits.backups":{"type":"integer","description":"The total number of allocations a user is allowed to create for this server."}},"required":["allocation","memory","swap","io","cpu","disk"]},"example":{"allocation":1,"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null,"feature_limits":{"databases":5,"allocations":5,"backups":2}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteID1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"container":{"startup_command":"java -Xms128M -Xmx2014M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx2048M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-11-04T21:11:26+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/startup":{"patch":{"tags":["Application - Servers"],"summary":"Update startup","operationId":"patch-update-startup","description":"Updates the server startup information","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startup":{"type":"string","description":"Edit your server's startup command here."},"environment":{"type":"object","description":"Environment variables that the egg requires/supports"},"egg":{"type":"string","description":"ID of the egg to use"},"image":{"type":"string","description":"The Docker image to use for this server"},"skip_scripts":{"type":"string","description":"If enabled, if the Egg has an install script, it will NOT be ran during install."}},"required":["startup","egg","image"]},"example":{"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest"},"egg":5,"image":"quay.io/pterodactyl/core:java","skip_scripts":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"identifier":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"suspended":{"type":"boolean"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"},"threads":{"type":"string","nullable":true}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"user":{"type":"integer"},"node":{"type":"integer"},"allocation":{"type":"integer"},"nest":{"type":"integer"},"egg":{"type":"integer"},"container":{"type":"object","properties":{"startup_command":{"type":"string"},"image":{"type":"string"},"installed":{"type":"boolean"},"environment":{"type":"object","properties":{"SERVER_JARFILE":{"type":"string"},"VANILLA_VERSION":{"type":"string"},"STARTUP":{"type":"string"},"P_SERVER_LOCATION":{"type":"string"},"P_SERVER_UUID":{"type":"string"},"P_SERVER_ALLOCATION_LIMIT":{"type":"integer"}}}}},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"server","attributes":{"id":5,"external_id":"RemoteID1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Gaming","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"container":{"startup_command":"java -Xms128M -Xmx2014M -jar server.jar","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx2048M -jar server.jar","P_SERVER_LOCATION":"GB","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca","P_SERVER_ALLOCATION_LIMIT":5}},"updated_at":"2020-11-04T21:11:26+00:00","created_at":"2019-12-23T06:46:27+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/suspend":{"post":{"tags":["Application - Servers"],"summary":"Suspend server","operationId":"post-suspend-server","description":"Suspends the specified server","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/unsuspend":{"post":{"tags":["Application - Servers"],"summary":"Unsuspend server","operationId":"post-unsuspend-server","description":"Unuspends the specified","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/reinstall":{"post":{"tags":["Application - Servers"],"summary":"Reinstall server","operationId":"post-reinstall-server","description":"Reinstalls the specified server","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/1":{"delete":{"tags":["Application - Servers"],"summary":"Delete server","operationId":"delete-delete-server","description":"Deletes the specified server","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/1/force":{"delete":{"tags":["Application - Servers"],"summary":"Force delete server","operationId":"delete-force-delete-server","description":"Forcefully deletes the specified server","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/servers/{id}/databases/1/reset-password":{"post":{"tags":["Application - Servers - Database Management"],"summary":"Reset password","operationId":"post-reset-password","description":"Rotates the password of the database","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Server ID (internal numeric ID)","example":5}],"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests":{"get":{"tags":["Application - Nests"],"summary":"List nests","operationId":"get-list-nests","description":"Retrieves all nests\n\n# Available include parameters\n| Parameter | Description |\n|-----------|---------------------------------|\n| eggs | List of eggs in the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"author":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},{"object":"nest","attributes":{"id":2,"uuid":"5246d226-e8e8-46f5-b624-e99cf1a68c9a","author":"support@pterodactyl.io","name":"Source Engine","description":"Includes support for most Source Dedicated Server games.","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},{"object":"nest","attributes":{"id":3,"uuid":"0eb05bf7-3a00-4b1d-bef5-a6d8d7375e44","author":"support@pterodactyl.io","name":"Voice Servers","description":"Voice servers such as Mumble and Teamspeak 3.","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},{"object":"nest","attributes":{"id":4,"uuid":"e2a21c82-7175-4db0-9510-8d1ed525b2bf","author":"support@pterodactyl.io","name":"Rust","description":"Rust - A game where you must fight to survive.","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}}],"meta":{"pagination":{"total":4,"count":4,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests/1/eggs":{"get":{"tags":["Application - Nests - Eggs Management"],"summary":"List eggs","operationId":"get-list-eggs","description":"Retrieves a list of eggs\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------------|\n| nest | Information about the nest that owns the egg |\n| servers | List of servers using the egg |\n| config | Config options of the egg |\n| script | Egg install script |\n| variables | List of egg variables |","parameters":[{"name":"include","in":"query","schema":{"type":"string"},"example":"nest,servers"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"name":{"type":"string"},"nest":{"type":"integer"},"author":{"type":"string"},"description":{"type":"string"},"docker_image":{"type":"string"},"config":{"type":"object","properties":{"files":{"type":"object","properties":{"config.yml":{"type":"object","properties":{"parser":{"type":"string"},"find":{"type":"object","properties":{"listeners[0].query_enabled":{"type":"boolean"},"listeners[0].query_port":{"type":"string"},"listeners[0].host":{"type":"string"},"servers.*.address":{"type":"object","properties":{"127.0.0.1":{"type":"string"},"localhost":{"type":"string"}}}}}}}}},"startup":{"type":"object","properties":{"done":{"type":"string"},"userInteraction":{"type":"array","items":{"type":"string"}}}},"stop":{"type":"string"},"logs":{"type":"object","properties":{"custom":{"type":"boolean"},"location":{"type":"string"}}},"extends":{"type":"string","nullable":true}}},"startup":{"type":"string"},"script":{"type":"object","properties":{"privileged":{"type":"boolean"},"install":{"type":"string"},"entry":{"type":"string"},"container":{"type":"string"},"extends":{"type":"string","nullable":true}}},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"nest":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"author":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"servers":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{}}}}}}}}}}}}},"example":{"object":"list","data":[{"object":"egg","attributes":{"id":1,"uuid":"695648dd-01a3-4ced-b075-d4ec4fb9fbf4","name":"Bungeecord","nest":1,"author":"support@pterodactyl.io","description":"For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"config.yml":{"parser":"yaml","find":{"listeners[0].query_enabled":true,"listeners[0].query_port":"{{server.build.default.port}}","listeners[0].host":"0.0.0.0:{{server.build.default.port}}","servers.*.address":{"127.0.0.1":"{{config.docker.interface}}","localhost":"{{config.docker.interface}}"}}}},"startup":{"done":"Listening on ","userInteraction":["Listening on /0.0.0.0:25577"]},"stop":"end","logs":{"custom":false,"location":"proxy.log.0"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":2,"uuid":"7f8736d8-fd99-465f-8c3e-cb4d42c18541","name":"Forge Minecraft","nest":1,"author":"support@pterodactyl.io","description":"Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","enable-query":"true","server-port":"{{server.build.default.port}}","query.port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":{"custom":false,"location":"logs/latest.log"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napt update\r\napt install -y curl\r\n\r\n#Fetching version\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n echo \"Fetching latest\"\r\n MC_VERSION=$(curl -sl https://files.minecraftforge.net/maven/net/minecraftforge/forge/index.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's/ //g')\r\nelif [[ ! \"$MC_VERSION\" =~ - ]]; then\r\n echo \"Fetching latest from version $MC_VERSION\"\r\n MC_VERSION=$(curl -sl https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_$MC_VERSION.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's/ //g')\r\nfi\r\n\r\n#Checking if forge version valid\r\nif [[ ! \"$MC_VERSION\" =~ [1].[0-9]*.[0-9]*-[0-9]*.[0-9]*.[0-9]*.[0-9]* ]]; then\r\n echo \"!!! Invalid forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Go into main direction\r\ncd /mnt/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version \\\"$MC_VERSION\\\"\"\r\ncurl -o installer.jar -sS https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MC_VERSION/forge-$MC_VERSION-installer.jar\r\ncurl -o $SERVER_JARFILE -sS https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MC_VERSION/forge-$MC_VERSION-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f ./installer.jar ] || [ ! -f ./$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar","entry":"bash","container":"openjdk:8","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":3,"uuid":"2ad75dfd-892d-4441-a452-6d7be7cc895a","name":"Paper","nest":1,"author":"parker@pterodactyl.io","description":"High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","server-port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":[],"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`\r\nelse\r\n VER_EXISTS=`curl -s https://papermc.io/api/v1/paper | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_PAPER_VERSION=`curl -s https://papermc.io/api/v1/paper | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest paper version\"\r\n MINECRAFT_VERSION=${LATEST_PAPER_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https://papermc.io/api/v1/paper/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https://papermc.io/api/v1/paper/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https://papermc.io/api/v1/paper/${MINECRAFT_VERSION}/${BUILD_NUMBER}/download \r\nfi\r\n\r\ncd /mnt/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https://raw.githubusercontent.com/parkervcp/eggs/master/minecraft_java/server.properties\r\nfi","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":4,"uuid":"00274063-5d21-439f-80b9-c4cc0dba8188","name":"Sponge (SpongeVanilla)","nest":1,"author":"support@pterodactyl.io","description":"SpongeVanilla is the SpongeAPI implementation for Vanilla Minecraft.","docker_image":"quay.io/pterodactyl/core:java-glibc","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","enable-query":"true","server-port":"{{server.build.default.port}}","query.port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":{"custom":false,"location":"logs/latest.log"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\n# Sponge Installation Script\n#\n# Server Files: /mnt/server\n\napk update\napk add curl\n\ncd /mnt/server\n\ncurl -sSL \"https://repo.spongepowered.org/maven/org/spongepowered/spongevanilla/${SPONGE_VERSION}/spongevanilla-${SPONGE_VERSION}.jar\" -o ${SERVER_JARFILE}","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[]}}}},{"object":"egg","attributes":{"id":5,"uuid":"cd4cc5cf-de80-4a50-b458-dbd7d3193175","name":"Vanilla Minecraft","nest":1,"author":"support@pterodactyl.io","description":"Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"server.properties":{"parser":"properties","find":{"server-ip":"0.0.0.0","enable-query":"true","server-port":"{{server.build.default.port}}","query.port":"{{server.build.default.port}}"}}},"startup":{"done":")! For help, type ","userInteraction":["Go to eula.txt for more info."]},"stop":"stop","logs":{"custom":false,"location":"logs/latest.log"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk update\r\napk add curl jq\r\n\r\ncd /mnt/server\r\n\r\nLATEST_VERSION=`curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$LATEST_VERSION'\") | .url')\r\nelse\r\n MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$VANILLA_VERSION'\") | .url')\r\nfi\r\n\r\nDOWNLOAD_URL=`curl $MANIFEST_URL | jq .downloads.server | jq -r '. | .url'`\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00","relationships":{"nest":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}},"servers":{"object":"list","data":[{"object":"server","attributes":{"id":5,"external_id":"RemoteId1","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","identifier":"1a7ce997","name":"Wuhu Island","description":"Matt from Wii Sports","suspended":false,"limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0,"threads":null},"feature_limits":{"databases":5,"allocations":5,"backups":2},"user":1,"node":1,"allocation":1,"nest":1,"egg":5,"pack":null,"container":{"startup_command":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","image":"quay.io/pterodactyl/core:java","installed":true,"environment":{"SERVER_JARFILE":"server.jar","VANILLA_VERSION":"latest","STARTUP":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","P_SERVER_LOCATION":"Test","P_SERVER_UUID":"1a7ce997-259b-452e-8b4e-cecc464142ca"}},"updated_at":"2020-06-13T04:20:53+00:00","created_at":"2019-12-23T06:46:27+00:00"}}]}}}}]}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests/1/eggs/1":{"get":{"tags":["Application - Nests - Eggs Management"],"summary":"Egg details","operationId":"get-egg-details","description":"Retrieves the specified egg\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------------|\n| nest | Information about the nest that owns the egg |\n| servers | List of servers using the egg |\n| config | Config options of the egg |\n| script | Egg install script |\n| variables | List of egg variables |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"name":{"type":"string"},"nest":{"type":"integer"},"author":{"type":"string"},"description":{"type":"string"},"docker_image":{"type":"string"},"config":{"type":"object","properties":{"files":{"type":"object","properties":{"config.yml":{"type":"object","properties":{"parser":{"type":"string"},"find":{"type":"object","properties":{"listeners[0].query_enabled":{"type":"boolean"},"listeners[0].query_port":{"type":"string"},"listeners[0].host":{"type":"string"},"servers.*.address":{"type":"object","properties":{"127.0.0.1":{"type":"string"},"localhost":{"type":"string"}}}}}}}}},"startup":{"type":"object","properties":{"done":{"type":"string"},"userInteraction":{"type":"array","items":{"type":"string"}}}},"stop":{"type":"string"},"logs":{"type":"object","properties":{"custom":{"type":"boolean"},"location":{"type":"string"}}},"extends":{"type":"string","nullable":true}}},"startup":{"type":"string"},"script":{"type":"object","properties":{"privileged":{"type":"boolean"},"install":{"type":"string"},"entry":{"type":"string"},"container":{"type":"string"},"extends":{"type":"string","nullable":true}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"egg","attributes":{"id":1,"uuid":"695648dd-01a3-4ced-b075-d4ec4fb9fbf4","name":"Bungeecord","nest":1,"author":"support@pterodactyl.io","description":"For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.","docker_image":"quay.io/pterodactyl/core:java","config":{"files":{"config.yml":{"parser":"yaml","find":{"listeners[0].query_enabled":true,"listeners[0].query_port":"{{server.build.default.port}}","listeners[0].host":"0.0.0.0:{{server.build.default.port}}","servers.*.address":{"127.0.0.1":"{{config.docker.interface}}","localhost":"{{config.docker.interface}}"}}}},"startup":{"done":"Listening on ","userInteraction":["Listening on /0.0.0.0:25577"]},"stop":"end","logs":{"custom":false,"location":"proxy.log.0"},"extends":null},"startup":"java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}","script":{"privileged":true,"install":"#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar","entry":"ash","container":"alpine:3.9","extends":null},"created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nests/1":{"get":{"tags":["Application - Nests"],"summary":"Nest details","operationId":"get-nest-details","description":"Retrieves the specified nests\n\n# Available include parameters\n| Parameter | Description |\n|-----------|---------------------------------|\n| eggs | List of eggs in the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"author":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"nest","attributes":{"id":1,"uuid":"58bde975-ec57-4af2-b241-1426ac6d6d59","author":"support@pterodactyl.io","name":"Minecraft","description":"Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!","created_at":"2019-12-22T04:42:51+00:00","updated_at":"2019-12-22T04:42:51+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/client/servers/{server}/startup":{"get":{"tags":["Client - Server - Startup"],"summary":"List Variables","operationId":"get-list-variables","description":"Lists all variables on the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"egg_variable\",\n \"attributes\": {\n \"name\": \"Server Jar File\",\n \"description\": \"The name of the server jarfile to run the server with.\",\n \"env_variable\": \"SERVER_JARFILE\",\n \"default_value\": \"server.jar\",\n \"server_value\": \"server.jar\",\n \"is_editable\": true,\n \"rules\": \"required|regex:\\/^([\\\\w\\\\d._-]+)(\\\\.jar)$\\/\"\n }\n },\n {\n \"object\": \"egg_variable\",\n \"attributes\": {\n \"name\": \"Server Version\",\n \"description\": \"The version of Minecraft Vanilla to install. Use \\\"latest\\\" to install the latest version.\",\n \"env_variable\": \"VANILLA_VERSION\",\n \"default_value\": \"latest\",\n \"server_value\": \"latest\",\n \"is_editable\": true,\n \"rules\": \"required|string|between:3,15\"\n }\n }\n ],\n \"meta\": {\n \"startup_command\": \"java -Xms128M -Xmx512M -jar server.jar\",\n \"raw_startup_command\": \"java -Xms128M -Xmx\\{\\{ SERVER_MEMORY }}M -jar {\\{ SERVER_JARFILE }}\"\n }\n}"}},"security":[{"ClientToken":[]}]}},"/api/client":{"get":{"tags":["Client - General"],"summary":"List servers","operationId":"get-list-servers","description":"Lists all servers\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------------|\n| egg | Information about the egg the server uses |\n| subusers | List of subusers on the server |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"server_owner":{"type":"boolean"},"identifier":{"type":"string"},"uuid":{"type":"string"},"name":{"type":"string"},"node":{"type":"string"},"sftp_details":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"}}},"description":{"type":"string"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"is_suspended":{"type":"boolean"},"is_installing":{"type":"boolean"},"relationships":{"type":"object","properties":{"allocations":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}}}}}}}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"server","attributes":{"server_owner":true,"identifier":"1a7ce997","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","name":"Gaming","node":"Test","sftp_details":{"ip":"pterodactyl.file.properties","port":2022},"description":"Matt from Wii Sports","limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0},"feature_limits":{"databases":5,"allocations":5,"backups":2},"is_suspended":false,"is_installing":false,"relationships":{"allocations":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","ip_alias":null,"port":25565,"notes":null,"is_default":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}]}}}}],"meta":{"pagination":{"total":1,"count":1,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}":{"get":{"tags":["Client - Server"],"summary":"Server details","operationId":"get-server-details","description":"Retrieves information about the specified server\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------------|\n| egg | Information about the egg the server uses |\n| subusers | List of subusers on the server |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"server_owner":{"type":"boolean"},"identifier":{"type":"string"},"uuid":{"type":"string"},"name":{"type":"string"},"node":{"type":"string"},"sftp_details":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"}}},"description":{"type":"string"},"limits":{"type":"object","properties":{"memory":{"type":"integer"},"swap":{"type":"integer"},"disk":{"type":"integer"},"io":{"type":"integer"},"cpu":{"type":"integer"}}},"feature_limits":{"type":"object","properties":{"databases":{"type":"integer"},"allocations":{"type":"integer"},"backups":{"type":"integer"}}},"is_suspended":{"type":"boolean"},"is_installing":{"type":"boolean"},"relationships":{"type":"object","properties":{"allocations":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}}}}}}}}},"meta":{"type":"object","properties":{"is_server_owner":{"type":"boolean"},"user_permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server","attributes":{"server_owner":true,"identifier":"1a7ce997","uuid":"1a7ce997-259b-452e-8b4e-cecc464142ca","name":"Wuhu Island","node":"Test","sftp_details":{"ip":"pterodactyl.file.properties","port":2022},"description":"Matt from Wii Sports","limits":{"memory":512,"swap":0,"disk":200,"io":500,"cpu":0},"feature_limits":{"databases":5,"allocations":5,"backups":2},"is_suspended":false,"is_installing":false,"relationships":{"allocations":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","ip_alias":null,"port":25565,"notes":null,"is_default":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}]}}},"meta":{"is_server_owner":true,"user_permissions":["*","admin.websocket.errors","admin.websocket.install"]}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/websocket":{"get":{"tags":["Client - Server"],"summary":"Console details","operationId":"get-console-details","description":"Generates credentials to establish a websocket\n\n## How to connect\n1. Connect to the websocket address (in this example \"wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws\")\n2. Send the token to the websocket like this: `{\"event\":\"auth\",\"args\":[\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij...\"]}`\n\n* Tokens last about 10-15 minutes, and the websocket will notify you once you need to send a new token with `{\"event\":\"token expiring\"}` and `{\"event\":\"token expired\"}`\n\n## Things you can send\n* `{\"event\":\"auth\",\"args\":[\"\"]}` # Authenticate with websocket\n* `{\"event\":\"send stats\",\"args\":[null]}` # Request stats\n* `{\"event\":\"send logs\",\"args\":[null]}` # Request logs\n* `{\"event\":\"set state\",\"args\":[\"\"]}` # Send power action\n* `{\"event\":\"send command\",\"args\":[\"\"]}` # Send command\n\n## Things you'll receive\n* `{\"event\":\"auth success\"}` # Upon successful websocket authentication\n* `{\"event\":\"status\",\"args\":[\"offline\"]}` # Status updates of the server\n* `{\"event\":\"console output\",\"args\":[\"[14:07:12] [Query Listener #1/INFO]: Query running on 0.0.0.0:25565\"]}` # Logs from server\n* `{\"event\":\"stats\",\"args\":[\"{\\\"memory_bytes\\\":526626816,\\\"memory_limit_bytes\\\":588800000,\\\"cpu_absolute\\\":588.815,\\\"network\\\":{\\\"rx_bytes\\\":1126,\\\"tx_bytes\\\":1126},\\\"state\\\":\\\"stopping\\\",\\\"disk_bytes\\\":128118626}\"]}` # Stats from server\n* `{\"event\":\"token expiring\"}` # Token is expiring soon so request a new one and send it to the websocket\n* `{\"event\":\"token expired\"}` # Token has expired","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"token":{"type":"string"},"socket":{"type":"string"}}}}},"example":{"data":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij...","socket":"wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/resources":{"get":{"tags":["Client - Server"],"summary":"Resource usage","operationId":"get-resource-usage","description":"Retrieves resource utilization of the specified server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"current_state":{"type":"string"},"is_suspended":{"type":"boolean"},"resources":{"type":"object","properties":{"memory_bytes":{"type":"integer"},"cpu_absolute":{"type":"integer"},"disk_bytes":{"type":"integer"},"network_rx_bytes":{"type":"integer"},"network_tx_bytes":{"type":"integer"}}}}}}},"example":{"object":"stats","attributes":{"current_state":"starting","is_suspended":false,"resources":{"memory_bytes":588701696,"cpu_absolute":0,"disk_bytes":130156361,"network_rx_bytes":694220,"network_tx_bytes":337090}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/command":{"post":{"tags":["Client - Server"],"summary":"Send command","operationId":"post-send-command","description":"Sends a command to the server\n\nThe server must be online to send a command to it. You will get HTTP 502 is the server if not online.","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string","description":"Command to send"}},"required":["command"]},"example":{"command":"say CodeCo says Hi!"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/power":{"post":{"tags":["Client - Server"],"summary":"Change power state","operationId":"post-change-power-state","description":"Sends a power signal to the server\n\n## Signals\n| Signal | Description |\n|---------|----------------------------------|\n| start | Starts the server |\n| stop | Gracefully stops the server |\n| restart | Stops then starts the server |\n| kill | Instantly end the server process |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signal":{"type":"string","description":"Power signal to send"}},"required":["signal"]},"example":{"signal":"start"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/permissions":{"get":{"tags":["Client - General"],"summary":"Show permissions","operationId":"get-show-permissions","description":"Retries all available permissions\n\nThis is used for the frontend","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"permissions":{"type":"object","properties":{"websocket":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"connect":{"type":"string"}}}}},"control":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"console":{"type":"string"},"start":{"type":"string"},"stop":{"type":"string"},"restart":{"type":"string"}}}}},"user":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"}}}}},"file":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"},"archive":{"type":"string"},"sftp":{"type":"string"}}}}},"backup":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"},"download":{"type":"string"}}}}},"allocation":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"read":{"type":"string"},"create":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"}}}}},"startup":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"read":{"type":"string"},"update":{"type":"string"}}}}},"database":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"},"view_password":{"type":"string"}}}}},"schedule":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"create":{"type":"string"},"read":{"type":"string"},"update":{"type":"string"},"delete":{"type":"string"}}}}},"settings":{"type":"object","properties":{"description":{"type":"string"},"keys":{"type":"object","properties":{"rename":{"type":"string"},"reinstall":{"type":"string"}}}}}}}}}}},"example":{"object":"system_permissions","attributes":{"permissions":{"websocket":{"description":"Allows the user to connect to the server websocket, giving them access to view console output and realtime server stats.","keys":{"connect":"Allows a user to connect to the websocket instance for a server to stream the console."}},"control":{"description":"Permissions that control a user's ability to control the power state of a server, or send commands.","keys":{"console":"Allows a user to send commands to the server instance via the console.","start":"Allows a user to start the server if it is stopped.","stop":"Allows a user to stop a server if it is running.","restart":"Allows a user to perform a server restart. This allows them to start the server if it is offline, but not put the server in a completely stopped state."}},"user":{"description":"Permissions that allow a user to manage other subusers on a server. They will never be able to edit their own account, or assign permissions they do not have themselves.","keys":{"create":"Allows a user to create new subusers for the server.","read":"Allows the user to view subusers and their permissions for the server.","update":"Allows a user to modify other subusers.","delete":"Allows a user to delete a subuser from the server."}},"file":{"description":"Permissions that control a user's ability to modify the filesystem for this server.","keys":{"create":"Allows a user to create additional files and folders via the Panel or direct upload.","read":"Allows a user to view the contents of a directory and read the contents of a file. Users with this permission can also download files.","update":"Allows a user to update the contents of an existing file or directory.","delete":"Allows a user to delete files or directories.","archive":"Allows a user to archive the contents of a directory as well as decompress existing archives on the system.","sftp":"Allows a user to connect to SFTP and manage server files using the other assigned file permissions."}},"backup":{"description":"Permissions that control a user's ability to generate and manage server backups.","keys":{"create":"Allows a user to create new backups for this server.","read":"Allows a user to view all backups that exist for this server.","update":"","delete":"Allows a user to remove backups from the system.","download":"Allows a user to download backups."}},"allocation":{"description":"Permissions that control a user's ability to modify the port allocations for this server.","keys":{"read":"Allows a user to view the allocations assigned to this server.","create":"Allows a user to assign additional allocations to the server.","update":"Allows a user to change the primary server allocation and attach notes to each allocation.","delete":"Allows a user to delete an allocation from the server."}},"startup":{"description":"Permissions that control a user's ability to view this server's startup parameters.","keys":{"read":"","update":""}},"database":{"description":"Permissions that control a user's access to the database management for this server.","keys":{"create":"Allows a user to create a new database for this server.","read":"Allows a user to view the database associated with this server.","update":"Allows a user to rotate the password on a database instance. If the user does not have the view_password permission they will not see the updated password.","delete":"Allows a user to remove a database instance from this server.","view_password":"Allows a user to view the password associated with a database instance for this server."}},"schedule":{"description":"Permissions that control a user's access to the schedule management for this server.","keys":{"create":"","read":"","update":"","delete":""}},"settings":{"description":"Permissions that control a user's access to the settings for this server.","keys":{"rename":"","reinstall":""}}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/databases":{"get":{"tags":["Client - Server - Databases"],"summary":"List databases","operationId":"get-list-databases","description":"Lists all databases on a server\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"object","properties":{"address":{"type":"string"},"port":{"type":"integer"}}},"name":{"type":"string"},"username":{"type":"string"},"connections_from":{"type":"string"},"max_connections":{"type":"integer"}}}}}}}},"example":{"object":"list","data":[{"object":"server_database","attributes":{"id":"bEY4yAD5","host":{"address":"127.0.0.1","port":3306},"name":"s5_perms","username":"u5_QsIAp1jhvS","connections_from":"%","max_connections":0}},{"object":"server_database","attributes":{"id":"E0A0Rw42","host":{"address":"127.0.0.1","port":3306},"name":"s5_coreprotect","username":"u5_2jtJx1nO1d","connections_from":"%","max_connections":0}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Databases"],"summary":"Create database","operationId":"post-create-database","description":"Creates a new database","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"database":{"type":"string"},"remote":{"type":"string"}}},"example":{"database":"bans","remote":"%"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"object","properties":{"address":{"type":"string"},"port":{"type":"integer"}}},"name":{"type":"string"},"username":{"type":"string"},"connections_from":{"type":"string"},"max_connections":{"type":"integer"},"relationships":{"type":"object","properties":{"password":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"password":{"type":"string"}}}}}}}}}}},"example":{"object":"server_database","attributes":{"id":"y9YVxO4V","host":{"address":"127.0.0.1","port":3306},"name":"s5_punishments","username":"u5_aeZqbGdCM9","connections_from":"%","max_connections":0,"relationships":{"password":{"object":"database_password","attributes":{"password":"=lR2orDOcwfKkM=BXb.BVF.C"}}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/list":{"get":{"tags":["Client - Server - File Manager"],"summary":"List files","operationId":"get-list-files","description":"Lists all files of the server\n\n## Available parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| directory | URL encoded path to list files from |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"directory","in":"query","schema":{"type":"string"},"example":"/cache"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"mode":{"type":"string"},"size":{"type":"integer"},"is_file":{"type":"boolean"},"is_symlink":{"type":"boolean"},"is_editable":{"type":"boolean"},"mimetype":{"type":"string"},"created_at":{"type":"string"},"modified_at":{"type":"string"}}}}}}}},"example":{"object":"list","data":[{"object":"file_object","attributes":{"name":"cache","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:20:36+00:00"}},{"object":"file_object","attributes":{"name":"logs","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:42:02+00:00","modified_at":"2020-07-13T12:42:02+00:00"}},{"object":"file_object","attributes":{"name":"plugins","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:07+00:00"}},{"object":"file_object","attributes":{"name":"world","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T13:26:22+00:00","modified_at":"2020-07-13T13:26:22+00:00"}},{"object":"file_object","attributes":{"name":"world_nether","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:15+00:00"}},{"object":"file_object","attributes":{"name":"world_the_end","mode":"drwxr-xr-x","size":4096,"is_file":false,"is_symlink":false,"is_editable":false,"mimetype":"inode/directory","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:15+00:00"}},{"object":"file_object","attributes":{"name":"whitelist.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:07+00:00"}},{"object":"file_object","attributes":{"name":"version_history.json","mode":"-rw-r--r--","size":46,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:08+00:00"}},{"object":"file_object","attributes":{"name":"usercache.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}},{"object":"file_object","attributes":{"name":"spigot.yml","mode":"-rw-r--r--","size":3567,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:42+00:00"}},{"object":"file_object","attributes":{"name":"server.properties","mode":"-rw-r--r--","size":955,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:59+00:00","modified_at":"2020-07-13T12:41:59+00:00"}},{"object":"file_object","attributes":{"name":"server.jar","mode":"-rw-r--r--","size":36175593,"is_file":true,"is_symlink":false,"is_editable":false,"mimetype":"application/jar","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T22:38:46+00:00"}},{"object":"file_object","attributes":{"name":"permissions.yml","mode":"-rw-r--r--","size":0,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"inode/x-empty","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:08+00:00"}},{"object":"file_object","attributes":{"name":"paper.yml","mode":"-rw-r--r--","size":5310,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:42+00:00"}},{"object":"file_object","attributes":{"name":"ops.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}},{"object":"file_object","attributes":{"name":"hs_err_pid25.log","mode":"-rw-r--r--","size":57099,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T20:36:55+00:00"}},{"object":"file_object","attributes":{"name":"help.yml","mode":"-rw-r--r--","size":2576,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:21:07+00:00"}},{"object":"file_object","attributes":{"name":"eula.txt","mode":"-rw-r--r--","size":250,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2019-12-25T05:20:57+00:00"}},{"object":"file_object","attributes":{"name":"commands.yml","mode":"-rw-r--r--","size":598,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:36+00:00"}},{"object":"file_object","attributes":{"name":"bukkit.yml","mode":"-rw-r--r--","size":1053,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"text/plain","created_at":"2020-07-13T12:41:55+00:00","modified_at":"2020-06-12T21:44:36+00:00"}},{"object":"file_object","attributes":{"name":"banned-players.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}},{"object":"file_object","attributes":{"name":"banned-ips.json","mode":"-rw-r--r--","size":2,"is_file":true,"is_symlink":false,"is_editable":true,"mimetype":"application/json","created_at":"2020-07-13T12:42:03+00:00","modified_at":"2020-07-13T12:42:03+00:00"}}]}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/startup/variable":{"put":{"tags":["Client - Server - Startup"],"summary":"Update Variable","operationId":"put-update-variable","description":"Updates the specified variable","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}},"example":{"key":"SERVER_JARFILE","value":"server.jar"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"env_variable":{"type":"string"},"default_value":{"type":"string"},"server_value":{"type":"string"},"is_editable":{"type":"boolean"},"rules":{"type":"string"}}}}},"example":{"object":"egg_variable","attributes":{"name":"Server Jar File","description":"The name of the server jarfile to run the server with.","env_variable":"SERVER_JARFILE","default_value":"server.jar","server_value":"server.jar","is_editable":true,"rules":"required|regex:/^([\\w\\d._-]+)(\\.jar)$/"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules":{"get":{"tags":["Client - Server - Schedules"],"summary":"List schedules","operationId":"get-list-schedules","description":"Lists all schedules added to the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}}}}},"example":{"object":"list","data":[{"object":"server_schedule","attributes":{"id":1,"name":"Daily Reboot","cron":{"day_of_week":"*","day_of_month":"*","hour":"0","minute":"0"},"is_active":true,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T00:00:00+01:00","created_at":"2020-06-12T23:50:14+01:00","updated_at":"2020-06-12T23:53:07+01:00","relationships":{"tasks":{"object":"list","data":[{"object":"schedule_task","attributes":{"id":1,"sequence_id":1,"action":"command","payload":"say Rebooting...","time_offset":0,"is_queued":false,"created_at":"2020-06-12T23:50:46+01:00","updated_at":"2020-06-12T23:52:54+01:00"}},{"object":"schedule_task","attributes":{"id":2,"sequence_id":2,"action":"power","payload":"restart","time_offset":5,"is_queued":false,"created_at":"2020-06-12T23:53:07+01:00","updated_at":"2020-06-12T23:53:07+01:00"}}]}}}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Schedules"],"summary":"Create schedule","operationId":"post-create-schedule","description":"Creates a new schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Friendly name for the schedule"},"is_active":{"type":"boolean","description":"Specifies whether the schedule is active"},"minute":{"type":"string","description":"Cron minute syntax"},"hour":{"type":"string","description":"Cron hour syntax"},"day\\_of\\_week":{"type":"string","description":"Cron day-of-month syntax"},"day\\_of\\_month":{"type":"string","description":"Cron day-of-month syntax"}},"required":["name","minute","hour","day\\_of\\_week","day\\_of\\_month"]},"example":{"name":"Minute Hello","minute":"*","hour":"*","day_of_month":"*","day_of_week":"*","is_active":true}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{}}}}}}}}}},"example":{"object":"server_schedule","attributes":{"id":4,"name":"Minute Hello","cron":{"day_of_week":"*","day_of_month":"*","hour":"*","minute":"*"},"is_active":true,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T15:17:00+01:00","created_at":"2020-06-13T15:16:45+01:00","updated_at":"2020-06-13T15:16:45+01:00","relationships":{"tasks":{"object":"list","data":[]}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/network/allocations":{"get":{"tags":["Client - Server - Network"],"summary":"List allocations","operationId":"get-list-allocations","description":"Retrieves the network information for the specified server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}}}}},"example":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","ip_alias":null,"port":25565,"notes":null,"is_default":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Network"],"summary":"Assign allocation","operationId":"post-assign-allocation","description":"Automatically assigns a new allocation if auto-assign is enabled on the instance","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"is_default":{"type":"boolean"}}}}},"example":{"object":"allocation","attributes":{"id":6,"ip":"45.86.168.218","ip_alias":null,"port":25570,"notes":null,"is_default":false}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/network/allocations/2":{"post":{"tags":["Client - Server - Network"],"summary":"Set allocation note","operationId":"post-set-allocation-note","description":"Sets a note for the allocation\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------|-----------|--------|---------------------|-------|\n| notes | required | string | Note for allocation | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"notes":{"type":"string"}}},"example":{"notes":"Votifier"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string"},"is_default":{"type":"boolean"}}}}},"example":{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":false}}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Server - Network"],"summary":"Unassign allocation","operationId":"delete-unassign-allocation","description":"Deletes the specified non-primary allocation","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string"},"detail":{"type":"string"}}}}}},"example":{"errors":[{"code":"DisplayException","status":"400","detail":"Cannot delete the primary allocation for a server."}]}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/network/allocations/1/primary":{"post":{"tags":["Client - Server - Network"],"summary":"Set primary allocation","operationId":"post-set-primary-allocation","description":"Sets the primary allocation","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"ip_alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string"},"is_default":{"type":"boolean"}}}}},"example":{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","ip_alias":null,"port":25566,"notes":"Votifier","is_default":true}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/users":{"get":{"tags":["Client - Server - Users"],"summary":"List Users","operationId":"get-list-users","description":"Lists all users added to the server, along with details about them and their permissions","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}}}}},"example":{"object":"list","data":[{"object":"server_subuser","attributes":{"uuid":"73f233ca-99e0-47a9-bd46-efd3296d7ad9","username":"subuser1uxk","email":"subuser1@example.com","image":"https://gravatar.com/avatar/c0da5391b64449c1ecbfd4349184377c","2fa_enabled":false,"created_at":"2020-06-12T23:18:43+01:00","permissions":["control.console","control.start","control.stop","control.restart","user.create","user.update","user.delete","user.read","file.create","file.read","file.update","file.delete","file.archive","file.sftp","backup.create","backup.read","backup.delete","backup.update","backup.download","allocation.update","startup.update","startup.read","database.create","database.read","database.update","database.delete","database.view_password","schedule.create","schedule.read","schedule.update","settings.rename","schedule.delete","settings.reinstall","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"1287632d-9224-40c0-906e-f543423400bc","username":"subuser3bvo","email":"subuser3@example.com","image":"https://gravatar.com/avatar/8b28d32aaa64a1564450d16f71a81f65","2fa_enabled":false,"created_at":"2020-07-13T14:27:46+01:00","permissions":["control.console","control.start","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"2fcb6f7e-342a-423a-93a4-6111a237c0c7","username":"geboc70057d6r","email":"geboc70057@djemail.net","image":"https://gravatar.com/avatar/354d25d88e2c73b9f8d8e9bb8f1bf15e","2fa_enabled":false,"created_at":"2020-07-13T14:36:44+01:00","permissions":["control.console","control.start","websocket.connect"]}},{"object":"server_subuser","attributes":{"uuid":"b20e4e11-550f-4c52-893d-94fc8bc46a06","username":"testidq","email":"test@example.com","image":"https://gravatar.com/avatar/55502f40dc8b7c769880b10874abc9d0","2fa_enabled":false,"created_at":"2020-07-19T13:48:38+01:00","permissions":["control.*","websocket.connect"]}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Users"],"summary":"Create User","operationId":"post-create-user","description":"Adds a user to the server\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------------|-----------|--------|------------------------------------|-------|\n| email | required | string | Email address of the user | |\n| permissions | required | object | Permissions that user is permitted | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}},"example":{"email":"subuser2@example.com","permissions":["control.console","control.start"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/backups":{"get":{"tags":["Client - Server - Backups"],"summary":"List backups","operationId":"get-list-backups","description":"Retrieves a list of backups","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"ignored_files":{"type":"array","items":{}},"sha256_hash":{"type":"string"},"bytes":{"type":"integer"},"created_at":{"type":"string"},"completed_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"backup","attributes":{"uuid":"904df120-a66f-4375-a4ae-40eedbeae630","name":"Quick Backup","ignored_files":[],"sha256_hash":"7c20d6a269b441a9dfd044e3f8ad13d77c09c83af8832d29ad603084a9a63726","bytes":114402862,"created_at":"2020-06-13T05:21:01+01:00","completed_at":"2020-06-13T05:21:04+01:00"}},{"object":"backup","attributes":{"uuid":"63087048-eada-419c-ad72-803c1c949cac","name":"Backup at 2020-07-19 16:21:34","ignored_files":[],"sha256_hash":"39bf93b9d8aee45316fa7ec8bbed0530904558851fa8e712452845c969873b16","bytes":114567250,"created_at":"2020-07-19T16:21:34+01:00","completed_at":"2020-07-19T16:21:35+01:00"}}],"meta":{"pagination":{"total":2,"count":2,"per_page":20,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Backups"],"summary":"Create backup","operationId":"post-create-backup","description":"Creates a new backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"ignored_files":{"type":"array","items":{}},"sha256_hash":{"type":"string","nullable":true},"bytes":{"type":"integer"},"created_at":{"type":"string"},"completed_at":{"type":"string","nullable":true}}}}},"example":{"object":"backup","attributes":{"uuid":"63087048-eada-419c-ad72-803c1c949cac","name":"Backup at 2020-07-19 16:21:34","ignored_files":[],"sha256_hash":null,"bytes":0,"created_at":"2020-07-19T16:21:34+01:00","completed_at":null}}}}}},"security":[{"ClientToken":[]}]}},"/api/application/users":{"get":{"tags":["Application - Users"],"summary":"List users","operationId":"get-list-users","description":"Retrieves all users\n\n## Available Include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |\n\n## Filters\n| Parameter |\n|-------------|\n| email |\n| uuid |\n| username |\n| external_id |\n\n## Sort by\n| Parameter |\n|-------------|\n| id |\n| uuid |","responses":{"200":{"description":"// GET /api/application/users?filter%5Bemail%5D=dane%40daneeveritt.com\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"user\",\n \"attributes\": {\n \"id\": 27,\n \"external_id\": null,\n \"uuid\": \"18528bb9-8f60-45e2-adc6-f72611559fd7\",\n \"username\": \"hodor7wm\",\n \"email\": \"hodor@example.com\",\n \"first_name\": \"Server\",\n \"last_name\": \"Subuser\",\n \"language\": \"en\",\n \"root_admin\": false,\n \"2fa\": false,\n \"created_at\": \"2020-08-19T03:23:35+00:00\",\n \"updated_at\": \"2020-08-19T03:23:35+00:00\"\n }\n },\n {\n \"object\": \"user\",\n \"attributes\": {\n \"id\": 26,\n \"external_id\": null,\n \"uuid\": \"b83673f6-3387-4a37-97cd-dd3a4f508343\",\n \"username\": \"testfz0\",\n \"email\": \"test@example.com\",\n \"first_name\": \"Server\",\n \"last_name\": \"Subuser\",\n \"language\": \"en\",\n \"root_admin\": false,\n \"2fa\": false,\n \"created_at\": \"2020-08-19T03:15:51+00:00\",\n \"updated_at\": \"2020-08-19T03:15:51+00:00\"\n }\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"total\": 2,\n \"count\": 2,\n \"per_page\": 100,\n \"current_page\": 1,\n \"total_pages\": 1,\n \"links\": {}\n }\n }\n}"}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Users"],"summary":"Create user","operationId":"post-create-user","description":"Creates a new user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"}}},"example":{"email":"example10@example.com","username":"exampleuser","first_name":"Example","last_name":"User"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string","nullable":true},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":9,"external_id":null,"uuid":"dac03ece-fd51-4e4b-bd4f-a79e3b2794f9","username":"exampleuser","email":"example10@example.com","first_name":"Example","last_name":"User","language":"en","root_admin":false,"2fa":false,"created_at":"2020-10-29T01:25:12+00:00","updated_at":"2020-10-29T01:25:12+00:00"},"meta":{"resource":"https://pterodactyl.file.properties/api/application/users/9"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes":{"get":{"tags":["Application - Nodes"],"summary":"List nodes","operationId":"get-list-nodes","description":"Retrieves a list of nodes\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------------------|\n| allocations | List of allocations added to the node |\n| location | Information about the location the node is assigned to |\n| servers | List of servers on the node |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"node","attributes":{"id":1,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","public":true,"name":"Test","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/srv/daemon-data","created_at":"2019-12-22T04:44:51+00:00","updated_at":"2019-12-22T04:44:51+00:00"}},{"object":"node","attributes":{"id":3,"uuid":"71b15cf6-909a-4b60-aa04-abb4c8f98f61","public":true,"name":"2","description":"e","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":100,"memory_overallocate":0,"disk":100,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/var/lib/pterodactyl/volumes","created_at":"2020-06-23T04:50:37+00:00","updated_at":"2020-06-23T04:50:37+00:00"}}],"meta":{"pagination":{"total":2,"count":2,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Nodes"],"summary":"Create node","operationId":"post-create-node","description":"Creates a new node","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_listen":{"type":"integer"}}},"example":{"name":"New Node","location_id":1,"fqdn":"node2.example.com","scheme":"https","memory":10240,"memory_overallocate":0,"disk":50000,"disk_overallocate":0,"upload_size":100,"daemon_sftp":2022,"daemon_listen":8080}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"allocated_resources":{"type":"object","properties":{"memory":{"type":"integer"},"disk":{"type":"integer"}}}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"node","attributes":{"id":4,"uuid":"4158cfe9-2aa8-4812-bf6e-d88beeb08e98","public":true,"name":"New Node","description":null,"location_id":1,"fqdn":"node2.example.com","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":10240,"memory_overallocate":0,"disk":50000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/var/lib/pterodactyl/volumes","created_at":"2020-10-29T01:17:38+00:00","updated_at":"2020-10-29T01:17:38+00:00","allocated_resources":{"memory":0,"disk":0}},"meta":{"resource":"https://pterodactyl.file.properties/api/application/nodes/4"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/locations":{"get":{"tags":["Application - Locations"],"summary":"List locations","operationId":"get-list-locations","description":"Retrieves all locations\n\n# Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| nodes | List of nodes assigned to the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"location","attributes":{"id":1,"short":"GB","long":"London Datacenter","updated_at":"2020-06-13T21:16:58+00:00","created_at":"2019-12-22T04:44:18+00:00"}}],"meta":{"pagination":{"total":1,"count":1,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Locations"],"summary":"Create location","operationId":"post-create-location","description":"Creates a new location","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"short":{"type":"string","description":"Location identifier"},"long":{"type":"string","description":"Location description"}},"required":["short"]},"example":{"short":"GB","long":"London Datacenter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}},"meta":{"type":"object","properties":{"resource":{"type":"string"}}}}},"example":{"object":"location","attributes":{"id":3,"short":"G","long":"London Datacenter","updated_at":"2020-06-13T20:44:48+00:00","created_at":"2020-06-13T20:44:48+00:00"},"meta":{"resource":"https://pterodactyl.file.properties/api/application/locations/3"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/locations/1":{"get":{"tags":["Application - Locations"],"summary":"Location details","operationId":"get-location-details","description":"Retrieves the specified location\n\n# Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| nodes | List of nodes assigned to the location |\n| servers | List of servers in the location |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"location","attributes":{"id":1,"short":"Test","long":"Test","updated_at":"2019-12-22T04:44:18+00:00","created_at":"2019-12-22T04:44:18+00:00"}}}}}},"security":[{"ApplicationToken":[]}]},"patch":{"tags":["Application - Locations"],"summary":"Update location","operationId":"patch-update-location","description":"Updates the specified location","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"short":{"type":"string"},"long":{"type":"string"}}},"example":{"short":"GB","long":"London Datacenter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"short":{"type":"string"},"long":{"type":"string"},"updated_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"object":"location","attributes":{"id":1,"short":"GB","long":"London Datacenter","updated_at":"2020-06-13T21:16:58+00:00","created_at":"2019-12-22T04:44:18+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes/1":{"get":{"tags":["Application - Nodes"],"summary":"Node details","operationId":"get-node-details","description":"Retrieves the specified node\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------------------|\n| allocations | List of allocations added to the node |\n| location | Information about the location the node is assigned to |\n| servers | List of servers on the node |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"node","attributes":{"id":1,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","public":true,"name":"Test","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/srv/daemon-data","created_at":"2019-12-22T04:44:51+00:00","updated_at":"2019-12-22T04:44:51+00:00"}}}}}},"security":[{"ApplicationToken":[]}]},"patch":{"tags":["Application - Nodes"],"summary":"Update node","operationId":"patch-update-node","description":"Updates the node details","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_listen":{"type":"integer"}}},"example":{"name":"Test Renamed","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_sftp":2022,"daemon_listen":8080}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"uuid":{"type":"string"},"public":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"location_id":{"type":"integer"},"fqdn":{"type":"string"},"scheme":{"type":"string"},"behind_proxy":{"type":"boolean"},"maintenance_mode":{"type":"boolean"},"memory":{"type":"integer"},"memory_overallocate":{"type":"integer"},"disk":{"type":"integer"},"disk_overallocate":{"type":"integer"},"upload_size":{"type":"integer"},"daemon_listen":{"type":"integer"},"daemon_sftp":{"type":"integer"},"daemon_base":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"mounts":{"type":"array","items":{}},"allocated_resources":{"type":"object","properties":{"memory":{"type":"integer"},"disk":{"type":"integer"}}}}}}},"example":{"object":"node","attributes":{"id":1,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","public":true,"name":"Test Renamed","description":"Test","location_id":1,"fqdn":"pterodactyl.file.properties","scheme":"https","behind_proxy":false,"maintenance_mode":false,"memory":2048,"memory_overallocate":0,"disk":5000,"disk_overallocate":0,"upload_size":100,"daemon_listen":8080,"daemon_sftp":2022,"daemon_base":"/var/lib/pterodactyl/volumes","created_at":"2019-12-22T04:44:51+00:00","updated_at":"2020-10-29T01:20:23+00:00","mounts":[],"allocated_resources":{"memory":640,"disk":700}}}}}}},"security":[{"ApplicationToken":[]}]},"delete":{"tags":["Application - Nodes"],"summary":"Delete node","operationId":"delete-delete-node","description":"Deletes the specified node","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes/1/configuration":{"get":{"tags":["Application - Nodes"],"summary":"Node configuration","operationId":"get-node-configuration","description":"Displays the Wings configuration","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"debug":{"type":"boolean"},"uuid":{"type":"string"},"token_id":{"type":"string"},"token":{"type":"string"},"api":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"integer"},"ssl":{"type":"object","properties":{"enabled":{"type":"boolean"},"cert":{"type":"string"},"key":{"type":"string"}}},"upload_limit":{"type":"integer"}}},"system":{"type":"object","properties":{"data":{"type":"string"},"sftp":{"type":"object","properties":{"bind_port":{"type":"integer"}}}}},"remote":{"type":"string"}}},"example":{"debug":false,"uuid":"1046d1d1-b8ef-4771-82b1-2b5946d33397","token_id":"iAcosCn1KCAgVjVO","token":"FanPzLCptUxkGow3vi7Z","api":{"host":"0.0.0.0","port":8080,"ssl":{"enabled":true,"cert":"/etc/letsencrypt/live/pterodactyl.file.properties/fullchain.pem","key":"/etc/letsencrypt/live/pterodactyl.file.properties/privkey.pem"},"upload_limit":100},"system":{"data":"/srv/daemon-data","sftp":{"bind_port":2022}},"remote":"https://pterodactyl.file.properties"}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/1":{"get":{"tags":["Application - Users"],"summary":"User details","operationId":"get-user-details","description":"Retrieves the specified user\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":1,"external_id":"RemoteId1","uuid":"4de5a357-ed95-426b-aec1-8c328cfe9751","username":"admin","email":"example@example.com","first_name":"Admin","last_name":"User","language":"en","root_admin":true,"2fa":false,"created_at":"2019-12-22T04:43:29+00:00","updated_at":"2020-07-13T13:10:23+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/locations/3":{"delete":{"tags":["Application - Locations"],"summary":"Delete location","operationId":"delete-delete-location","description":"Deletes the specified location","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/external/RemoteId1":{"get":{"tags":["Application - Users"],"summary":"User details","operationId":"get-user-details","description":"Retrieves the specified user by its external ID\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string"},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":1,"external_id":"RemoteId1","uuid":"4de5a357-ed95-426b-aec1-8c328cfe9751","username":"admin","email":"example@example.com","first_name":"Admin","last_name":"User","language":"en","root_admin":true,"2fa":false,"created_at":"2019-12-22T04:43:29+00:00","updated_at":"2020-07-13T13:10:23+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/application/nodes/1/allocations":{"get":{"tags":["Application - Nodes - Allocations"],"summary":"List allocations","operationId":"get-list-allocations","description":"Lists allocations added to the node\n\n## Available include parameters\n| Parameter | Description |\n|-----------|--------------------------------------------------------|\n| node | Information about the node the allocation belongs to |\n| server | Information about the server the allocation belongs to |","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"ip":{"type":"string"},"alias":{"type":"string","nullable":true},"port":{"type":"integer"},"notes":{"type":"string","nullable":true},"assigned":{"type":"boolean"}}}}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"per_page":{"type":"integer"},"current_page":{"type":"integer"},"total_pages":{"type":"integer"},"links":{"type":"object","properties":{}}}}}}}},"example":{"object":"list","data":[{"object":"allocation","attributes":{"id":1,"ip":"45.86.168.218","alias":null,"port":25565,"notes":null,"assigned":true}},{"object":"allocation","attributes":{"id":2,"ip":"45.86.168.218","alias":null,"port":25566,"notes":"Votifier","assigned":true}},{"object":"allocation","attributes":{"id":3,"ip":"45.86.168.218","alias":null,"port":25567,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":4,"ip":"45.86.168.218","alias":null,"port":25568,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":5,"ip":"45.86.168.218","alias":null,"port":25569,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":6,"ip":"45.86.168.218","alias":null,"port":25570,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":8,"ip":"10.0.0.1","alias":null,"port":25565,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":9,"ip":"45.86.168.218","alias":null,"port":25571,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":10,"ip":"45.86.168.218","alias":null,"port":25572,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":11,"ip":"45.86.168.218","alias":null,"port":25573,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":12,"ip":"45.86.168.218","alias":null,"port":25574,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":13,"ip":"45.86.168.218","alias":null,"port":25575,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":14,"ip":"45.86.168.218","alias":null,"port":25576,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":15,"ip":"45.86.168.218","alias":null,"port":25577,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":16,"ip":"45.86.168.218","alias":null,"port":25578,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":17,"ip":"45.86.168.218","alias":null,"port":25579,"notes":null,"assigned":false}},{"object":"allocation","attributes":{"id":18,"ip":"45.86.168.218","alias":null,"port":25580,"notes":null,"assigned":false}}],"meta":{"pagination":{"total":17,"count":17,"per_page":50,"current_page":1,"total_pages":1,"links":{}}}}}}}},"security":[{"ApplicationToken":[]}]},"post":{"tags":["Application - Nodes - Allocations"],"summary":"Create allocations","operationId":"post-create-allocations","description":"Adds an allocation to the node","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string","description":"IP address for the allocations"},"ports":{"type":"object","description":"Object containing the ports to add"}},"required":["ip","ports"]},"example":{"ip":"10.0.0.1","ports":["25565"]}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/9":{"patch":{"tags":["Application - Users"],"summary":"Update user","operationId":"patch-update-user","description":"Updates the user information","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"username":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"password":{"type":"string"}}},"example":{"email":"example10@example.com","username":"exampleuser","first_name":"Example","last_name":"User","language":"en","password":"New Password"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"external_id":{"type":"string","nullable":true},"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"},"root_admin":{"type":"boolean"},"2fa":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":9,"external_id":null,"uuid":"dac03ece-fd51-4e4b-bd4f-a79e3b2794f9","username":"exampleuser","email":"example10@example.com","first_name":"Example","last_name":"User","language":"en","root_admin":false,"2fa":false,"created_at":"2020-10-29T01:25:12+00:00","updated_at":"2020-10-29T01:28:29+00:00"}}}}}},"security":[{"ApplicationToken":[]}]}},"/api/client/servers/{server}/settings/rename":{"post":{"tags":["Client - Server - Settings"],"summary":"Rename server","operationId":"post-rename-server","description":"Renames the server\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|------|-----------|--------|-------------------------|-------|\n| name | required | string | New name for the server | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"}}},"example":{"name":"Gaming"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/settings/reinstall":{"post":{"tags":["Client - Server - Settings"],"summary":"Reinstall server","operationId":"post-reinstall-server","description":"Renames the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/application/nodes/1/allocations/18":{"delete":{"tags":["Application - Nodes - Allocations"],"summary":"Delete allocation","operationId":"delete-delete-allocation","description":"Deletes the specified allocation","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/application/users/8":{"delete":{"tags":["Application - Users"],"summary":"Delete user","operationId":"delete-delete-user","description":"Deletes the specified user","responses":{"204":{"description":"No Content"}},"security":[{"ApplicationToken":[]}]}},"/api/client/servers/{server}/backups/904df120-a66f-4375-a4ae-40eedbeae630":{"get":{"tags":["Client - Server - Backups"],"summary":"Backup details","operationId":"get-backup-details","description":"Retrieves information about the specified backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"},"ignored_files":{"type":"array","items":{}},"sha256_hash":{"type":"string"},"bytes":{"type":"integer"},"created_at":{"type":"string"},"completed_at":{"type":"string"}}}}},"example":{"object":"backup","attributes":{"uuid":"904df120-a66f-4375-a4ae-40eedbeae630","name":"Quick Backup","ignored_files":[],"sha256_hash":"7c20d6a269b441a9dfd044e3f8ad13d77c09c83af8832d29ad603084a9a63726","bytes":114402862,"created_at":"2020-06-13T05:21:01+01:00","completed_at":"2020-06-13T05:21:04+01:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/backups/904df120-a66f-4375-a4ae-40eedbeae630/download":{"get":{"tags":["Client - Server - Backups"],"summary":"Download backup","operationId":"get-download-backup","description":"Generates a download link for a backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"url":{"type":"string"}}}}},"example":{"object":"signed_url","attributes":{"url":"https://pterodactyl.file.properties:8080/download/backup?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5NTE3MjEyNSwibmJmIjoxNTk1MTcxODI1LCJleHAiOjE1OTUxNzMwMjUsImJhY2t1cF91dWlkIjoiOTA0ZGYxMjAtYTY2Zi00Mzc1LWE0YWUtNDBlZWRiZWFlNjMwIiwic2VydmVyX3V1aWQiOiIxYTdjZTk5Ny0yNTliLTQ1MmUtOGI0ZS1jZWNjNDY0MTQyY2EiLCJ1bmlxdWVfaWQiOiJKN1lIQUFUZzVoYVg4M1VOIn0.0zSozCFyjsYjGjUiPS76wM1WXX09FecNxdSZnj6rNt4"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/backups/63087048-eada-419c-ad72-803c1c949cac":{"delete":{"tags":["Client - Server - Backups"],"summary":"Delete backup","operationId":"delete-delete-backup","description":"Deletes the specified backup","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/users/60a7aec3-e17d-4aa9-abb3-56d944d204b4":{"get":{"tags":["Client - Server - Users"],"summary":"User details","operationId":"get-user-details","description":"Retrieves information about a specific user","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Server - Users"],"summary":"Update user","operationId":"post-update-user","description":"Updates the specified user\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------------|-----------|--------|------------------------------------|-------|\n| permissions | required | object | Permissions that user is permitted | |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"permissions":{"type":"array","items":{"type":"string"}}}},"example":{"permissions":["control.console","control.start"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"uuid":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"image":{"type":"string"},"2fa_enabled":{"type":"boolean"},"created_at":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"server_subuser","attributes":{"uuid":"60a7aec3-e17d-4aa9-abb3-56d944d204b4","username":"subuser2jvc","email":"subuser2@example.com","image":"https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8","2fa_enabled":false,"created_at":"2020-06-12T23:31:41+01:00","permissions":["control.console","control.start","websocket.connect"]}}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Server - Users"],"summary":"Delete user","operationId":"delete-delete-user","description":"Removes the specified user from the server","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/1":{"get":{"tags":["Client - Server - Schedules"],"summary":"Schedule details","operationId":"get-schedule-details","description":"Retrieves specific schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}}},"example":{"object":"server_schedule","attributes":{"id":1,"name":"Daily Reboot","cron":{"day_of_week":"*","day_of_month":"*","hour":"0","minute":"0"},"is_active":true,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T00:00:00+01:00","created_at":"2020-06-12T23:50:14+01:00","updated_at":"2020-06-12T23:53:07+01:00","relationships":{"tasks":{"object":"list","data":[{"object":"schedule_task","attributes":{"id":1,"sequence_id":1,"action":"command","payload":"say Rebooting...","time_offset":0,"is_queued":false,"created_at":"2020-06-12T23:50:46+01:00","updated_at":"2020-06-12T23:52:54+01:00"}},{"object":"schedule_task","attributes":{"id":2,"sequence_id":2,"action":"power","payload":"restart","time_offset":5,"is_queued":false,"created_at":"2020-06-12T23:53:07+01:00","updated_at":"2020-06-12T23:53:07+01:00"}}]}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/2":{"post":{"tags":["Client - Server - Schedules"],"summary":"Update schedule","operationId":"post-update-schedule","description":"Updates the specified schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Friendly name for the schedule"},"is_active":{"type":"boolean","description":"Specifies whether the schedule is active"},"minute":{"type":"string","description":"Cron minute syntax"},"hour":{"type":"string","description":"Cron hour syntax"},"day_of_week":{"type":"string","description":"Cron day-of-month syntax"},"day_of_month":{"type":"string","description":"Cron day-of-month syntax"}},"required":["name","minute","hour","day_of_week","day_of_month"]},"example":{"name":"Hourly Hello","minute":"0","hour":"*","day_of_month":"*","day_of_week":"*"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"cron":{"type":"object","properties":{"day_of_week":{"type":"string"},"day_of_month":{"type":"string"},"hour":{"type":"string"},"minute":{"type":"string"}}},"is_active":{"type":"boolean"},"is_processing":{"type":"boolean"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"relationships":{"type":"object","properties":{"tasks":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{}}}}}}}}}},"example":{"object":"server_schedule","attributes":{"id":2,"name":"Hourly Hello","cron":{"day_of_week":"*","day_of_month":"*","hour":"*","minute":"0"},"is_active":false,"is_processing":false,"last_run_at":null,"next_run_at":"2020-06-13T16:00:00+01:00","created_at":"2020-06-13T15:05:25+01:00","updated_at":"2020-06-13T15:14:07+01:00","relationships":{"tasks":{"object":"list","data":[]}}}}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Server - Schedules"],"summary":"Delete schedule","operationId":"delete-delete-schedule","description":"Deletes the specified schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/7/tasks":{"post":{"tags":["Client - Server - Schedules"],"summary":"Create task","operationId":"post-create-task","description":"Creates a new task on the specified schedule","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"Type of action to use"},"payload":{"type":"string","description":"Payload to send"},"time_offset":{"type":"string","description":"Offset in seconds"}},"required":["action","payload","time_offset"]},"example":{"action":"command","payload":"say Hello World","time_offset":"0"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"schedule_task","attributes":{"id":6,"sequence_id":1,"action":"command","payload":"say Hello World","time_offset":0,"is_queued":false,"created_at":"2020-10-29T01:09:03+00:00","updated_at":"2020-10-29T01:09:03+00:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/7/tasks/6":{"post":{"tags":["Client - Server - Schedules"],"summary":"Update task","operationId":"post-update-task","description":"Updates the specified task","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"Type of action to use"},"payload":{"type":"string","description":"Payload to send"},"time_offset":{"type":"string","description":"Offset in seconds"}},"required":["action","payload","time_offset"]},"example":{"action":"command","payload":"say Updated Statement!?","time_offset":"0"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"sequence_id":{"type":"integer"},"action":{"type":"string"},"payload":{"type":"string"},"time_offset":{"type":"integer"},"is_queued":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"object":"schedule_task","attributes":{"id":6,"sequence_id":1,"action":"command","payload":"say Updated Statement!?","time_offset":0,"is_queued":false,"created_at":"2020-10-29T01:09:03+00:00","updated_at":"2020-10-29T01:10:30+00:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/schedules/2/tasks/3":{"delete":{"tags":["Client - Server - Schedules"],"summary":"Delete task","operationId":"delete-delete-task","description":"Deletes the specified task","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/contents":{"get":{"tags":["Client - Server - File Manager"],"summary":"Get file contents","operationId":"get-get-file-contents","description":"Displays the contents of the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|--------------------------------------|\n| file | URL encoded path to the desired file |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"file","in":"query","schema":{"type":"string"},"example":"/paper.yml"}],"responses":{"200":{"description":"# This is the main configuration file for Paper.\n# As you can see, there's tons to configure. Some options may impact gameplay, so use\n# with caution, and make sure you know what each option does before configuring.\n# \n# If you need help with the configuration or have any questions related to Paper,\n# join us in our Discord or IRC channel.\n# \n# Discord: https://paperdiscord.emc.gs\n# IRC: #paper @ irc.spi.gt ( http://irc.spi.gt/iris/?channels=paper )\n# Website: https://papermc.io/ \n# Docs: https://paper.readthedocs.org/ \n\nverbose: false\nconfig-version: 20\nsettings:\n load-permissions-yml-before-plugins: true\n bungee-online-mode: true\n region-file-cache-size: 256\n incoming-packet-spam-threshold: 300\n save-player-data: true\n use-alternative-luck-formula: false\n suggest-player-names-when-null-tab-completions: true\n enable-player-collisions: true\n save-empty-scoreboard-teams: false\n velocity-support:\n enabled: false\n online-mode: false\n secret: ''\n async-chunks:\n enable: true\n load-threads: -1\n watchdog:\n early-warning-every: 5000\n early-warning-delay: 10000\n spam-limiter:\n tab-spam-increment: 1\n tab-spam-limit: 500\n book-size:\n page-max: 2560\n total-multiplier: 0.98\nmessages:\n no-permission: '&cI''m sorry, but you do not have permission to perform this command.\n Please contact the server administrators if you believe that this is in error.'\n kick:\n authentication-servers-down: ''\n connection-throttle: Connection throttled! Please wait before reconnecting.\n flying-player: Flying is not enabled on this server\n flying-vehicle: Flying is not enabled on this server\ntimings:\n enabled: true\n verbose: true\n server-name-privacy: false\n hidden-config-entries:\n - database\n - settings.bungeecord-addresses\n history-interval: 300\n history-length: 3600\n server-name: Unknown Server\nworld-settings:\n default:\n per-player-mob-spawns: false\n optimize-explosions: false\n portal-search-radius: 128\n disable-teleportation-suffocation-check: false\n fixed-chunk-inhabited-time: -1\n use-vanilla-world-scoreboard-name-coloring: false\n remove-corrupt-tile-entities: false\n enable-treasure-maps: true\n treasure-maps-return-already-discovered: false\n experience-merge-max-value: -1\n prevent-moving-into-unloaded-chunks: false\n max-auto-save-chunks-per-tick: 24\n falling-block-height-nerf: 0\n tnt-entity-height-nerf: 0\n filter-nbt-data-from-spawn-eggs-and-related: true\n max-entity-collisions: 8\n disable-creeper-lingering-effect: false\n duplicate-uuid-resolver: saferegen\n duplicate-uuid-saferegen-delete-range: 32\n prevent-tnt-from-moving-in-water: false\n disable-thunder: false\n skeleton-horse-thunder-spawn-chance: 0.01\n disable-ice-and-snow: false\n count-all-mobs-for-spawning: false\n keep-spawn-loaded-range: 10\n keep-spawn-loaded: true\n auto-save-interval: -1\n armor-stands-do-collision-entity-lookups: true\n non-player-arrow-despawn-rate: -1\n creative-arrow-despawn-rate: -1\n nether-ceiling-void-damage-height: 0\n grass-spread-tick-rate: 1\n water-over-lava-flow-speed: 5\n bed-search-radius: 1\n fix-zero-tick-instant-grow-farms: true\n use-faster-eigencraft-redstone: false\n allow-non-player-entities-on-scoreboards: false\n disable-explosion-knockback: false\n container-update-tick-rate: 1\n parrots-are-unaffected-by-player-movement: false\n armor-stands-tick: true\n spawner-nerfed-mobs-should-jump: false\n entities-target-with-follow-range: false\n allow-leashing-undead-horse: false\n baby-zombie-movement-modifier: 0.5\n mob-spawner-tick-rate: 1\n all-chunks-are-slime-chunks: false\n game-mechanics:\n scan-for-legacy-ender-dragon: true\n disable-pillager-patrols: false\n disable-relative-projectile-velocity: false\n disable-chest-cat-detection: false\n shield-blocking-delay: 5\n disable-end-credits: false\n disable-player-crits: false\n disable-sprint-interruption-on-attack: false\n disable-unloaded-chunk-enderpearl-exploit: true\n max-growth-height:\n cactus: 3\n reeds: 3\n fishing-time-range:\n MinimumTicks: 100\n MaximumTicks: 600\n despawn-ranges:\n soft: 32\n hard: 128\n lightning-strike-distance-limit:\n sound: -1\n impact-sound: -1\n flash: -1\n frosted-ice:\n enabled: true\n delay:\n min: 20\n max: 40\n lootables:\n auto-replenish: false\n restrict-player-reloot: true\n reset-seed-on-fill: true\n max-refills: -1\n refresh-min: 12h\n refresh-max: 2d\n alt-item-despawn-rate:\n enabled: false\n items:\n COBBLESTONE: 300\n hopper:\n cooldown-when-full: true\n disable-move-event: false\n anti-xray:\n enabled: false\n engine-mode: 1\n chunk-edge-mode: 2\n max-chunk-section-index: 3\n update-radius: 2\n hidden-blocks:\n - gold_ore\n - iron_ore\n - coal_ore\n - lapis_ore\n - mossy_cobblestone\n - obsidian\n - chest\n - diamond_ore\n - redstone_ore\n - clay\n - emerald_ore\n - ender_chest\n replacement-blocks:\n - stone\n - oak_planks\n generator-settings:\n flat-bedrock: false\n squid-spawn-height:\n maximum: 0.0"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/download":{"get":{"tags":["Client - Server - File Manager"],"summary":"Download file","operationId":"get-download-file","description":"Generates a one-time link to download the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|------------------------------|\n| file | URL encoded path to the desired file |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"file","in":"query","schema":{"type":"string"},"example":"/eula.txt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"url":{"type":"string"}}}}},"example":{"object":"signed_url","attributes":{"url":"https://pterodactyl.file.properties:8080/download/file?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5NDY0ODEwMCwibmJmIjoxNTk0NjQ3ODAwLCJleHAiOjE1OTQ2NDkwMDAsImZpbGVfcGF0aCI6IlwvZXVsYS50eHQiLCJzZXJ2ZXJfdXVpZCI6IjFhN2NlOTk3LTI1OWItNDUyZS04YjRlLWNlY2M0NjQxNDJjYSIsInVuaXF1ZV9pZCI6IlNvWUdIamNaNmhKUVlieHUifQ.h4eBmxDXf-4GAwVuAWZFU5QTqd62jw7HTre4aKQGpvw"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/rename":{"put":{"tags":["Client - Server - File Manager"],"summary":"Rename file","operationId":"put-rename-file","description":"Renames the specified file(s) or folder(s)","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}}}}}},"example":{"root":"/","files":[{"from":"data","to":"abc"}]}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/copy":{"post":{"tags":["Client - Server - File Manager"],"summary":"Copy file","operationId":"post-copy-file","description":"Copies the specified file","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"string"}}},"example":{"location":"/server.properties"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/write":{"post":{"tags":["Client - Server - File Manager"],"summary":"Write file","operationId":"post-write-file","description":"Writes data to the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|--------------------------------------|\n| file | URL encoded path to the desired file |","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"},{"name":"file","in":"query","schema":{"type":"string"},"example":"/eula.txt"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/compress":{"post":{"tags":["Client - Server - File Manager"],"summary":"Compress file","operationId":"post-compress-file","description":"Compresses the specified file","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}}},"example":{"root":"/","files":["abc"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"mode":{"type":"string"},"size":{"type":"integer"},"is_file":{"type":"boolean"},"is_symlink":{"type":"boolean"},"is_editable":{"type":"boolean"},"mimetype":{"type":"string"},"created_at":{"type":"string"},"modified_at":{"type":"string"}}}}},"example":{"object":"file_object","attributes":{"name":"archive-2020-08-23T220805Z.tar.gz","mode":"-rw-------","size":0,"is_file":true,"is_symlink":false,"is_editable":false,"mimetype":"application/tar+gzip","created_at":"2020-08-23T22:08:05+00:00","modified_at":"2020-08-23T22:08:05+00:00"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/decompress":{"post":{"tags":["Client - Server - File Manager"],"summary":"Decompress file","operationId":"post-decompress-file","description":"Decompresses the selected file","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"file":{"type":"string"}}},"example":{"root":"/","file":"archive-2020-08-23T220655Z.tar.gz"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/delete":{"post":{"tags":["Client - Server - File Manager"],"summary":"Delete file","operationId":"post-delete-file","description":"Deletes the specified file(s) or folder(s)","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"files":{"type":"array","items":{"type":"string"}}}},"example":{"root":"/maps","files":["worlds"]}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/create-folder":{"post":{"tags":["Client - Server - File Manager"],"summary":"Create folder","operationId":"post-create-folder","description":"Creates the specified folder in the specified directory","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"root":{"type":"string"},"name":{"type":"string"}}},"example":{"root":"/maps","name":"worlds"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/files/upload":{"get":{"tags":["Client - Server - File Manager"],"summary":"Upload file","operationId":"get-upload-file","description":"Returns a signed URL used to upload files to the server using POST","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"url":{"type":"string"}}}}},"example":{"object":"signed_url","attributes":{"url":"https://pterodactyl.file.properties:8080/upload/file?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5ODIyMTMyMSwibmJmIjoxNTk4MjIxMDIxLCJleHAiOjE1OTgyMjIyMjEsInNlcnZlcl91dWlkIjoiMWE3Y2U5OTctMjU5Yi00NTJlLThiNGUtY2VjYzQ2NDE0MmNhIiwidW5pcXVlX2lkIjoiNmM2OFdkSkJTVzg0RlBsUiJ9.GJ5681K9ehhPCcXevyxw-RO1jhv4UWg5T8b_P7r6s8Q"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/databases/bEY4yAD5/rotate-password":{"post":{"tags":["Client - Server - Databases"],"summary":"Rotate password","operationId":"post-rotate-password","description":"Changes the password of a specified database","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"string"},"host":{"type":"object","properties":{"address":{"type":"string"},"port":{"type":"integer"}}},"name":{"type":"string"},"username":{"type":"string"},"connections_from":{"type":"string"},"max_connections":{"type":"integer"},"relationships":{"type":"object","properties":{"password":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"password":{"type":"string"}}}}}}}}}}},"example":{"object":"server_database","attributes":{"id":"y9YVxO4V","host":{"address":"127.0.0.1","port":3306},"name":"s5_punishments","username":"u5_aeZqbGdCM9","connections_from":"%","max_connections":0,"relationships":{"password":{"object":"database_password","attributes":{"password":"vnFKXlJ.p77!EiGR+Kd3muB."}}}}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/servers/{server}/databases/y9YVxO4V":{"delete":{"tags":["Client - Server - Databases"],"summary":"Delete database","operationId":"delete-delete-database","description":"Deletes the specified database","parameters":[{"name":"server","in":"path","required":true,"schema":{"type":"string"},"description":"Server identifier (short 8-character ID)","example":"1a7ce997"}],"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/account":{"get":{"tags":["Client - Account"],"summary":"Account details","operationId":"get-account-details","description":"Retrieves information about the account","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"id":{"type":"integer"},"admin":{"type":"boolean"},"username":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"language":{"type":"string"}}}}},"example":{"object":"user","attributes":{"id":1,"admin":true,"username":"admin","email":"example@example.com","first_name":"Admin","last_name":"User","language":"en"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/account/two-factor":{"get":{"tags":["Client - Account"],"summary":"2FA details","operationId":"get-2fa-details","description":"Generates a TOTP QR code image to allow the setup of 2FA","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"image_url_data":{"type":"string"}}}}},"example":{"data":{"image_url_data":"otpauth://totp/Pterodactyl:example%40example.com?secret=LGYOWJEGVRPPGPWATP5ZHOYC7DHAYQ6S&issuer=Pterodactyl"}}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Account"],"summary":"Enable 2FA","operationId":"post-enable-2fa","description":"Enables TOTP 2FA using the QR code generated by the GET request\n\nUses code generated from `GET /account/two-factor`","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"TOTP Code"}},"required":["code"]},"example":{"code":"505134"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"string"}}}}}},"example":{"object":"recovery_tokens","attributes":{"tokens":["MpBjHH8O08","D9H0hktN6L","ho8KiUpeV8","06vZEfrYPf","nFRySZ2ryh","7K1cTrhGoV","n6xpwwlJfv","hAmyCsZxYO","5FiMKFyNpH","IViSFoRFvW"]}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string"},"detail":{"type":"string"}}}}}},"example":{"errors":[{"code":"TwoFactorAuthenticationTokenInvalid","status":"400","detail":"The token provided is not valid."}]}}}}},"security":[{"ClientToken":[]}]},"delete":{"tags":["Client - Account"],"summary":"Disable 2FA","operationId":"delete-disable-2fa","description":"Disables TOTP 2FA on the account","responses":{"204":{"description":"No Content"},"400":{"description":"// Incorrect password\n{\n \"errors\": [\n {\n \"code\": \"BadRequestHttpException\",\n \"status\": \"400\",\n \"detail\": \"An error was encountered while processing this request.\"\n }\n ]\n}"}},"security":[{"ClientToken":[]}]}},"/api/client/account/email":{"put":{"tags":["Client - Account"],"summary":"Update email","operationId":"put-update-email","description":"Updates the email address of the account","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"New email"},"password":{"type":"string","description":"Existing password"}},"required":["email","password"]},"example":{"email":"example@xample.com","password":"Password"}}}},"responses":{"201":{"description":"Successful"},"400":{"description":"// Invalid password\n{\n \"errors\": [\n {\n \"code\": \"InvalidPasswordProvidedException\",\n \"status\": \"400\",\n \"detail\": \"The password provided was invalid for this account.\"\n }\n ]\n}"}},"security":[{"ClientToken":[]}]}},"/api/client/account/password":{"put":{"tags":["Client - Account"],"summary":"Update password","operationId":"put-update-password","description":"Updates the password of the account","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_password":{"type":"string","description":"Existing password"},"password":{"type":"string","description":"New password"},"password_confirmation":{"type":"string","description":"Confirm new password"}},"required":["current_password","password","password_confirmation"]},"example":{"current_password":"Password","password":"password","password_confirmation":"password"}}}},"responses":{"204":{"description":"No Content"}},"security":[{"ClientToken":[]}]}},"/api/client/account/api-keys":{"get":{"tags":["Client - Account"],"summary":"List API keys","operationId":"get-list-api-keys","description":"Retries a list of API keys","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"identifier":{"type":"string"},"description":{"type":"string"},"allowed_ips":{"type":"array","items":{}},"last_used_at":{"type":"string"},"created_at":{"type":"string"}}}}}}}},"example":{"object":"list","data":[{"object":"api_key","attributes":{"identifier":"wwQ5DJ6X1XaFznQS","description":"API Docs","allowed_ips":[],"last_used_at":"2020-06-03T15:04:47+01:00","created_at":"2020-05-18T00:12:43+01:00"}}]}}}}},"security":[{"ClientToken":[]}]},"post":{"tags":["Client - Account"],"summary":"Create API key","operationId":"post-create-api-key","description":"Generates a new API key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","description":"Note for the API key"}},"required":["description"]},"example":{"description":"Restricted IPs","allowed_ips":["127.0.0.1","192.168.0.1"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string"},"attributes":{"type":"object","properties":{"identifier":{"type":"string"},"description":{"type":"string"},"allowed_ips":{"type":"array","items":{"type":"string"}},"last_used_at":{"type":"string","nullable":true},"created_at":{"type":"string"}}},"meta":{"type":"object","properties":{"secret_token":{"type":"string"}}}}},"example":{"object":"api_key","attributes":{"identifier":"yjAZbHMyKrv9YRZ0","description":"Restricted IPs","allowed_ips":["127.0.0.1","192.168.0.1"],"last_used_at":null,"created_at":"2020-08-17T04:44:42+01:00"},"meta":{"secret_token":"wiHiMbmgjLOkA2fPzRD6KdMe7Q9Cqaka"}}}}}},"security":[{"ClientToken":[]}]}},"/api/client/account/api-keys/NWKMYMT2Mrav0Iq2":{"delete":{"tags":["Client - Account"],"summary":"Delete API key","operationId":"delete-delete-api-key","description":"Deletes the specified API key","responses":{"204":{"description":"No Content"},"404":{"description":"// Non existing API key\n{\n \"errors\": [\n {\n \"code\": \"NotFoundHttpException\",\n \"status\": \"404\",\n \"detail\": \"An error was encountered while processing this request.\"\n }\n ]\n}"}},"security":[{"ClientToken":[]}]}}},"components":{"securitySchemes":{"ClientToken":{"type":"http","scheme":"bearer","description":"Client API key (generated at /account/api)"},"ApplicationToken":{"type":"http","scheme":"bearer","description":"Application API key (generated at /admin/api)"}}}} \ No newline at end of file +{ + "openapi": "3.0.3", + "info": { + "title": "Pterodactyl Panel API v1", + "version": "1.0.0", + "description": "REST API for the Pterodactyl Panel. Uses two authentication scopes: **Application API** keys (admin, created in the panel admin area) and **Client API** keys (per-user, created in account settings). All requests must include an `Authorization: Bearer ` header. Responses are JSON." + }, + "servers": [ + { + "url": "{panel}", + "description": "Pterodactyl Panel", + "variables": { + "panel": { + "default": "https://pterodactyl.file.properties", + "description": "Your panel URL" + } + } + } + ], + "tags": [ + { + "name": "Application - Servers", + "description": "Create, update, and delete servers. Requires an application API key." + }, + { + "name": "Application - Servers - Database Management", + "description": "Manage databases attached to servers. Requires an application API key." + }, + { + "name": "Application - Nests", + "description": "List and view nests. Requires an application API key." + }, + { + "name": "Application - Nests - Eggs Management", + "description": "List and view eggs within a nest. Requires an application API key." + }, + { + "name": "Client - Server - Startup", + "description": "View and update server startup variables." + }, + { + "name": "Client - General", + "description": "List servers the authenticated user can access, and view global permissions." + }, + { + "name": "Client - Server", + "description": "Server details, console WebSocket, resource usage, power actions, and command execution." + }, + { + "name": "Client - Server - Databases", + "description": "Create, delete, and rotate passwords for server databases." + }, + { + "name": "Client - Server - File Manager", + "description": "Browse, read, write, copy, rename, compress, and delete server files." + }, + { + "name": "Client - Server - Schedules", + "description": "Manage scheduled tasks (cron jobs) for a server." + }, + { + "name": "Client - Server - Network", + "description": "View and manage server network allocations." + }, + { + "name": "Client - Server - Users", + "description": "Manage subusers and their permissions on a server." + }, + { + "name": "Client - Server - Backups", + "description": "Create, view, download, and delete server backups." + }, + { + "name": "Application - Users", + "description": "Create, update, and delete panel users. Requires an application API key." + }, + { + "name": "Application - Nodes", + "description": "Create, update, and delete nodes. Requires an application API key." + }, + { + "name": "Application - Locations", + "description": "Create, update, and delete locations. Requires an application API key." + }, + { + "name": "Application - Nodes - Allocations", + "description": "Manage port allocations on a node. Requires an application API key." + }, + { + "name": "Client - Server - Settings", + "description": "Rename or reinstall a server." + }, + { + "name": "Client - Account", + "description": "View and update account details, two-factor auth, email, password, and API keys." + } + ], + "paths": { + "/api/application/servers": { + "get": { + "tags": [ + "Application - Servers" + ], + "summary": "List servers", + "operationId": "get-list-servers", + "description": "Retrieves all servers", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "pack": { + "type": "string", + "nullable": true + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "SERVER_JARFILE": { + "type": "string" + }, + "VANILLA_VERSION": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "databases": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "server": { + "type": "integer" + }, + "host": { + "type": "integer" + }, + "database": { + "type": "string" + }, + "username": { + "type": "string" + }, + "remote": { + "type": "string" + }, + "max_connections": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteId1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Wuhu Island", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "pack": null, + "container": { + "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "P_SERVER_LOCATION": "Test", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca" + } + }, + "updated_at": "2020-06-13T04:20:53+00:00", + "created_at": "2019-12-23T06:46:27+00:00", + "relationships": { + "databases": { + "object": "list", + "data": [ + { + "object": "databases", + "attributes": { + "id": 1, + "server": 5, + "host": 4, + "database": "s5_perms", + "username": "u5_QsIAp1jhvS", + "remote": "%", + "max_connections": 0, + "created_at": "2020-06-12T23:00:13+01:00", + "updated_at": "2020-06-12T23:00:13+01:00" + } + }, + { + "object": "databases", + "attributes": { + "id": 2, + "server": 5, + "host": 4, + "database": "s5_coreprotect", + "username": "u5_2jtJx1nO1d", + "remote": "%", + "max_connections": 0, + "created_at": "2020-06-12T23:00:20+01:00", + "updated_at": "2020-06-12T23:00:20+01:00" + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "post": { + "tags": [ + "Application - Servers" + ], + "summary": "Create server", + "operationId": "post-create-server", + "description": "Creates a new server", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "user": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "docker_image": { + "type": "string" + }, + "startup": { + "type": "string" + }, + "environment": { + "type": "object", + "properties": { + "BUNGEE_VERSION": { + "type": "string" + }, + "SERVER_JARFILE": { + "type": "string" + } + } + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "allocation": { + "type": "object", + "properties": { + "default": { + "type": "integer" + } + } + } + } + }, + "example": { + "name": "Building", + "user": 1, + "egg": 1, + "docker_image": "quay.io/pterodactyl/core:java", + "startup": "java -Xms128M -Xmx128M -jar server.jar", + "environment": { + "BUNGEE_VERSION": "latest", + "SERVER_JARFILE": "server.jar" + }, + "limits": { + "memory": 128, + "swap": 0, + "disk": 512, + "io": 500, + "cpu": 100 + }, + "feature_limits": { + "databases": 5, + "backups": 1 + }, + "allocation": { + "default": 17 + } + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string", + "nullable": true + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "BUNGEE_VERSION": { + "type": "string" + }, + "SERVER_JARFILE": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + }, + "P_SERVER_ALLOCATION_LIMIT": { + "type": "integer" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "id": 7, + "external_id": null, + "uuid": "d557c19c-8b21-4456-a9e5-181beda429f4", + "identifier": "d557c19c", + "name": "Building", + "description": "", + "suspended": false, + "limits": { + "memory": 128, + "swap": 0, + "disk": 512, + "io": 500, + "cpu": 100, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 0, + "backups": 1 + }, + "user": 1, + "node": 1, + "allocation": 17, + "nest": 1, + "egg": 1, + "container": { + "startup_command": "java -Xms128M -Xmx128M -jar server.jar", + "image": "quay.io/pterodactyl/core:java", + "installed": false, + "environment": { + "BUNGEE_VERSION": "latest", + "SERVER_JARFILE": "server.jar", + "STARTUP": "java -Xms128M -Xmx128M -jar server.jar", + "P_SERVER_LOCATION": "GB", + "P_SERVER_UUID": "d557c19c-8b21-4456-a9e5-181beda429f4", + "P_SERVER_ALLOCATION_LIMIT": 0 + } + }, + "updated_at": "2020-10-29T01:38:59+00:00", + "created_at": "2020-10-29T01:38:59+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/databases": { + "get": { + "tags": [ + "Application - Servers - Database Management" + ], + "summary": "List databases", + "operationId": "get-list-databases", + "description": "Retrieves all databases on a server\n\n## Available include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |\n| host | Information about the database host |", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + }, + { + "name": "include", + "in": "query", + "schema": { + "type": "string" + }, + "example": "password,host" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "server": { + "type": "integer" + }, + "host": { + "type": "integer" + }, + "database": { + "type": "string" + }, + "username": { + "type": "string" + }, + "remote": { + "type": "string" + }, + "max_connections": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "password": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "password": { + "type": "string" + } + } + } + } + }, + "host": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "host": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "username": { + "type": "string" + }, + "node": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "server_database", + "attributes": { + "id": 1, + "server": 5, + "host": 4, + "database": "s5_perms", + "username": "u5_QsIAp1jhvS", + "remote": "%", + "max_connections": 0, + "created_at": "2020-06-12T23:00:13+01:00", + "updated_at": "2020-06-12T23:00:13+01:00", + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": ".FjJ!5w945L3tuG4DrSxF+T@" + } + }, + "host": { + "object": "database_host", + "attributes": { + "id": 4, + "name": "MariaDB", + "host": "127.0.0.1", + "port": 3306, + "username": "pterodactyluser", + "node": 1, + "created_at": "2020-06-12T22:59:25+01:00", + "updated_at": "2020-06-12T22:59:25+01:00" + } + } + } + } + }, + { + "object": "server_database", + "attributes": { + "id": 2, + "server": 5, + "host": 4, + "database": "s5_coreprotect", + "username": "u5_2jtJx1nO1d", + "remote": "%", + "max_connections": 0, + "created_at": "2020-06-12T23:00:20+01:00", + "updated_at": "2020-06-12T23:00:20+01:00", + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "4=rv^0vHuOPSHCfj!tM1OlMC" + } + }, + "host": { + "object": "database_host", + "attributes": { + "id": 4, + "name": "MariaDB", + "host": "127.0.0.1", + "port": 3306, + "username": "pterodactyluser", + "node": 1, + "created_at": "2020-06-12T22:59:25+01:00", + "updated_at": "2020-06-12T22:59:25+01:00" + } + } + } + } + } + ] + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "post": { + "tags": [ + "Application - Servers - Database Management" + ], + "summary": "Create database", + "operationId": "post-create-database", + "description": "Creates a new database on the specified server", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "database": { + "type": "string", + "description": "Name for database" + }, + "remote": { + "type": "string", + "description": "Permitted remotes that can access the database" + }, + "host": { + "type": "integer", + "description": "ID of the database host to use" + } + }, + "required": [ + "database" + ] + }, + "example": { + "database": "matches", + "remote": "%", + "host": 4 + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "server": { + "type": "integer" + }, + "host": { + "type": "integer" + }, + "database": { + "type": "string" + }, + "username": { + "type": "string" + }, + "remote": { + "type": "string" + }, + "max_connections": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + }, + "meta": { + "type": "object", + "properties": { + "resource": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server_database", + "attributes": { + "id": 6, + "server": 5, + "host": 4, + "database": "s5_matches", + "username": "u5_LhG3aGWBtk", + "remote": "%", + "max_connections": null, + "created_at": "2020-11-04T21:00:42+00:00", + "updated_at": "2020-11-04T21:00:42+00:00" + }, + "meta": { + "resource": "https://pterodactyl.file.properties/api/application/servers/5/databases/6" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/databases/{database}": { + "get": { + "tags": [ + "Application - Servers - Database Management" + ], + "summary": "Database details", + "operationId": "get-database-details", + "description": "Retrieves the specified database\n\n## Available include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |\n| host | Information about the database host |", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + }, + { + "name": "database", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Database ID", + "example": 1 + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "server": { + "type": "integer" + }, + "host": { + "type": "integer" + }, + "database": { + "type": "string" + }, + "username": { + "type": "string" + }, + "remote": { + "type": "string" + }, + "max_connections": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server_database", + "attributes": { + "id": 1, + "server": 5, + "host": 4, + "database": "s5_perms", + "username": "u5_QsIAp1jhvS", + "remote": "%", + "max_connections": 0, + "created_at": "2020-06-12T23:00:13+01:00", + "updated_at": "2020-06-12T23:00:13+01:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "delete": { + "tags": [ + "Application - Servers - Database Management" + ], + "summary": "Delete database", + "operationId": "delete-delete-database", + "description": "Deletes the specified database", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + }, + { + "name": "database", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Database ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}": { + "get": { + "tags": [ + "Application - Servers" + ], + "summary": "Server details", + "operationId": "get-server-details", + "description": "Retrieves the specified server\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------|\n| allocations | List of allocations assigned to the server |\n| user | Information about the server owner |\n| subusers | List of users added to the server |\n| pack | Information about the server pack |\n| nest | Information about the server's egg nest |\n| egg | Information about the server's egg |\n| variables | List of server variables |\n| location | Information about server's node location |\n| node | Information about the server's node |\n| databases | List of databases on the server |", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "pack": { + "type": "string", + "nullable": true + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "SERVER_JARFILE": { + "type": "string" + }, + "VANILLA_VERSION": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + }, + "P_SERVER_ALLOCATION_LIMIT": { + "type": "integer" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteId1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Gaming", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "pack": null, + "container": { + "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "P_SERVER_LOCATION": "GB", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "P_SERVER_ALLOCATION_LIMIT": 5 + } + }, + "updated_at": "2020-07-19T15:22:39+00:00", + "created_at": "2019-12-23T06:46:27+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "delete": { + "tags": [ + "Application - Servers" + ], + "summary": "Delete server", + "operationId": "delete-delete-server", + "description": "Deletes the specified server", + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/external/{external_id}": { + "get": { + "tags": [ + "Application - Servers" + ], + "summary": "Server details", + "operationId": "get-server-details", + "description": "Retrieves a server by its external ID\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------|\n| allocations | List of allocations assigned to the server |\n| user | Information about the server owner |\n| subusers | List of users added to the server |\n| pack | Information about the server pack |\n| nest | Information about the server's egg nest |\n| egg | Information about the server's egg |\n| variables | List of server variables |\n| location | Information about server's node location |\n| node | Information about the server's node |\n| databases | List of databases on the server |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "pack": { + "type": "string", + "nullable": true + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "SERVER_JARFILE": { + "type": "string" + }, + "VANILLA_VERSION": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + }, + "P_SERVER_ALLOCATION_LIMIT": { + "type": "integer" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteId1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Gaming", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "pack": null, + "container": { + "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "P_SERVER_LOCATION": "GB", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "P_SERVER_ALLOCATION_LIMIT": 5 + } + }, + "updated_at": "2020-07-19T15:22:39+00:00", + "created_at": "2019-12-23T06:46:27+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "external_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "External identifier", + "example": "RemoteId1" + } + ] + } + }, + "/api/application/servers/{id}/details": { + "patch": { + "tags": [ + "Application - Servers" + ], + "summary": "Update details", + "operationId": "patch-update-details", + "description": "Updates the server details", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name for the server" + }, + "user": { + "type": "integer", + "description": "ID of the user which the server belongs to" + } + }, + "required": [ + "name", + "user" + ] + }, + "example": { + "name": "Gaming", + "user": 1, + "external_id": "RemoteID1", + "description": "Matt from Wii Sports" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "SERVER_JARFILE": { + "type": "string" + }, + "VANILLA_VERSION": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + }, + "P_SERVER_ALLOCATION_LIMIT": { + "type": "integer" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteID1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Gaming", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "container": { + "startup_command": "java -Xms128M -Xmx2014M -jar server.jar", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx2048M -jar server.jar", + "P_SERVER_LOCATION": "GB", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "P_SERVER_ALLOCATION_LIMIT": 5 + } + }, + "updated_at": "2020-11-04T21:11:26+00:00", + "created_at": "2019-12-23T06:46:27+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/build": { + "patch": { + "tags": [ + "Application - Servers" + ], + "summary": "Update build", + "operationId": "patch-update-build", + "description": "Updates the server build information", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "allocation": { + "type": "integer", + "description": "ID of primary allocation" + }, + "memory": { + "type": "integer", + "description": "The maximum amount of memory allowed for this container. Setting this to 0 will allow unlimited memory in a container." + }, + "swap": { + "type": "integer", + "description": "Setting this to 0 will disable swap space on this server. Setting to -1 will allow unlimited swap." + }, + "io": { + "type": "integer", + "description": "IO performance of this server relative to other running containers" + }, + "cpu": { + "type": "integer", + "description": "Each physical core on the system is considered to be 100%. Setting this value to 0 will allow a server to use CPU time without restrictions." + }, + "disk": { + "type": "integer", + "description": "This server will not be allowed to boot if it is using more than this amount of space. If a server goes over this limit while running it will be safely stopped and locked until enough space is available. Set to 0 to allow unlimited disk usage." + }, + "feature_limits.databases": { + "type": "integer", + "description": "The total number of databases a user is allowed to create for this server." + }, + "feature_limits.backups": { + "type": "integer", + "description": "The total number of allocations a user is allowed to create for this server." + } + }, + "required": [ + "allocation", + "memory", + "swap", + "io", + "cpu", + "disk" + ] + }, + "example": { + "allocation": 1, + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "SERVER_JARFILE": { + "type": "string" + }, + "VANILLA_VERSION": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + }, + "P_SERVER_ALLOCATION_LIMIT": { + "type": "integer" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteID1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Gaming", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "container": { + "startup_command": "java -Xms128M -Xmx2014M -jar server.jar", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx2048M -jar server.jar", + "P_SERVER_LOCATION": "GB", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "P_SERVER_ALLOCATION_LIMIT": 5 + } + }, + "updated_at": "2020-11-04T21:11:26+00:00", + "created_at": "2019-12-23T06:46:27+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/startup": { + "patch": { + "tags": [ + "Application - Servers" + ], + "summary": "Update startup", + "operationId": "patch-update-startup", + "description": "Updates the server startup information", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "startup": { + "type": "string", + "description": "Edit your server's startup command here." + }, + "environment": { + "type": "object", + "description": "Environment variables that the egg requires/supports" + }, + "egg": { + "type": "string", + "description": "ID of the egg to use" + }, + "image": { + "type": "string", + "description": "The Docker image to use for this server" + }, + "skip_scripts": { + "type": "string", + "description": "If enabled, if the Egg has an install script, it will NOT be ran during install." + } + }, + "required": [ + "startup", + "egg", + "image" + ] + }, + "example": { + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest" + }, + "egg": 5, + "image": "quay.io/pterodactyl/core:java", + "skip_scripts": false + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + }, + "threads": { + "type": "string", + "nullable": true + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "user": { + "type": "integer" + }, + "node": { + "type": "integer" + }, + "allocation": { + "type": "integer" + }, + "nest": { + "type": "integer" + }, + "egg": { + "type": "integer" + }, + "container": { + "type": "object", + "properties": { + "startup_command": { + "type": "string" + }, + "image": { + "type": "string" + }, + "installed": { + "type": "boolean" + }, + "environment": { + "type": "object", + "properties": { + "SERVER_JARFILE": { + "type": "string" + }, + "VANILLA_VERSION": { + "type": "string" + }, + "STARTUP": { + "type": "string" + }, + "P_SERVER_LOCATION": { + "type": "string" + }, + "P_SERVER_UUID": { + "type": "string" + }, + "P_SERVER_ALLOCATION_LIMIT": { + "type": "integer" + } + } + } + } + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteID1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Gaming", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "container": { + "startup_command": "java -Xms128M -Xmx2014M -jar server.jar", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx2048M -jar server.jar", + "P_SERVER_LOCATION": "GB", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "P_SERVER_ALLOCATION_LIMIT": 5 + } + }, + "updated_at": "2020-11-04T21:11:26+00:00", + "created_at": "2019-12-23T06:46:27+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/suspend": { + "post": { + "tags": [ + "Application - Servers" + ], + "summary": "Suspend server", + "operationId": "post-suspend-server", + "description": "Suspends the specified server", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/unsuspend": { + "post": { + "tags": [ + "Application - Servers" + ], + "summary": "Unsuspend server", + "operationId": "post-unsuspend-server", + "description": "Unuspends the specified", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/reinstall": { + "post": { + "tags": [ + "Application - Servers" + ], + "summary": "Reinstall server", + "operationId": "post-reinstall-server", + "description": "Reinstalls the specified server", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/force": { + "delete": { + "tags": [ + "Application - Servers" + ], + "summary": "Force delete server", + "operationId": "delete-force-delete-server", + "description": "Forcefully deletes the specified server", + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/servers/{id}/databases/{database}/reset-password": { + "post": { + "tags": [ + "Application - Servers - Database Management" + ], + "summary": "Reset password", + "operationId": "post-reset-password", + "description": "Rotates the password of the database", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Server ID (internal numeric ID)", + "example": 5 + }, + { + "name": "database", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Database ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/nests": { + "get": { + "tags": [ + "Application - Nests" + ], + "summary": "List nests", + "operationId": "get-list-nests", + "description": "Retrieves all nests\n\n# Available include parameters\n| Parameter | Description |\n|-----------|---------------------------------|\n| eggs | List of eggs in the location |\n| servers | List of servers in the location |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "author": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + { + "object": "nest", + "attributes": { + "id": 2, + "uuid": "5246d226-e8e8-46f5-b624-e99cf1a68c9a", + "author": "support@pterodactyl.io", + "name": "Source Engine", + "description": "Includes support for most Source Dedicated Server games.", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + { + "object": "nest", + "attributes": { + "id": 3, + "uuid": "0eb05bf7-3a00-4b1d-bef5-a6d8d7375e44", + "author": "support@pterodactyl.io", + "name": "Voice Servers", + "description": "Voice servers such as Mumble and Teamspeak 3.", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + { + "object": "nest", + "attributes": { + "id": 4, + "uuid": "e2a21c82-7175-4db0-9510-8d1ed525b2bf", + "author": "support@pterodactyl.io", + "name": "Rust", + "description": "Rust - A game where you must fight to survive.", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + } + ], + "meta": { + "pagination": { + "total": 4, + "count": 4, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/nests/{nest}/eggs": { + "get": { + "tags": [ + "Application - Nests - Eggs Management" + ], + "summary": "List eggs", + "operationId": "get-list-eggs", + "description": "Retrieves a list of eggs\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------------|\n| nest | Information about the nest that owns the egg |\n| servers | List of servers using the egg |\n| config | Config options of the egg |\n| script | Egg install script |\n| variables | List of egg variables |", + "parameters": [ + { + "name": "include", + "in": "query", + "schema": { + "type": "string" + }, + "example": "nest,servers" + }, + { + "name": "nest", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Nest ID", + "example": 1 + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nest": { + "type": "integer" + }, + "author": { + "type": "string" + }, + "description": { + "type": "string" + }, + "docker_image": { + "type": "string" + }, + "config": { + "type": "object", + "properties": { + "files": { + "type": "object", + "properties": { + "config.yml": { + "type": "object", + "properties": { + "parser": { + "type": "string" + }, + "find": { + "type": "object", + "properties": { + "listeners[0].query_enabled": { + "type": "boolean" + }, + "listeners[0].query_port": { + "type": "string" + }, + "listeners[0].host": { + "type": "string" + }, + "servers.*.address": { + "type": "object", + "properties": { + "127.0.0.1": { + "type": "string" + }, + "localhost": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "startup": { + "type": "object", + "properties": { + "done": { + "type": "string" + }, + "userInteraction": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "stop": { + "type": "string" + }, + "logs": { + "type": "object", + "properties": { + "custom": { + "type": "boolean" + }, + "location": { + "type": "string" + } + } + }, + "extends": { + "type": "string", + "nullable": true + } + } + }, + "startup": { + "type": "string" + }, + "script": { + "type": "object", + "properties": { + "privileged": { + "type": "boolean" + }, + "install": { + "type": "string" + }, + "entry": { + "type": "string" + }, + "container": { + "type": "string" + }, + "extends": { + "type": "string", + "nullable": true + } + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "nest": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "author": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "servers": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": {} + } + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "egg", + "attributes": { + "id": 1, + "uuid": "695648dd-01a3-4ced-b075-d4ec4fb9fbf4", + "name": "Bungeecord", + "nest": 1, + "author": "support@pterodactyl.io", + "description": "For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.", + "docker_image": "quay.io/pterodactyl/core:java", + "config": { + "files": { + "config.yml": { + "parser": "yaml", + "find": { + "listeners[0].query_enabled": true, + "listeners[0].query_port": "{{server.build.default.port}}", + "listeners[0].host": "0.0.0.0:{{server.build.default.port}}", + "servers.*.address": { + "127.0.0.1": "{{config.docker.interface}}", + "localhost": "{{config.docker.interface}}" + } + } + } + }, + "startup": { + "done": "Listening on ", + "userInteraction": [ + "Listening on /0.0.0.0:25577" + ] + }, + "stop": "end", + "logs": { + "custom": false, + "location": "proxy.log.0" + }, + "extends": null + }, + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "script": { + "privileged": true, + "install": "#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar", + "entry": "ash", + "container": "alpine:3.9", + "extends": null + }, + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00", + "relationships": { + "nest": { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + "servers": { + "object": "list", + "data": [] + } + } + } + }, + { + "object": "egg", + "attributes": { + "id": 2, + "uuid": "7f8736d8-fd99-465f-8c3e-cb4d42c18541", + "name": "Forge Minecraft", + "nest": 1, + "author": "support@pterodactyl.io", + "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", + "docker_image": "quay.io/pterodactyl/core:java", + "config": { + "files": { + "server.properties": { + "parser": "properties", + "find": { + "server-ip": "0.0.0.0", + "enable-query": "true", + "server-port": "{{server.build.default.port}}", + "query.port": "{{server.build.default.port}}" + } + } + }, + "startup": { + "done": ")! For help, type ", + "userInteraction": [ + "Go to eula.txt for more info." + ] + }, + "stop": "stop", + "logs": { + "custom": false, + "location": "logs/latest.log" + }, + "extends": null + }, + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "script": { + "privileged": true, + "install": "#!/bin/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napt update\r\napt install -y curl\r\n\r\n#Fetching version\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n echo \"Fetching latest\"\r\n MC_VERSION=$(curl -sl https://files.minecraftforge.net/maven/net/minecraftforge/forge/index.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's/ //g')\r\nelif [[ ! \"$MC_VERSION\" =~ - ]]; then\r\n echo \"Fetching latest from version $MC_VERSION\"\r\n MC_VERSION=$(curl -sl https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_$MC_VERSION.html | grep -A 2 \"Latest\" | awk NF=NF RS= OFS=\" \" | grep -o -e '[1].[0-9]*.[0-9]* - [0-9]*.[0-9]*.[0-9]*.[0-9]*' | sed 's/ //g')\r\nfi\r\n\r\n#Checking if forge version valid\r\nif [[ ! \"$MC_VERSION\" =~ [1].[0-9]*.[0-9]*-[0-9]*.[0-9]*.[0-9]*.[0-9]* ]]; then\r\n echo \"!!! Invalid forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Go into main direction\r\ncd /mnt/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version \\\"$MC_VERSION\\\"\"\r\ncurl -o installer.jar -sS https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MC_VERSION/forge-$MC_VERSION-installer.jar\r\ncurl -o $SERVER_JARFILE -sS https://files.minecraftforge.net/maven/net/minecraftforge/forge/$MC_VERSION/forge-$MC_VERSION-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f ./installer.jar ] || [ ! -f ./$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version \\\"$MC_VERSION\\\" !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", + "entry": "bash", + "container": "openjdk:8", + "extends": null + }, + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00", + "relationships": { + "nest": { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + "servers": { + "object": "list", + "data": [] + } + } + } + }, + { + "object": "egg", + "attributes": { + "id": 3, + "uuid": "2ad75dfd-892d-4441-a452-6d7be7cc895a", + "name": "Paper", + "nest": 1, + "author": "parker@pterodactyl.io", + "description": "High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.", + "docker_image": "quay.io/pterodactyl/core:java", + "config": { + "files": { + "server.properties": { + "parser": "properties", + "find": { + "server-ip": "0.0.0.0", + "server-port": "{{server.build.default.port}}" + } + } + }, + "startup": { + "done": ")! For help, type ", + "userInteraction": [ + "Go to eula.txt for more info." + ] + }, + "stop": "stop", + "logs": [], + "extends": null + }, + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", + "script": { + "privileged": true, + "install": "#!/bin/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`\r\nelse\r\n VER_EXISTS=`curl -s https://papermc.io/api/v1/paper | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_PAPER_VERSION=`curl -s https://papermc.io/api/v1/paper | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest paper version\"\r\n MINECRAFT_VERSION=${LATEST_PAPER_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https://papermc.io/api/v1/paper/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https://papermc.io/api/v1/paper/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https://papermc.io/api/v1/paper/${MINECRAFT_VERSION}/${BUILD_NUMBER}/download \r\nfi\r\n\r\ncd /mnt/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https://raw.githubusercontent.com/parkervcp/eggs/master/minecraft_java/server.properties\r\nfi", + "entry": "ash", + "container": "alpine:3.9", + "extends": null + }, + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00", + "relationships": { + "nest": { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + "servers": { + "object": "list", + "data": [] + } + } + } + }, + { + "object": "egg", + "attributes": { + "id": 4, + "uuid": "00274063-5d21-439f-80b9-c4cc0dba8188", + "name": "Sponge (SpongeVanilla)", + "nest": 1, + "author": "support@pterodactyl.io", + "description": "SpongeVanilla is the SpongeAPI implementation for Vanilla Minecraft.", + "docker_image": "quay.io/pterodactyl/core:java-glibc", + "config": { + "files": { + "server.properties": { + "parser": "properties", + "find": { + "server-ip": "0.0.0.0", + "enable-query": "true", + "server-port": "{{server.build.default.port}}", + "query.port": "{{server.build.default.port}}" + } + } + }, + "startup": { + "done": ")! For help, type ", + "userInteraction": [ + "Go to eula.txt for more info." + ] + }, + "stop": "stop", + "logs": { + "custom": false, + "location": "logs/latest.log" + }, + "extends": null + }, + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "script": { + "privileged": true, + "install": "#!/bin/ash\n# Sponge Installation Script\n#\n# Server Files: /mnt/server\n\napk update\napk add curl\n\ncd /mnt/server\n\ncurl -sSL \"https://repo.spongepowered.org/maven/org/spongepowered/spongevanilla/${SPONGE_VERSION}/spongevanilla-${SPONGE_VERSION}.jar\" -o ${SERVER_JARFILE}", + "entry": "ash", + "container": "alpine:3.9", + "extends": null + }, + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00", + "relationships": { + "nest": { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + "servers": { + "object": "list", + "data": [] + } + } + } + }, + { + "object": "egg", + "attributes": { + "id": 5, + "uuid": "cd4cc5cf-de80-4a50-b458-dbd7d3193175", + "name": "Vanilla Minecraft", + "nest": 1, + "author": "support@pterodactyl.io", + "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.", + "docker_image": "quay.io/pterodactyl/core:java", + "config": { + "files": { + "server.properties": { + "parser": "properties", + "find": { + "server-ip": "0.0.0.0", + "enable-query": "true", + "server-port": "{{server.build.default.port}}", + "query.port": "{{server.build.default.port}}" + } + } + }, + "startup": { + "done": ")! For help, type ", + "userInteraction": [ + "Go to eula.txt for more info." + ] + }, + "stop": "stop", + "logs": { + "custom": false, + "location": "logs/latest.log" + }, + "extends": null + }, + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "script": { + "privileged": true, + "install": "#!/bin/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napk update\r\napk add curl jq\r\n\r\ncd /mnt/server\r\n\r\nLATEST_VERSION=`curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$LATEST_VERSION'\") | .url')\r\nelse\r\n MANIFEST_URL=$(curl https://launchermeta.mojang.com/mc/game/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$VANILLA_VERSION'\") | .url')\r\nfi\r\n\r\nDOWNLOAD_URL=`curl $MANIFEST_URL | jq .downloads.server | jq -r '. | .url'`\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL", + "entry": "ash", + "container": "alpine:3.9", + "extends": null + }, + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00", + "relationships": { + "nest": { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + }, + "servers": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "id": 5, + "external_id": "RemoteId1", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "identifier": "1a7ce997", + "name": "Wuhu Island", + "description": "Matt from Wii Sports", + "suspended": false, + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0, + "threads": null + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "user": 1, + "node": 1, + "allocation": 1, + "nest": 1, + "egg": 5, + "pack": null, + "container": { + "startup_command": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "image": "quay.io/pterodactyl/core:java", + "installed": true, + "environment": { + "SERVER_JARFILE": "server.jar", + "VANILLA_VERSION": "latest", + "STARTUP": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "P_SERVER_LOCATION": "Test", + "P_SERVER_UUID": "1a7ce997-259b-452e-8b4e-cecc464142ca" + } + }, + "updated_at": "2020-06-13T04:20:53+00:00", + "created_at": "2019-12-23T06:46:27+00:00" + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/nests/{nest}/eggs/{egg}": { + "get": { + "tags": [ + "Application - Nests - Eggs Management" + ], + "summary": "Egg details", + "operationId": "get-egg-details", + "description": "Retrieves the specified egg\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------------|\n| nest | Information about the nest that owns the egg |\n| servers | List of servers using the egg |\n| config | Config options of the egg |\n| script | Egg install script |\n| variables | List of egg variables |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "nest": { + "type": "integer" + }, + "author": { + "type": "string" + }, + "description": { + "type": "string" + }, + "docker_image": { + "type": "string" + }, + "config": { + "type": "object", + "properties": { + "files": { + "type": "object", + "properties": { + "config.yml": { + "type": "object", + "properties": { + "parser": { + "type": "string" + }, + "find": { + "type": "object", + "properties": { + "listeners[0].query_enabled": { + "type": "boolean" + }, + "listeners[0].query_port": { + "type": "string" + }, + "listeners[0].host": { + "type": "string" + }, + "servers.*.address": { + "type": "object", + "properties": { + "127.0.0.1": { + "type": "string" + }, + "localhost": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "startup": { + "type": "object", + "properties": { + "done": { + "type": "string" + }, + "userInteraction": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "stop": { + "type": "string" + }, + "logs": { + "type": "object", + "properties": { + "custom": { + "type": "boolean" + }, + "location": { + "type": "string" + } + } + }, + "extends": { + "type": "string", + "nullable": true + } + } + }, + "startup": { + "type": "string" + }, + "script": { + "type": "object", + "properties": { + "privileged": { + "type": "boolean" + }, + "install": { + "type": "string" + }, + "entry": { + "type": "string" + }, + "container": { + "type": "string" + }, + "extends": { + "type": "string", + "nullable": true + } + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "egg", + "attributes": { + "id": 1, + "uuid": "695648dd-01a3-4ced-b075-d4ec4fb9fbf4", + "name": "Bungeecord", + "nest": 1, + "author": "support@pterodactyl.io", + "description": "For a long time, Minecraft server owners have had a dream that encompasses a free, easy, and reliable way to connect multiple Minecraft servers together. BungeeCord is the answer to said dream. Whether you are a small server wishing to string multiple game-modes together, or the owner of the ShotBow Network, BungeeCord is the ideal solution for you. With the help of BungeeCord, you will be able to unlock your community's full potential.", + "docker_image": "quay.io/pterodactyl/core:java", + "config": { + "files": { + "config.yml": { + "parser": "yaml", + "find": { + "listeners[0].query_enabled": true, + "listeners[0].query_port": "{{server.build.default.port}}", + "listeners[0].host": "0.0.0.0:{{server.build.default.port}}", + "servers.*.address": { + "127.0.0.1": "{{config.docker.interface}}", + "localhost": "{{config.docker.interface}}" + } + } + } + }, + "startup": { + "done": "Listening on ", + "userInteraction": [ + "Listening on /0.0.0.0:25577" + ] + }, + "stop": "end", + "logs": { + "custom": false, + "location": "proxy.log.0" + }, + "extends": null + }, + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "script": { + "privileged": true, + "install": "#!/bin/ash\n# Bungeecord Installation Script\n#\n# Server Files: /mnt/server\napk update\napk add curl\n\ncd /mnt/server\n\nif [ -z \"${BUNGEE_VERSION}\" ] || [ \"${BUNGEE_VERSION}\" == \"latest\" ]; then\n BUNGEE_VERSION=\"lastStableBuild\"\nfi\n\ncurl -o ${SERVER_JARFILE} https://ci.md-5.net/job/BungeeCord/${BUNGEE_VERSION}/artifact/bootstrap/target/BungeeCord.jar", + "entry": "ash", + "container": "alpine:3.9", + "extends": null + }, + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "nest", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Nest ID", + "example": 1 + }, + { + "name": "egg", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Egg ID", + "example": 1 + } + ] + } + }, + "/api/application/nests/{nest}": { + "get": { + "tags": [ + "Application - Nests" + ], + "summary": "Nest details", + "operationId": "get-nest-details", + "description": "Retrieves the specified nests\n\n# Available include parameters\n| Parameter | Description |\n|-----------|---------------------------------|\n| eggs | List of eggs in the location |\n| servers | List of servers in the location |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "author": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "nest", + "attributes": { + "id": 1, + "uuid": "58bde975-ec57-4af2-b241-1426ac6d6d59", + "author": "support@pterodactyl.io", + "name": "Minecraft", + "description": "Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!", + "created_at": "2019-12-22T04:42:51+00:00", + "updated_at": "2019-12-22T04:42:51+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "nest", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Nest ID", + "example": 1 + } + ] + } + }, + "/api/client/servers/{server}/startup": { + "get": { + "tags": [ + "Client - Server - Startup" + ], + "summary": "List Variables", + "operationId": "get-list-variables", + "description": "Lists all variables on the server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"egg_variable\",\n \"attributes\": {\n \"name\": \"Server Jar File\",\n \"description\": \"The name of the server jarfile to run the server with.\",\n \"env_variable\": \"SERVER_JARFILE\",\n \"default_value\": \"server.jar\",\n \"server_value\": \"server.jar\",\n \"is_editable\": true,\n \"rules\": \"required|regex:\\/^([\\\\w\\\\d._-]+)(\\\\.jar)$\\/\"\n }\n },\n {\n \"object\": \"egg_variable\",\n \"attributes\": {\n \"name\": \"Server Version\",\n \"description\": \"The version of Minecraft Vanilla to install. Use \\\"latest\\\" to install the latest version.\",\n \"env_variable\": \"VANILLA_VERSION\",\n \"default_value\": \"latest\",\n \"server_value\": \"latest\",\n \"is_editable\": true,\n \"rules\": \"required|string|between:3,15\"\n }\n }\n ],\n \"meta\": {\n \"startup_command\": \"java -Xms128M -Xmx512M -jar server.jar\",\n \"raw_startup_command\": \"java -Xms128M -Xmx\\{\\{ SERVER_MEMORY }}M -jar {\\{ SERVER_JARFILE }}\"\n }\n}" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client": { + "get": { + "tags": [ + "Client - General" + ], + "summary": "List servers", + "operationId": "get-list-servers", + "description": "Lists all servers\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------------|\n| egg | Information about the egg the server uses |\n| subusers | List of subusers on the server |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "server_owner": { + "type": "boolean" + }, + "identifier": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node": { + "type": "string" + }, + "sftp_details": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "description": { + "type": "string" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "is_suspended": { + "type": "boolean" + }, + "is_installing": { + "type": "boolean" + }, + "relationships": { + "type": "object", + "properties": { + "allocations": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "ip_alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string", + "nullable": true + }, + "is_default": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "1a7ce997", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "name": "Gaming", + "node": "Test", + "sftp_details": { + "ip": "pterodactyl.file.properties", + "port": 2022 + }, + "description": "Matt from Wii Sports", + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0 + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "is_suspended": false, + "is_installing": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25565, + "notes": null, + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25566, + "notes": "Votifier", + "is_default": false + } + } + ] + } + } + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}": { + "get": { + "tags": [ + "Client - Server" + ], + "summary": "Server details", + "operationId": "get-server-details", + "description": "Retrieves information about the specified server\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------------|\n| egg | Information about the egg the server uses |\n| subusers | List of subusers on the server |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "server_owner": { + "type": "boolean" + }, + "identifier": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node": { + "type": "string" + }, + "sftp_details": { + "type": "object", + "properties": { + "ip": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "description": { + "type": "string" + }, + "limits": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "swap": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "io": { + "type": "integer" + }, + "cpu": { + "type": "integer" + } + } + }, + "feature_limits": { + "type": "object", + "properties": { + "databases": { + "type": "integer" + }, + "allocations": { + "type": "integer" + }, + "backups": { + "type": "integer" + } + } + }, + "is_suspended": { + "type": "boolean" + }, + "is_installing": { + "type": "boolean" + }, + "relationships": { + "type": "object", + "properties": { + "allocations": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "ip_alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string", + "nullable": true + }, + "is_default": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "is_server_owner": { + "type": "boolean" + }, + "user_permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "example": { + "object": "server", + "attributes": { + "server_owner": true, + "identifier": "1a7ce997", + "uuid": "1a7ce997-259b-452e-8b4e-cecc464142ca", + "name": "Wuhu Island", + "node": "Test", + "sftp_details": { + "ip": "pterodactyl.file.properties", + "port": 2022 + }, + "description": "Matt from Wii Sports", + "limits": { + "memory": 512, + "swap": 0, + "disk": 200, + "io": 500, + "cpu": 0 + }, + "feature_limits": { + "databases": 5, + "allocations": 5, + "backups": 2 + }, + "is_suspended": false, + "is_installing": false, + "relationships": { + "allocations": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25565, + "notes": null, + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25566, + "notes": "Votifier", + "is_default": false + } + } + ] + } + } + }, + "meta": { + "is_server_owner": true, + "user_permissions": [ + "*", + "admin.websocket.errors", + "admin.websocket.install" + ] + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/websocket": { + "get": { + "tags": [ + "Client - Server" + ], + "summary": "Console details", + "operationId": "get-console-details", + "description": "Generates credentials to establish a websocket\n\n## How to connect\n1. Connect to the websocket address (in this example \"wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws\")\n2. Send the token to the websocket like this: `{\"event\":\"auth\",\"args\":[\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij...\"]}`\n\n* Tokens last about 10-15 minutes, and the websocket will notify you once you need to send a new token with `{\"event\":\"token expiring\"}` and `{\"event\":\"token expired\"}`\n\n## Things you can send\n* `{\"event\":\"auth\",\"args\":[\"\"]}` # Authenticate with websocket\n* `{\"event\":\"send stats\",\"args\":[null]}` # Request stats\n* `{\"event\":\"send logs\",\"args\":[null]}` # Request logs\n* `{\"event\":\"set state\",\"args\":[\"\"]}` # Send power action\n* `{\"event\":\"send command\",\"args\":[\"\"]}` # Send command\n\n## Things you'll receive\n* `{\"event\":\"auth success\"}` # Upon successful websocket authentication\n* `{\"event\":\"status\",\"args\":[\"offline\"]}` # Status updates of the server\n* `{\"event\":\"console output\",\"args\":[\"[14:07:12] [Query Listener #1/INFO]: Query running on 0.0.0.0:25565\"]}` # Logs from server\n* `{\"event\":\"stats\",\"args\":[\"{\\\"memory_bytes\\\":526626816,\\\"memory_limit_bytes\\\":588800000,\\\"cpu_absolute\\\":588.815,\\\"network\\\":{\\\"rx_bytes\\\":1126,\\\"tx_bytes\\\":1126},\\\"state\\\":\\\"stopping\\\",\\\"disk_bytes\\\":128118626}\"]}` # Stats from server\n* `{\"event\":\"token expiring\"}` # Token is expiring soon so request a new one and send it to the websocket\n* `{\"event\":\"token expired\"}` # Token has expired", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "socket": { + "type": "string" + } + } + } + } + }, + "example": { + "data": { + "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6Ij...", + "socket": "wss://pterodactyl.file.properties:8080/api/servers/1a7ce997-259b-452e-8b4e-cecc464142ca/ws" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/resources": { + "get": { + "tags": [ + "Client - Server" + ], + "summary": "Resource usage", + "operationId": "get-resource-usage", + "description": "Retrieves resource utilization of the specified server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "current_state": { + "type": "string" + }, + "is_suspended": { + "type": "boolean" + }, + "resources": { + "type": "object", + "properties": { + "memory_bytes": { + "type": "integer" + }, + "cpu_absolute": { + "type": "integer" + }, + "disk_bytes": { + "type": "integer" + }, + "network_rx_bytes": { + "type": "integer" + }, + "network_tx_bytes": { + "type": "integer" + } + } + } + } + } + } + }, + "example": { + "object": "stats", + "attributes": { + "current_state": "starting", + "is_suspended": false, + "resources": { + "memory_bytes": 588701696, + "cpu_absolute": 0, + "disk_bytes": 130156361, + "network_rx_bytes": 694220, + "network_tx_bytes": 337090 + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/command": { + "post": { + "tags": [ + "Client - Server" + ], + "summary": "Send command", + "operationId": "post-send-command", + "description": "Sends a command to the server\n\nThe server must be online to send a command to it. You will get HTTP 502 is the server if not online.", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "command": { + "type": "string", + "description": "Command to send" + } + }, + "required": [ + "command" + ] + }, + "example": { + "command": "say CodeCo says Hi!" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/power": { + "post": { + "tags": [ + "Client - Server" + ], + "summary": "Change power state", + "operationId": "post-change-power-state", + "description": "Sends a power signal to the server\n\n## Signals\n| Signal | Description |\n|---------|----------------------------------|\n| start | Starts the server |\n| stop | Gracefully stops the server |\n| restart | Stops then starts the server |\n| kill | Instantly end the server process |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "signal": { + "type": "string", + "description": "Power signal to send" + } + }, + "required": [ + "signal" + ] + }, + "example": { + "signal": "start" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/permissions": { + "get": { + "tags": [ + "Client - General" + ], + "summary": "Show permissions", + "operationId": "get-show-permissions", + "description": "Retries all available permissions\n\nThis is used for the frontend", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "permissions": { + "type": "object", + "properties": { + "websocket": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "connect": { + "type": "string" + } + } + } + } + }, + "control": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "console": { + "type": "string" + }, + "start": { + "type": "string" + }, + "stop": { + "type": "string" + }, + "restart": { + "type": "string" + } + } + } + } + }, + "user": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "create": { + "type": "string" + }, + "read": { + "type": "string" + }, + "update": { + "type": "string" + }, + "delete": { + "type": "string" + } + } + } + } + }, + "file": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "create": { + "type": "string" + }, + "read": { + "type": "string" + }, + "update": { + "type": "string" + }, + "delete": { + "type": "string" + }, + "archive": { + "type": "string" + }, + "sftp": { + "type": "string" + } + } + } + } + }, + "backup": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "create": { + "type": "string" + }, + "read": { + "type": "string" + }, + "update": { + "type": "string" + }, + "delete": { + "type": "string" + }, + "download": { + "type": "string" + } + } + } + } + }, + "allocation": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "read": { + "type": "string" + }, + "create": { + "type": "string" + }, + "update": { + "type": "string" + }, + "delete": { + "type": "string" + } + } + } + } + }, + "startup": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "read": { + "type": "string" + }, + "update": { + "type": "string" + } + } + } + } + }, + "database": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "create": { + "type": "string" + }, + "read": { + "type": "string" + }, + "update": { + "type": "string" + }, + "delete": { + "type": "string" + }, + "view_password": { + "type": "string" + } + } + } + } + }, + "schedule": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "create": { + "type": "string" + }, + "read": { + "type": "string" + }, + "update": { + "type": "string" + }, + "delete": { + "type": "string" + } + } + } + } + }, + "settings": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "keys": { + "type": "object", + "properties": { + "rename": { + "type": "string" + }, + "reinstall": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "system_permissions", + "attributes": { + "permissions": { + "websocket": { + "description": "Allows the user to connect to the server websocket, giving them access to view console output and realtime server stats.", + "keys": { + "connect": "Allows a user to connect to the websocket instance for a server to stream the console." + } + }, + "control": { + "description": "Permissions that control a user's ability to control the power state of a server, or send commands.", + "keys": { + "console": "Allows a user to send commands to the server instance via the console.", + "start": "Allows a user to start the server if it is stopped.", + "stop": "Allows a user to stop a server if it is running.", + "restart": "Allows a user to perform a server restart. This allows them to start the server if it is offline, but not put the server in a completely stopped state." + } + }, + "user": { + "description": "Permissions that allow a user to manage other subusers on a server. They will never be able to edit their own account, or assign permissions they do not have themselves.", + "keys": { + "create": "Allows a user to create new subusers for the server.", + "read": "Allows the user to view subusers and their permissions for the server.", + "update": "Allows a user to modify other subusers.", + "delete": "Allows a user to delete a subuser from the server." + } + }, + "file": { + "description": "Permissions that control a user's ability to modify the filesystem for this server.", + "keys": { + "create": "Allows a user to create additional files and folders via the Panel or direct upload.", + "read": "Allows a user to view the contents of a directory and read the contents of a file. Users with this permission can also download files.", + "update": "Allows a user to update the contents of an existing file or directory.", + "delete": "Allows a user to delete files or directories.", + "archive": "Allows a user to archive the contents of a directory as well as decompress existing archives on the system.", + "sftp": "Allows a user to connect to SFTP and manage server files using the other assigned file permissions." + } + }, + "backup": { + "description": "Permissions that control a user's ability to generate and manage server backups.", + "keys": { + "create": "Allows a user to create new backups for this server.", + "read": "Allows a user to view all backups that exist for this server.", + "update": "", + "delete": "Allows a user to remove backups from the system.", + "download": "Allows a user to download backups." + } + }, + "allocation": { + "description": "Permissions that control a user's ability to modify the port allocations for this server.", + "keys": { + "read": "Allows a user to view the allocations assigned to this server.", + "create": "Allows a user to assign additional allocations to the server.", + "update": "Allows a user to change the primary server allocation and attach notes to each allocation.", + "delete": "Allows a user to delete an allocation from the server." + } + }, + "startup": { + "description": "Permissions that control a user's ability to view this server's startup parameters.", + "keys": { + "read": "", + "update": "" + } + }, + "database": { + "description": "Permissions that control a user's access to the database management for this server.", + "keys": { + "create": "Allows a user to create a new database for this server.", + "read": "Allows a user to view the database associated with this server.", + "update": "Allows a user to rotate the password on a database instance. If the user does not have the view_password permission they will not see the updated password.", + "delete": "Allows a user to remove a database instance from this server.", + "view_password": "Allows a user to view the password associated with a database instance for this server." + } + }, + "schedule": { + "description": "Permissions that control a user's access to the schedule management for this server.", + "keys": { + "create": "", + "read": "", + "update": "", + "delete": "" + } + }, + "settings": { + "description": "Permissions that control a user's access to the settings for this server.", + "keys": { + "rename": "", + "reinstall": "" + } + } + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/databases": { + "get": { + "tags": [ + "Client - Server - Databases" + ], + "summary": "List databases", + "operationId": "get-list-databases", + "description": "Lists all databases on a server\n\n## Include parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| password | Includes the database user password |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "host": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" + }, + "connections_from": { + "type": "string" + }, + "max_connections": { + "type": "integer" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "server_database", + "attributes": { + "id": "bEY4yAD5", + "host": { + "address": "127.0.0.1", + "port": 3306 + }, + "name": "s5_perms", + "username": "u5_QsIAp1jhvS", + "connections_from": "%", + "max_connections": 0 + } + }, + { + "object": "server_database", + "attributes": { + "id": "E0A0Rw42", + "host": { + "address": "127.0.0.1", + "port": 3306 + }, + "name": "s5_coreprotect", + "username": "u5_2jtJx1nO1d", + "connections_from": "%", + "max_connections": 0 + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Databases" + ], + "summary": "Create database", + "operationId": "post-create-database", + "description": "Creates a new database", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "database": { + "type": "string" + }, + "remote": { + "type": "string" + } + } + }, + "example": { + "database": "bans", + "remote": "%" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "host": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" + }, + "connections_from": { + "type": "string" + }, + "max_connections": { + "type": "integer" + }, + "relationships": { + "type": "object", + "properties": { + "password": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "password": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "server_database", + "attributes": { + "id": "y9YVxO4V", + "host": { + "address": "127.0.0.1", + "port": 3306 + }, + "name": "s5_punishments", + "username": "u5_aeZqbGdCM9", + "connections_from": "%", + "max_connections": 0, + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "=lR2orDOcwfKkM=BXb.BVF.C" + } + } + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/list": { + "get": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "List files", + "operationId": "get-list-files", + "description": "Lists all files of the server\n\n## Available parameters\n| Parameter | Description |\n|-----------|-------------------------------------|\n| directory | URL encoded path to list files from |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "directory", + "in": "query", + "schema": { + "type": "string" + }, + "example": "/cache" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "is_file": { + "type": "boolean" + }, + "is_symlink": { + "type": "boolean" + }, + "is_editable": { + "type": "boolean" + }, + "mimetype": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "modified_at": { + "type": "string" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "file_object", + "attributes": { + "name": "cache", + "mode": "drwxr-xr-x", + "size": 4096, + "is_file": false, + "is_symlink": false, + "is_editable": false, + "mimetype": "inode/directory", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:20:36+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "logs", + "mode": "drwxr-xr-x", + "size": 4096, + "is_file": false, + "is_symlink": false, + "is_editable": false, + "mimetype": "inode/directory", + "created_at": "2020-07-13T12:42:02+00:00", + "modified_at": "2020-07-13T12:42:02+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "plugins", + "mode": "drwxr-xr-x", + "size": 4096, + "is_file": false, + "is_symlink": false, + "is_editable": false, + "mimetype": "inode/directory", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:07+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "world", + "mode": "drwxr-xr-x", + "size": 4096, + "is_file": false, + "is_symlink": false, + "is_editable": false, + "mimetype": "inode/directory", + "created_at": "2020-07-13T13:26:22+00:00", + "modified_at": "2020-07-13T13:26:22+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "world_nether", + "mode": "drwxr-xr-x", + "size": 4096, + "is_file": false, + "is_symlink": false, + "is_editable": false, + "mimetype": "inode/directory", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:15+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "world_the_end", + "mode": "drwxr-xr-x", + "size": 4096, + "is_file": false, + "is_symlink": false, + "is_editable": false, + "mimetype": "inode/directory", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:15+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "whitelist.json", + "mode": "-rw-r--r--", + "size": 2, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "application/json", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:07+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "version_history.json", + "mode": "-rw-r--r--", + "size": 46, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "application/json", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:08+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "usercache.json", + "mode": "-rw-r--r--", + "size": 2, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "application/json", + "created_at": "2020-07-13T12:42:03+00:00", + "modified_at": "2020-07-13T12:42:03+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "spigot.yml", + "mode": "-rw-r--r--", + "size": 3567, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2020-06-12T21:44:42+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "server.properties", + "mode": "-rw-r--r--", + "size": 955, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:59+00:00", + "modified_at": "2020-07-13T12:41:59+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "server.jar", + "mode": "-rw-r--r--", + "size": 36175593, + "is_file": true, + "is_symlink": false, + "is_editable": false, + "mimetype": "application/jar", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2020-06-12T22:38:46+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "permissions.yml", + "mode": "-rw-r--r--", + "size": 0, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "inode/x-empty", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:08+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "paper.yml", + "mode": "-rw-r--r--", + "size": 5310, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2020-06-12T21:44:42+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "ops.json", + "mode": "-rw-r--r--", + "size": 2, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "application/json", + "created_at": "2020-07-13T12:42:03+00:00", + "modified_at": "2020-07-13T12:42:03+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "hs_err_pid25.log", + "mode": "-rw-r--r--", + "size": 57099, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2020-06-12T20:36:55+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "help.yml", + "mode": "-rw-r--r--", + "size": 2576, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:21:07+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "eula.txt", + "mode": "-rw-r--r--", + "size": 250, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2019-12-25T05:20:57+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "commands.yml", + "mode": "-rw-r--r--", + "size": 598, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2020-06-12T21:44:36+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "bukkit.yml", + "mode": "-rw-r--r--", + "size": 1053, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "text/plain", + "created_at": "2020-07-13T12:41:55+00:00", + "modified_at": "2020-06-12T21:44:36+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "banned-players.json", + "mode": "-rw-r--r--", + "size": 2, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "application/json", + "created_at": "2020-07-13T12:42:03+00:00", + "modified_at": "2020-07-13T12:42:03+00:00" + } + }, + { + "object": "file_object", + "attributes": { + "name": "banned-ips.json", + "mode": "-rw-r--r--", + "size": 2, + "is_file": true, + "is_symlink": false, + "is_editable": true, + "mimetype": "application/json", + "created_at": "2020-07-13T12:42:03+00:00", + "modified_at": "2020-07-13T12:42:03+00:00" + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/startup/variable": { + "put": { + "tags": [ + "Client - Server - Startup" + ], + "summary": "Update Variable", + "operationId": "put-update-variable", + "description": "Updates the specified variable", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "example": { + "key": "SERVER_JARFILE", + "value": "server.jar" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "env_variable": { + "type": "string" + }, + "default_value": { + "type": "string" + }, + "server_value": { + "type": "string" + }, + "is_editable": { + "type": "boolean" + }, + "rules": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "egg_variable", + "attributes": { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "server_value": "server.jar", + "is_editable": true, + "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/schedules": { + "get": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "List schedules", + "operationId": "get-list-schedules", + "description": "Lists all schedules added to the server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "cron": { + "type": "object", + "properties": { + "day_of_week": { + "type": "string" + }, + "day_of_month": { + "type": "string" + }, + "hour": { + "type": "string" + }, + "minute": { + "type": "string" + } + } + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "last_run_at": { + "type": "string", + "nullable": true + }, + "next_run_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "tasks": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "sequence_id": { + "type": "integer" + }, + "action": { + "type": "string" + }, + "payload": { + "type": "string" + }, + "time_offset": { + "type": "integer" + }, + "is_queued": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "server_schedule", + "attributes": { + "id": 1, + "name": "Daily Reboot", + "cron": { + "day_of_week": "*", + "day_of_month": "*", + "hour": "0", + "minute": "0" + }, + "is_active": true, + "is_processing": false, + "last_run_at": null, + "next_run_at": "2020-06-13T00:00:00+01:00", + "created_at": "2020-06-12T23:50:14+01:00", + "updated_at": "2020-06-12T23:53:07+01:00", + "relationships": { + "tasks": { + "object": "list", + "data": [ + { + "object": "schedule_task", + "attributes": { + "id": 1, + "sequence_id": 1, + "action": "command", + "payload": "say Rebooting...", + "time_offset": 0, + "is_queued": false, + "created_at": "2020-06-12T23:50:46+01:00", + "updated_at": "2020-06-12T23:52:54+01:00" + } + }, + { + "object": "schedule_task", + "attributes": { + "id": 2, + "sequence_id": 2, + "action": "power", + "payload": "restart", + "time_offset": 5, + "is_queued": false, + "created_at": "2020-06-12T23:53:07+01:00", + "updated_at": "2020-06-12T23:53:07+01:00" + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Create schedule", + "operationId": "post-create-schedule", + "description": "Creates a new schedule", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Friendly name for the schedule" + }, + "is_active": { + "type": "boolean", + "description": "Specifies whether the schedule is active" + }, + "minute": { + "type": "string", + "description": "Cron minute syntax" + }, + "hour": { + "type": "string", + "description": "Cron hour syntax" + }, + "day\\_of\\_week": { + "type": "string", + "description": "Cron day-of-month syntax" + }, + "day\\_of\\_month": { + "type": "string", + "description": "Cron day-of-month syntax" + } + }, + "required": [ + "name", + "minute", + "hour", + "day\\_of\\_week", + "day\\_of\\_month" + ] + }, + "example": { + "name": "Minute Hello", + "minute": "*", + "hour": "*", + "day_of_month": "*", + "day_of_week": "*", + "is_active": true + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "cron": { + "type": "object", + "properties": { + "day_of_week": { + "type": "string" + }, + "day_of_month": { + "type": "string" + }, + "hour": { + "type": "string" + }, + "minute": { + "type": "string" + } + } + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "last_run_at": { + "type": "string", + "nullable": true + }, + "next_run_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "tasks": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": {} + } + } + } + } + } + } + } + } + }, + "example": { + "object": "server_schedule", + "attributes": { + "id": 4, + "name": "Minute Hello", + "cron": { + "day_of_week": "*", + "day_of_month": "*", + "hour": "*", + "minute": "*" + }, + "is_active": true, + "is_processing": false, + "last_run_at": null, + "next_run_at": "2020-06-13T15:17:00+01:00", + "created_at": "2020-06-13T15:16:45+01:00", + "updated_at": "2020-06-13T15:16:45+01:00", + "relationships": { + "tasks": { + "object": "list", + "data": [] + } + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/network/allocations": { + "get": { + "tags": [ + "Client - Server - Network" + ], + "summary": "List allocations", + "operationId": "get-list-allocations", + "description": "Retrieves the network information for the specified server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "ip_alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string", + "nullable": true + }, + "is_default": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25565, + "notes": null, + "is_default": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25566, + "notes": "Votifier", + "is_default": false + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Network" + ], + "summary": "Assign allocation", + "operationId": "post-assign-allocation", + "description": "Automatically assigns a new allocation if auto-assign is enabled on the instance", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "ip_alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string", + "nullable": true + }, + "is_default": { + "type": "boolean" + } + } + } + } + }, + "example": { + "object": "allocation", + "attributes": { + "id": 6, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25570, + "notes": null, + "is_default": false + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/network/allocations/{allocation}": { + "post": { + "tags": [ + "Client - Server - Network" + ], + "summary": "Set allocation note", + "operationId": "post-set-allocation-note", + "description": "Sets a note for the allocation\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------|-----------|--------|---------------------|-------|\n| notes | required | string | Note for allocation | |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "allocation", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Allocation ID", + "example": 1 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + } + }, + "example": { + "notes": "Votifier" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "ip_alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string" + }, + "is_default": { + "type": "boolean" + } + } + } + } + }, + "example": { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25566, + "notes": "Votifier", + "is_default": false + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "delete": { + "tags": [ + "Client - Server - Network" + ], + "summary": "Unassign allocation", + "operationId": "delete-unassign-allocation", + "description": "Deletes the specified non-primary allocation", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "allocation", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Allocation ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "status": { + "type": "string" + }, + "detail": { + "type": "string" + } + } + } + } + } + }, + "example": { + "errors": [ + { + "code": "DisplayException", + "status": "400", + "detail": "Cannot delete the primary allocation for a server." + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/network/allocations/{allocation}/primary": { + "post": { + "tags": [ + "Client - Server - Network" + ], + "summary": "Set primary allocation", + "operationId": "post-set-primary-allocation", + "description": "Sets the primary allocation", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "allocation", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Allocation ID", + "example": 1 + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "ip_alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string" + }, + "is_default": { + "type": "boolean" + } + } + } + } + }, + "example": { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "45.86.168.218", + "ip_alias": null, + "port": 25566, + "notes": "Votifier", + "is_default": true + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/users": { + "get": { + "tags": [ + "Client - Server - Users" + ], + "summary": "List Users", + "operationId": "get-list-users", + "description": "Lists all users added to the server, along with details about them and their permissions", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "image": { + "type": "string" + }, + "2fa_enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "server_subuser", + "attributes": { + "uuid": "73f233ca-99e0-47a9-bd46-efd3296d7ad9", + "username": "subuser1uxk", + "email": "subuser1@example.com", + "image": "https://gravatar.com/avatar/c0da5391b64449c1ecbfd4349184377c", + "2fa_enabled": false, + "created_at": "2020-06-12T23:18:43+01:00", + "permissions": [ + "control.console", + "control.start", + "control.stop", + "control.restart", + "user.create", + "user.update", + "user.delete", + "user.read", + "file.create", + "file.read", + "file.update", + "file.delete", + "file.archive", + "file.sftp", + "backup.create", + "backup.read", + "backup.delete", + "backup.update", + "backup.download", + "allocation.update", + "startup.update", + "startup.read", + "database.create", + "database.read", + "database.update", + "database.delete", + "database.view_password", + "schedule.create", + "schedule.read", + "schedule.update", + "settings.rename", + "schedule.delete", + "settings.reinstall", + "websocket.connect" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "60a7aec3-e17d-4aa9-abb3-56d944d204b4", + "username": "subuser2jvc", + "email": "subuser2@example.com", + "image": "https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8", + "2fa_enabled": false, + "created_at": "2020-06-12T23:31:41+01:00", + "permissions": [ + "control.console", + "control.start", + "websocket.connect" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "1287632d-9224-40c0-906e-f543423400bc", + "username": "subuser3bvo", + "email": "subuser3@example.com", + "image": "https://gravatar.com/avatar/8b28d32aaa64a1564450d16f71a81f65", + "2fa_enabled": false, + "created_at": "2020-07-13T14:27:46+01:00", + "permissions": [ + "control.console", + "control.start", + "websocket.connect" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "2fcb6f7e-342a-423a-93a4-6111a237c0c7", + "username": "geboc70057d6r", + "email": "geboc70057@djemail.net", + "image": "https://gravatar.com/avatar/354d25d88e2c73b9f8d8e9bb8f1bf15e", + "2fa_enabled": false, + "created_at": "2020-07-13T14:36:44+01:00", + "permissions": [ + "control.console", + "control.start", + "websocket.connect" + ] + } + }, + { + "object": "server_subuser", + "attributes": { + "uuid": "b20e4e11-550f-4c52-893d-94fc8bc46a06", + "username": "testidq", + "email": "test@example.com", + "image": "https://gravatar.com/avatar/55502f40dc8b7c769880b10874abc9d0", + "2fa_enabled": false, + "created_at": "2020-07-19T13:48:38+01:00", + "permissions": [ + "control.*", + "websocket.connect" + ] + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Users" + ], + "summary": "Create User", + "operationId": "post-create-user", + "description": "Adds a user to the server\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------------|-----------|--------|------------------------------------|-------|\n| email | required | string | Email address of the user | |\n| permissions | required | object | Permissions that user is permitted | |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "email": "subuser2@example.com", + "permissions": [ + "control.console", + "control.start" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "image": { + "type": "string" + }, + "2fa_enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "example": { + "object": "server_subuser", + "attributes": { + "uuid": "60a7aec3-e17d-4aa9-abb3-56d944d204b4", + "username": "subuser2jvc", + "email": "subuser2@example.com", + "image": "https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8", + "2fa_enabled": false, + "created_at": "2020-06-12T23:31:41+01:00", + "permissions": [ + "control.console", + "control.start", + "websocket.connect" + ] + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/backups": { + "get": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "List backups", + "operationId": "get-list-backups", + "description": "Retrieves a list of backups", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "ignored_files": { + "type": "array", + "items": {} + }, + "sha256_hash": { + "type": "string" + }, + "bytes": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "completed_at": { + "type": "string" + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "backup", + "attributes": { + "uuid": "904df120-a66f-4375-a4ae-40eedbeae630", + "name": "Quick Backup", + "ignored_files": [], + "sha256_hash": "7c20d6a269b441a9dfd044e3f8ad13d77c09c83af8832d29ad603084a9a63726", + "bytes": 114402862, + "created_at": "2020-06-13T05:21:01+01:00", + "completed_at": "2020-06-13T05:21:04+01:00" + } + }, + { + "object": "backup", + "attributes": { + "uuid": "63087048-eada-419c-ad72-803c1c949cac", + "name": "Backup at 2020-07-19 16:21:34", + "ignored_files": [], + "sha256_hash": "39bf93b9d8aee45316fa7ec8bbed0530904558851fa8e712452845c969873b16", + "bytes": 114567250, + "created_at": "2020-07-19T16:21:34+01:00", + "completed_at": "2020-07-19T16:21:35+01:00" + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 2, + "per_page": 20, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "Create backup", + "operationId": "post-create-backup", + "description": "Creates a new backup", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "ignored_files": { + "type": "array", + "items": {} + }, + "sha256_hash": { + "type": "string", + "nullable": true + }, + "bytes": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "completed_at": { + "type": "string", + "nullable": true + } + } + } + } + }, + "example": { + "object": "backup", + "attributes": { + "uuid": "63087048-eada-419c-ad72-803c1c949cac", + "name": "Backup at 2020-07-19 16:21:34", + "ignored_files": [], + "sha256_hash": null, + "bytes": 0, + "created_at": "2020-07-19T16:21:34+01:00", + "completed_at": null + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/application/users": { + "get": { + "tags": [ + "Application - Users" + ], + "summary": "List users", + "operationId": "get-list-users", + "description": "Retrieves all users\n\n## Available Include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |\n\n## Filters\n| Parameter |\n|-------------|\n| email |\n| uuid |\n| username |\n| external_id |\n\n## Sort by\n| Parameter |\n|-------------|\n| id |\n| uuid |", + "responses": { + "200": { + "description": "// GET /api/application/users?filter%5Bemail%5D=dane%40daneeveritt.com\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"user\",\n \"attributes\": {\n \"id\": 27,\n \"external_id\": null,\n \"uuid\": \"18528bb9-8f60-45e2-adc6-f72611559fd7\",\n \"username\": \"hodor7wm\",\n \"email\": \"hodor@example.com\",\n \"first_name\": \"Server\",\n \"last_name\": \"Subuser\",\n \"language\": \"en\",\n \"root_admin\": false,\n \"2fa\": false,\n \"created_at\": \"2020-08-19T03:23:35+00:00\",\n \"updated_at\": \"2020-08-19T03:23:35+00:00\"\n }\n },\n {\n \"object\": \"user\",\n \"attributes\": {\n \"id\": 26,\n \"external_id\": null,\n \"uuid\": \"b83673f6-3387-4a37-97cd-dd3a4f508343\",\n \"username\": \"testfz0\",\n \"email\": \"test@example.com\",\n \"first_name\": \"Server\",\n \"last_name\": \"Subuser\",\n \"language\": \"en\",\n \"root_admin\": false,\n \"2fa\": false,\n \"created_at\": \"2020-08-19T03:15:51+00:00\",\n \"updated_at\": \"2020-08-19T03:15:51+00:00\"\n }\n }\n ],\n \"meta\": {\n \"pagination\": {\n \"total\": 2,\n \"count\": 2,\n \"per_page\": 100,\n \"current_page\": 1,\n \"total_pages\": 1,\n \"links\": {}\n }\n }\n}" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "post": { + "tags": [ + "Application - Users" + ], + "summary": "Create user", + "operationId": "post-create-user", + "description": "Creates a new user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "username": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + } + } + }, + "example": { + "email": "example10@example.com", + "username": "exampleuser", + "first_name": "Example", + "last_name": "User" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string", + "nullable": true + }, + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "root_admin": { + "type": "boolean" + }, + "2fa": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + }, + "meta": { + "type": "object", + "properties": { + "resource": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "user", + "attributes": { + "id": 9, + "external_id": null, + "uuid": "dac03ece-fd51-4e4b-bd4f-a79e3b2794f9", + "username": "exampleuser", + "email": "example10@example.com", + "first_name": "Example", + "last_name": "User", + "language": "en", + "root_admin": false, + "2fa": false, + "created_at": "2020-10-29T01:25:12+00:00", + "updated_at": "2020-10-29T01:25:12+00:00" + }, + "meta": { + "resource": "https://pterodactyl.file.properties/api/application/users/9" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/nodes": { + "get": { + "tags": [ + "Application - Nodes" + ], + "summary": "List nodes", + "operationId": "get-list-nodes", + "description": "Retrieves a list of nodes\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------------------|\n| allocations | List of allocations added to the node |\n| location | Information about the location the node is assigned to |\n| servers | List of servers on the node |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "behind_proxy": { + "type": "boolean" + }, + "maintenance_mode": { + "type": "boolean" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_base": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "node", + "attributes": { + "id": 1, + "uuid": "1046d1d1-b8ef-4771-82b1-2b5946d33397", + "public": true, + "name": "Test", + "description": "Test", + "location_id": 1, + "fqdn": "pterodactyl.file.properties", + "scheme": "https", + "behind_proxy": false, + "maintenance_mode": false, + "memory": 2048, + "memory_overallocate": 0, + "disk": 5000, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_listen": 8080, + "daemon_sftp": 2022, + "daemon_base": "/srv/daemon-data", + "created_at": "2019-12-22T04:44:51+00:00", + "updated_at": "2019-12-22T04:44:51+00:00" + } + }, + { + "object": "node", + "attributes": { + "id": 3, + "uuid": "71b15cf6-909a-4b60-aa04-abb4c8f98f61", + "public": true, + "name": "2", + "description": "e", + "location_id": 1, + "fqdn": "pterodactyl.file.properties", + "scheme": "https", + "behind_proxy": false, + "maintenance_mode": false, + "memory": 100, + "memory_overallocate": 0, + "disk": 100, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_listen": 8080, + "daemon_sftp": 2022, + "daemon_base": "/var/lib/pterodactyl/volumes", + "created_at": "2020-06-23T04:50:37+00:00", + "updated_at": "2020-06-23T04:50:37+00:00" + } + } + ], + "meta": { + "pagination": { + "total": 2, + "count": 2, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "post": { + "tags": [ + "Application - Nodes" + ], + "summary": "Create node", + "operationId": "post-create-node", + "description": "Creates a new node", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + } + } + }, + "example": { + "name": "New Node", + "location_id": 1, + "fqdn": "node2.example.com", + "scheme": "https", + "memory": 10240, + "memory_overallocate": 0, + "disk": 50000, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_sftp": 2022, + "daemon_listen": 8080 + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "behind_proxy": { + "type": "boolean" + }, + "maintenance_mode": { + "type": "boolean" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_base": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "allocated_resources": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "disk": { + "type": "integer" + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "resource": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "node", + "attributes": { + "id": 4, + "uuid": "4158cfe9-2aa8-4812-bf6e-d88beeb08e98", + "public": true, + "name": "New Node", + "description": null, + "location_id": 1, + "fqdn": "node2.example.com", + "scheme": "https", + "behind_proxy": false, + "maintenance_mode": false, + "memory": 10240, + "memory_overallocate": 0, + "disk": 50000, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_listen": 8080, + "daemon_sftp": 2022, + "daemon_base": "/var/lib/pterodactyl/volumes", + "created_at": "2020-10-29T01:17:38+00:00", + "updated_at": "2020-10-29T01:17:38+00:00", + "allocated_resources": { + "memory": 0, + "disk": 0 + } + }, + "meta": { + "resource": "https://pterodactyl.file.properties/api/application/nodes/4" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/locations": { + "get": { + "tags": [ + "Application - Locations" + ], + "summary": "List locations", + "operationId": "get-list-locations", + "description": "Retrieves all locations\n\n# Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| nodes | List of nodes assigned to the location |\n| servers | List of servers in the location |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "short": { + "type": "string" + }, + "long": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "location", + "attributes": { + "id": 1, + "short": "GB", + "long": "London Datacenter", + "updated_at": "2020-06-13T21:16:58+00:00", + "created_at": "2019-12-22T04:44:18+00:00" + } + } + ], + "meta": { + "pagination": { + "total": 1, + "count": 1, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + }, + "post": { + "tags": [ + "Application - Locations" + ], + "summary": "Create location", + "operationId": "post-create-location", + "description": "Creates a new location", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "short": { + "type": "string", + "description": "Location identifier" + }, + "long": { + "type": "string", + "description": "Location description" + } + }, + "required": [ + "short" + ] + }, + "example": { + "short": "GB", + "long": "London Datacenter" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "short": { + "type": "string" + }, + "long": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + }, + "meta": { + "type": "object", + "properties": { + "resource": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "location", + "attributes": { + "id": 3, + "short": "G", + "long": "London Datacenter", + "updated_at": "2020-06-13T20:44:48+00:00", + "created_at": "2020-06-13T20:44:48+00:00" + }, + "meta": { + "resource": "https://pterodactyl.file.properties/api/application/locations/3" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + }, + "/api/application/locations/{location}": { + "get": { + "tags": [ + "Application - Locations" + ], + "summary": "Location details", + "operationId": "get-location-details", + "description": "Retrieves the specified location\n\n# Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| nodes | List of nodes assigned to the location |\n| servers | List of servers in the location |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "short": { + "type": "string" + }, + "long": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "location", + "attributes": { + "id": 1, + "short": "Test", + "long": "Test", + "updated_at": "2019-12-22T04:44:18+00:00", + "created_at": "2019-12-22T04:44:18+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Location ID", + "example": 1 + } + ] + }, + "patch": { + "tags": [ + "Application - Locations" + ], + "summary": "Update location", + "operationId": "patch-update-location", + "description": "Updates the specified location", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "short": { + "type": "string" + }, + "long": { + "type": "string" + } + } + }, + "example": { + "short": "GB", + "long": "London Datacenter" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "short": { + "type": "string" + }, + "long": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "location", + "attributes": { + "id": 1, + "short": "GB", + "long": "London Datacenter", + "updated_at": "2020-06-13T21:16:58+00:00", + "created_at": "2019-12-22T04:44:18+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Location ID", + "example": 1 + } + ] + }, + "delete": { + "tags": [ + "Application - Locations" + ], + "summary": "Delete location", + "operationId": "delete-delete-location", + "description": "Deletes the specified location", + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "location", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Location ID", + "example": 1 + } + ] + } + }, + "/api/application/nodes/{node}": { + "get": { + "tags": [ + "Application - Nodes" + ], + "summary": "Node details", + "operationId": "get-node-details", + "description": "Retrieves the specified node\n\n## Available include parameters\n| Parameter | Description |\n|-------------|--------------------------------------------------------|\n| allocations | List of allocations added to the node |\n| location | Information about the location the node is assigned to |\n| servers | List of servers on the node |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "behind_proxy": { + "type": "boolean" + }, + "maintenance_mode": { + "type": "boolean" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_base": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "node", + "attributes": { + "id": 1, + "uuid": "1046d1d1-b8ef-4771-82b1-2b5946d33397", + "public": true, + "name": "Test", + "description": "Test", + "location_id": 1, + "fqdn": "pterodactyl.file.properties", + "scheme": "https", + "behind_proxy": false, + "maintenance_mode": false, + "memory": 2048, + "memory_overallocate": 0, + "disk": 5000, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_listen": 8080, + "daemon_sftp": 2022, + "daemon_base": "/srv/daemon-data", + "created_at": "2019-12-22T04:44:51+00:00", + "updated_at": "2019-12-22T04:44:51+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + } + ] + }, + "patch": { + "tags": [ + "Application - Nodes" + ], + "summary": "Update node", + "operationId": "patch-update-node", + "description": "Updates the node details", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "behind_proxy": { + "type": "boolean" + }, + "maintenance_mode": { + "type": "boolean" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + } + } + }, + "example": { + "name": "Test Renamed", + "description": "Test", + "location_id": 1, + "fqdn": "pterodactyl.file.properties", + "scheme": "https", + "behind_proxy": false, + "maintenance_mode": false, + "memory": 2048, + "memory_overallocate": 0, + "disk": 5000, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_sftp": 2022, + "daemon_listen": 8080 + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "behind_proxy": { + "type": "boolean" + }, + "maintenance_mode": { + "type": "boolean" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_base": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "mounts": { + "type": "array", + "items": {} + }, + "allocated_resources": { + "type": "object", + "properties": { + "memory": { + "type": "integer" + }, + "disk": { + "type": "integer" + } + } + } + } + } + } + }, + "example": { + "object": "node", + "attributes": { + "id": 1, + "uuid": "1046d1d1-b8ef-4771-82b1-2b5946d33397", + "public": true, + "name": "Test Renamed", + "description": "Test", + "location_id": 1, + "fqdn": "pterodactyl.file.properties", + "scheme": "https", + "behind_proxy": false, + "maintenance_mode": false, + "memory": 2048, + "memory_overallocate": 0, + "disk": 5000, + "disk_overallocate": 0, + "upload_size": 100, + "daemon_listen": 8080, + "daemon_sftp": 2022, + "daemon_base": "/var/lib/pterodactyl/volumes", + "created_at": "2019-12-22T04:44:51+00:00", + "updated_at": "2020-10-29T01:20:23+00:00", + "mounts": [], + "allocated_resources": { + "memory": 640, + "disk": 700 + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + } + ] + }, + "delete": { + "tags": [ + "Application - Nodes" + ], + "summary": "Delete node", + "operationId": "delete-delete-node", + "description": "Deletes the specified node", + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + } + ] + } + }, + "/api/application/nodes/{node}/configuration": { + "get": { + "tags": [ + "Application - Nodes" + ], + "summary": "Node configuration", + "operationId": "get-node-configuration", + "description": "Displays the Wings configuration", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "debug": { + "type": "boolean" + }, + "uuid": { + "type": "string" + }, + "token_id": { + "type": "string" + }, + "token": { + "type": "string" + }, + "api": { + "type": "object", + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "ssl": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "cert": { + "type": "string" + }, + "key": { + "type": "string" + } + } + }, + "upload_limit": { + "type": "integer" + } + } + }, + "system": { + "type": "object", + "properties": { + "data": { + "type": "string" + }, + "sftp": { + "type": "object", + "properties": { + "bind_port": { + "type": "integer" + } + } + } + } + }, + "remote": { + "type": "string" + } + } + }, + "example": { + "debug": false, + "uuid": "1046d1d1-b8ef-4771-82b1-2b5946d33397", + "token_id": "iAcosCn1KCAgVjVO", + "token": "FanPzLCptUxkGow3vi7Z", + "api": { + "host": "0.0.0.0", + "port": 8080, + "ssl": { + "enabled": true, + "cert": "/etc/letsencrypt/live/pterodactyl.file.properties/fullchain.pem", + "key": "/etc/letsencrypt/live/pterodactyl.file.properties/privkey.pem" + }, + "upload_limit": 100 + }, + "system": { + "data": "/srv/daemon-data", + "sftp": { + "bind_port": 2022 + } + }, + "remote": "https://pterodactyl.file.properties" + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + } + ] + } + }, + "/api/application/users/{user}": { + "get": { + "tags": [ + "Application - Users" + ], + "summary": "User details", + "operationId": "get-user-details", + "description": "Retrieves the specified user\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "root_admin": { + "type": "boolean" + }, + "2fa": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "user", + "attributes": { + "id": 1, + "external_id": "RemoteId1", + "uuid": "4de5a357-ed95-426b-aec1-8c328cfe9751", + "username": "admin", + "email": "example@example.com", + "first_name": "Admin", + "last_name": "User", + "language": "en", + "root_admin": true, + "2fa": false, + "created_at": "2019-12-22T04:43:29+00:00", + "updated_at": "2020-07-13T13:10:23+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "user", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "User ID", + "example": 1 + } + ] + }, + "patch": { + "tags": [ + "Application - Users" + ], + "summary": "Update user", + "operationId": "patch-update-user", + "description": "Updates the user information", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "username": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "example": { + "email": "example10@example.com", + "username": "exampleuser", + "first_name": "Example", + "last_name": "User", + "language": "en", + "password": "New Password" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string", + "nullable": true + }, + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "root_admin": { + "type": "boolean" + }, + "2fa": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "user", + "attributes": { + "id": 9, + "external_id": null, + "uuid": "dac03ece-fd51-4e4b-bd4f-a79e3b2794f9", + "username": "exampleuser", + "email": "example10@example.com", + "first_name": "Example", + "last_name": "User", + "language": "en", + "root_admin": false, + "2fa": false, + "created_at": "2020-10-29T01:25:12+00:00", + "updated_at": "2020-10-29T01:28:29+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "user", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "User ID", + "example": 1 + } + ] + }, + "delete": { + "tags": [ + "Application - Users" + ], + "summary": "Delete user", + "operationId": "delete-delete-user", + "description": "Deletes the specified user", + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "user", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "User ID", + "example": 1 + } + ] + } + }, + "/api/application/users/external/{external_id}": { + "get": { + "tags": [ + "Application - Users" + ], + "summary": "User details", + "operationId": "get-user-details", + "description": "Retrieves the specified user by its external ID\n\n## Available include parameters\n| Parameter | Description |\n|-----------|----------------------------------------|\n| servers | List of servers the user has access to |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "external_id": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "language": { + "type": "string" + }, + "root_admin": { + "type": "boolean" + }, + "2fa": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "user", + "attributes": { + "id": 1, + "external_id": "RemoteId1", + "uuid": "4de5a357-ed95-426b-aec1-8c328cfe9751", + "username": "admin", + "email": "example@example.com", + "first_name": "Admin", + "last_name": "User", + "language": "en", + "root_admin": true, + "2fa": false, + "created_at": "2019-12-22T04:43:29+00:00", + "updated_at": "2020-07-13T13:10:23+00:00" + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "external_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "External identifier", + "example": "RemoteId1" + } + ] + } + }, + "/api/application/nodes/{node}/allocations": { + "get": { + "tags": [ + "Application - Nodes - Allocations" + ], + "summary": "List allocations", + "operationId": "get-list-allocations", + "description": "Lists allocations added to the node\n\n## Available include parameters\n| Parameter | Description |\n|-----------|--------------------------------------------------------|\n| node | Information about the node the allocation belongs to |\n| server | Information about the server the allocation belongs to |", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "alias": { + "type": "string", + "nullable": true + }, + "port": { + "type": "integer" + }, + "notes": { + "type": "string", + "nullable": true + }, + "assigned": { + "type": "boolean" + } + } + } + } + } + }, + "meta": { + "type": "object", + "properties": { + "pagination": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "current_page": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + }, + "links": { + "type": "object", + "properties": {} + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "allocation", + "attributes": { + "id": 1, + "ip": "45.86.168.218", + "alias": null, + "port": 25565, + "notes": null, + "assigned": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 2, + "ip": "45.86.168.218", + "alias": null, + "port": 25566, + "notes": "Votifier", + "assigned": true + } + }, + { + "object": "allocation", + "attributes": { + "id": 3, + "ip": "45.86.168.218", + "alias": null, + "port": 25567, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 4, + "ip": "45.86.168.218", + "alias": null, + "port": 25568, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 5, + "ip": "45.86.168.218", + "alias": null, + "port": 25569, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 6, + "ip": "45.86.168.218", + "alias": null, + "port": 25570, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 8, + "ip": "10.0.0.1", + "alias": null, + "port": 25565, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 9, + "ip": "45.86.168.218", + "alias": null, + "port": 25571, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 10, + "ip": "45.86.168.218", + "alias": null, + "port": 25572, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 11, + "ip": "45.86.168.218", + "alias": null, + "port": 25573, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 12, + "ip": "45.86.168.218", + "alias": null, + "port": 25574, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 13, + "ip": "45.86.168.218", + "alias": null, + "port": 25575, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 14, + "ip": "45.86.168.218", + "alias": null, + "port": 25576, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 15, + "ip": "45.86.168.218", + "alias": null, + "port": 25577, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 16, + "ip": "45.86.168.218", + "alias": null, + "port": 25578, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 17, + "ip": "45.86.168.218", + "alias": null, + "port": 25579, + "notes": null, + "assigned": false + } + }, + { + "object": "allocation", + "attributes": { + "id": 18, + "ip": "45.86.168.218", + "alias": null, + "port": 25580, + "notes": null, + "assigned": false + } + } + ], + "meta": { + "pagination": { + "total": 17, + "count": 17, + "per_page": 50, + "current_page": 1, + "total_pages": 1, + "links": {} + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + } + ] + }, + "post": { + "tags": [ + "Application - Nodes - Allocations" + ], + "summary": "Create allocations", + "operationId": "post-create-allocations", + "description": "Adds an allocation to the node", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "IP address for the allocations" + }, + "ports": { + "type": "object", + "description": "Object containing the ports to add" + } + }, + "required": [ + "ip", + "ports" + ] + }, + "example": { + "ip": "10.0.0.1", + "ports": [ + "25565" + ] + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + } + ] + } + }, + "/api/client/servers/{server}/settings/rename": { + "post": { + "tags": [ + "Client - Server - Settings" + ], + "summary": "Rename server", + "operationId": "post-rename-server", + "description": "Renames the server\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|------|-----------|--------|-------------------------|-------|\n| name | required | string | New name for the server | |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "example": { + "name": "Gaming" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/settings/reinstall": { + "post": { + "tags": [ + "Client - Server - Settings" + ], + "summary": "Reinstall server", + "operationId": "post-reinstall-server", + "description": "Renames the server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/application/nodes/{node}/allocations/{allocation}": { + "delete": { + "tags": [ + "Application - Nodes - Allocations" + ], + "summary": "Delete allocation", + "operationId": "delete-delete-allocation", + "description": "Deletes the specified allocation", + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ApplicationToken": [] + } + ], + "parameters": [ + { + "name": "node", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Node ID", + "example": 1 + }, + { + "name": "allocation", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Allocation ID", + "example": 1 + } + ] + } + }, + "/api/client/servers/{server}/backups/{backup}": { + "get": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "Backup details", + "operationId": "get-backup-details", + "description": "Retrieves information about the specified backup", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "backup", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Backup UUID", + "example": "904df120-a66f-4375-a4ae-40eedbeae630" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "ignored_files": { + "type": "array", + "items": {} + }, + "sha256_hash": { + "type": "string" + }, + "bytes": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "completed_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "backup", + "attributes": { + "uuid": "904df120-a66f-4375-a4ae-40eedbeae630", + "name": "Quick Backup", + "ignored_files": [], + "sha256_hash": "7c20d6a269b441a9dfd044e3f8ad13d77c09c83af8832d29ad603084a9a63726", + "bytes": 114402862, + "created_at": "2020-06-13T05:21:01+01:00", + "completed_at": "2020-06-13T05:21:04+01:00" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "delete": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "Delete backup", + "operationId": "delete-delete-backup", + "description": "Deletes the specified backup", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "backup", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Backup UUID", + "example": "904df120-a66f-4375-a4ae-40eedbeae630" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/backups/{backup}/download": { + "get": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "Download backup", + "operationId": "get-download-backup", + "description": "Generates a download link for a backup", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "backup", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Backup UUID", + "example": "904df120-a66f-4375-a4ae-40eedbeae630" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "signed_url", + "attributes": { + "url": "https://pterodactyl.file.properties:8080/download/backup?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5NTE3MjEyNSwibmJmIjoxNTk1MTcxODI1LCJleHAiOjE1OTUxNzMwMjUsImJhY2t1cF91dWlkIjoiOTA0ZGYxMjAtYTY2Zi00Mzc1LWE0YWUtNDBlZWRiZWFlNjMwIiwic2VydmVyX3V1aWQiOiIxYTdjZTk5Ny0yNTliLTQ1MmUtOGI0ZS1jZWNjNDY0MTQyY2EiLCJ1bmlxdWVfaWQiOiJKN1lIQUFUZzVoYVg4M1VOIn0.0zSozCFyjsYjGjUiPS76wM1WXX09FecNxdSZnj6rNt4" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/users/{subuser}": { + "get": { + "tags": [ + "Client - Server - Users" + ], + "summary": "User details", + "operationId": "get-user-details", + "description": "Retrieves information about a specific user", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "subuser", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Subuser UUID", + "example": "60a7aec3-e17d-4aa9-abb3-56d944d204b4" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "image": { + "type": "string" + }, + "2fa_enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "example": { + "object": "server_subuser", + "attributes": { + "uuid": "60a7aec3-e17d-4aa9-abb3-56d944d204b4", + "username": "subuser2jvc", + "email": "subuser2@example.com", + "image": "https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8", + "2fa_enabled": false, + "created_at": "2020-06-12T23:31:41+01:00", + "permissions": [ + "control.console", + "control.start", + "websocket.connect" + ] + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Users" + ], + "summary": "Update user", + "operationId": "post-update-user", + "description": "Updates the specified user\n\n# Fields\n| Name | Required? | Type | Description | Rules |\n|-------------|-----------|--------|------------------------------------|-------|\n| permissions | required | object | Permissions that user is permitted | |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "subuser", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Subuser UUID", + "example": "60a7aec3-e17d-4aa9-abb3-56d944d204b4" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "permissions": [ + "control.console", + "control.start" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "image": { + "type": "string" + }, + "2fa_enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "example": { + "object": "server_subuser", + "attributes": { + "uuid": "60a7aec3-e17d-4aa9-abb3-56d944d204b4", + "username": "subuser2jvc", + "email": "subuser2@example.com", + "image": "https://gravatar.com/avatar/3bb1c751a8b3488f4a4c70eddfe898d8", + "2fa_enabled": false, + "created_at": "2020-06-12T23:31:41+01:00", + "permissions": [ + "control.console", + "control.start", + "websocket.connect" + ] + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "delete": { + "tags": [ + "Client - Server - Users" + ], + "summary": "Delete user", + "operationId": "delete-delete-user", + "description": "Removes the specified user from the server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "subuser", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Subuser UUID", + "example": "60a7aec3-e17d-4aa9-abb3-56d944d204b4" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/schedules/{schedule}": { + "get": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Schedule details", + "operationId": "get-schedule-details", + "description": "Retrieves specific schedule", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "cron": { + "type": "object", + "properties": { + "day_of_week": { + "type": "string" + }, + "day_of_month": { + "type": "string" + }, + "hour": { + "type": "string" + }, + "minute": { + "type": "string" + } + } + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "last_run_at": { + "type": "string", + "nullable": true + }, + "next_run_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "tasks": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "sequence_id": { + "type": "integer" + }, + "action": { + "type": "string" + }, + "payload": { + "type": "string" + }, + "time_offset": { + "type": "integer" + }, + "is_queued": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "server_schedule", + "attributes": { + "id": 1, + "name": "Daily Reboot", + "cron": { + "day_of_week": "*", + "day_of_month": "*", + "hour": "0", + "minute": "0" + }, + "is_active": true, + "is_processing": false, + "last_run_at": null, + "next_run_at": "2020-06-13T00:00:00+01:00", + "created_at": "2020-06-12T23:50:14+01:00", + "updated_at": "2020-06-12T23:53:07+01:00", + "relationships": { + "tasks": { + "object": "list", + "data": [ + { + "object": "schedule_task", + "attributes": { + "id": 1, + "sequence_id": 1, + "action": "command", + "payload": "say Rebooting...", + "time_offset": 0, + "is_queued": false, + "created_at": "2020-06-12T23:50:46+01:00", + "updated_at": "2020-06-12T23:52:54+01:00" + } + }, + { + "object": "schedule_task", + "attributes": { + "id": 2, + "sequence_id": 2, + "action": "power", + "payload": "restart", + "time_offset": 5, + "is_queued": false, + "created_at": "2020-06-12T23:53:07+01:00", + "updated_at": "2020-06-12T23:53:07+01:00" + } + } + ] + } + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Update schedule", + "operationId": "post-update-schedule", + "description": "Updates the specified schedule", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Friendly name for the schedule" + }, + "is_active": { + "type": "boolean", + "description": "Specifies whether the schedule is active" + }, + "minute": { + "type": "string", + "description": "Cron minute syntax" + }, + "hour": { + "type": "string", + "description": "Cron hour syntax" + }, + "day_of_week": { + "type": "string", + "description": "Cron day-of-month syntax" + }, + "day_of_month": { + "type": "string", + "description": "Cron day-of-month syntax" + } + }, + "required": [ + "name", + "minute", + "hour", + "day_of_week", + "day_of_month" + ] + }, + "example": { + "name": "Hourly Hello", + "minute": "0", + "hour": "*", + "day_of_month": "*", + "day_of_week": "*" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "cron": { + "type": "object", + "properties": { + "day_of_week": { + "type": "string" + }, + "day_of_month": { + "type": "string" + }, + "hour": { + "type": "string" + }, + "minute": { + "type": "string" + } + } + }, + "is_active": { + "type": "boolean" + }, + "is_processing": { + "type": "boolean" + }, + "last_run_at": { + "type": "string", + "nullable": true + }, + "next_run_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "relationships": { + "type": "object", + "properties": { + "tasks": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": {} + } + } + } + } + } + } + } + } + }, + "example": { + "object": "server_schedule", + "attributes": { + "id": 2, + "name": "Hourly Hello", + "cron": { + "day_of_week": "*", + "day_of_month": "*", + "hour": "*", + "minute": "0" + }, + "is_active": false, + "is_processing": false, + "last_run_at": null, + "next_run_at": "2020-06-13T16:00:00+01:00", + "created_at": "2020-06-13T15:05:25+01:00", + "updated_at": "2020-06-13T15:14:07+01:00", + "relationships": { + "tasks": { + "object": "list", + "data": [] + } + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "delete": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Delete schedule", + "operationId": "delete-delete-schedule", + "description": "Deletes the specified schedule", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/schedules/{schedule}/tasks": { + "post": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Create task", + "operationId": "post-create-task", + "description": "Creates a new task on the specified schedule", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "Type of action to use" + }, + "payload": { + "type": "string", + "description": "Payload to send" + }, + "time_offset": { + "type": "string", + "description": "Offset in seconds" + } + }, + "required": [ + "action", + "payload", + "time_offset" + ] + }, + "example": { + "action": "command", + "payload": "say Hello World", + "time_offset": "0" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "sequence_id": { + "type": "integer" + }, + "action": { + "type": "string" + }, + "payload": { + "type": "string" + }, + "time_offset": { + "type": "integer" + }, + "is_queued": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "schedule_task", + "attributes": { + "id": 6, + "sequence_id": 1, + "action": "command", + "payload": "say Hello World", + "time_offset": 0, + "is_queued": false, + "created_at": "2020-10-29T01:09:03+00:00", + "updated_at": "2020-10-29T01:09:03+00:00" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/schedules/{schedule}/tasks/{task}": { + "post": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Update task", + "operationId": "post-update-task", + "description": "Updates the specified task", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + }, + { + "name": "task", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Task ID", + "example": 1 + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "Type of action to use" + }, + "payload": { + "type": "string", + "description": "Payload to send" + }, + "time_offset": { + "type": "string", + "description": "Offset in seconds" + } + }, + "required": [ + "action", + "payload", + "time_offset" + ] + }, + "example": { + "action": "command", + "payload": "say Updated Statement!?", + "time_offset": "0" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "sequence_id": { + "type": "integer" + }, + "action": { + "type": "string" + }, + "payload": { + "type": "string" + }, + "time_offset": { + "type": "integer" + }, + "is_queued": { + "type": "boolean" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "schedule_task", + "attributes": { + "id": 6, + "sequence_id": 1, + "action": "command", + "payload": "say Updated Statement!?", + "time_offset": 0, + "is_queued": false, + "created_at": "2020-10-29T01:09:03+00:00", + "updated_at": "2020-10-29T01:10:30+00:00" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "delete": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Delete task", + "operationId": "delete-delete-task", + "description": "Deletes the specified task", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + }, + { + "name": "task", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Task ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/contents": { + "get": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Get file contents", + "operationId": "get-get-file-contents", + "description": "Displays the contents of the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|--------------------------------------|\n| file | URL encoded path to the desired file |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "file", + "in": "query", + "schema": { + "type": "string" + }, + "example": "/paper.yml" + } + ], + "responses": { + "200": { + "description": "# This is the main configuration file for Paper.\n# As you can see, there's tons to configure. Some options may impact gameplay, so use\n# with caution, and make sure you know what each option does before configuring.\n# \n# If you need help with the configuration or have any questions related to Paper,\n# join us in our Discord or IRC channel.\n# \n# Discord: https://paperdiscord.emc.gs\n# IRC: #paper @ irc.spi.gt ( http://irc.spi.gt/iris/?channels=paper )\n# Website: https://papermc.io/ \n# Docs: https://paper.readthedocs.org/ \n\nverbose: false\nconfig-version: 20\nsettings:\n load-permissions-yml-before-plugins: true\n bungee-online-mode: true\n region-file-cache-size: 256\n incoming-packet-spam-threshold: 300\n save-player-data: true\n use-alternative-luck-formula: false\n suggest-player-names-when-null-tab-completions: true\n enable-player-collisions: true\n save-empty-scoreboard-teams: false\n velocity-support:\n enabled: false\n online-mode: false\n secret: ''\n async-chunks:\n enable: true\n load-threads: -1\n watchdog:\n early-warning-every: 5000\n early-warning-delay: 10000\n spam-limiter:\n tab-spam-increment: 1\n tab-spam-limit: 500\n book-size:\n page-max: 2560\n total-multiplier: 0.98\nmessages:\n no-permission: '&cI''m sorry, but you do not have permission to perform this command.\n Please contact the server administrators if you believe that this is in error.'\n kick:\n authentication-servers-down: ''\n connection-throttle: Connection throttled! Please wait before reconnecting.\n flying-player: Flying is not enabled on this server\n flying-vehicle: Flying is not enabled on this server\ntimings:\n enabled: true\n verbose: true\n server-name-privacy: false\n hidden-config-entries:\n - database\n - settings.bungeecord-addresses\n history-interval: 300\n history-length: 3600\n server-name: Unknown Server\nworld-settings:\n default:\n per-player-mob-spawns: false\n optimize-explosions: false\n portal-search-radius: 128\n disable-teleportation-suffocation-check: false\n fixed-chunk-inhabited-time: -1\n use-vanilla-world-scoreboard-name-coloring: false\n remove-corrupt-tile-entities: false\n enable-treasure-maps: true\n treasure-maps-return-already-discovered: false\n experience-merge-max-value: -1\n prevent-moving-into-unloaded-chunks: false\n max-auto-save-chunks-per-tick: 24\n falling-block-height-nerf: 0\n tnt-entity-height-nerf: 0\n filter-nbt-data-from-spawn-eggs-and-related: true\n max-entity-collisions: 8\n disable-creeper-lingering-effect: false\n duplicate-uuid-resolver: saferegen\n duplicate-uuid-saferegen-delete-range: 32\n prevent-tnt-from-moving-in-water: false\n disable-thunder: false\n skeleton-horse-thunder-spawn-chance: 0.01\n disable-ice-and-snow: false\n count-all-mobs-for-spawning: false\n keep-spawn-loaded-range: 10\n keep-spawn-loaded: true\n auto-save-interval: -1\n armor-stands-do-collision-entity-lookups: true\n non-player-arrow-despawn-rate: -1\n creative-arrow-despawn-rate: -1\n nether-ceiling-void-damage-height: 0\n grass-spread-tick-rate: 1\n water-over-lava-flow-speed: 5\n bed-search-radius: 1\n fix-zero-tick-instant-grow-farms: true\n use-faster-eigencraft-redstone: false\n allow-non-player-entities-on-scoreboards: false\n disable-explosion-knockback: false\n container-update-tick-rate: 1\n parrots-are-unaffected-by-player-movement: false\n armor-stands-tick: true\n spawner-nerfed-mobs-should-jump: false\n entities-target-with-follow-range: false\n allow-leashing-undead-horse: false\n baby-zombie-movement-modifier: 0.5\n mob-spawner-tick-rate: 1\n all-chunks-are-slime-chunks: false\n game-mechanics:\n scan-for-legacy-ender-dragon: true\n disable-pillager-patrols: false\n disable-relative-projectile-velocity: false\n disable-chest-cat-detection: false\n shield-blocking-delay: 5\n disable-end-credits: false\n disable-player-crits: false\n disable-sprint-interruption-on-attack: false\n disable-unloaded-chunk-enderpearl-exploit: true\n max-growth-height:\n cactus: 3\n reeds: 3\n fishing-time-range:\n MinimumTicks: 100\n MaximumTicks: 600\n despawn-ranges:\n soft: 32\n hard: 128\n lightning-strike-distance-limit:\n sound: -1\n impact-sound: -1\n flash: -1\n frosted-ice:\n enabled: true\n delay:\n min: 20\n max: 40\n lootables:\n auto-replenish: false\n restrict-player-reloot: true\n reset-seed-on-fill: true\n max-refills: -1\n refresh-min: 12h\n refresh-max: 2d\n alt-item-despawn-rate:\n enabled: false\n items:\n COBBLESTONE: 300\n hopper:\n cooldown-when-full: true\n disable-move-event: false\n anti-xray:\n enabled: false\n engine-mode: 1\n chunk-edge-mode: 2\n max-chunk-section-index: 3\n update-radius: 2\n hidden-blocks:\n - gold_ore\n - iron_ore\n - coal_ore\n - lapis_ore\n - mossy_cobblestone\n - obsidian\n - chest\n - diamond_ore\n - redstone_ore\n - clay\n - emerald_ore\n - ender_chest\n replacement-blocks:\n - stone\n - oak_planks\n generator-settings:\n flat-bedrock: false\n squid-spawn-height:\n maximum: 0.0" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/download": { + "get": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Download file", + "operationId": "get-download-file", + "description": "Generates a one-time link to download the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|------------------------------|\n| file | URL encoded path to the desired file |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "file", + "in": "query", + "schema": { + "type": "string" + }, + "example": "/eula.txt" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "signed_url", + "attributes": { + "url": "https://pterodactyl.file.properties:8080/download/file?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5NDY0ODEwMCwibmJmIjoxNTk0NjQ3ODAwLCJleHAiOjE1OTQ2NDkwMDAsImZpbGVfcGF0aCI6IlwvZXVsYS50eHQiLCJzZXJ2ZXJfdXVpZCI6IjFhN2NlOTk3LTI1OWItNDUyZS04YjRlLWNlY2M0NjQxNDJjYSIsInVuaXF1ZV9pZCI6IlNvWUdIamNaNmhKUVlieHUifQ.h4eBmxDXf-4GAwVuAWZFU5QTqd62jw7HTre4aKQGpvw" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/rename": { + "put": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Rename file", + "operationId": "put-rename-file", + "description": "Renames the specified file(s) or folder(s)", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "root": { + "type": "string" + }, + "files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + } + } + } + } + }, + "example": { + "root": "/", + "files": [ + { + "from": "data", + "to": "abc" + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/copy": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Copy file", + "operationId": "post-copy-file", + "description": "Copies the specified file", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "location": { + "type": "string" + } + } + }, + "example": { + "location": "/server.properties" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/write": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Write file", + "operationId": "post-write-file", + "description": "Writes data to the specified file\n\n## Available parameters\n| Parameter | Description |\n|-----------|--------------------------------------|\n| file | URL encoded path to the desired file |", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "file", + "in": "query", + "schema": { + "type": "string" + }, + "example": "/eula.txt" + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/compress": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Compress file", + "operationId": "post-compress-file", + "description": "Compresses the specified file", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "root": { + "type": "string" + }, + "files": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "root": "/", + "files": [ + "abc" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "mode": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "is_file": { + "type": "boolean" + }, + "is_symlink": { + "type": "boolean" + }, + "is_editable": { + "type": "boolean" + }, + "mimetype": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "modified_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "file_object", + "attributes": { + "name": "archive-2020-08-23T220805Z.tar.gz", + "mode": "-rw-------", + "size": 0, + "is_file": true, + "is_symlink": false, + "is_editable": false, + "mimetype": "application/tar+gzip", + "created_at": "2020-08-23T22:08:05+00:00", + "modified_at": "2020-08-23T22:08:05+00:00" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/decompress": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Decompress file", + "operationId": "post-decompress-file", + "description": "Decompresses the selected file", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "root": { + "type": "string" + }, + "file": { + "type": "string" + } + } + }, + "example": { + "root": "/", + "file": "archive-2020-08-23T220655Z.tar.gz" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/delete": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Delete file", + "operationId": "post-delete-file", + "description": "Deletes the specified file(s) or folder(s)", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "root": { + "type": "string" + }, + "files": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "root": "/maps", + "files": [ + "worlds" + ] + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/create-folder": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Create folder", + "operationId": "post-create-folder", + "description": "Creates the specified folder in the specified directory", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "root": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "example": { + "root": "/maps", + "name": "worlds" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/upload": { + "get": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Upload file", + "operationId": "get-upload-file", + "description": "Returns a signed URL used to upload files to the server using POST", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "signed_url", + "attributes": { + "url": "https://pterodactyl.file.properties:8080/upload/file?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjdkYzAxNzVjODU4MTE5MDRlMjJjNTcxNjBhMjkwMjgwZGFjMDMzM2I2ZmJhMTE3YTI4YjdhMDM5Y2U1OTg0YzcifQ.eyJpc3MiOiJodHRwczpcL1wvcHRlcm9kYWN0eWwuZmlsZS5wcm9wZXJ0aWVzIiwiYXVkIjoiaHR0cHM6XC9cL3B0ZXJvZGFjdHlsLmZpbGUucHJvcGVydGllczo4MDgwIiwianRpIjoiN2RjMDE3NWM4NTgxMTkwNGUyMmM1NzE2MGEyOTAyODBkYWMwMzMzYjZmYmExMTdhMjhiN2EwMzljZTU5ODRjNyIsImlhdCI6MTU5ODIyMTMyMSwibmJmIjoxNTk4MjIxMDIxLCJleHAiOjE1OTgyMjIyMjEsInNlcnZlcl91dWlkIjoiMWE3Y2U5OTctMjU5Yi00NTJlLThiNGUtY2VjYzQ2NDE0MmNhIiwidW5pcXVlX2lkIjoiNmM2OFdkSkJTVzg0RlBsUiJ9.GJ5681K9ehhPCcXevyxw-RO1jhv4UWg5T8b_P7r6s8Q" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/databases/{database}/rotate-password": { + "post": { + "tags": [ + "Client - Server - Databases" + ], + "summary": "Rotate password", + "operationId": "post-rotate-password", + "description": "Changes the password of a specified database", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "database", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Database ID", + "example": 1 + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "host": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" + }, + "connections_from": { + "type": "string" + }, + "max_connections": { + "type": "integer" + }, + "relationships": { + "type": "object", + "properties": { + "password": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "password": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "example": { + "object": "server_database", + "attributes": { + "id": "y9YVxO4V", + "host": { + "address": "127.0.0.1", + "port": 3306 + }, + "name": "s5_punishments", + "username": "u5_aeZqbGdCM9", + "connections_from": "%", + "max_connections": 0, + "relationships": { + "password": { + "object": "database_password", + "attributes": { + "password": "vnFKXlJ.p77!EiGR+Kd3muB." + } + } + } + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/databases/{database}": { + "delete": { + "tags": [ + "Client - Server - Databases" + ], + "summary": "Delete database", + "operationId": "delete-delete-database", + "description": "Deletes the specified database", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "database", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Database ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account": { + "get": { + "tags": [ + "Client - Account" + ], + "summary": "Account details", + "operationId": "get-account-details", + "description": "Retrieves information about the account", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "admin": { + "type": "boolean" + }, + "username": { + "type": "string" + }, + "email": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "language": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "user", + "attributes": { + "id": 1, + "admin": true, + "username": "admin", + "email": "example@example.com", + "first_name": "Admin", + "last_name": "User", + "language": "en" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/two-factor": { + "get": { + "tags": [ + "Client - Account" + ], + "summary": "2FA details", + "operationId": "get-2fa-details", + "description": "Generates a TOTP QR code image to allow the setup of 2FA", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "image_url_data": { + "type": "string" + } + } + } + } + }, + "example": { + "data": { + "image_url_data": "otpauth://totp/Pterodactyl:example%40example.com?secret=LGYOWJEGVRPPGPWATP5ZHOYC7DHAYQ6S&issuer=Pterodactyl" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Account" + ], + "summary": "Enable 2FA", + "operationId": "post-enable-2fa", + "description": "Enables TOTP 2FA using the QR code generated by the GET request\n\nUses code generated from `GET /account/two-factor`", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "TOTP Code" + } + }, + "required": [ + "code" + ] + }, + "example": { + "code": "505134" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "tokens": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "example": { + "object": "recovery_tokens", + "attributes": { + "tokens": [ + "MpBjHH8O08", + "D9H0hktN6L", + "ho8KiUpeV8", + "06vZEfrYPf", + "nFRySZ2ryh", + "7K1cTrhGoV", + "n6xpwwlJfv", + "hAmyCsZxYO", + "5FiMKFyNpH", + "IViSFoRFvW" + ] + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "status": { + "type": "string" + }, + "detail": { + "type": "string" + } + } + } + } + } + }, + "example": { + "errors": [ + { + "code": "TwoFactorAuthenticationTokenInvalid", + "status": "400", + "detail": "The token provided is not valid." + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/email": { + "put": { + "tags": [ + "Client - Account" + ], + "summary": "Update email", + "operationId": "put-update-email", + "description": "Updates the email address of the account", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "New email" + }, + "password": { + "type": "string", + "description": "Existing password" + } + }, + "required": [ + "email", + "password" + ] + }, + "example": { + "email": "example@xample.com", + "password": "Password" + } + } + } + }, + "responses": { + "201": { + "description": "Successful" + }, + "400": { + "description": "// Invalid password\n{\n \"errors\": [\n {\n \"code\": \"InvalidPasswordProvidedException\",\n \"status\": \"400\",\n \"detail\": \"The password provided was invalid for this account.\"\n }\n ]\n}" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/password": { + "put": { + "tags": [ + "Client - Account" + ], + "summary": "Update password", + "operationId": "put-update-password", + "description": "Updates the password of the account", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_password": { + "type": "string", + "description": "Existing password" + }, + "password": { + "type": "string", + "description": "New password" + }, + "password_confirmation": { + "type": "string", + "description": "Confirm new password" + } + }, + "required": [ + "current_password", + "password", + "password_confirmation" + ] + }, + "example": { + "current_password": "Password", + "password": "password", + "password_confirmation": "password" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/api-keys": { + "get": { + "tags": [ + "Client - Account" + ], + "summary": "List API keys", + "operationId": "get-list-api-keys", + "description": "Retries a list of API keys", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "description": { + "type": "string" + }, + "allowed_ips": { + "type": "array", + "items": {} + }, + "last_used_at": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "api_key", + "attributes": { + "identifier": "wwQ5DJ6X1XaFznQS", + "description": "API Docs", + "allowed_ips": [], + "last_used_at": "2020-06-03T15:04:47+01:00", + "created_at": "2020-05-18T00:12:43+01:00" + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Account" + ], + "summary": "Create API key", + "operationId": "post-create-api-key", + "description": "Generates a new API key", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Note for the API key" + } + }, + "required": [ + "description" + ] + }, + "example": { + "description": "Restricted IPs", + "allowed_ips": [ + "127.0.0.1", + "192.168.0.1" + ] + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "description": { + "type": "string" + }, + "allowed_ips": { + "type": "array", + "items": { + "type": "string" + } + }, + "last_used_at": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + } + } + }, + "meta": { + "type": "object", + "properties": { + "secret_token": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "api_key", + "attributes": { + "identifier": "yjAZbHMyKrv9YRZ0", + "description": "Restricted IPs", + "allowed_ips": [ + "127.0.0.1", + "192.168.0.1" + ], + "last_used_at": null, + "created_at": "2020-08-17T04:44:42+01:00" + }, + "meta": { + "secret_token": "wiHiMbmgjLOkA2fPzRD6KdMe7Q9Cqaka" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/api-keys/{api_key}": { + "delete": { + "tags": [ + "Client - Account" + ], + "summary": "Delete API key", + "operationId": "delete-delete-api-key", + "description": "Deletes the specified API key", + "responses": { + "204": { + "description": "No Content" + }, + "404": { + "description": "// Non existing API key\n{\n \"errors\": [\n {\n \"code\": \"NotFoundHttpException\",\n \"status\": \"404\",\n \"detail\": \"An error was encountered while processing this request.\"\n }\n ]\n}" + } + }, + "security": [ + { + "ClientToken": [] + } + ], + "parameters": [ + { + "name": "api_key", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "API key identifier", + "example": "NWKMYMT2Mrav0Iq2" + } + ] + } + }, + "/api/client/account/ssh-keys": { + "get": { + "tags": [ + "Client - Account" + ], + "summary": "List SSH keys", + "operationId": "get-list-ssh-keys", + "description": "Returns all SSH keys on the authenticated user's account", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "public_key": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "ssh_key", + "attributes": { + "name": "my-key", + "fingerprint": "jwNan4mvlewsaCP5p7YKVgALQGUBiOCcKViJIGIrktQ", + "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...", + "created_at": "2026-02-22T15:23:33+01:00" + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + }, + "post": { + "tags": [ + "Client - Account" + ], + "summary": "Create SSH key", + "operationId": "post-create-ssh-key", + "description": "Adds an SSH key to the user's account. Used for SFTP authentication. Requires a 2048+ bit RSA key or an ECDSA/Ed25519 key.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "public_key": { + "type": "string" + } + }, + "required": [ + "name", + "public_key" + ] + }, + "example": { + "name": "my-key", + "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... user@host" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "public_key": { + "type": "string" + }, + "created_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "ssh_key", + "attributes": { + "name": "my-key", + "fingerprint": "jwNan4mvlewsaCP5p7YKVgALQGUBiOCcKViJIGIrktQ", + "public_key": "-----BEGIN PUBLIC KEY-----\r\nMCowBQYDK2VwAyEA...\r\n-----END PUBLIC KEY-----", + "created_at": "2026-02-22T15:23:33+01:00" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/ssh-keys/remove": { + "post": { + "tags": [ + "Client - Account" + ], + "summary": "Remove SSH key", + "operationId": "post-remove-ssh-key", + "description": "Removes an SSH key from the user's account by its fingerprint", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "fingerprint": { + "type": "string", + "description": "The fingerprint of the SSH key to remove" + } + }, + "required": [ + "fingerprint" + ] + }, + "example": { + "fingerprint": "jwNan4mvlewsaCP5p7YKVgALQGUBiOCcKViJIGIrktQ" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/activity": { + "get": { + "tags": [ + "Client - Account" + ], + "summary": "Account activity", + "operationId": "get-account-activity", + "description": "Returns the activity log for the authenticated user's account", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "batch": { + "type": "string", + "nullable": true + }, + "event": { + "type": "string" + }, + "is_api": { + "type": "boolean" + }, + "ip": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object" + }, + "has_additional_metadata": { + "type": "boolean" + }, + "timestamp": { + "type": "string" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "activity_log", + "attributes": { + "id": "c7d4d572c5422d89a66408a1facd4e06cb4f65dd", + "batch": null, + "event": "auth:success", + "is_api": false, + "ip": "82.73.127.188", + "description": null, + "properties": { + "ip": "82.73.127.188", + "useragent": "Mozilla/5.0 ..." + }, + "has_additional_metadata": false, + "timestamp": "2025-12-01T23:10:45+01:00" + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/activity": { + "get": { + "tags": [ + "Client - Server" + ], + "summary": "Server activity", + "operationId": "get-server-activity", + "description": "Returns the activity log for the specified server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "batch": { + "type": "string", + "nullable": true + }, + "event": { + "type": "string" + }, + "is_api": { + "type": "boolean" + }, + "ip": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "properties": { + "type": "object" + }, + "has_additional_metadata": { + "type": "boolean" + }, + "timestamp": { + "type": "string" + } + } + } + } + } + } + } + }, + "example": { + "object": "list", + "data": [ + { + "object": "activity_log", + "attributes": { + "id": "abc123", + "batch": null, + "event": "server:power.start", + "is_api": false, + "ip": "82.73.127.188", + "description": null, + "properties": {}, + "has_additional_metadata": false, + "timestamp": "2025-12-01T23:10:45+01:00" + } + } + ] + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/backups/{backup}/lock": { + "post": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "Toggle backup lock", + "operationId": "post-toggle-backup-lock", + "description": "Toggles the locked status of a backup. A locked backup cannot be deleted by the automatic backup rotation.", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "backup", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Backup UUID", + "example": "904df120-a66f-4375-a4ae-40eedbeae630" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "uuid": { + "type": "string" + }, + "is_successful": { + "type": "boolean" + }, + "is_locked": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "ignored_files": { + "type": "array", + "items": { + "type": "string" + } + }, + "checksum": { + "type": "string", + "nullable": true + }, + "bytes": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "completed_at": { + "type": "string" + } + } + } + } + }, + "example": { + "object": "backup", + "attributes": { + "uuid": "b25bd2e3-4fbf-4ef3-8590-ad451364ee1c", + "is_successful": true, + "is_locked": true, + "name": "backup", + "ignored_files": [], + "checksum": "sha1:898e2b835849de8243616c104f4edf21160a79ef", + "bytes": 538508593, + "created_at": "2025-04-27T21:35:40+02:00", + "completed_at": "2025-04-27T21:36:03+02:00" + } + } + } + } + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/backups/{backup}/restore": { + "post": { + "tags": [ + "Client - Server - Backups" + ], + "summary": "Restore backup", + "operationId": "post-restore-backup", + "description": "Restores a backup to the server. Existing files will be overwritten. Returns 400 if the backup has not completed, or if the server is currently installing, transferring, or restoring a different backup.", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "backup", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Backup UUID", + "example": "904df120-a66f-4375-a4ae-40eedbeae630" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "truncate": { + "type": "boolean", + "description": "Whether to delete all files before restoring the backup" + } + }, + "required": [ + "truncate" + ] + }, + "example": { + "truncate": false + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/chmod": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Change file permissions", + "operationId": "post-chmod-file", + "description": "Updates file permissions for one or more files in the given directory", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "root": { + "type": "string", + "description": "Base directory of the files" + }, + "files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "file": { + "type": "string" + }, + "mode": { + "type": "integer" + } + }, + "required": [ + "file", + "mode" + ] + } + } + }, + "required": [ + "files" + ] + }, + "example": { + "root": "/", + "files": [ + { + "file": "server.properties", + "mode": 644 + } + ] + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/files/pull": { + "post": { + "tags": [ + "Client - Server - File Manager" + ], + "summary": "Pull remote file", + "operationId": "post-pull-file", + "description": "Downloads a file from an external URL to the server", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "directory": { + "type": "string", + "description": "Directory to save the file in" + }, + "filename": { + "type": "string", + "description": "Override the filename" + }, + "use_header": { + "type": "string", + "description": "Use the filename from the response headers" + }, + "foreground": { + "type": "boolean", + "description": "Whether to download in the foreground" + } + }, + "required": [ + "url" + ] + }, + "example": { + "url": "https://example.com/server-plugin.jar", + "directory": "/plugins", + "filename": "plugin.jar" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/schedules/{schedule}/execute": { + "post": { + "tags": [ + "Client - Server - Schedules" + ], + "summary": "Execute schedule", + "operationId": "post-execute-schedule", + "description": "Triggers a schedule to run now, regardless of its cron timing", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + }, + { + "name": "schedule", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Schedule ID", + "example": 1 + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/servers/{server}/settings/docker-image": { + "put": { + "tags": [ + "Client - Server - Settings" + ], + "summary": "Update Docker image", + "operationId": "put-update-docker-image", + "description": "Changes the Docker image the server runs with. The image must be one of the images allowed by the server's egg. Returns 400 if the image was manually set by an admin.", + "parameters": [ + { + "name": "server", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "Server identifier (short 8-character ID)", + "example": "1a7ce997" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "docker_image": { + "type": "string" + } + }, + "required": [ + "docker_image" + ] + }, + "example": { + "docker_image": "ghcr.io/pterodactyl/yolks:java_21" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/client/account/two-factor/disable": { + "post": { + "tags": [ + "Client - Account" + ], + "summary": "Disable 2FA", + "operationId": "post-disable-2fa", + "description": "Disables two-factor authentication on the account", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "Account password" + } + }, + "required": [ + "password" + ] + }, + "example": { + "password": "yourpassword" + } + } + } + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "security": [ + { + "ClientToken": [] + } + ] + } + }, + "/api/application/nodes/deployable": { + "get": { + "tags": [ + "Application - Nodes" + ], + "summary": "List deployable nodes", + "operationId": "get-deployable-nodes", + "description": "Returns nodes that have enough resources for a new server with the given requirements", + "parameters": [ + { + "name": "memory", + "in": "query", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Required memory in MB", + "example": 512 + }, + { + "name": "disk", + "in": "query", + "required": true, + "schema": { + "type": "integer" + }, + "description": "Required disk space in MB", + "example": 1024 + }, + { + "name": "location_ids[]", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "integer" + } + }, + "description": "Filter by location IDs" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "uuid": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "location_id": { + "type": "integer" + }, + "fqdn": { + "type": "string" + }, + "scheme": { + "type": "string" + }, + "behind_proxy": { + "type": "boolean" + }, + "maintenance_mode": { + "type": "boolean" + }, + "memory": { + "type": "integer" + }, + "memory_overallocate": { + "type": "integer" + }, + "disk": { + "type": "integer" + }, + "disk_overallocate": { + "type": "integer" + }, + "upload_size": { + "type": "integer" + }, + "daemon_listen": { + "type": "integer" + }, + "daemon_sftp": { + "type": "integer" + }, + "daemon_base": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "security": [ + { + "ApplicationToken": [] + } + ] + } + } + }, + "components": { + "securitySchemes": { + "ClientToken": { + "type": "http", + "scheme": "bearer", + "description": "Client API key (generated at /account/api)" + }, + "ApplicationToken": { + "type": "http", + "scheme": "bearer", + "description": "Application API key (generated at /admin/api)" + } + } + } +}