Thursday, January 13, 2011

Install Redmine (Open Source Web-based Project Management)

Dari sekian banyak open source web-based project management software, mungkin Redmine adalah yang paling keren. Pertama, ada fasilitas gantt chart, bisa konek ke SVN, support bug/issue tracking, dan punya plugin code review. Wow, komplit. Saya jadi tertarik mencobanya. Sebelumnya saya sudah pernah mencoba projectpier (yang paling simple) dan trac (lebih komplit dari projectpier), tapi keduanya memiliki kekurangan yang menbuat saya melirik ke Redmine. Development Redmine berbasis ruby, jadi akan banyak install ruby dan kawan-kawannya dulu.

Berikut langkah-langkah instalasi Redmine (case: Centos-5.4)

Step1: Install ruby

Saya pilih versi ruby versi 1.8.7.

$ cd /usr/local/src
$ wget http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
$ tar -zxvf ruby-1.8.7-p72.tar.gz
$ cd ruby-1.8.7-p72
$ ./configure
$ make 
$ make install
$ ln /usr/local/bin/ruby /usr/bin/ruby

Ok, ruby sudah selesai diinstall, bisa dicek dengan "ruby -v". Sekarang kita install beberapa external library ruby yang dibutuhkan.

Pertama, zlib.
$ sudo yum install zlib zlib-devel
$ cd ext/zlib
$ ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
$ cd ../../
$ make
$ make install

Kalau ada error di instalasi, saran saya "Googling", karena mungkin ada dependency yang belum ada di PC Anda.

Kedua, openssl
$ sudo yum install openssl openssl-devel
$ cd ext/openssl
$ ruby extconf.rb --with-openssl-include=/usr/include --with-openssl-lib=/usr/lib
$ make
$ make install


Nah, external library yang dibutuhkan selesai diinstall, sekarang ke tahap berikutnya, ruby sudah complete. Cek dengan perintah berikut:
$ ruby -ropenssl -rzlib -e "puts :success"

Jika library zlib tidak ada (contoh kasus di Debian), bisa coba pakai zlib1g, berikut yang saya lakukan, pertama install libray openssl, readline, dan zlib1g, baru install ruby dengan include path library tersebut:
$ apt-get -y install build-essential libssl-dev libreadline5-dev zlib1g-dev
$ cd ruby-1.8.7-p72
$ ./configure --prefix-/usr/local --with-openssl-dir=/usr --with-readline-dir=/usr --with-zlib-dir=/usr
$ make 
$ make install

Cek ulang hasil instalasi ruby (ruby -ropenssl -rzlib -e "puts :success")

Step2: Install rubygems

Saya pilih rubygems versi 1.3.6
$ cd /usr/local/src
$ wget http://rubyforge.org/frs/download.php/69365/rubygems-1.3.6.tgz
$ tar -zxvf rubygems-1.3.6.tgz
$ cd rubygems-1.3.6
$ ruby setup.rb

Instalasi rubygems selesai, bisa dicek dengan "gem -v". Untuk bisa mengupdate rubygems (optional), jalankan:
$ gem install rubygems-update
$ gem upadate --system

Sekarang kita akan install beberpa "gems" yang dibutuhakan.  Versi gem yang diinstall tergantung kebutuhan, yang saya install adalah versi-versi berikut:
$ gem install rails -v=2.1.2
$ gem install rack -v=1.0.1
$ gem install -v=0.4.2 i18n
$ gem install rmagick -v 1.15.13 
$ gem install mysql

Untuk instalasi gem-rmagick, ada beberapa library yang harus diinstall, yaitu "imagemagick". Pertanyaan selengkapnya mengenai instalasi rmagick bisa dilihat di http://rmagick.rubyforge.org/install-faq.html.
$ yum install install libmagick-dev

Untuk instalasi gem-mysql, library mysql-devel harus diinstall dulu.
$ sudo yum install mysql mysql-devel

Kalau mysql-devel tidak ada, bisa coba pakai libmysql++-dev (untuk kasus Debian)
$ apt-get install libmysql++-dev


Cek "gems" yang sudah terinstall, berikut "gems" yang ada di local repository saya:

$ gem list --local


