Trac

https://trac.edgewall.org/

Trac は Python で書かれた Edgewall Software 社によるオープンソースの課題管理ツール。修正BSDライセンス。
バージョンは現行の 1.2 系(2016/11~)、LTS の 1.0 系(2012/9~2015/7)、次期バージョンの 1.3 系(2016/11~)などがあり、最新安定版は2017年6月21日リリースの 1.2.2 になる。
他に Redmine や Mantis Bug Tracker などがある。

歴史

https://trac.edgewall.org/wiki/TracHistory
https://trac.edgewall.org/wiki/TracChangeLog?version=95
https://en.wikipedia.org/wiki/Trac
2003年8月に CVSTrac を参考に SQLite と Subversion を使って svntrac として書かれ始め、2003年12月に Trac にリネームされる。2004年2月に Trac のバージョンは最初に 0.0.1 から 0.1 に変更され、次に 0.1 から 0.5 にいっきに変わった。その後2004年3月に 0.6 と 0.7、そして2004年11月に 0.8 とバージョンアップしていった。

システム要件

https://trac.edgewall.org/wiki/TracInstall

  • Python 2.6 以上 3.0 未満
  • setuptools 0.6 以上
  • Genshi 0.6 以上
  • Babel 0.9.6 または 1.3 以上

インストール

構成例

  • CentOS 7.3.1611 (1706) minimal
    • Python 2.7.5 (anaconda)
    • setuptools 0.9.8 (base)
    • Apache 2.4.6 (base)
    • mod_wsgi 3.4 (base)
    • Trac 1.2.2 (easy_install)
    • Babel 2.4.0 (easy_install)
    • Genshi 0.7 (easy_install)

Trac

yum -y install gcc python-devel python-setuptools enscript
easy_install Babel
easy_install Trac

Trac より先に Babel をインストールしておくと自動的に日本語化される。

Apache

yum -y install httpd mod_wsgi
mkdir /var/www/trac
chown apache. /var/www/trac
cat << "_EOF_" > /var/www/trac/trac.wsgi && chmod 755 /var/www/trac/trac.wsgi
import os
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/www/trac'
os.environ['PYTHON_EGG_CACHE'] = '/var/www/trac/eggs'
import trac.web.main
application = trac.web.main.dispatch_request
_EOF_
cat << "_EOF_" > /etc/httpd/conf.d/trac.conf
WSGIScriptAlias /trac /var/www/trac/trac.wsgi
<Directory /var/www/trac>
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
</Directory>
<LocationMatch "/trac/.*/login">
   AuthType Basic
   AuthName "trac"
   AuthUserFile "/var/www/trac/.htpasswd"
   Require valid-user
</LocationMatch>
_EOF_
firewall-cmd --permanent --add-service=http && firewall-cmd --reload
httpd -t
systemctl start httpd && systemctl enable $_
setenforce 0 #TODO

Subversion

yum install subversion subversion-python mod_dav_svn
mkdir /var/www/svn
cat << "_EOF_" > /etc/httpd/conf.d/subversion.conf
<Location /svn>
    DAV svn
    SVNParentPath /var/www/svn
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        AuthType Basic
        AuthName "Subversion - Authorization Realm"
        AuthUserFile /var/www/trac/.htpasswd
        Require valid-user
    </LimitExcept>
</Location>
_EOF_
httpd -t
systemctl restart httpd

BASIC 認証

htpasswd -c /var/www/trac/.htpasswd admin
htpasswd /var/www/trac/.htpasswd example_user

プラグイン

Trac Portal Plugin

https://pypi.python.org/pypi/TracPortalPlugin
Trac は複数プロジェクトを管理する機能が用意されていないので Trac Portal Plugin などを利用する必要がある。

trac-admin /var/www/trac/portal initenv
trac-admin /var/www/trac/portal permission add admin TRAC_ADMIN
easy_install -Z -U https://trac-hacks.org/svn/xmlrpcplugin/trunk
trac-admin /var/www/trac/portal config set components tracrpc.* enabled
trac-admin /var/www/trac/portal permission add authenticated XML_RPC 
easy_install TracPortalPlugin
trac-admin /var/www/trac/portal config set components tracportal.* enabled
trac-admin /var/www/trac/portal config set components tracportalopt.* enabled
trac-admin /var/www/trac/portal config set trac mainnav "wiki, dashboard, cross_search, public_projects, available_projects, new_project"
trac-admin /var/www/trac/portal config set tracportal ignore_projects portal
trac-admin /var/www/trac/portal config set tracportal trac_env_parent_dir /var/www/trac
trac-admin /var/www/trac/portal upgrade
chown -R apache. /var/www/trac/portal



AccountManagerPlugin

https://trac-hacks.org/wiki/AccountManagerPlugin
https://ameblo.jp/itboy/entry-10182930033.html

easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk
trac-admin /var/www/trac/portal config set components acct_mgr.* enabled
chown -R apache. /var/www/trac/portal

IniAdminPlugin

https://trac-hacks.org/wiki/IniAdminPlugin

TracIniAdminPanelPlugin

https://trac-hacks.org/wiki/TracIniAdminPanelPlugin

参考情報

Tracのプラグインがエラーで入らないときの対処法 | いちよんこーど
Shibuya.trac
Track Hacks

課題管理ツール