mirror of
https://github.com/pterodactyl/documentation.git
synced 2025-12-10 10:44:43 -06:00
Merge branch 'pterodactyl:master' into patch-4
This commit is contained in:
commit
b7883394c3
4
.github/workflows/github-pages.yml
vendored
4
.github/workflows/github-pages.yml
vendored
@ -17,6 +17,10 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
|
||||
|
||||
48
.snippets/webservers/Caddyfile
Normal file
48
.snippets/webservers/Caddyfile
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
servers :443 {
|
||||
timeouts {
|
||||
read_body 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<domain> {
|
||||
root * /var/www/pterodactyl/public
|
||||
|
||||
file_server
|
||||
|
||||
php_fastcgi unix//run/php/php8.1-fpm.sock {
|
||||
root /var/www/pterodactyl/public
|
||||
index index.php
|
||||
|
||||
env PHP_VALUE "upload_max_filesize = 100M \n post_max_size = 100M"
|
||||
env HTTP_PROXY ""
|
||||
env HTTPS "on"
|
||||
|
||||
read_timeout 300s
|
||||
dial_timeout 300s
|
||||
write_timeout 300s
|
||||
}
|
||||
|
||||
header Strict-Transport-Security "max-age=16768000; preload;"
|
||||
header X-Content-Type-Options "nosniff"
|
||||
header X-XSS-Protection "1; mode=block;"
|
||||
header X-Robots-Tag "none"
|
||||
header Content-Security-Policy "frame-ancestors 'self'"
|
||||
header X-Frame-Options "DENY"
|
||||
header Referrer-Policy "same-origin"
|
||||
|
||||
request_body {
|
||||
max_size 100m
|
||||
}
|
||||
|
||||
respond /.ht* 403
|
||||
|
||||
log {
|
||||
output file /var/log/caddy/pterodactyl.log {
|
||||
roll_size 100MiB
|
||||
roll_keep_for 7d
|
||||
}
|
||||
level INFO
|
||||
}
|
||||
}
|
||||
48
.snippets/webservers/Caddyfile-nossl
Normal file
48
.snippets/webservers/Caddyfile-nossl
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
servers :80 {
|
||||
timeouts {
|
||||
read_body 120s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<domain>:80 {
|
||||
root * /var/www/pterodactyl/public
|
||||
|
||||
file_server
|
||||
|
||||
php_fastcgi unix//run/php/php8.1-fpm.sock {
|
||||
root /var/www/pterodactyl/public
|
||||
index index.php
|
||||
|
||||
env PHP_VALUE "upload_max_filesize = 100M \n post_max_size = 100M"
|
||||
env HTTP_PROXY ""
|
||||
# env HTTPS "on" # IMPORTANT: this is commented out, to disable HTTPS
|
||||
|
||||
read_timeout 300s
|
||||
dial_timeout 300s
|
||||
write_timeout 300s
|
||||
}
|
||||
|
||||
header Strict-Transport-Security "max-age=16768000; preload;"
|
||||
header X-Content-Type-Options "nosniff"
|
||||
header X-XSS-Protection "1; mode=block;"
|
||||
header X-Robots-Tag "none"
|
||||
header Content-Security-Policy "frame-ancestors 'self'"
|
||||
header X-Frame-Options "DENY"
|
||||
header Referrer-Policy "same-origin"
|
||||
|
||||
request_body {
|
||||
max_size 100m
|
||||
}
|
||||
|
||||
respond /.ht* 403
|
||||
|
||||
log {
|
||||
output file /var/log/caddy/pterodactyl.log {
|
||||
roll_size 100MiB
|
||||
roll_keep_for 7d
|
||||
}
|
||||
level INFO
|
||||
}
|
||||
}
|
||||
@ -74,8 +74,7 @@ module.exports = {
|
||||
children: [
|
||||
'/community/installation-guides/panel/centos7.md',
|
||||
'/community/installation-guides/panel/centos8.md',
|
||||
'/community/installation-guides/panel/debian10.md',
|
||||
'/community/installation-guides/panel/debian11.md',
|
||||
'/community/installation-guides/panel/debian.md',
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -84,8 +83,7 @@ module.exports = {
|
||||
children: [
|
||||
'/community/installation-guides/wings/centos7.md',
|
||||
'/community/installation-guides/wings/centos8.md',
|
||||
'/community/installation-guides/wings/debian10.md',
|
||||
'/community/installation-guides/wings/debian11.md',
|
||||
'/community/installation-guides/wings/debian.md',
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@ -135,7 +135,7 @@
|
||||
</div>
|
||||
<div class="hidden md:block md:flex-1 md:pr-12">
|
||||
<p><a class="text-grey-lightest" href="https://github.com/pterodactyl">GitHub</a></p>
|
||||
<p><a class="text-grey-lightest" href="https://github.com/sponsors/DaneEveritt">Sponsor</a></p>
|
||||
<p><a class="text-grey-lightest" href="https://github.com/sponsors/matthewpi">Sponsor</a></p>
|
||||
<p><a class="text-grey-lightest" href="https://paypal.me/PterodactylSoftware">Donate</a></p>
|
||||
<p><a class="text-grey-lightest" href="/panel/troubleshooting.html">Troubleshooting</a></p>
|
||||
<p><a class="text-grey-lightest" href="https://github.com/parkervcp/eggs">Additional Game Configurations</a></p>
|
||||
|
||||
@ -6,8 +6,8 @@ changes to these, and you'll lose any changes you've made.
|
||||
|
||||
[[toc]]
|
||||
|
||||
The first thing you'll need to do is create a new service. In this case, the name and description speak for themselves
|
||||
in this case. The `Folder Name` _must be a unique name_ not being used by any other service, and should only
|
||||
The first thing you'll need to do is create a new service. In this case, the name and description speak for themselves.
|
||||
The `Folder Name` _must be a unique name_ not being used by any other service, and should only
|
||||
contain letters, numbers, underscores, and dashes. This is the name of the folder where the daemon will be storing
|
||||
the service options on the daemon.
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
Do **not** run the following steps on your production nodes.
|
||||
:::
|
||||
|
||||
Instructions on how to build the panel are also available in the [BUILDING.md](https://github.com/pterodactyl/panel/blob/develop/BUILDING.md) file.
|
||||
Instructions on how to build the panel are also available in the [BUILDING.md](https://github.com/pterodactyl/panel/blob/1.0-develop/BUILDING.md) file.
|
||||
|
||||
The frontend of the Panel is built with React. Any changes to the source files require to recompile it.
|
||||
This also applies to style sheets. The following sections explain how to do so.
|
||||
@ -17,13 +17,16 @@ The build tools require NodeJS, yarn is used as the package manager.
|
||||
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
apt install -y nodejs
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
sudo apt update
|
||||
sudo apt install -y nodejs
|
||||
|
||||
# CentOS
|
||||
curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo yum install -y nodejs yarn # CentOS 7
|
||||
sudo dnf install -y nodejs yarn # CentOS 8
|
||||
sudo yum install https://rpm.nodesource.com/pub_16.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y
|
||||
sudo yum install nodejs -y
|
||||
```
|
||||
|
||||
Install required javascript packages.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# CentOS 8, Rocky Linux 8, AlmaLinux 8
|
||||
# CentOS 8, Rocky Linux 8, AlmaLinux 8, Fedora Server 38
|
||||
In this guide we will install Pterodactyl v1.X — including all of it's dependencies — and configure our webserver to serve it using SSL.
|
||||
|
||||
[[toc]]
|
||||
@ -29,7 +29,7 @@ systemctl enable mariadb
|
||||
```
|
||||
|
||||
### PHP 8.0
|
||||
We recommend the remi repo to get the latest php packages.
|
||||
We recommend the remi repo to get the latest php packages. (Skip to next section if on Fedora 38)
|
||||
|
||||
```bash
|
||||
## Install Repos
|
||||
@ -44,6 +44,13 @@ dnf update -y
|
||||
dnf install -y php php-{common,fpm,cli,json,mysqlnd,gd,mbstring,pdo,zip,bcmath,dom,opcache}
|
||||
```
|
||||
|
||||
### If using Fedora Server 38 install PHP 8.1 and Dependencies from this section. If not, skip this section.
|
||||
```bash
|
||||
dnf install https://rpms.remirepo.net/fedora/remi-release-38.rpm
|
||||
dnf module enable php:remi-8.1
|
||||
dnf install php php-{common,fpm,cli,json,mysqlnd,gd,mbstring,pdo,zip,bcmath,dom,opcache,process}
|
||||
```
|
||||
|
||||
### Composer
|
||||
```bash
|
||||
dnf install -y zip unzip tar # Required for Composer
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
# Debian 11
|
||||
# Debian 11 & 12
|
||||
|
||||
[[toc]]
|
||||
|
||||
::: tip
|
||||
This guide is based off the [official installation documentation](/panel/1.0/getting_started.md) but is tailored specifically for Debian 11.
|
||||
This guide is based off the [official installation documentation](/panel/1.0/getting_started.md) but is tailored specifically for Debian 11 and 12.
|
||||
:::
|
||||
|
||||
## Dependency Installation
|
||||
@ -20,7 +20,7 @@ apt -y install software-properties-common curl ca-certificates gnupg2 sudo lsb-r
|
||||
# Add repository for PHP
|
||||
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
|
||||
|
||||
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg
|
||||
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg
|
||||
|
||||
# Add repository for Redis
|
||||
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
|
||||
@ -1,118 +0,0 @@
|
||||
# Debian 10
|
||||
In this guide we will install Pterodactyl v1.X — including all of it's dependencies — and configure our webserver to serve it using SSL.
|
||||
|
||||
[[toc]]
|
||||
|
||||
::: tip
|
||||
This guide is based off the [official installation documentation](/panel/1.0/getting_started.md) but is tailored specifically for Debian 10.
|
||||
:::
|
||||
|
||||
## Install Requirements
|
||||
We will first begin by installing all of Pterodactyl's [required](/panel/1.0/getting_started.md#dependencies) dependencies.
|
||||
|
||||
### MariaDB
|
||||
```bash
|
||||
apt install -y software-properties-common curl apt-transport-https ca-certificates
|
||||
|
||||
## Get apt updates
|
||||
apt update
|
||||
|
||||
## Install MariaDB
|
||||
apt install -y mariadb-common mariadb-server mariadb-client
|
||||
|
||||
## Start mariadb
|
||||
systemctl start mariadb
|
||||
systemctl enable mariadb
|
||||
```
|
||||
|
||||
### PHP 8.1
|
||||
```bash
|
||||
# Add repository for PHP
|
||||
curl https://packages.sury.org/php/apt.gpg -o /etc/apt/trusted.gpg.d/php.gpg
|
||||
echo "deb https://packages.sury.org/php/ buster main" | tee /etc/apt/sources.list.d/php.list
|
||||
|
||||
## Get apt updates
|
||||
apt update
|
||||
|
||||
## Install PHP 8.1
|
||||
apt install -y php8.1 php8.1-{cli,common,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip}
|
||||
```
|
||||
|
||||
### Nginx
|
||||
```bash
|
||||
apt install -y nginx
|
||||
```
|
||||
|
||||
### Redis
|
||||
```bash
|
||||
apt install -y redis-server
|
||||
|
||||
systemctl start redis-server
|
||||
systemctl enable redis-server
|
||||
```
|
||||
|
||||
### Additional Utilities
|
||||
|
||||
#### Certbot
|
||||
```bash
|
||||
apt install -y certbot curl
|
||||
```
|
||||
|
||||
#### Composer
|
||||
```bash
|
||||
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
```
|
||||
|
||||
## Server Configuration
|
||||
This following section covers the configuration of parts of the server to run the panel.
|
||||
|
||||
### Configuring MariaDB
|
||||
The fastest way to set up mariadb is to use the `mysql_secure_installation` command and follow prompts
|
||||
|
||||
```bash
|
||||
mysql_secure_installation
|
||||
```
|
||||
|
||||
The following are safe defaults.
|
||||
|
||||
Change to your own secure password
|
||||
`Set root password? [Y/n] Y`
|
||||
|
||||
Get rid of users that could access the db by default
|
||||
`Remove anonymous users? [Y/n] Y`
|
||||
|
||||
Keep root off the external interfaces
|
||||
`Disallow root login remotely? [Y/n] Y`
|
||||
|
||||
Extra databases that aren't needed
|
||||
`Remove test database and access to it? [Y/n] Y`
|
||||
|
||||
Clears and sets all the changes made
|
||||
`Reload privilege tables now? [Y/n] Y`
|
||||
|
||||
All done! If you've completed all of the above steps, your MariaDB installation should now be secure.
|
||||
|
||||
#### Adding MariaDB user
|
||||
To add your first user to the database, see our tutorial on [setting up MySQL](/tutorials/mysql_setup.md).
|
||||
|
||||
### Setup PHP
|
||||
The default php-fpm configuration is fine to use and can be started and then enabled on the system using the
|
||||
commands below.
|
||||
|
||||
```bash
|
||||
systemctl enable php8.1-fpm
|
||||
systemctl start php8.1-fpm
|
||||
```
|
||||
|
||||
### Nginx
|
||||
Please check our [tutorial](/tutorials/creating_ssl_certificates.md) on generating SSL certificates for more information.
|
||||
|
||||
#### SSL Configuration
|
||||
<<< @/.snippets/webservers/nginx-php8.1.conf{5,11,26-27}
|
||||
|
||||
### Redis Setup
|
||||
The default Redis install is perfectly fine for the panel. If you have Redis already in use you may want to look into
|
||||
[running another Redis instance](https://community.pivotal.io/s/article/How-to-setup-and-run-multiple-Redis-server-instances-on-a-Linux-host).
|
||||
|
||||
## Installing the Panel
|
||||
Excellent, we now have all of the required dependencies installed and configured. From here, follow the [official Panel installation documentation](/panel/1.0/getting_started.md#download-files).
|
||||
5
community/installation-guides/wings/debian.md
Normal file
5
community/installation-guides/wings/debian.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Debian 11 & 12
|
||||
|
||||
## Install
|
||||
|
||||
There is no additional configuration required for Wings on Debian 11 or 12. You can follow the [official Wings install documentation](/wings/1.0/installing.md), which covers Docker installation for Debian.
|
||||
@ -1,35 +0,0 @@
|
||||
# Debian 10
|
||||
In this guide we will install Pterodactyl's Wings v1.X — including all of it's dependencies — and configure it to use a SSL connection.
|
||||
|
||||
[[toc]]
|
||||
|
||||
::: tip
|
||||
This guide is based off the [official installation documentation](/wings/1.0/installing.md) but is tailored specifically for Debian 10.
|
||||
:::
|
||||
|
||||
## Install Requirements
|
||||
We will first begin by installing all of Wings' [required](/wings/1.0/installing.md#dependencies) dependencies.
|
||||
|
||||
### Docker
|
||||
|
||||
```bash
|
||||
## install apt tools
|
||||
apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
||||
|
||||
## Import the docker gpg key
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
||||
|
||||
## Add the docker stable repo
|
||||
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
|
||||
|
||||
## Install docker
|
||||
apt update -y
|
||||
apt install -y docker-ce
|
||||
|
||||
## Enable docker service
|
||||
systemctl enable docker
|
||||
systemctl start docker
|
||||
```
|
||||
|
||||
## Installing Wings
|
||||
Great, now all of the dependencies have been dealt with. From here follow the [official Wings installation documentation](/wings/1.0/installing.html#enabling-swap).
|
||||
@ -1,5 +0,0 @@
|
||||
# Debian 11
|
||||
|
||||
## Install
|
||||
|
||||
There is no additional configuration required for Wings on Debian 11. You can follow the [official Wings install documentation](/wings/1.0/installing.md), which covers Docker installation for Debian.
|
||||
@ -48,7 +48,7 @@ php artisan p:user:delete {--user=username/email/UUID}
|
||||
### Disable 2FA
|
||||
|
||||
::: warning
|
||||
Disabling 2-factor authentication should only be used as a last restort for user recovery. **Please use this with caution.**
|
||||
Disabling 2-factor authentication should only be used as a last resort for user recovery. **Please use this with caution.**
|
||||
:::
|
||||
|
||||
```bash
|
||||
|
||||
@ -25,14 +25,12 @@ this software on an OpenVZ based system you will — most likely — not
|
||||
|
||||
| Operating System | Version | Supported | Notes |
|
||||
|------------------|---------|:------------------:|-------------------------------------------------------------|
|
||||
| **Ubuntu** | 18.04 | :white_check_mark: | Documentation written assuming Ubuntu 18.04 as the base OS. |
|
||||
| | 20.04 | :white_check_mark: | |
|
||||
| | 22.04 | :white_check_mark: | |
|
||||
| | 22.04 | :white_check_mark: | MariaDB can be installed without the repo setup script. |
|
||||
| **Ubuntu** | 20.04 | :white_check_mark: | Documentation written assuming Ubuntu 20.04 as the base OS. |
|
||||
| | 22.04 | :white_check_mark: | MariaDB can be installed without the repo setup script. |
|
||||
| **CentOS** | 7 | :white_check_mark: | Extra repos are required. |
|
||||
| | 8 | :white_check_mark: | Note that CentOS 8 is EOL. Use Rocky or Alma Linux. |
|
||||
| **Debian** | 10 | :white_check_mark: | |
|
||||
| | 11 | :white_check_mark: | |
|
||||
| **Debian** | 11 | :white_check_mark: | |
|
||||
| | 12 | :white_check_mark: | |
|
||||
|
||||
## Dependencies
|
||||
|
||||
@ -68,9 +66,6 @@ curl -sS https://downloads.mariadb.com/MariaDB/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 php8.1 php8.1-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server
|
||||
```
|
||||
@ -182,10 +177,10 @@ The last step in the installation process is to set the correct permissions on t
|
||||
use them correctly.
|
||||
|
||||
``` bash
|
||||
# If using NGINX or Apache (not on CentOS):
|
||||
# If using NGINX or Apache (not on CentOS)
|
||||
chown -R www-data:www-data /var/www/pterodactyl/*
|
||||
|
||||
# If using NGINX on CentOS:
|
||||
# If using NGINX on CentOS
|
||||
chown -R nginx:nginx /var/www/pterodactyl/*
|
||||
|
||||
# If using Apache on CentOS
|
||||
|
||||
@ -4,8 +4,12 @@
|
||||
When using the SSL configuration you MUST create SSL certificates, otherwise your webserver will fail to start. See the [Creating SSL Certificates](/tutorials/creating_ssl_certificates.html) documentation page to learn how to create these certificates before continuing.
|
||||
:::
|
||||
|
||||
:::: tabs
|
||||
::: tab "Nginx With SSL"
|
||||
::: tip
|
||||
If you are using [Caddy With Automatic SSL](#caddy-with-automatic-ssl), you do not have to create SSL certificates manually, Caddy will take care of it automatically.
|
||||
:::
|
||||
|
||||
::::: tabs
|
||||
:::: tab "Nginx With SSL"
|
||||
First, remove the default NGINX configuration.
|
||||
|
||||
``` bash
|
||||
@ -29,8 +33,8 @@ sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
:::
|
||||
::: tab "Nginx Without SSL"
|
||||
::::
|
||||
:::: tab "Nginx Without SSL"
|
||||
First, remove the default NGINX configuration.
|
||||
|
||||
``` bash
|
||||
@ -54,8 +58,8 @@ sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
:::
|
||||
::: tab "Apache With SSL"
|
||||
::::
|
||||
:::: tab "Apache With SSL"
|
||||
First, remove the default Apache configuration.
|
||||
|
||||
``` bash
|
||||
@ -82,8 +86,8 @@ sudo a2enmod ssl
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
|
||||
:::
|
||||
::: tab "Apache Without SSL"
|
||||
::::
|
||||
:::: tab "Apache Without SSL"
|
||||
First, remove the default Apache configuration.
|
||||
|
||||
``` bash
|
||||
@ -109,7 +113,61 @@ sudo a2enmod rewrite
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
:::: tab "Caddy With Automatic SSL"
|
||||
Before adding our custom configuration, let's remove the default one. You can do it either by deleting the contents of config file or by deleting the config file completely and than creating a new one from scratch. The config file path is `/etc/caddy/Caddyfile`.
|
||||
|
||||
To delete the config file completely, run the following command:
|
||||
|
||||
```shell
|
||||
rm /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
Then continue with an editor of your choice to write the config.
|
||||
|
||||
You should paste the contents of the file below, replacing `<domain>` with your domain name.
|
||||
|
||||
<<< @/.snippets/webservers/Caddyfile{9}
|
||||
|
||||
::: tip
|
||||
If you are using Cloudflare DNS in proxy mode, refer to [this tutorial](/tutorials/creating_ssl_certificates.html#method-3:-caddy-(using-cloudflare-api)), to see how to configure Caddy to use DNS challenge for obtaining SSL certificates.
|
||||
:::
|
||||
|
||||
### Enabling Configuration
|
||||
|
||||
The final step is to restart Caddy.
|
||||
|
||||
```bash
|
||||
systemctl restart caddy
|
||||
```
|
||||
|
||||
::::
|
||||
:::: tab "Caddy Without SSL"
|
||||
Before adding our custom configuration, let's remove the default one. You can do it either by deleting the contents of config file or by deleting the config file completely and than creating a new one from scratch. The config file path is `/etc/caddy/Caddyfile`.
|
||||
|
||||
To delete the config file completely, run the following command:
|
||||
|
||||
```shell
|
||||
rm /etc/caddy/Caddyfile
|
||||
```
|
||||
|
||||
Then continue with an editor of your choice to write the config.
|
||||
|
||||
You should paste the contents of the file below, replacing `<domain>` with your domain name.
|
||||
|
||||
The only two differences are that we have suffixed the `<domain>` with `:80` and in the global config at `servers` directive, we have changed the port from `:443` to `:80`.
|
||||
|
||||
<<< @/.snippets/webservers/Caddyfile-nossl{9}
|
||||
|
||||
### Enabling Configuration
|
||||
|
||||
The final step is to restart Caddy.
|
||||
|
||||
```bash
|
||||
systemctl restart caddy
|
||||
```
|
||||
|
||||
::::
|
||||
:::::
|
||||
|
||||
#### Next Step: [Wings Installation](../../wings/installing.md)
|
||||
|
||||
@ -4,14 +4,13 @@
|
||||
|
||||
## Core Project Team
|
||||
|
||||
| Name | Discord Name | Primary Role |
|
||||
|-----------------------------------------------|----------------------|-------------------------------------|
|
||||
| [Dane Everitt](https://daneeveritt.com/) | `Tactical Fish#8008` | Founder & Former Project Maintainer |
|
||||
| [Matthew Penner](https://matthewp.io/) | `matthewp#0001` | Project Maintainer |
|
||||
| Stepan Fedotov | `Trixter#0001` | WHMCS Module Maintainer |
|
||||
| Michael Parker | `parkervcp#6789` | Egg Developer, Docker Integration |
|
||||
| [Jakob Schrettenbrunner](https://schrej.net/) | `schrej#1337` | Developer |
|
||||
| [Lance Pioch](https://lancepioch.com/) | `ShadowLancer#5209` | Developer |
|
||||
| Name | Discord Name | Primary Role |
|
||||
|-----------------------------------------------|-----------------|-------------------------------------|
|
||||
| [Dane Everitt](https://daneeveritt.com/) | `.tacticalfish` | Founder & Former Project Maintainer |
|
||||
| [Matthew Penner](https://matthewp.io/) | `matthewp` | Project Maintainer |
|
||||
| Stepan Fedotov | `trixter` | WHMCS Module Maintainer |
|
||||
| Michael Parker | `parkervcp` | Egg Developer, Docker Integration |
|
||||
| [Lance Pioch](https://lancepioch.com) | `lance` | Panel Maintainer |
|
||||
|
||||
Members of the project team have a red username in our Discord server.
|
||||
|
||||
@ -22,19 +21,14 @@ members can be found in our Discord server and are distinguished with a yellow u
|
||||
|
||||
## Sponsors
|
||||
|
||||
The following companies help to fund Pterodactyl's development. [Interested in becoming a sponsor?](https://github.com/sponsors/matthewpi)
|
||||
The following companies help fund Pterodactyl's development. [Interested in becoming a sponsor?](https://github.com/sponsors/matthewpi)
|
||||
|
||||
| Company | About |
|
||||
|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [**WISP**](https://wisp.gg) | Extra features. |
|
||||
| [**Aussie Server Hosts**](https://aussieserverhosts.com/) | No frills Australian Owned and operated High Performance Server hosting for some of the most demanding games serving Australia and New Zealand. |
|
||||
| [**BisectHosting**](https://www.bisecthosting.com/) | BisectHosting provides Minecraft, Valheim and other server hosting services with the highest reliability and lightning fast support since 2012. |
|
||||
| [**MineStrator**](https://minestrator.com/) | Looking for the most highend French hosting company for your minecraft server? More than 24,000 members on our discord trust us. Give us a try! |
|
||||
| [**Skynode**](https://www.skynode.pro/) | Skynode provides blazing fast game servers along with a top-notch user experience. Whatever our clients are looking for, we're able to provide it! |
|
||||
| [**VibeGAMES**](https://vibegames.net/) | VibeGAMES is a game server provider that specializes in DDOS protection for the games we offer. We have multiple locations in the US, Brazil, France, Germany, Singapore, Australia and South Africa. |
|
||||
| [**Pterodactyl Market**](https://pterodactylmarket.com/) | Pterodactyl Market is a one-and-stop shop for Pterodactyl. In our market, you can find Add-ons, Themes, Eggs, and more for Pterodactyl. |
|
||||
| [**UltraServers**](https://ultraservers.com/) | Deploy premium games hosting with the click of a button. Manage and swap games with ease and let us take care of the rest. We currently support Minecraft, Rust, ARK, 7 Days to Die, Garys MOD, CS:GO, Satisfactory and others. |
|
||||
| [**Realms Hosting**](https://realmshosting.com/) | Want to build your Gaming Empire? Use Realms Hosting today to kick start your game server hosting with outstanding DDOS Protection, 24/7 Support, Cheap Prices and a Custom Control Panel. | |
|
||||
| Company | About |
|
||||
|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [**Aussie Server Hosts**](https://aussieserverhosts.com/) | No frills Australian Owned and operated High Performance Server hosting for some of the most demanding games serving Australia and New Zealand. |
|
||||
| [**BisectHosting**](https://www.bisecthosting.com/) | BisectHosting provides Minecraft, Valheim and other server hosting services with the highest reliability and lightning fast support since 2012. |
|
||||
| [**MineStrator**](https://minestrator.com/) | Looking for the most highend French hosting company for your minecraft server? More than 24,000 members on our discord trust us. Give us a try! |
|
||||
| [**VibeGAMES**](https://vibegames.net/) | VibeGAMES is a game server provider that specializes in DDOS protection for the games we offer. We have multiple locations in the US, Brazil, France, Germany, Singapore, Australia and South Africa. |
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@ -105,21 +105,22 @@ curl https://get.acme.sh | sh
|
||||
|
||||
### Obtaining CloudFlare API Key
|
||||
|
||||
After installing acme.sh, we need to fetch a CloudFlare API key. Please make sure that a DNS record (A or CNAME record) is pointing to your target node, and set the cloud to grey (bypassing CloudFlare proxy). Then go to My Profile > API keys and on Global API Key subtab, click on "view", enter your CloudFlare password, and copy the API key to clipboard.
|
||||
After installing acme.sh, we need to fetch a CloudFlare API key. On Cloudfare's website, select your domain, then on the right side, copy your "Zone ID" and "Account ID" then click on "Get your API token", click on "Create Token" > select the template "Edit zone DNS" > select the scope of "Zone Ressources" and then click on "Continue to summary", copy your token.
|
||||
|
||||
### Creating a Certificate
|
||||
|
||||
Since the configuration file is based on Certbot, we need to create the folder manually.
|
||||
|
||||
```bash
|
||||
sudo mkdir /etc/letsencrypt/live/example.com
|
||||
sudo mkdir -p /etc/letsencrypt/live/example.com
|
||||
```
|
||||
|
||||
After installing acme.sh and obtaining CloudFlare API key, we need to then generate a certificate. First input the CloudFlare API credentials.
|
||||
|
||||
```bash
|
||||
export CF_Key="Your_CloudFlare_API_Key"
|
||||
export CF_Email="Your_CloudFlare_Account@example.com"
|
||||
export CF_Token="Your_CloudFlare_API_Key"
|
||||
export CF_Account_ID="Your_CloudFlare_Account_ID"
|
||||
export CF_Zone_ID="Your_CloudFlare_Zone_ID"
|
||||
|
||||
```
|
||||
|
||||
@ -139,5 +140,87 @@ After running the script for the first time, it will be added to the crontab aut
|
||||
sudo crontab -e
|
||||
```
|
||||
|
||||
:::
|
||||
::: tab "Method 3: Caddy (using Cloudflare API)"
|
||||
This is for advanced users, who are running Cloudflare in proxy mode or do not have access to port `80`.
|
||||
|
||||
### Installing Caddy with Cloudflare DNS plugin
|
||||
|
||||
Caddy does not come by default with Cloudflare DNS plugin, you need to install it yourself.
|
||||
|
||||
There are two main methods:
|
||||
|
||||
1. Using `xcaddy` - CLI tool to build your own Caddy build
|
||||
2. Downloading prebuilt binary from [Caddy's download page](https://caddyserver.com/download).
|
||||
3. Using Ansible to download and install Caddy with plugins. See [caddy-ansible](https://github.com/caddy-ansible/caddy-ansible)
|
||||
|
||||
#### Build Caddy using `xcaddy` on your server
|
||||
|
||||
Please refer to [Caddy docs on building Caddy](https://caddyserver.com/docs/build#xcaddy).
|
||||
|
||||
### Obtaining CloudFlare API Token
|
||||
|
||||
After installing acme.sh, we need to fetch a CloudFlare API key. Please make sure that a DNS record (A or CNAME record) is pointing to your target node, and set the cloud to grey (bypassing CloudFlare proxy). Then go to My Profile > API keys and on Global API Key subtab, click on "view", enter your CloudFlare password, and copy the API key to clipboard.
|
||||
|
||||
After install Caddy with Cloudflare DNS plugin, we need to fetch a Cloudflare API token. Please make sure that a DNS record (A or CNAME record) is pointing at your target node. Then go to My Profile > API Tokens and on API Tokens click "Create Token". Create API Token > API token templates, at the end of line with "Edit zone DNS", click "Use template". Under **Zone Resources**, select your DNS zone for which you wish to create the API token, click "Continue to summary". Review the API token summary and click "Create Token". And finally copy the API token to clipboard.
|
||||
|
||||
### Reconfiguring Caddy to use Cloudflare DNS for obtaining certificates
|
||||
|
||||
Create an environment variable file (like `.env`), keep in mind that this file contains secrets and should not be accessed by public.
|
||||
|
||||
We recommend that you create the secret file in the following location: `/etc/caddy/.secrets.env`.
|
||||
|
||||
```bash
|
||||
CLOUDFLARE_API_TOKEN=<your cloudflare api token>
|
||||
```
|
||||
|
||||
For security reasons, we recommend setting permissions to `0600` (only owner can read or write to the file).
|
||||
|
||||
```bash
|
||||
# Set ownership of the `.secrets.env` file to `caddy` system user
|
||||
chown caddy:caddy /etc/caddy/.secrets.env
|
||||
|
||||
# Set read-write permissions only to owner - the `caddy` system user
|
||||
chmod 0600 /etc/caddy/.secrets.env
|
||||
```
|
||||
|
||||
Modify the systemd unit file, to load environment variables from file (add `--envfile /etc/caddy/.secrets.env` flag to `ExecStart`), the default systemd unit file location is `/etc/systemd/system/caddy.service`:
|
||||
|
||||
```unit{12}
|
||||
[Unit]
|
||||
Description=Caddy
|
||||
Documentation=https://caddyserver.com/docs/
|
||||
After=network.target network-online.target
|
||||
Requires=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
User=caddy
|
||||
Group=caddy
|
||||
ExecStart=/usr/bin/caddy run --environ --envfile /etc/caddy/.secrets.env --config /etc/caddy/Caddyfile
|
||||
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
|
||||
TimeoutStopSec=5s
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=512
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
You can add a `tls` block to your `Caddyfile`, under the `<domain>` block of your panel configuration, the Caddy config file location is `/etc/caddy/Caddyfile`:
|
||||
|
||||
```caddyfile{5-7}
|
||||
<domain> {
|
||||
# ...
|
||||
|
||||
tls {
|
||||
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
@ -39,12 +39,10 @@ CREATE DATABASE panel;
|
||||
|
||||
### Assigning permissions
|
||||
Finally, we need to tell MySQL that our pterodactyl user should have access to the panel database. To do this, simply
|
||||
run the command below. If you plan on also using this MySQL instance as a database host on the Panel you'll want to
|
||||
include the `WITH GRANT OPTION` (which we are doing here). If you won't be using this user as part of the host setup
|
||||
you can remove that.
|
||||
run the command below.
|
||||
|
||||
``` sql
|
||||
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
|
||||
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1';
|
||||
```
|
||||
|
||||
## Creating a Database Host for Nodes
|
||||
|
||||
@ -23,8 +23,8 @@ only the versions listed below.
|
||||
| | 22.04 | :white_check_mark: | |
|
||||
| **CentOS** | 7 | :white_check_mark: | |
|
||||
| | 8 | :white_check_mark: | Note that CentOS 8 is EOL. Use Rocky or Alma Linux. |
|
||||
| **Debian** | 10 | :white_check_mark: | |
|
||||
| | 11 | :white_check_mark: | |
|
||||
| **Debian** | 11 | :white_check_mark: | |
|
||||
| | 12 | :white_check_mark: | |
|
||||
| **Windows** | All | :x: | This software will not run in Windows environments. |
|
||||
|
||||
## System Requirements
|
||||
@ -76,7 +76,7 @@ probably using a non-supported kernel. Check our [Kernel Modifications](../../..
|
||||
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 --now docker
|
||||
sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
#### Enabling Swap
|
||||
@ -105,9 +105,9 @@ The first step for installing Wings is to ensure we have the required directory
|
||||
run the commands below, which will create the base directory and download the wings executable.
|
||||
|
||||
```bash
|
||||
mkdir -p /etc/pterodactyl
|
||||
sudo mkdir -p /etc/pterodactyl
|
||||
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
|
||||
chmod u+x /usr/local/bin/wings
|
||||
sudo chmod u+x /usr/local/bin/wings
|
||||
```
|
||||
|
||||
::: warning OVH/SYS Servers
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user