833 Views
July 25, 26
スライド概要
Raspberry Pi(SSD取り付け) + Docker + playitでminecraftサーバーを立てて公開する方法です
アニメ、ラノベ、きららが好きです 競技プログラミング、電子工作、Web系のなにかに興味があります。
uriboooooon
869
初心者がRaspberry Piで minecraftサーバーを立てる わたしが鯖主になれるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
目次 • まえがき • サーバー用PCは? • SBCについて • サーバーを立ててどうする? • (事前準備)ストレージをSSDに • マイクラサーバ導入 • 今後の展望
情報技術者なら おうちサーバしたい したくない. . .?
鯖主になれるわけないじゃん • 機材なし • グローバルIPなし • サーバ公開したことなし • お金なし • ドメインなし
なんもねえ ©にゃんにゃんファクトリー・講談社/ヤニねこ製作委員会
足りないものは知識とサービスのフリープランで埋める。 これも技術のうち。
docker.ioからイメージをpullできないんですけど(自責:updateしてなかった) サーバー用PCは 楽に環境構築する方法は? サーバーを早くするには メモリ上限は? ユーザ何人まで Dockerのimageとかないんか? 設定ファイルの使い方は? コマンドあっている? ホワイトリストにユーザが入ってへん 知識がないならLLMに聞けばいいじゃない バージョン1.21からいきなり26.2になったのなんで サーバーへのSSD取り付けに必要な機材は? SDカードばいばいなーん 運用方法は? 外部からサーバーを操作する方法は? 外部への公開方法は? Cloudflare でいい? オーバーヘッドがデカすぎます スマホから SSHしたい
サーバー用PCは? • ノートPCは論外 • 理由は怖いから • バッテリーが死ぬ • 発火の恐れ • 秋葉でジャンクPC買ってなんとか • でもデスクトップ常時起動は電気代高そう • 最近だとミニPCとかProxmoxとか流行っているらしいけど、そ こまで手間(?)とお金はかけないつもり
サーバー用PCは? • ノートPCは論外 • 理由は怖いから • バッテリーが死ぬ • 発火の恐れ SBCを使う • 秋葉でジャンクPC買ってなんとか • でもデスクトップ常時起動は電気代高そう • 最近だとミニPCとかProxmoxとか流行っているらしいけど、そ こまで手間(?)とお金はかけないつもり
SBCについて • Single Board Computer(SBC) 整形は関係ない • 一つの基盤にCPUや入出力がある • 電子工作に使用されることが多い • 消費電力が少ない! • 秋月電子、千石電商、シリコンハウスで買えます • 秋葉原、でんでんタウンに行こう!
種類を紹介
Raspberry Pi • 電子工作と言ったらこれ? • Raspberry Piシリーズ • 無印 • 基本シリーズ • 専用OSがある • Compute Module • 工業用 • Zeroシリーズ • 基本シリーズをさらにシンプルにしたもの • 一応Webサーバーとかできる • https://speakerdeck.com/arkw/1500yuan-deshi-meruzi-zhai-uebusaba • Picoシリーズ • OSはない • マイコン
Orange Pi • Raspberry Piのパチモン競合候補 • 割とコスパはいい • アリエクで買いましょう • モデル • 無印 • Plus • Ultra
その他 • Banana Pi • Rock • NanoPi • Libre Computer • Pine64 • NVIDIA Jetson • Google Coral Dev Board • SiFive HiFive
サーバーを立ててどうする? • そもそも静的サイトならNetlify、Vercelとかあるし立てる必要 ある? • こだわりがあるならWebサイトもOK • 通常ならお金のかかるものを(ほぼ)無料にしたいかつ、自分が やりたいことを考えてみる
ゲームしたい...
やりましょう!!!
サーバーの目的 • マイクラを複数人でやりたいがマルチプレイでサーバーを借り るとそこそこかかるので電気代以外無料でやる
ちょっとその前に
SDカードは書き込みが遅いので不適 • Raspberry Piは基本的にmicroSDカードで起動をするが、 microSDカードだと10~30MB/s • 頻繁な読み書きは想定されていない • 多分壊れやすい素材なのであまり使いたくない
(事前準備)ストレージをSSDに • 買ったもの • SSD(USB接続ではない生の) • SSD HAT • 金属ケース • ヒートシンク • 手順 • SDカードのOSからSSDを認識させる • マウント • OS ImagerでSSDへ書き込み
ここから本篇
Java版 vs 統合版 MOD入れられていろいろ試せる Java版一択!
マイクラJava Editionサーバー導入 • 公式が提供しているVanillaではなく機能が改良された PaperMCを使う • クライアント側でライセンスにお金はいるけどサーバーはなん と無料 • もし課金する場合だとReamsがよく使われる • 3人 $3.99 bedrock • 11人 $7.99 bedrock・java • Java EditionだとMODが使える!←重要
仮想化で実施 • ローカルを汚したくないのでDockerを使用する docker compose(サーバー) minecraft playit agent © playit クライアント
マイクラサーバーのイメージ • itzg/minecraft-server • めっちゃ管理されているマイクラサーバのdockerイメージ • docker-compose.ymlの環境変数を設定するだけでいい感じに • メモリ上限 • 最大プレイヤー • ワールド難易度 docker-compose.yml
公開ツールのエージェント • playit • アクセスキーを取得してエージェントとトンネルを作成 仕組み クライアント © playit サーバー
起動!
動いた!
感激のあまり(泣く)
外からSSHできるように設定しよう • トラブルがあったときに、外部からコンテナの再起動などを行 えるようにしたい • 方法 • 鍵を作成、転送 • Tailscale設定 SSH サーバー インターネット 外部端末
鍵を作成、転送 • 鍵を作る • PC • クライアントでkey作成 • Scpとかで、ホスト名やローカルIP指定して転送 • スマートフォン • termiusをインストール • キーを作成する項目から作成 • パスフレーズなし • メールとかで転送 あとはPCと同じ termius
Tailscale設定 • TailscaleというツールでVPN作成 • Tailscaleのインストールと起動 • Rasberry pi • PC • スマートフォン • TailscaleからIPを確認 • IPやホスト名を指定してSSH! サーバー 外部端末 Tailscaleにつないだ端末は 同じネットワークに所属する
まとめ • SBCとは • Raspberry PiのSSD設定 • Dockerによるマイクラサーバ公開 • マイクラサーバ外部公開 • 外部からSSH
今後の展望 • NASに定期バックアップ • Raid1+0が欲しい • SSDをPCle2からPCle3へ • UPS設定 • 有線接続 • VLANでネットワーク分割 or TailscaleでACL設定 • サーバー、NASを隔離したい! • Raspberry Pi OS Liteで運用 • VNCやRaspberry Pi Connectで外部から接続できるように • 外部からの物理再起動設備 • Switch bot プラグミニとか?