Edited at

Tracの構築手順

More than 1 year has passed since last update.

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


参考