su root -> Passwort eingeben
apt-get update
apt-get upgrade
apt install software-properties-common curl apt-transport-https ca-certificates gnupg
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
cd /etc/apt/sources.list.d/
rm *
cd /
apt update
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
apt update
apt upgrade
curl -sS https://downloads.mariadb.com/MariaDB/ma...repo_setup | bash
apt update
apt install php8.0 php8.0-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/rel...nel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/
mysql_secure_installation
n
n
y
n
y
y
mysql -u root -p
USE mysql;
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'pterodactyldb';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER 'serverdb'@'127.0.0.1' IDENTIFIED BY 'serverdb';
CREATE USER 'serverdb'@'<Server-IP>' IDENTIFIED BY 'serverdb'; (Den nur wenn es zwei unterschiedliche server sind)
GRANT ALL PRIVILEGES ON *.* TO 'serverdb'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'serverdb'@'<Server-IP>' WITH GRANT OPTION; (Den nur wenn es zwei unterschiedliche server sind)
FLUSH PRIVILEGES;
quit
nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
systemctl restart mariadb.service
cd /var/www/pterodactyl/
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan p:environment: setup (das leer zeichen zwischen : setup muss raus)
php artisan p:environment:database
php artisan p:environment:mail
php artisan migrate --seed --force
php artisan p:user:make
chown -R www-data:www-data /var/www/pterodactyl/*
crontab -e
1
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
nano /etc/systemd/system/pteroq.service
# 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
systemctl enable --now redis-server
systemctl enable --now pteroq.service
cd /etc/nginx/sites-available/
nano default
server {
listen 80;
server_name <domain>;
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/php8.0-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;
}
}
ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
cd /etc/nginx/sites-enabled/
rm default.conf
apt install -y certbot
apt install -y python3-certbot-nginx
certbot certonly -d <domain>
1
<mail>
A
N
systemctl restart nginx
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/rel...inux_amd64
chmod u+x /usr/local/bin/wings
df -h
lsblk
mount -l
mkdir /mnt/pterodactyl
nano /etc/pterodactyl/config.yml
Auf website einloggen
Locations
Create New
Nodes
Create New
Name
FQDN
Deamon Server File Directory -> /mnt/pterodactyl
Total Memory
Total Disk Space
Memory Over-Allocation
Disc Over-Allocation
Deamon Port
Copy Configuration
wings --debug
Node Online im Panel?
nano /etc/systemd/system/wings.service
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=600
[Install]
WantedBy=multi-user.target
systemctl enable --now wings
Gehe wieder auf die Website
Datenbank
Create New
Name
Host -> Ip des Servers nicht localhost
username: serverdb
passwort: serverdb
Linked Node
apt-get update
apt-get upgrade
apt install software-properties-common curl apt-transport-https ca-certificates gnupg
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
cd /etc/apt/sources.list.d/
rm *
cd /
apt update
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
apt update
apt upgrade
curl -sS https://downloads.mariadb.com/MariaDB/ma...repo_setup | bash
apt update
apt install php8.0 php8.0-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/rel...nel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/
mysql_secure_installation
n
n
y
n
y
y
mysql -u root -p
USE mysql;
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'pterodactyldb';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER 'serverdb'@'127.0.0.1' IDENTIFIED BY 'serverdb';
CREATE USER 'serverdb'@'<Server-IP>' IDENTIFIED BY 'serverdb'; (Den nur wenn es zwei unterschiedliche server sind)
GRANT ALL PRIVILEGES ON *.* TO 'serverdb'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'serverdb'@'<Server-IP>' WITH GRANT OPTION; (Den nur wenn es zwei unterschiedliche server sind)
FLUSH PRIVILEGES;
quit
nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
systemctl restart mariadb.service
cd /var/www/pterodactyl/
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan p:environment: setup (das leer zeichen zwischen : setup muss raus)
php artisan p:environment:database
php artisan p:environment:mail
php artisan migrate --seed --force
php artisan p:user:make
chown -R www-data:www-data /var/www/pterodactyl/*
crontab -e
1
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
nano /etc/systemd/system/pteroq.service
# 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
systemctl enable --now redis-server
systemctl enable --now pteroq.service
cd /etc/nginx/sites-available/
nano default
server {
listen 80;
server_name <domain>;
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/php8.0-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;
}
}
ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
cd /etc/nginx/sites-enabled/
rm default.conf
apt install -y certbot
apt install -y python3-certbot-nginx
certbot certonly -d <domain>
1
<mail>
A
N
systemctl restart nginx
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/rel...inux_amd64
chmod u+x /usr/local/bin/wings
df -h
lsblk
mount -l
mkdir /mnt/pterodactyl
nano /etc/pterodactyl/config.yml
Auf website einloggen
Locations
Create New
Nodes
Create New
Name
FQDN
Deamon Server File Directory -> /mnt/pterodactyl
Total Memory
Total Disk Space
Memory Over-Allocation
Disc Over-Allocation
Deamon Port
Copy Configuration
wings --debug
Node Online im Panel?
nano /etc/systemd/system/wings.service
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=600
[Install]
WantedBy=multi-user.target
systemctl enable --now wings
Gehe wieder auf die Website
Datenbank
Create New
Name
Host -> Ip des Servers nicht localhost
username: serverdb
passwort: serverdb
Linked Node