>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
PHP

ペリカン パネルがレガシーゲームサーバーパネルを置き換える方法

logo

Minecraft、DayZ、Satisfactoryの専用サーバーをクリーンな仮想マシンにセットアップしようとしたことがある人なら、この苦労を知っているはずです。まずJavaやSteamCMDの必要なバージョンをインストールし、ライブラリの競合を解決し、systemdで自動再起動を設定し、友人全体にSSHキーを渡さずにコンソールアクセスを許可する方法を考え出します。

長年にわたり、Pterodactylはこの分野の標準でした。優れたプロジェクトですが、コードベースと管理スタックは明らかに時代遅れになっており、更新もめったにリリースされません。この穴を埋めるために登場したのがオープンソースプロジェクトのPelican Panelで、ゲームサーバー管理のアーキテクチャを一から再設計しています。

Total Downloads Latest Release

内部構造

システムアーキテクチャは、Webパネルとホストエージェントという2つの独立した部分に分かれています。

Pelican PanelのWebコンポーネントはLaravelとFilamentPHPで構築されています。インターフェース、ユーザーの認証、権限管理、リソース配分、データベース操作を担当します。Filamentにより、管理者ロールの割り当てやノードの負荷監視が容易なクリーンなインターフェースを実現しています。

2番目のコンポーネントはWingsと呼ばれます。サーバーが動作しているノードに直接インストールされる軽量なGoデーモンです。Webパネルは安全なAPI経由でWingsにコマンドを送信し、デーモンがDockerコンテナを管理します。

ホストシステムはクリーンな状態を保ちます。各ゲームプロセスはRAM、CPU、ディスクの厳密な制限付きで隔離されたコンテナで実行されます。Palworldサーバーがメモリリークでメモリを消費し続けた場合、デーモンは隣接するインスタンスに影響を与えることなく、制限内で制約するか再起動します。

       [ Веб-интерфейс Pelican ]
          (Laravel + Filament)
                   
         REST API / WebSockets
                   
                   
          [ Демон Wings (Go) ]
                   
         Docker API (Socket)
         ┌─────────┴─────────┐
                            
   [ Docker: MC ]     [ Docker: CS2 ]

すぐに使える設定テンプレート

Pelicanエコシステムでは起動テンプレートは「eggs」と呼ばれています。これらはベースDockerイメージ、環境変数、起動スクリプト、ゲームファイルのインストールルールを定義するJSONマニフェストです。

パネルは幅広い事前構築済み設定をサポートしています:

  • SteamCMDゲーム:Counter-Strike、Rust、ARK、7 Days to Die、Enshrouded、Project Zomboid。
  • Minecraftビルド:Vanilla、Paper、Sponge、BungeeCord、Waterfall。
  • 音声サーバー:TeamSpeak、Mumble、Lavalinkインスタンス。
  • Discordボットとユーティリティサービス:Python、Node.js、Java。
  • データベースと監視:Redis、PostgreSQL、Prometheus、Grafana。

標準リポジトリに対象のゲームがない場合でも、カスタムテンプレートを簡単に作成できます。Dockerイメージとバイナリをダウンロードするスクリプトを指定するだけです。

実践例:起動と隔離

日常運用において、Pelicanは定型的なタスクを処理します:

  1. ユーザーの作成と権限の割り当て。友人にはコンソールの閲覧と再起動ボタンのみのアクセスを許可し、ネットワーク設定やファイル編集は非表示にできます。
  2. 組み込みファイルマネージャーとSFTP。ユーザーはブラウザやお気に入りのFTPクライアントから直接modsをアップロードし、configsを編集でき、自分のフォルダ境界内に留まります。
  3. スケジュールとトリガー。S3ストレージへの定期バックアップ、cronベースの再起動、crontabの回避策なしでサーバーコンソールにコマンドを送信。
  4. ポート管理。パネルは割り当てられたポートを追跡し、ポートの競合を発生させることなくコンテナ全体に分散させます。

このプロジェクトの対象者

家で専用サーバーを運用しているか、友人とのゲーム用にVPSを借りている場合、Pelicanはターミナルでの作業を排除します。ノードを一度設定すれば、数回のクリックで新しいゲームをデプロイできます。

小規模なゲームホスティングプロバイダーやコミュニティにとって、商用ソリューションの完全な代替手段となります。プロジェクトはオープンソースのAGPLv3ライセンスで公開されており、 активно maintainedされており、最新のPHPとDockerスタックで箱から出してすぐに動作します。

Stats

ドキュメントとインストールガイドは公式サイト pelican.devで入手でき、パネルのソースコードはプロジェクトのGitHubリポジトリで確認できます。

関連プロジェクト