Minecraft Overviewer を公開するアレコレ
はじめに
(メモとして残しておいたが既に別の方法でなんとかしてます)
以前は VPS 上でマイクラサーバと Web サーバの両方を稼働させていたが、現在では 自宅にある Raspberry Pi 2 でマイクラサーバ、Heroku で Web サーバという風に分けつつある。そのため、Sinatra で Minecraft Overviewer を動かそうとしてみた。
定期的に更新できるようなスクリプトを用意すれば、最新状態を保つことができそうである。
スクリプトで実行するのは、主に 3 つの処理となる。
- マップデータ出力
- ディレクトリ構造調整
- デプロイ
マップデータ出力
cron で各ワールドを n 時間ごとに出力するようにしておく。
$ pyhon hoge.py マップデータのディレクトリ 出力先のディレクトリ
とりあえず適当な場所に出力しておく。
ディレクトリ構造調整
public/ 以下にファイルを設置すれば、http://
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 のインストールができるようになり、Sinatra で Minecraft Overviewer を公開できるようになった。
Heroku へのデプロイ
どうせならということで、Github との連携を試してみる。
(ちゃんとメモしてなかったのでざっくりと)
Github のリポジトリに予め push しておく。
Heroku の Web UI からポチポチっとリポジトリとブランチを選択する。
自動デプロイを有効にする。
これだけのはず。初回は手動デプロイも実施しないとダメかもしれない。
とここまでは割と順調であったが、問題が発生した。
Compiled slug size: 493.4M is too large (max is 300M).
どうやらでかすぎるようだ。
諦めて別の方法を探そう。