Tracの構築手順.会社で使うとき用の構築手順メモ.
- プロキシの設定も含まれますので,プロキシが不要な方はプロキシ関連部分は無視してください.
- 想定環境はUbuntu 16.04 LTS Xenial Xerus (最小インストールorServer版)です.
Subversionの導入
Subversionのインストールとプロキシの設定.
sudo apt install subversion
vim ~/.subversion/servers
~/.subversion/servers
[global]
http-proxy-host = proxy.example.com
http-proxy-port = 8080
日本語環境にする
必要な人だけ
sudo apt install language-pack-ja
update-locale LANG=ja_JP.UTF-8
# 再ログイン
Tracをソースからインストールする
Tracが依存するパッケージをインソールする
# プロキシの設定
export HTTP_PROXY=http://proxy.example.com:8080/
export HTTPS_PROXY=http://proxy.example.com:8080/
export FTP_PROXY=http://proxy.example.com:8080/
# Tracが依存するパッケージのインストール
sudo apt install python-setuptools python-dev python3-dev libapache2-mod-wsgi sqlite3 subversion python3-pygments python-pygments
sudo apt install apache2-utils
sudo apt install gcc
sudo easy_install babel
sudo easy_install genshi
Tracのソースコードを取得してインストールする.
update_catalog
で日本語が有効になる.
cd ~
svn co https://svn.edgewall.org/repos/trac/tags/trac-1.1.6/
cd trac-1.1.6
python setup.py update_catalog -l ja
python setup.py compile_catalog -f
sudo python setup.py install
sudo service apache2 restart
Tracの設定
Trac用のフォルダの作成する./var/www/trac/
はプロジェクトルートになるので,もし変更するなら,以降すべてのパスを変更すること.
sudo mkdir /var/www/trac
sudo vim /var/www/trac/trac.wsgi
sudo chmod 755 /var/www/trac/trac.wsgi
Trac用のwsgiファイルを作成
/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
Apache2上にTracサイトを作成し有効化.PythonはWSGIで動かす.
sudo vim /etc/apache2/sites-available/trac.conf
sudo a2ensite trac
/etc/apache2/sites-available/trac.conf
WSGIDaemonProcess trac user=www-data group=www-data processes=2 threads=25 maximum-requests=10000
WSGIProcessGroup trac
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>
Alias /trac/chrome /usr/lib/python2.7/dist-packages/trac/htdocs
<Location "/trac/chrome">
Require all granted
</Location>
Tracにプロジェクトを追加
プロジェクト名はmyproject
.
sudo trac-admin /var/www/trac/myproject initenv
sudo trac-admin /var/www/trac/myproject/ deploy /var/www/trac/myproject
sudo -u www-data trac-admin /var/www/trac/myproject/ wiki load /usr/share/trac-ja-resource/trac/wiki/default-pages
sudo vim /var/www/trac/vnfdiy/conf/trac.ini
sudo chown -R www-data:www-data /var/www/trac/
/var/www/trac/myproject/conf/trac.ini
[attachment]
max_size = 26214400
max_zip_size = 209715200
プロジェクトにユーザ追加
sudo htpasswd -c /var/www/trac/.htpasswd admin
sudo htpasswd /var/www/trac/.htpasswd user2
sudo chown -R www-data:www-data /var/www/trac/
sudo service apache2 restart
sudo -u www-data trac-admin /var/www/trac/myproject/ permission add admin TRAC_ADMIN
sudo -u www-data trac-admin /var/www/trac/myproject/ permission add administrators TRAC_ADMIN
sudo -u www-data trac-admin /var/www/trac/myproject/ permission add admin administrators
sudo trac-admin /var/www/trac/myproject/ permission list
Git(gitolite3)と連携
必要な人だけ.
/var/www/trac/vnfdiy/conf/trac.ini
[components]
tracopt.versioncontrol.git.* = enabled
[git]
projects_base = /var/lib/gitolite3/repositories
projects_list = /var/lib/gitolite3/projects.list
プラグイン
iniadminplugin
sudo easy_install https://trac-hacks.org/svn/iniadminplugin/0.11
sudo vim /var/www/trac/myproject/conf/trac.ini
/var/www/trac/myproject/conf/trac.ini
[components]
iniadmin.* = enabled
markdown.macro.markdownmacro
sudo easy_install Markdown
sudo easy_install https://trac-hacks.org/svn/markdownmacro/trunk/
slack_notification
sudo easy_install https://github.com/mandic-cloud/trac-slack-plugin
plantumlmacro
sudo apt install graphviz
sudo mkdir /var/graphviz
export GRAPHVIZ_DOT=/var/graphviz
sudo easy_install https://trac-hacks.org/svn/plantumlmacro/trunk
sudo apt isntall default-jre
sudo apt install plantuml
find / -name plantuml.jar
sudo vim /var/www/trac/myproject/conf/trac.ini
sudo service apache2 restart
/var/www/trac/myproject/conf/trac.ini
[components]
plantuml.macro.plantumlmacro = enabled
[plantuml]
java_bin = java
plantuml_jar = /usr/share/plantuml/plantuml.jar
trac-accountmanager
残念ながらtrac 1.2.dev0では動作しない.
sudo apt install trac-accountmanager
sudo vim /var/www/trac/myproject/conf/trac.ini
Apache2のSSL有効化と再起動
sudo a2ensite default-ssl.conf
sudo a2enmod ssl
sudo chown -R www-data:www-data /var/www/trac/
sudo service apache2 restart
Tracの更新
1.1.6から1.2に更新する手順.APIの変化によりプラグインがごっそり動かなくなるので,特に1.2を使わないとならない理由がない限りは1.1.6で問題ない.
svn co https://svn.edgewall.org/repos/trac/branches/1.2-stable/ trac-1.2-stable
cd trac-1.2-stable
python setup.py update_catalog -l ja
python setup.py compile_catalog -f
sudo python setup.py install
sudo service apache2 restart
sudo -u www-data trac-admin /path/to/projenv upgrade
sudo -u www-data trac-admin /path/to/projenv wiki upgrade