ペリカン パネルがレガシーゲームサーバーパネルを置き換える方法
Minecraft、DayZ、Satisfactoryの専用サーバーをクリーンな仮想マシンにセットアップしようとしたことがある人なら、この苦労を知っているはずです。まずJavaやSteamCMDの必要なバージョンをインストールし、ライブラリの競合を解決し、systemdで自動再起動を設定し、友人全体にSSHキーを渡さずにコンソールアクセスを許可する方法を考え出します。
長年にわたり、Pterodactylはこの分野の標準でした。優れたプロジェクトですが、コードベースと管理スタックは明らかに時代遅れになっており、更新もめったにリリースされません。この穴を埋めるために登場したのがオープンソースプロジェクトのPelican Panelで、ゲームサーバー管理のアーキテクチャを一から再設計しています。
内部構造
システムアーキテクチャは、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は定型的なタスクを処理します:
- ユーザーの作成と権限の割り当て。友人にはコンソールの閲覧と再起動ボタンのみのアクセスを許可し、ネットワーク設定やファイル編集は非表示にできます。
- 組み込みファイルマネージャーとSFTP。ユーザーはブラウザやお気に入りのFTPクライアントから直接modsをアップロードし、configsを編集でき、自分のフォルダ境界内に留まります。
- スケジュールとトリガー。S3ストレージへの定期バックアップ、cronベースの再起動、crontabの回避策なしでサーバーコンソールにコマンドを送信。
- ポート管理。パネルは割り当てられたポートを追跡し、ポートの競合を発生させることなくコンテナ全体に分散させます。
このプロジェクトの対象者
家で専用サーバーを運用しているか、友人とのゲーム用にVPSを借りている場合、Pelicanはターミナルでの作業を排除します。ノードを一度設定すれば、数回のクリックで新しいゲームをデプロイできます。
小規模なゲームホスティングプロバイダーやコミュニティにとって、商用ソリューションの完全な代替手段となります。プロジェクトはオープンソースのAGPLv3ライセンスで公開されており、 активно maintainedされており、最新のPHPとDockerスタックで箱から出してすぐに動作します。
ドキュメントとインストールガイドは公式サイト pelican.devで入手でき、パネルのソースコードはプロジェクトのGitHubリポジトリで確認できます。
関連プロジェクト