FabricはマイクラJava版にMODを入れるためのMODローダーです。サーバーを立てる方法は3つあり、再現性と手軽さのバランスに優れたDockerが推奨です。

この記事ではUbuntuのVPSを前提に、3方式の選び方から、Fabricを導入したDocker構成でのMOD導入までを解説します(2026年8月時点)。 VPSの初期設定とDockerの導入がまだの場合は、Linux OS(Ubuntu)の初期設定とDocker Engineの導入手順を先に済ませてください。 MODを使わないバニラサーバーの構築はJava版サーバーの立て方で解説しています。

3つの方式と選び方

手軽さ自由度破棄・再構築向いている人
VPSテンプレート◎△△とにかく早く始めたい
Docker(推奨)○◎◎再現性と自由度を両立したい
直接構築△◎△仕組みを理解したい

Dockerを推奨するのは、設定が1つのファイルに集まり、作り直しがコマンド2つで済むためです。 バージョンを上げて不具合が出ても、compose.yamlの1行を戻せば元の状態へ帰れます。

前提

方式1: VPSテンプレートで立てる

申し込み時にイメージを選ぶだけでサーバーが用意される方式です。Fabricのテンプレートを持つサービスは限られます。

  • XServer VPS for Gameには「Minecraft(Fabric)アプリイメージ」があり、26.2のほか1.21系・1.20系・1.19系・1.18系を選べる
  • ConoHa for GAMEのテンプレートはJAVA版・統合版・Forge・Spigot・Paperの5種類で、Fabricは用意されていない

XServer VPS for Gameでの手順は、申し込み時に「イメージタイプ」からMinecraft(Fabric)を選んでバージョンを指定するだけです。支払い完了後に自動でインストールされ、初回起動のセットアップに5〜15分かかるとされています。

サーバー側とクライアント側のバージョンを合わせる必要がある点は、公式マニュアルでも注意されています。

方式2: Dockerで立てる(推奨)

Docker Engineを導入する

公式のaptリポジトリから導入します。手順はUbuntuにDocker Engineを導入する手順にまとめています。

compose.yamlを作成する

使うイメージはitzg/minecraft-serverです。Java版サーバー向けのコミュニティ定番で、環境変数TYPEでFabricに切り替えられます。

作業ディレクトリを作ります。

mkdir -p ~/fabric-server && cd ~/fabric-server

compose.yamlを作成します。

cat <<'EOF' > compose.yaml
services:
  minecraft:
    image: itzg/minecraft-server:java25
    container_name: mc-fabric
    restart: unless-stopped
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: "FABRIC"
      VERSION: "26.2"
      MEMORY: "4G"
    volumes:
      - ./data:/data
      - ./mods:/mods
EOF

タグのjava25は、26.x系が要求するJava 25の明示です。 latestのJavaは時期により変わるため、バージョン付きタグの指定が確実です。

VERSIONを省略するとバニラの最新リリースが選ばれます。参加者とバージョンを揃える必要があるため、明示的に固定するほうが安全です。 Fabric LoaderのバージョンはFABRIC_LOADER_VERSIONで指定でき、未指定なら最新が使われます。 サーバー種別にFabricを選んでcompose.yamlを生成できるマイクラサーバー設定ジェネレーターも用意しています。

起動して確認する

sudo docker compose up -d
sudo docker compose logs -f

ログにDoneが出れば起動完了です。状態も確認しておきます。

sudo docker compose ps

STATUSがUpになっていれば成功です。ログ表示はCtrl+Cで抜けられます。

MODを入れる

方法は3通りあります。

①ホストのフォルダに置く(上のcompose.yamlはこの方式)

./modsに置いたjarは、コンテナ内の/data/modsへ同期されます。

mkdir -p ~/fabric-server/mods

ここにjarを配置してコンテナを再起動します。

sudo docker compose restart

②URLから自動で取得する

MODSにダウンロードURLをカンマまたは改行区切りで並べます。

      MODS: |
        https://example.com/fabric-api.jar
        https://example.com/another-mod.jar

③Modrinthのプロジェクトを指定する

MODRINTH_PROJECTSにプロジェクトのIDやスラッグを並べると、イメージ側が対応するファイルを取得します。

