読者です 読者をやめる 読者になる 読者になる

あーく・りなっくす

プログラミングとかガジェットとかの雑記

Minecraft Overviewer を公開するアレコレ

Minecraft Ruby

はじめに

(メモとして残しておいたが既に別の方法でなんとかしてます)

以前は VPS 上でマイクラサーバと Web サーバの両方を稼働させていたが、現在では 自宅にある Raspberry Pi 2 でマイクラサーバ、Heroku で Web サーバという風に分けつつある。そのため、SinatraMinecraft Overviewer を動かそうとしてみた。

定期的に更新できるようなスクリプトを用意すれば、最新状態を保つことができそうである。
スクリプトで実行するのは、主に 3 つの処理となる。

  • マップデータ出力
  • ディレクトリ構造調整
  • デプロイ

マップデータ出力

cron で各ワールドを n 時間ごとに出力するようにしておく。

$ pyhon hoge.py マップデータのディレクトリ 出力先のディレクトリ

とりあえず適当な場所に出力しておく。

ディレクトリ構造調整

public/ 以下にファイルを設置すれば、http:///hoge.html という風にアクセスすることができる。ただ、http:/// でアクセスさせたい場合に対応できない。 そのため、当初は拡張子を変更して、erb などでテンプレートとして読み込ませようとしていた。調査したところ、html ファイルを他のテンプレートと同様に扱う方法があったので、それを採用することにした。

ruby - Serving static files with Sinatra - Stack Overflow

生成される html ファイルは基本的に変わることがないだろう(要出典)ことから、一度 views/ に設置すれば特に手を加える必要が無い。
そのため、マップデータの出力先を public/ にしておけばいいので、定期的に実行する予定のスクリプトにはそのパスを指定するようにしておく。

デプロイ

Raspberry Pi 2 を一旦の確認環境として使う

とりあえず今サイトで使っている Gemfiles やサーバを構成するファイルをコピーしてくる。
そして、最低限のパッケージをインストールする。

$ sudo apt-get update
$ sudo apt-get install ruby
$ gem i bundler
$ bundle install

が gem のインストールに失敗する。

$ sudo apt-get install libgmp3-dev

が必要なのかもしれないという情報があったのでインストールしてみたが、これではなかったようである。

Ruby の開発向けパッケージも追加でインストールする。

$ sudo apt-get install ruby2.1-dev

これで gem のインストールができるようになり、SinatraMinecraft Overviewer を公開できるようになった。

Heroku へのデプロイ

どうせならということで、Github との連携を試してみる。
(ちゃんとメモしてなかったのでざっくりと) Githubリポジトリに予め push しておく。
Heroku の Web UI からポチポチっとリポジトリとブランチを選択する。
自動デプロイを有効にする。
これだけのはず。初回は手動デプロイも実施しないとダメかもしれない。

とここまでは割と順調であったが、問題が発生した。

Compiled slug size: 493.4M is too large (max is 300M).

どうやらでかすぎるようだ。
諦めて別の方法を探そう。