.:My Black Corner:.

Friday, February 22, 2008

Membangun server SVN (subversion)

Apa itu subversion? Subversion adalah suatu layanan server yang memungkinkan pengguna untuk berbagi direktori project. Subversion sendiri merupakan pengembangan dari layanan sebelumnya, yang lebih dikenal dengan CVS. Pada kasus kali ini saya membuatnya di Ubuntu Gutsy Gibbon.

Installasi
Kita bisa mendapatkan paket stable pada situs resmi subversion. Atau lebih mudah apabila kita mendapatkannya langsung dari server repository.
# apt-get install subversion

Membuat subversion repository
# mkdir --mode=0777 /media/svn
# svnadmin create /media/svn/repo

Dimana "repo" disini adalah nama project yang akan di-share.

Lalu buat user yang diijinkan mengakses direktori ini.
# adduser svn
# chown -Rf svn.svn /media/svn/repo

Pada sejumlah kasus kita juga perlu membuat satu group svn dan menambahkan beberapa user kedalamnya.

Koneksi subversion repository menggunakan SSH
Direktori repository milik subversion ini dapat diakses menggunakan layanan SSH protokol. Sebelumnya kita harus install SSH server terlebih dahulu.
# apt-get install openssh-server

Apabila server SSH sudah berhasil di-install, kita bisa mengakses menggunakan dua protokol, svn dan SSH.
# svn co svn+ssh://username@ip_address /media/svn/repo

Setelah perintah ini kita dihadapkan dengan pertanyaan RSA fingerprint dari server SSH, menanyakan password user SSH. Kita bisa saja menggunakan otentikasi otomatis dengan memakai layanan SSH, yaitu public/private key.

Menjalankan layanan svn
Jalankan server svn agar user dari client dapat mengakses protokol svn. Untuk menjalankan service svn kita dapat menggunakan perintah:
# svnserve -d

Atau buatlah satu script untuk menjalankan svn secara otomatis ketika komputer pertama kali dinyalakan.
# nano /etc/init.d/svnserver
========
(Isi filenya)
========

#! /bin/sh
svnserve -d

Setelah itu buat akses file agar dapat dieksekusi.
# chmod 555 /etc/init.d/svnserver
# update-rc.d svnserver defaults

Koneksi subversion menggunakan Apache web server
Layanan subversion juga dapat diakses melalui web server dengan memanfaatkan WebDAV protokol. Untuk layanan ini, kita diharuskan meng-install Apache terlebih dahulu.
# apt-get install apache2 libapache2-svn

Selanjutnya kita perlu meng-edit beberapa baris konfigurasi file untuk subversion webdav module.
# nano /etc/apache2/mods-enabled/dav_svn.conf

Kita akan membuat bagaimana caranya agar subversion ini dapat dibuka dari client, dengan mengakses alamat http://[ip_server]/svn. Edit file berikut:

Location /svn <--- tulis dengan diapit tanda "<" dan ">"
DAV svn
SVNPath /media/svn/repo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
/Location <--- tulis dengan diapit tanda "<" dan ">"


Buatlah user http yang dapat mengakses subversion repository.
# htpasswd -cm /etc/apache2/dav_svn.passwd [username]
New password:
Re-type new password:
Adding password for user [username]

Lalu setelah konfigurasi diatas jangan lupa untuk me-restart layanan Apache2.
# /etc/init.d/apache2 force-reload

Sekarang kita cek dengan menggunakan web browser pada komputer client. Buka alamat http://[ip_server]/svn











Keamanan Akses dengan layanan Trac
Trac adalah layanan dari subversion yang memungkinkan system mencatat history dari user yang telah merubah file project svn, semacam ticketing system. Install Trac:
# apt-get install trac python-setuptools libapache2-mod-python enscript

Buat database Trac:
# mkdir /var/www/trac
# trac-admin /var/www/trac/repo initenv

Buat agar Apache dapat menjalankan Trac.
# cd /var/www
# chown -Rf www-data.svn trac

Edit file /etc/apache2/mods-enabled/dav_svn.conf
# nano /etc/apache2/mods-enabled/dav_svn.conf
Location /trac/[[:anum]]+/login" <--- tulis dengan diapit tanda "<" dan ">"
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/passwords
Require valid-user
/Location <--- tulis dengan diapit tanda "<" dan ">"

Location /trac <--- tulis dengan diapit tanda "<" dan ">"
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
PythonOption TracUriRoot /trac
/Location <--- tulis dengan diapit tanda "<" dan ">"

Jangan lupa restart service Apache2 setelah melakukan perubahan.
# /etc/init.d/apache2 force-reload

Selamat mencoba...


posted by .:CyberColombuzz:. at 9:35 AM

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home