このプロジェクトについて

# HyperCraft **セルフホスト型の Minecraft サーバーパネル —— 1つのバイナリファイル、1台のマシン、任意の数のサーバー。** HyperCraft は Minecraft サーバー専用に設計された軽量な管理ツールです。複雑なサーバー運用業務をブラウザベースのインターフェースに統合し、ユーザーは深い Linux の知識がなくても複数のゲームサーバーインスタンスを簡単に管理できます。 ## 主な特徴 ### 極めてシンプルなデプロイ - **単一バイナリファイル**:バックエンドとフロントエンドが一緒にパッケージされており、対象マシンに Go、Node.js、Java、その他のランタイム環境をインストールする必要がありません。 - **外部依存なし**:データベース(MySQL/PostgreSQL など)不要、Docker 不要、ダウンロードして解凍すればすぐに起動できます。 - **デーモンモード**:パネルはデーモンとして動作するため、ブラウザのタブを閉じたり、ネットワークが切れたり、ルーターを再起動しても、サーバープロセスは動作し続けます。 ### 強力なマルチインスタンス管理 - **任意の数のインスタンス**:1台のマシン上で複数の Minecraft サーバー(Java版または統合版)を同時に実行できます。 - **優雅な制御**:起動、優雅な停止、再起動、強制終了をサポート。優雅な停止はまず `stop` コマンドを送信してワールドの保存を待ち、タイムアウト後にシグナルをエスカレートします。 - **クラッシュ時の自動再起動**:オプション設定で、サーバーが予期せずクラッシュした際に自動復旧できます。 ### 没入型ターミナル体験 - **真のターミナルコンソール**:サーバーは疑似端末上で動作し、Tab 補完、色付き出力、ウィンドウ幅の自動調整をサポートします。補完内容は実行中のサーバーカーネルによって処理されます。 - **切断後の再接続**:リングバッファで履歴出力を記録します。再接続後、コンソールは不足している履歴ログを自動的に補完し、重複も漏れもありません。 ### 自動運用ツール - **Java 環境管理**:Eclipse Temurin JRE/JDK をワンクリックでインストールし、複数バージョンの共存をサポート(例えば 1.12 の旧サーバーと最新版を同時に実行)。パネルは必要な Java バージョンを自動検出してインストールします。 - **サーバーコアライブラリ**:Paper、Velocity などのコアダウンロードソースを内蔵し、一度ダウンロードすれば任意の数のインスタンスにコピーして使用できます。 - **プラグイン管理**:Modrinth、Hangar、SpigotMC、GitHub Release などのプラットフォームからプラグインを取得できます。グローバルライブラリとインスタンスの2層管理を提供し、各バージョンを個別に保存してロールバック可能です。 - **建築ライブラリ/マーケット**:`.schem` ファイルの取り込み解析をサポートし、サイズと使用材料を直接確認でき、指定したインスタンスにワンクリックでインストールできます。 ### セキュリティと監視 - **リソース監視**:各インスタンスの CPU/メモリ曲線、およびマシン全体のメモリ、ディスク、CPU、ネットワークトラフィックをリアルタイム表示します。データ収集はデーモンが独立して行い、Web ページの状態に影響されません。 - **安全なデフォルト値**:PBKDF2-SHA256 パスワードハッシュを採用し、ログイン速度制限、同時接続数制限、HttpOnly + SameSite セッション Cookie、デバイストークン検証をサポートします。 - **ファイルセキュリティ**:すべてのファイル操作パスは `os.Root` で隔離され、インスタンスディレクトリ内に厳密に制限され、権限外アクセスを防止します。 ### その他の実用的な機能 - **設定ファイルエディタ**:`server.properties` をフォーム化し、コメントとキーの順序を保持、中国語は自動エスケープ、変更されたキー値のみを書き込みます。 - **設定履歴**:各インスタンスに独立した Git リポジトリを維持して設定変更を記録し、Diff 表示と復元をサポート(注意:ワールドデータのバックアップは含まれません)。 - **データベース環境**:MySQL、PostgreSQL、MongoDB をワンクリックで起動し、データベースを必要とするプラグインのニーズに対応します。 - **ローカルターミナル**:パネルが動作するマシンの実際の Shell(デフォルトでは無効)、システムレベルのコマンド実行に便利です。 - **パネルの自己更新**:インターフェース上でクリックするだけでバイナリファイルを置き換えてその場で再起動し、失敗時は自動的にロールバックします。 ## クイックスタート リリース成果物は単一ファイルのバイナリで、Linux amd64/arm64 などのアーキテクチャをサポートします。 ```bash # 1. ディレクトリを作成してダウンロード sudo mkdir -p /opt/hypercraft && cd /opt/hypercraft sudo wget https://github.com/Lanscarlos/HyperCraft/releases/download/v0.4.0/hypercraft-0.4.0-linux-amd64.tar.gz sudo tar -xzf hypercraft-0.4.0-linux-amd64.tar.gz --strip-components=1 # 2. systemd サービスをインストール sudo cp hypercraft.service /etc/systemd/system/ sudo systemctl enable --now hypercraft # 3. 初期管理者パスワードを確認 sudo journalctl -u hypercraft -f ``` `http://あなたのサーバーIP:19190` を開いてログインします。初回起動時にランダムな管理者パスワードが生成され、ログに一度だけ出力されます。 > **セキュリティ上の注意**:パネルはデフォルトで平文 HTTP をリッスンします。公網に公開する必要がある場合は、必ずリバースプロキシ TLS を設定するか、SSH トンネルを使用してください。 ## インターフェース概要 - **ダッシュボード**:各サーバーの状態をカード形式で表示し、直接電源のオン/オフが可能、ディスク警告は最上部に表示されます。 - **新規インスタンスウィザード**:5ステップのプロセスでコアの選択、Java のインストール、インスタンスの命名をガイドします。 - **ファイルマネージャ**:ドラッグ&ドロップアップロード、レジューム可能なアップロード、設定ファイルのオンライン編集をサポートします。 - **モバイル対応**:狭い画面では状態、電源のオン/オフ、コンソールを優先的に表示し、サイドバーはドロワーモードに折りたたまれます。 ## 技術的詳細 - **言語**:Go(バックエンド)+ Vanilla JS(フロントエンド、UI フレームワーク依存なし)。 - **パフォーマンス**:パネルの常駐ヒープメモリは約 2 MB。 - **ビルド**:ソースからビルドするには Go 1.25+ と Node 20+ が必要です。 - **ライセンス**:MIT License。 ## 既知の制限と今後の計画 - **現在未実装**:プレイヤーリスト/ホワイトリスト管理(手動で JSON を編集する必要あり)、自動バックアップ、スケジュールタスク、その他のコアタイプ(Fabric/Forge)、Windows ターミナルサポート。 - **システム互換性**:Temurin は glibc ビルドのみを提供しているため、musl システム(Alpine など)では動作しない可能性があり、パネルが検出して通知します。