ติดตั้ง Trac เอามาบริหารโครงการซอฟต์แวร์กัน!

Trac เป็นโปรแกรมบริหารโครงการซอฟต์แวร์บนเว็บเหมือนๆ กับ gForce, SourceForge, RedMind แต่แตกต่างตรงที่ Trac ตัวเล็กกระทัดรัดสามารถใช้งาน Ticket, Search, Browse โค้ดจาก SCM ต่างๆ ได้ และยังใช้ Workflow ได้อีกด้วย Trac กำหนดเนื้อหาให้เป็นแบบ Wiki ทำให้คุณสามารถสร้างหน้าเนื้อหาต่างๆ ที่คุณต้องการได้อย่างไม่จำกัด การติดตั้ง Trac มีวิธีการหลายวิธีแต่วิธีที่จะนำมาเป็น How-To ในครั้งนี้คือการใช้ Trac ร่วมกับ Apache และ SVN ครับ เครื่อง server ที่ผมใช้ติดตั้ง Ubuntu Server 9.04 Jaunty Jackalop มี IP Address เป็น 192.168.1.111 ชื่อเครื่องคือ trac.example.com มาเริ่มกันเลย
แปลงร่างเป็น root ก่อนครับ

sudo -s

ติดตั้งโปรแกรมที่เราต้องใช้กัน

apt-get install apache2 libapache2-mod-python2.4 libapache2-svn python-setuptools subversion python-subversion

หาจุดติดตั้งเหมาะๆ ให้กับ Trac ผมติดตั้งที่ /var/lib/trac ครับ สร้าง directory ขึ้นมาเลยครับ

mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac

หาจุดติดตั้งเหมาะๆ ให้กับ svn ผมติดตั้งที่ /var/lib/svn สร้าง directory ขึ้นมาเลยครับ

mkdir /var/lib/svn

สร้าง repository ให้กับโครงการ sample เราครับ

mkdir /var/lib/svn/sample
svnadmin create /var/lib/svn/sample
จากนั้นสร้าง project ตัวอย่างมาสักอันเอาชื่อ sample ละกันครับ
trac-admin /var/lib/trac/sample initenv
trac-admin /var/lib/trac/sample permission add admin TRAC_ADMIN

สร้าง password ไฟล์ให้กับ trac

htpasswd -c /var/lib/trac/.htpasswd admin

สร้าง authz สำหรับ svn

nano /etc/trac/.authz

ใส่ข้อมูลลงไปดังนี้

[/]
* =rw

จากนั้น chown ให้ apache อ่านและเขียนไฟล์ของ repo และ trac ได้

chown -R www-data /var/lib/svn/sample
chown -R www-data /var/lib/trac

สร้างไฟล์ virtual host สำหรับ trac

nano /etc/apache2/sites-available/trac

ใส่ข้อมูลดังนี้ครับ

<VirtualHost *>
ServerName trac.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
## trac ##
<Location /projects> #set up Trac handling
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac/
PythonOption TracUriRoot /projects
</Location>
<LocationMatch "/projects/[[:alnum:]]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /var/lib/trac/.htpasswd
Require valid-user
</LocationMatch>
## svn ##
<Location /svn>
DAV svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/lib/trac/.htpasswd
AuthzSVNAccessFile /var/lib/trac/.authz
SVNParentPath /home/svn
Require valid-user
</Location>
## SSL Self-Sign by using command
## openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
#SSLEngine on
#SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>

เพิ่ม trac ลงใน site-enable

a2ensite trac

reload คอนฟิกของ apache

/etc/init.d/apache2 reload

จากนั้นก็เปิดเบราเซอร์ เบราวส์ไปที่ repo ของโครงการ sample เพื่อทดสอบ

http://trac.example.com/svn/sample

จะเห็นว่าเป็น Revision 0 : /
เบราวส์ไปที่ trac ของโครงการ sample จะเห็นหน้า trac ของโครงการ

http://trac.example.com/projects/sample

ติดตั้ง plugin เพิ่มเติมได้จาก easy_install

easy_install -U setuptools

สำหรับ plug-in ที่น่าใช้งานมีหลายตัวดัวยกัน ผมแนะนำ plugin ที่ผมชอบก็แล้วกันครับ ตัวแรกเป็น TracAccountManager เพราะจะช่วยให้เราจัดการผู้ใช้ได้ง่ายมากขึ้น TracSpamFilter ป้องกันการโพสของ SPAM ส่วน plug-in อื่นๆ ก็ลองหามาสดสอบกันได้ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *