mono+TwitterIrcGateway+znc環境の構築


TwitterIrcGatewayをCentOS6環境で使うための備忘録

1. まずWindowsでTIGのバイナリを作成する。

$ svn co http://svn.misuzilla.org/etcetera/TwitterIrcGateway/trunk/ tig

TwitterIrcGateway.slnを開いて、“ISO-“という文字を検索して、一致する文字列をすべて"UTF-8"に書き換え。 #これをしないとmono環境ではうまく起動できなかった。

それをリリースなりでビルドしておく。

2. TIGを動かす環境を作る

$ sudo yum install mono-devel –enablerepo=epel
$ sudo useradd tig
$ sudo su tig
$ cd ~
$ mkdir tig
$ cd tig

先ほどビルドしたものをtig内に入れる。

“mono TwitterIrcGatewayCLI.exe"とやると起動スクリプト書くときいろいろ大変になるので、スタンドアロン実行ファイルを作る

$ mkbundle -o TwitterIrcGatewayCLI_START TwitterIrcGatewayCLI.exe

起動スクリプトは以下になりました。

$ sudo vim /etc/rc.d/init.d/TwitterIrcGateway

$ sudo chmod +x /etc/rc.d/init.d/TwitterIrcGateway 

で上記スクリプトを記述
起動スクリプトを登録

$ sudo chkconfig –add TwitterIrcGateway
$ sudo chkconfig TwitterIrcGateway on

起動確認

$ sudo service TwitterIrcGateway start
$ sudo service TwitterIrcGateway stop

3. OAuth認証

これはいつもどおりでLimechatなりで認証済みにしておいてください。
また登録したパスワードはzncの設定で使用するため、覚えておいてください。
認証を終了した後、必ずTIGのプロセスをキルしておいてください。

4. TIG用にzncを設定する

$ sudo yum install znc –enablerepo=epel

基本的にはこちらのサイトにあるように

$ sudo su tig
$ znc –makeconf

していきます。主な設定項目は以下のとおりです。

Would you like ZNC to listen using SSL? (yes/no) [no]: yes
IRC server (host only): 127.0.0.1
[127.0.0.1] Port (1 to 65535) [6667]: TIGのポート
[127.0.0.1] Password (probably empty): TIGのOAuth認証で決めたパスワード
Would you like to add a channel for ZNC to automatically join? (yes/no) [yes]: yes
Channel name: #Twitter
Would you like to add a channel for ZNC to automatically join? (yes/no) [yes]: yes
Channel name: #Console

SSLを使用したかったので有効化しました。また注意としてはサーバのパスワードはTIGのOAuth認証で決めたパスワードを入力することです。間違わないようにしてください。

zncの起動スクリプトは、そのままではうまく動かないので以下のようにしました。

5. その他注意点

今回はzncを介してtigを使用することを前提にしています。
そのため、tigの–bind-addressは内側からのみアクセス可能な状態にするために、「–bind-address=127.0.0.1」とすべきです。OAuth認証時は「–bind-address=0.0.0.0」としても構いませんが、それを終えた場合、必ず内側からのみアクセスできるようにしておいてください。

また、TIGの起動スクリプトは一般ユーザ権限の範囲内でのみ実行できるようにしています。Google等で検索して出てくる起動スクリプトはroot権限で実行する形になっています。これは色々と危険であるため、なるべく一般ユーザ権限で使用しているものを使うべきかと思います。