マイクラリモコン(Minecraft Remote / mc-remote)のサーバーを構築・運用するためのパッケージです。
🏠 公式サイト: mc-remote.com
Note
🌐 言語方針について / Language Policy
本リポジトリは、一次情報(SSOT)の鮮度と正確性を保つため、日本語を正本として記述しています。多言語参加やIssue/PRの利用方針については 主要言語についての方針転換 / Language Policy をご覧ください。
This repository is maintained in Japanese as its primary Single Source of Truth (SSOT). Multi-language contributions are welcome. Please see our Language Policy.
マイクラリモコンは、コーディングでマイクラの世界を動かしながら「学び方を学ぶ」ためのオープンソースのツール群です。Scratch や Python などで書いたプログラムから、マインクラフトのサーバーへブロックを置いたり、プレイヤーを動かしたりできます。マイクラのアプリは Java 版でも統合版でも接続できます。
- サーバーのプラグイン(McRemote)
- 各言語のクライアント(Scratch、Python、Java など)
- 通信の中身を観察する WireScope
- サーバーの構築・運用パッケージ(mc-remote-stack、このリポジトリ)
はじめかた、考え方、ロードマップは公式サイトへ。
マイクラリモコン全体のうち、サーバーの構築・運用の仕組みを受け持ちます。マシンの構築と運営の方式(ケータリング方式など)の正本はこのリポジトリにあります。設定ファイルから、versionとdigestを固定したDocker Compose構成を生成し、適用して、動作を確認します。コマンドはmcrctlです。
| component | 役割 |
|---|---|
| Caddy | HTTPS/WSSの入口。ホームページも配信する |
| Scratch | マイクラリモコンのScratchクライアント |
| Bridge | ScratchからのWebSocketを、McRemoteプラグインのTCP接続へ中継する |
| Minecraft | Paperサーバー+McRemoteプラグイン |
稼働中の公開VPS(beta)は、次の順で扱います。
release待ちの間に、別のセットを用意する場合は公開VPSの構築準備を進められます。稼働中セットを維持したまま、設定とファイル配置を実機で確認します。
- 新しいUbuntu hostを準備する(hostを新しく用意したときだけ)
- releaseからpresetを作る
- VPSを新しいpresetへ更新する
日々の運用は次のページにあります。
ホームで b7.post2 の新セットを用意する場合は、ホーム用ケータリング手順へ進みます。起動前に設定を生成して確認する段階から説明しています。
目指しているのは「ケータリング方式」です。「b8セットをVPSへ」のような短い依頼から、Stack担当が設定ファイルmc-remote.tomlを一つ用意し、mcrctl applyとmcrctl doctorの二つのコマンドで、新規構築も更新も終えます。設計の正本はknowledgeのdeployment interface設計です。
今との差は次のとおりです。
- この形のコード(
mcrctl apply ./mc-remote.toml)は、Scratch、Bridge、Minecraftの3サービスと、ホーム用のCaddyを含む4サービスを扱います。ホーム用はhost側のHTTPS/WSS転送を使います。ホームページ、backup、追加プラグインの取込はこの入口にはまだありません。ホーム構成の実サービス起動・browser接続は未検証です。実装の範囲はdeployment interface実装境界にあります。 - そのため公開VPSは、上の「今の手順」で動かしています。こちらはprofileとpresetを指定したproject(
mc-remote.toml+mc-remote.lock.toml+operator/以下の入力)を、mcrctl deployment updateで更新する方式です。 - 二つの方式は、設定ファイル名がどちらも
mc-remote.tomlですが、書き方が違います。 - 次の環境の仕組みは、まだStackにありません: 公式stable(Minecraft部分はXServer GAMEs)、devサーバーのalpha/beta、Dockerを使わない構成、ケータリングPCでの検証、private opsリポの立ち上げ。
| リポジトリ | 持つもの |
|---|---|
| mc-remote-stack(ここ) | マシンの構築と運営の方式、公開できる手順。方式を確立していく間は、運用の実務も持つ |
| mc-remote-backstage(非公開) | 公式運用のprivate opsリポ。実際のhost、接続先、契約などの非公開情報。方式が確立した環境では、日々の実務を担う |
| mc-remote-knowledge | 設計判断の正本 |
Stackとbackstageは協調して働き、どちらが実務を持つかを厳密には区切りません。
OSSとして使う場合は、非公開の運用情報を置くprivate opsリポを自分で持ちます。公開テンプレートは作らず、その立ち上げの仕組みをStackに置く予定です。
uv sync --extra dev
uv run pytest
uv run ruff check .
uv run mcrctl --help