tiarraを入れてみたので設定とかのメモ

IRC-Proxyのtiarraをようやく入れたのでメモ。
サーバーを用意していないので、とりあえず自分のマシン(MAC-OSX10.5.6)で動かしてみる。


※2011/12/13追記
ZNCというSSL対応のIRCプロキシが良さそうです。
EC2 に ZNC という IRCプロキシ入れてみた - 気が向いたら

ダウンロード

こちらが本家 Tiarra : Archive

もしくは coderepos よりチェックアウト

% svn co http://svn.coderepos.org/share/lang/perl/tiarra/trunk/ tiarra

適当な場所へ置く。

tiarra.confの設定

ダウンロードしたディレクトリ内に、「sample.conf」というファイルがあるので、コピーして「tiarra.conf」とリネームする。


confファイルは大きく分けて以下のブロックがある。

generalブロック
networksブロック
各ネットワークの設定
プラグインの設定

generalブロック

ここの設定をする前に、自宅のマシンに外からも接続する場合の事を考えて、パスワードを設定しておく。
tiarraを設置したディレクトリ内に移動して、

% ./tiarra --make-password

で、設定したいパスワードを聞かれるので入力。
cryptされた値として返されるので、コピーしておく。


次にtiarra.confを編集。

general {
  # ユーザー情報
  # 省略不能です。
  nick: taketin
  user: taketin
  name: taketin

  # Tiarraが開くポート。ここに指定したポートへクライアントに接続させる。
  # 省略されたらポートを開かない。
  tiarra-port: 6667

  # Tiarraにクライアントが接続する際に要求するパスワードをcryptした文字列。
  # 空の文字列が指定されたり省略された場合はパスワードを要求しない。
  # crypt は ./tiarra --make-password で行えます。
  tiarra-password: さきほど生成したcryptされたパスワード

  # IRCサーバーから送られる文字のコードと、IRCサーバーへ送る文字のコード
  # どちらも省略された場合はjis。
  server-in-encoding: utf8
  server-out-encoding: utf8

  # クライアントから受け取る文字のコードと、クライアントへ伝える文字のコード
  # どちらも省略された場合はjis。
  client-in-encoding: utf8
  client-out-encoding: utf8

}
networksブロック
  # 接続するIRCネットワークに名前を付けます。この名前は後で使用します。
  # 複数のネットワークに接続したい場合は多重定義して下さい。
  name: 任意の設定名(例えばcodecheck.inとか)
各ネットワークの設定

先ほどnetworksブロックで設定したnameに対しての設定を行う。

codecheck.in {
  host: irc.codecheck.in
  port: 6667
}

接続先設定が複数ある場合は上のフォーマットで繰り返し記述しておく。

プラグインの設定

色々なオプションがある。
とりあえず以下の設定をした。

 - Channel::Join::Connect {
↓
 + Channel::Join::Connect {
  # サーバーに初めて接続した時、指定したチャンネルに入るモジュール。

  # 書式: <チャンネル1>[,<チャンネル2>,...] [<チャンネル1のキー>,...]
  #     コンマの直後のスペースは無視されます。
  #
  # 例:
  #   「#aaaaa@ircnet」に「aaaaa」というキーで入る。
  #channel: #aaaaa@ircnet aaaaa
  #
  #   「#aaaaa@ircnet」、「#bbbbb@ircnet:*.jp」、「#ccccc@ircnet」、「#ddddd@ircnet」の4つのチャンネルに入る。
  #channel: #aaaaa@ircnet,#bbbbb@ircnet:*.jp, #ccccc@ircnet
  #channel: #ddddd@ircnet
  channel: #codecheckin@codecheck.in
  channel: #cnkin@codecheck.in
}

これで、サーバ接続時に自動的に指定チャンネルに入ってくれる。

 - Log::Channel {
↓
 + Log::Channel {

これでログが取れる。記録先はとりあえずデフォルトでlogというディレクトリを作って保存してくれるようだ。

 - Log::Recent {
↓
 + Log::Recent {

これで、切断後しばらくして再接続した場合、最近のログを表示してくれるらしい。便利。

 - User::Nick::Detached {
↓
 + User::Nick::Detached {
  # クライアントが接続されていない時に、特定のnickに変更します。

  # クライアントが接続されていない時のnick。
  # このnickが既に使われていたら、適当に変更が加えられて使用されます。
  # クライアントが再び接続されると、切断前のローカルnickに戻ります。
  detached: taketin_away
}

これで、切断した時に設定したnickに変更してくれる。

tiarra起動してクライアントより接続

% ./tiarra &

で、tiarraがバックグラウンドで実行される。
特にエラー等表示されていないようならOK。


クライアント(LimeChat等)で接続してみる。

server: 127.0.0.1
port: 6667
password: 先ほど設定したパスワード

で、適当な名前つけて接続。

同時に、今tiarra経由で接続しているircサーバに直接接続してみると動作確認できる。
tiarra経由の接続を切ると、nickがtaketin→taketin_awayに変われば成功。


ちなみにtiarra起動中にtiarra.confをいじった場合は、ircクライアントより

/load

とコマンドを打てば設定を再読込してくれる。