# Panelの構築方法

まず初めに,依存関係をインストールします。

# 「add-apt-repository」コマンドを追加
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg

# PHP,Redis,MariaDBを追加
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php

# Redis公式APTリポジトリを追加
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

# Ubuntu 22.04 では MariaDB リポジトリ設定スクリプトをスキップ可能
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

# リポジトリ一覧を更新
apt update

# 依存関係のインストール
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

composerといわれるパネルの操作に必要なものをインストールします。

curl -sS https://getcomposer.org/installer | sudo 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/releases/latest/download/panel.tar.gz
# ダウンロードしたパネルを展開
tar -xzvf panel.tar.gz
# 権限を設定
chmod -R 755 storage/* bootstrap/cache/

データベースの作成を行います。

mysql -u root -p

# 'あなたのパスワード' は,パスワードに置き換えてください。難しめのほうがいいです。
# ユーザーを作成
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'あなたのパスワード';
# データベースを作成
CREATE DATABASE panel;
# 権限を設定
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
# データベースを閉じる
exit

環境設定等を設定します。

# ファイルの例をコピー
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:mail

データベースのセットアップを行います。

php artisan migrate --seed --force

ユーザーを作成します。
ユーザーのパスワードは,8文字以上かつ大文字,小文字,数字を含んでいるものでないと登録できません。

php artisan p:user:make

ウェブサーバーへ権限を設定します。

# Nginx (CentOS以外の場合)
chown -R www-data:www-data /var/www/pterodactyl/*

スケジュールの設定を行います。この設定を行わないと,スケジュールが使えません。
crontab -eの一番下に書き込んでください。

* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1

メールの送信などの設定を行います。メールを使用しない場合でもこの設定は行ってください。
/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
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target

パネルのサーバーの起動後,自動的に起動するようにします。

sudo systemctl enable --now redis-server
sudo systemctl enable --now pteroq.service

# ウェブサーバーの設定を行います。

SSLの有無により,このあとの作業内容が異なります。以下から選択して進んでください。
Nginx(SSLあり)
Nignx(SSLなし)