LoginSignup
8
12

More than 5 years have passed since last update.

Python 製の課題管理ツール Trac

Posted at

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 とバージョンアップしていった。

システム要件

  • 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

TracIniAdminPanelPlugin

参考情報

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

課題管理ツール

8
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12