From 732e867e0cc98640ec909c4318e30c544e88f157 Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Tue, 23 Dec 2025 13:44:48 +0800 Subject: [PATCH] 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 | 258 ------------------ 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(+), 2087 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 8e60ab55a..000000000 --- a/content/docs/panel/0.7/getting-started.mdx +++ /dev/null @@ -1,258 +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.0](/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](/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. | - -## 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.0](/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). - -```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 -``` - -#### Next Step: [Webserver Configuration](/panel/0.7/webserver-configuration) 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 1aa86f440..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](/tutorials/creating_ssl_certificates.html) 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](/tutorials/creating_ssl_certificates.html) 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 37558cb40..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/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 uppacking 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