バグ管理システム[W](BTS)のTracを導入しました。python[W]で書かれているBTSで、subversion[W] (svn)と連携して動作します。バックエンドはsqlite[W]なので、あまり深く考えなくても導入できるのが嬉しいですね。

以下、備忘です。既にsvnのリポジトリ(/svn/repo/path)は用意されており、tracのプロジェクトは/some/dir/projectにセットアップするものとします。弊社のサーバはdebian[W]ですので、例によってapt-get一発です。

# apt-get install trac
# trac-admin /some/dir/project initenv
ここで色々質問されますが、基本的にはデフォルト値のままでOK。svnリポジトリは用意してあるものを入力します。次に、Apacheの設定ですが、弊社で運用するための要件として今回は
  • sslによる暗号化
  • digest認証
を必須としました。また、closedなソースコードを扱うために、認証されないユーザはドキュメントルートすら参照できないようにします(tracのloginボタンが飾りになりますが、それはご愛嬌)。本題でないsslの設定については割愛し、tracとdigest認証に関する設定のみ抜粋するとこんな感じ。
# vi /etc/apache2/site-available/trac
(省略)
           ScriptAlias /project /usr/share/trac/cgi-bin/trac.cgi
            <Location />
               SetEnv TRAC_ENV "/some/dir/project"
                AuthType Digest
                AuthName "trac"
#               AuthDigestFile /pass/file/path/trac.htdigest
                AuthUserFile /pass/file/path/trac.htdigest
                Require valid-user
            </Location>
(省略)
AuthDigestFileがハネられるので、AuthUserFileを使っています。あとはパスワードを格納するファイル/path/file/path/trac.htdigestを作成します。
# htdigest -c /pass/file/path/trac.htdigest trac username
-cオプションは既存ファイルがあれば削除して、新規に作成するためのものですのでご注意を。第3引数のtracは、AuthNameに指定した文字列です。あとはa2ensiteで設定を有効にすれば、一応は動作します。


しかし、これだけでは不十分です。問題点は

  • CGIなので遅い
  • 日本語化されていない
といったところ。次回はmod_pythonの導入について書きます。