②と③にはリストから外したMODが自動的に削除されるという性質があります。MODの増減をcompose.yamlだけで管理できる一方、手で置いたjarとは混ぜないほうが混乱しません。

Fabric APIを忘れずに

ほとんどのMODはFabric APIを前提としています。イメージの公式ドキュメントにも同じ注意があります。MODを入れて起動しない場合は、まずFabric APIの有無を確認してください。

更新・停止・破棄

sudo docker compose pull
sudo docker compose up -d

停止はsudo docker compose downです。ワールドと設定は./dataに残ります。 ランチャーが壊れたときは、環境変数FABRIC_FORCE_REINSTALLにtrueを設定すると再インストールされます。

方式3: 公式ランチャーで直接構築する

Dockerを使えない事情がある場合の方式です。専用ユーザーを作って作業します。

sudo adduser --system --group --home /opt/minecraft minecraft
sudo -iu minecraft

公式のサーバーダウンロードページでMinecraftとLoaderのバージョンを選び、「Executable Server (.jar)」からランチャーjarのURLを取得します。

mkdir fabric && cd fabric
wget -O fabric-server.jar "<ダウンロードページでコピーしたURL>"
java -Xms4G -Xmx4G -jar fabric-server.jar --nogui
sed -i "s/eula=false/eula=true/" eula.txt
java -Xms4G -Xmx4G -jar fabric-server.jar --nogui

ランチャーjarは小さなファイルで、初回起動時に本体を自動ダウンロードします。あわせてeula.txtとmodsフォルダが生成されるため、MODはそこへ置きます。

既存のサーバーを更新する場合、.fabricフォルダが残っていると読み込みエラーになるとされています。消えていなければ手で削除してください。

常時起動にはsystemdを使います。unitファイルの書き方はマイクラサーバーの自動起動・自動再起動にまとめています。

ポート開放と接続確認

ufwでゲームポートを開けます。

sudo ufw allow 25565/tcp

VPS側にパケットフィルターがある場合は、そちらでもTCP 25565を許可します。 クライアントの「マルチプレイ」から<サーバーのIPアドレス>:25565で接続できれば完了です。

参加者もMODを入れる必要がありますか

MODによります。

FabricのMODはfabric.mod.jsonで動作環境を宣言しており、値は次の3つです。

  • "*": すべての環境(既定)
  • "client": ゲームクライアント
  • "server": 専用サーバー(統合サーバーは含まない)

さらにMODの処理の入り口は、共通のmainと、環境別のclient・serverに分かれます。 クライアント側の処理を持たないMOD、たとえばコマンドを追加してバニラの機能だけで結果を見せるようなMODは、サーバーに入れるだけで動きます。参加者はバニラのままで参加できます。 実例として、配信中の表示を出すlive-statusがこの形です。

一方、ブロックやアイテムを追加するMODは表示のためにクライアント側の処理を必要とするため、参加者全員が同じMODとバージョンを導入する必要があります。配布ページの説明を確認してください。

運用への接続

よくある質問

Paperのプラグインは使えますか

使えません。PaperのプラグインとFabricのMODは仕組みが別です。

バージョンを固定するには

compose.yamlのVERSIONにバージョンを書きます。Fabric Loader側を固定したい場合はFABRIC_LOADER_VERSIONも指定します。

MODを消したいとき

./modsに置いた方式なら、jarを削除して再起動します。MODSやMODRINTH_PROJECTSで管理している場合は、リストから外して起動し直すと自動で削除されます。

バニラのワールドは引き継げますか

ワールドデータの形式は共通のため、./dataへ配置すれば読み込めます。ただしMODが追加したブロックに依存したデータは、そのMODを外すと失われます。

まとめ

  • Fabricサーバーの構築方式は「VPSテンプレート」「Docker(推奨)」「直接構築」の3つ
  • テンプレートは存在するVPSと存在しないVPSがある
  • DockerではitzgイメージのタグをJava 25にし、TYPEをFABRICにする
  • MODは./modsへ置くか、MODS・MODRINTH_PROJECTSで自動取得する
  • ほとんどのMODはFabric APIを前提とする
  • 参加者の導入が必要かはMODによる。サーバー側だけで完結するMODもある

まずはDockerで最小構成を起動し、Fabric APIを入れたところで一度接続確認をしてから、目的のMODを足していくと切り分けが楽になります。

参考リンク