Skip to content

Repository files navigation

mc-remote-stack

マイクラリモコン(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)

稼働中の公開VPS(beta)は、次の順で扱います。

release待ちの間に、別のセットを用意する場合は公開VPSの構築準備を進められます。稼働中セットを維持したまま、設定とファイル配置を実機で確認します。

  1. 新しいUbuntu hostを準備する(hostを新しく用意したときだけ)
  2. releaseからpresetを作る
  3. 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

About

Reproducible deployment and operations package for McRemote servers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages