この記事は公開から1年以上が経過しています。内容が古い場合があるのでご注意下さい。

前回紹介したshowtremというツールですが、デフォルトではshowterm.ioのサーバに録画データがアップロードされるようになっています。

しかし個人のサーバにshowtermサーバを構築することもできるので、今回はshowtermのプライベートサーバに録画データをアップロードしてみます。
環境はEC2のCentOS6です。

環境準備

まずは、必要なパッケージなどをインストールします。

$ sudo yum -y install rubygems
$ sudo yum -y install git
$ sudo yum -y install gcc gcc-c++ make openssl-devel libffi-devel readline-devel

ruby(rbenv)環境の構築

showtermは、rubyの2.2.2以降が必要ですが、検証環境はCentos6(ruby1.8.7)だったので、一般ユーザ(本記事ではmyuser)のrbenvでruby環境を作っていくことにします。

$ cd ~
$ git clone git://github.com/sstephenson/rbenv.git
$ mkdir ~/rbenv/plugins
$ cd ~/rbenv/plugins
$ git clone git://github.com/sstephenson/ruby-build.git

PATHの設定

$ echo 'export RBENV_ROOT="/home/myuser/rbenv"' >> ~/.bash_profile
$ echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

RBENV_ROOTに指定するパスは適宜rbenvディレクトリのパスに合わせてください。
私は一般ユーザ(myuser)のホームディレクトリ以下にrbenvの環境を作ったので、上記のような設定にしています。

PATHの設定ができたら、対象ユーザでログインし直すか、.bash_profileを再度読み直してPATHの設定を反映させておきます。

rubyのインストール

CentOS6のデフォルトではRuby1.8.7がインストールされていますが、今回は2.2.2が必要なので、2.2.2をインストールしていきます。

インストール可能な一覧に2.2.2があることを確認します。

$ rbenv install -l

バージョン2.2.2をインストールします。

$ rbenv install 2.2.2

インストールできたらRuby2.2.2を対象ユーザのデフォルトのバージョンとして設定します。

$ rbenv global 2.2.2
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

showtermサーバの構築

環境準備

showtermサーバに必要なパッケージ類を追加インストールします。

$ sudo yum -y install libpqxx-devel
$ sudo yum -y install sqlite-devel
$ sudo yum -y install nodejs

次に必要なGemライブラリをインストールします。

$ gem install bundler
$ gem install rake
$ gem install pg
$ gem install sqlite3

showtermサーバ構築

ここまでできたら、showtermサーバをセットアップしていきます。

$ git clone https://github.com/ConradIrwin/showterm.io

次にデータベース設定を行います。
設定はdatabase.yml.exampleというサンプルを元に設定ファイルを作成します。

尚、今回はデフォルト設定であるsqliteを使います。
他にMySQLやPostgreSQLも利用できるようです。

$ cd showterm.io/config
$ cp -p database.yml.example database.yml

database.ymlのデフォルトの中身はこんな内容です。

$ cat database.yml

development:
  adapter: sqlite3
  database: /var/showterm/showterm.sqlite3
  pool: 5
  timeout: 5000

今回は一般ユーザ(myuser)で構築しているので、下記のようにデータベースへのパスを変更しました。

database: /home/myuer/var/showterm/showterm.sqlite3

データベースのパスを修正したので、それに合わせて必要なディレクトリを作成します。

$ mkdir -p ~/var/showterm

ここまで出来たらインストールを実行します。

$ cd ~/showterm.io
$ bundle install
$ bundle exec rake db:create db:migrate db:seed

最後にWEBrickサーバを起動します。
起動するとメッセージが流れて、showtermサーバが3000ポートでlistenしていることが分かります。
またサーバを停止するときは、Ctrl-Cを実行します。

$ rails s

/home/myuser/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
=> Booting WEBrick
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
W, [2016-04-24T05:19:34.151979 #1053]  WARN -- : [SKYLIGHT] [0.4.3] Running Skylight in development mode. No data will be reported until you deploy your app.
(To disable this message, set `alert_log_file` in your config.)
[2016-04-24 05:19:34] INFO  WEBrick 1.3.1
[2016-04-24 05:19:34] INFO  ruby 2.2.2 (2015-04-13) [x86_64-linux]
[2016-04-24 05:19:34] INFO  WEBrick::HTTPServer#start: pid=1053 port=3000

netstatで見てみると確かに3000ポートがanywhereでListenしているのが分かります。

# netstat -anp |grep 3000
tcp        0      0 0.0.0.0:3000                0.0.0.0:*                   LISTEN      1987/ruby

以上でshowtermサーバの構築は完了です。

また、EC2の場合は、セキュリティグループでTCPの3000ポートのアクセスを許可しておきます。

showtermクライアントからのアクセス

前回記事のshowtermクライアントからアクセスする時は、下記のようにクライアント側の環境変数を設定することで、プライベートサーバに記録データ(動画)をアップロードすることができます。

$ echo 'export SHOWTERM_SERVER=http://サーバのIP:3000' >> ~/.bashrc
$ source ~/.bashrc

実際にこの状態でクライアント側でshowtermを実行してみると、プライベートサーバにデータがアップロードされます。

Uploading...
http://52.196.XXX.XXX:3000/51221231608fc9dbf6296

アップロードされた動画に対しては、3000ポートを指定してアクセスします。
もちろん、iframeタグでブログなどに埋め込むことも可能です。

アップロードした動画は、showterm.ioサーバにアップロードしたものと同じインタフェースで見ることが出来ます。
(下記は参考画像です)
showterm2

プライベートな環境にサーバを立てることができるので、情報共有の為に社内だけで利用するなんて使い方も可能です。

以上です。

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です