*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.3, 2.1.2)
actionpack (3.0.3, 2.1.2)
activemodel (3.0.3)
activerecord (3.0.3, 2.1.2)
activeresource (3.0.3, 2.1.2)
activesupport (3.0.3, 2.1.2)
arel (2.0.6)
builder (2.1.2)
bundler (1.0.7)
erubis (2.6.6)
i18n (0.5.0, 0.4.2)
mail (2.2.14)
mime-types (1.16)
mysql (2.8.1)
polyglot (0.3.1)
rack (1.2.1, 1.0.1)
rack-mount (0.6.13)
rack-test (0.5.7)
rails (3.0.3, 2.1.2)
railties (3.0.3)
rake (0.8.7)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.23)

Step3: Setup MySQL database

Sebelumnya, kalau belum punya aplikasi LAMP (Linux,Apache,MySQL,PHP) install dulu LAMP-nya (silakan Googling :D). Setelah LAMP sudah terinstall, setup user dan database untuk redmine, silakan refer ke sini untuk setup user dan database-nya.

Untuk kali ini setup database berikut (sebagai contoh, Anda bisa setup dengan nama yang lain):
username: redmine
database: redmine_db
password: redmine_passwd

Step4: Install Redmine

Yang saya pakai adalah Redmine-1.0.5, untuk versi terbaru bisa checkout (SVN) dari http://redmine.rubyforge.org/svn/.
$ cd /opt
$ wget http://rubyforge.org/frs/download.php/73692/redmine-1.0.5.tar.gz
$ tar -zxvf redmine-1.0.5.tar.gz

Setup konfigurasi database Redmine MySQL.
$ cd redmine-1.0.5
$ cp config/database.yml.example 
config/database.yml

Edit bagian "production" menjadi seperti ini:
production:
  adapter: mysql
  database: redmine_db
  host: localhost
  username: redmine
  password: redmine_password
  encoding: utf8
  socket: /var/lib/mysql/mysql.sock

Jangan lupa tambahkan baris "mysql.sock"-nya. Untuk lebih pastinya, periksa /etc/my.cnf, dan perhatikan baris-baris berikut dan sesuaikan baris socket pada config/database.yml dengan socket pada /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

Setup konfigurasi Redmine Email. 
$ cp config/email.yml.example 
config/email.yml

Edit bagian "production" menjadi seperti ini:
production:
delivery_method: :smtp
smtp_settings:
tls: true
address: smtp.gmail.com
port: 587
domain: smtp.gmail.com
authentication: :plane
user_name: gmail_username
password: gmail_password

Load environement Redmine yang tadi sudah disetup.
$ rake config/initializers/session_store.rb
$ rake db:migrate RAILS_ENV="production"

Kalau ada error, bisa comment kesini atau "Googling" lagi, mungkin ada instalasi yang terlewat.

Jalankan web-server-nya, kita pakai WEBRick.
$ ruby script/server -e production

Kalau berhasil, buka website Redmine-nya (http://localhost:3000), dan halaman Welcome akan terlihat. Bisa masuk ke admin default dengan user: admin, password: admin

Berikut halaman welcome Redmine yang berhasil saya install. Voila!! Selamat mencoba =)


4 comments:

  1. Waktu itu, apa kekurangan trac sehingga beralih ke Redmine?

    ReplyDelete
  2. Awalnya saya menggunakan trac. Waktu pertama memakai, bingung, UI-nya nggak user friendly dan banyak fitur yg tidak bisa saya temukan di trac.. =D

    Sebelum sempat implementasi trac di real project, saya mulai lihat-lihat alternatif lain.

    Yang saya butuhkan adalah solusi terintegrasi, mulai dari SCM, project management (gantt chart, tasklist), bug-tracking, sampai code review.

    Dan ternyata redmine memberikan solusinya.. =)

    Sebagai catatan: kalau waktu itu sempat menggunakan trac pada real project, mungkin akan lain ceritanya, karena migrasi juga membutuhkan effort.

    Thanks!

    ReplyDelete
  3. begitu saya ketikan : $ rake config/initializers/session_store.rb

    There was an error in your Gemfile, and Bundler cannot continue.

    apa yg harus saya lakukan?

    ReplyDelete
    Replies
    1. Pastikan versi-versi software yang diinstall sama persis dengan tutorial, karena versi beda mungkin ada perbedaan cara konfigurasi, termasuk Gemfile. Versi Rubygem yang dipakai diatas adalah 1.3.6.

      Catatan: tutorial diatas dibuat 3 tahun yang lalu, sangat mungkin software sudah banyak yang diupdate dan mungkin ada kemudahan cara instalasi Redmine versi yang lebih baru.

      Delete