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