Memasang Redmine+Integrasi Git di Debian Wheezy

redmine_logo

Mulai dari mana ya.. Kenalan.

Redmine adalah aplikasi manajemen proyek yang dibuat menggunakan framework Ruby on Rails. Redmine mendukung multiple project. Jadi kita bisa menginstal Redmine untuk mengelola semua proyek yang sedang berjalan. Untuk pengelolaan proyek, Redmine memiliki Gantt chart dan Calendar. Untuk mengelola dokumentasi proyek, sudah ada wiki yang bisa dipakai. Tugas dibagikan pada team member dengan menggunakan konsep issue. Bahkan bisa melihat kode program yang sudah dibuat menggunakan version control browser. Kali ini saya ingin mengintegrasikan dengan Git. Selain Redmine bisa menggunakan Trac (yang dipakai sebagai wiki di dev.blankonlinux.or.id). Lanjut pasang-pasang.

Spesifikasi :

  • OS : Debian 7.4 (Wheezy) | kasus saya debian minimalis via proxmox
  • RAM : 1GB

Depedensi :

  • Redmine 2.5.x
  • Ruby 2.0
  • Rails 3.2.x
  • Git 1.7.10
  • Mysql-server 5.5
  • Apache2

Langsung sikat:

1. Pasang depedensi diserver.

$ sudo apt-get update
$ sudo apt-get install curl gawk g++ gcc make libc6-dev libreadline6-dev \
zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev \
libncurses5-dev automake libtool bison pkg-config libffi-dev git subversion \
imagemagick libmagickwand-dev mysql-server libmysqlclient-dev apache2 \
apache2-threaded-dev libcurl4-gnutls-dev apache2 libapache2-svn \
libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl \
libauthen-simple-ldap-perl openssl bsdutils dialog

2. Tambahkan user git

# adduser git

2. Buat database. Ganti my_password dengan password anda,

mysql -uroot -p
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE DATABASE redminedev CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. Pasang Ruby dan Redmine. Ruby dipasang menggunakan rvm dan Redmine dibangun dari source.

$ curl -sSL https://get.rvm.io | bash -s stable --ruby=2.0.0
source /home/nona/.rvm/scripts/rvm #ini sesuai user ketika memasang Ruby

Lanjut config-config

$ cd /opt/
$ sudo mkdir redmine
$ cd redmine/
$ sudo svn co http://svn.redmine.org/redmine/branches/2.5-stable current
$ cd current/
$ sudo mkdir -p tmp tmp/pdf public/plugin_assets
$ sudo chown -R www-data:www-data files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets
$ sudo mkdir -p /home/git/repos/
$ sudo chown -R www-data:git /home/git/repos/ #agar user git bisa mengakses

4. Konfigurasi database

$ sudo cp config/configuration.yml.example config/configuration.yml
$ sudo cp config/database.yml.example config/database.yml
$ sudo vim config/database.yml

Edit bagian database

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "my_password"
encoding: utf8

Inisiasi database Redmine

$ su -
# source /home/nona/.rvm/scripts/rvm
# cd /opt/redmine/current
# bundle install --without development test
# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
# RAILS_ENV=production bundle exec rake redmine:load_default_data

5. Konfigurasi webserver,

#gem install passenger
#passenger-install-apache2-module

Konfigurasi passenger

sudo vim /etc/apache2/conf.d/passenger.conf

JANGAN menyalin file konfigurasi ini, cocokkan dengan output dari passenger-install-apache2-module

LoadModule passenger_module /home/nona/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.48/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/nona/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.48
PassengerDefaultRuby /home/nona/.rvm/gems/ruby-2.0.0-p481/wrappers/ruby
</IfModule>

Load Redmine.pm library untuk autentifikasi repository :

$ sudo ln -s /opt/redmine/current/extra/svn/Redmine.pm /usr/lib/perl5/Apache2/

6. Konfigurasi SSL,

$ sudo mkdir /etc/apache2/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/redmine.key -out /etc/apache2/ssl/redmine.crt

7. Set virtual host, sesuaikan dengan setingan server masing-masing.

$ cd /etc/apache2/sites-available
$ sudo wget https://gist.githubusercontent.com/martin-denizet/11080033/raw/46d6da9217aa249eda8d0203102380e1ba62f774/redmine.vhost

Load modul-modul apache2.

$ su
a2enmod ssl
a2enmod perl
a2enmod dav
a2enmod dav_svn
a2enmod dav_fs
a2enmod rewrite
a2enmod headers
a2dissite default
a2ensite redmine.vhost
service apache2 restart

8. Pasang Plugin Git

# cd /opt/redmine/current/plugins/
git clone https://github.com/martin-denizet/redmine_create_git.git
source /home/nona/.rvm/scripts/rvm
bundle install
service apache2 restart

9. Konfigurasi server git. Pakai panduan dari DigitalOcean,

Posisi dikomputer server, login sebagai user git

$ su - git #login sebagai user git
$ mkdir ~/.ssh && touch ~/.ssh/authorized_keys

Salin kunci publik komputer lokal ke file authorized_keys. (caranya terserah, bisa scp, dan lain-lain)

$ cat id_rsa.pub >> ~/.ssh/authorized_keys

Set repository di server

$ cd /home/git/repos/
$ git init --bare project.git

Dari komputer lokal yang sudah didaftarin kunci publiknya, setup repository git :

$ git init && git remote add origin git@ipserverredmine:repos/my-project.git
$ git pull origin master

Kelar, user sdh bisa lakukan push, pull dari lain-lain.

Peer, konfig mail server di Redmine.

Sekian. Jika ada pertanyaan, sila tinggalkan komentar.

Ucapan terimakasih untuk Martin Denizet dan Heker IPB, Kaka Prakasa sebagai rujukan panduan ini.

[0] http://martin-denizet.com/30-minutes-to-redmine-an-express-installation-guide/

[1] https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-git-server-on-a-vps

Regard

Tuan Pembual