Instalasi Panel
Panduan ini mengasumsikan Anda pakai Ubuntu 22.04 LTS di VPS dengan minimal:
- 2 vCPU
- 4 GB RAM
- 40 GB SSD
- IP publik + domain yang sudah pointing (contoh:
panel.aryapanel.xyz)
1. Update sistem
bash
apt update && apt upgrade -y
apt install -y curl tar unzip git2. Install dependency
PHP 8.3
bash
add-apt-repository -y ppa:ondrej/php
apt update
apt install -y php8.3 php8.3-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip,redis}MariaDB
bash
apt install -y mariadb-server
mysql_secure_installationBuat database:
sql
mysql -u root -p
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'PASSWORD_KUAT';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;Redis & Nginx
bash
apt install -y redis-server nginx
systemctl enable --now redis-server nginxComposer
bash
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer3. Download panel
bash
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/4. Konfigurasi environment
bash
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mailJalankan migrasi:
bash
php artisan migrate --seed --forceBuat user admin pertama:
bash
php artisan p:user:make5. Set permission
bash
chown -R www-data:www-data /var/www/pterodactyl/*6. Queue worker & cron
Tambahkan cron:
bash
crontab -eIsi:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1Buat systemd service untuk queue:
bash
nano /etc/systemd/system/pteroq.serviceini
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
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
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.targetbash
systemctl enable --now pteroq.service7. Konfigurasi Nginx
bash
nano /etc/nginx/sites-available/pterodactyl.confnginx
server_tokens off;
server {
listen 80;
server_name panel.aryapanel.xyz;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name panel.aryapanel.xyz;
root /var/www/pterodactyl/public;
index index.php;
ssl_certificate /etc/letsencrypt/live/panel.aryapanel.xyz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/panel.aryapanel.xyz/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.3-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;
}
}Aktifkan:
bash
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx8. SSL dengan Let's Encrypt
bash
apt install -y certbot python3-certbot-nginx
certbot --nginx -d panel.aryapanel.xyz9. Selesai
Panel siap diakses di https://panel.aryapanel.xyz. Login pakai user admin yang dibuat di langkah 4.
Troubleshooting
"500 Internal Server Error" — cek log:
bash
tail -f /var/www/pterodactyl/storage/logs/laravel-*.log"Bad Gateway" — PHP-FPM belum jalan:
bash
systemctl status php8.3-fpm
systemctl restart php8.3-fpmPermission denied di storage — set ulang owner:
bash
chown -R www-data:www-data /var/www/pterodactyl/*