Redmine adalah aplikasi manajemen proyek dan pelacakan masalah yang free dan open source. Redmine termasuk aplikasi lintas platform dan lintas database, serta dibangun di framework Ruby on Rails.

Redmine mencakup dukungan untuk beberapa proyek, wiki, sistem pelacakan masalah, forum, kalender, pemberitahuan email, dan banyak lagi.

Dalam tutorial ini, kami akan membahas cara install dan konfigurasi versi Redmine terbaru di CentOS 7 menggunakan MariaDB sebagai back-end database dan Passenger + Nginx sebagai server aplikasi Ruby.

Prasyarat

Pastikan Anda telah memenuhi prasyarat berikut sebelum mulai dengan tutorial ini:

  • Memiliki nama domain yang menunjuk ke IP publik server. Kami akan menggunakan example.com.
  • Masuk sebagai pengguna dengan hak istimewa sudo.

Instal paket yang diperlukan untuk membangun Redmine dan Ruby dari source:

sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool
sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-devel
sudo yum install mariadb-devel zlib libyaml-devel bzip2 iconv-devel ImageMagick ImageMagick-devel

Membuat database MySQL

Redmine mendukung MySQL/MariaDB, Microsoft SQL Server, SQLite 3 dan PostgreSQL. Kami akan menggunakan MariaDB sebagai back-end database. Pastikan Anda memiliki setidaknya MySQL 5.7 atau MariaDB 10.3 terinstall di mesin Anda.

Jika MariaDB atau MySQL belum terinstal di server CentOS Anda, Anda dapat menginstalnya menggunakan instruksi ini.

Mulai dengan masuk ke konsol MySQL dengan mengetik:

sudo mysql

Jalankan pernyataan SQL berikut untuk membuat database baru:

CREATE DATABASE redmine CHARACTER SET utf8mb4;

Buat akun user MySQL baru dan berikan akses ke database:

GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'ubah-dengan-password-anda';

Jangan lupa ganti ubah-dengan-password-anda dengan kata sandi yang kuat.

Setelah selesai, keluar dari konsol MariaDB dengan mengetik:

EXIT;

Install Passenger dan Nginx

Passenger adalah server aplikasi web yang cepat dan ringan untuk Ruby, Node.js dan Python yang dapat diintegrasikan dengan Apache dan Nginx. Pada tutorial ini, Kita akan menginstal Passenger sebagai modul Nginx.

Instal repositori EPEL dan paket yang diperlukan:

sudo yum install epel-release yum-utils pygpgme
sudo yum-config-manager --enable epel

Aktifkan repositori Phusionpassenger:

sudo yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo

Setelah repositori diaktifkan, perbarui daftar paket dan instal Nginx dan Passenger dengan:

sudo yum install nginx passenger passenger-devel

Membuat User Baru

Buat pengguna dan grup baru yang akan menjalankan instance Redmine, untuk mempermudah dalam mengelola dan mengetahui pola perilaku user, kita akan menamai user baru dengan nama redmine:

sudo useradd -m -U -r -d /opt/redmine redmine

Tambahkan user nginx ke group user baru dan ubah izin direktori /opt/redmine sehingga Nginx dapat mengaksesnya:

sudo usermod -a -G redmine nginx
sudo chmod 750 /opt/redmine

Install Ruby di CentOS 7

Versi Ruby dalam repositori CentOS memang cukup usang dan tidak didukung oleh Redmine. Maka dari itu kita akan menginstal Ruby menggunakan RVM.

Untuk install Ruby menggunakan RVM, kita akan login sebagai user redmine dengan mengetik:

sudo su - redmine

Impor kunci GPG dan instal RVM:

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable

Untuk mulai menggunakan RVM, gunakan perintah source file rvm:

source /opt/redmine/.rvm/scripts/rvm

Sekarang kita dapat menginstal Ruby dengan menjalankan:

rvm install 2.5
rvm --default use 2.5

Jika Anda ingin menginstal Ruby via Rbenv, periksa panduan ini.

Install Redmine di CentOS

Pada saat penulisan artikel ini, versi stabil Redmine terbaru adalah versi 4.0.1.

Sebelum melanjutkan pada bagian berikutnya, silahkan untuk memeriksa versi terbaru redmine untuk melihat apakah ada versi rilis terbaru yang tersedia.

Pastikan Anda masuk sebagai user redmine sebelum melanjutkan pada bagian ini, Anda bisa memeriksa di terminal menggunakan perintah whoami

1. Download Redmine

Download archive Redmine dengan menggunakan perintah curl berikut :

curl -L http://www.redmine.org/releases/redmine-4.0.1.tar.gz -o redmine.tar.gz

Setelah pengunduhan selesai, ekstrak arsip :

tar -xvf redmine.tar.gz

2. Konfigurasi Database Redmine

Salin file contoh konfigurasi (.example) Redmine dengan mengetik perintah :

cp /opt/redmine/redmine-4.0.1/config/database.yml.example /opt/redmine/redmine-4.0.1/config/database.yml

Buka file contoh konfigurasi Redmine dengan teks editor di linux terminal dengan mengetik perintah :

sudo nano /opt/redmine/config/database.yml

Cari bagian production dan masukkan database MySQL serta  informasi pengguna yang telah kita buat sebelumnya:

production:
 adapter: mysql2
 database: redmine
 host: localhost
 username: redmine
 password: "ganti-dengan-password-anda"

Setelah selesai, simpan file dan keluar dari editor.

3. Install dependensi Ruby

Pindah ke direktori redmine-4.0.1 dan instal bundler serta dependensi Ruby lainnya:

cd ~/redmine-4.0.1
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite

4. Hasilkan Key dan Migrasikan Database

Jalankan perintah berikut untuk menghasilkan kunci dan memigrasi database:

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

Konfigurasikan Nginx

Jika Anda masih login sebagai user redmine, silahkan kembali ke user biasa dengan perintah exit pada terminal.

exit

Buka editor teks Anda dan buat file server block Nginx berikut:

sudo nano /etc/nginx/sites-available/example.com
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

server {
    listen 80;
    server_name example.com www.example.com;

    root /opt/redmine/redmine-4.0.1/public;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    passenger_enabled on;
    passenger_min_instances 1;

    client_max_body_size 10m;
}

Jangan lupa untuk mengganti example.com dengan domain Redmine Anda.

Sebelum restart Nginx, lakukan tes untuk memastikan bahwa tidak ada kesalahan sintaksis:

sudo nginx -t

Jika tidak ada kesalahan, hasilnya akan terlihat seperti ini:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Terakhir, restart layanan Nginx dengan mengetik:

sudo systemctl restart nginx

Konfigurasi Nginx dengan SSL

Jika Anda belum memiliki sertifikat SSL tepercaya untuk domain, Anda dapat membuat sertifikat SSL Let’s Encrypt dengan mengikuti petunjuk ini.

Setelah sertifikat dibuat edit konfigurasi domain Nginx sebagai berikut:

sudo nano /etc/nginx/conf.d/example.com.conf
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;

# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /opt/redmine/redmine-4.0.1/public;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    passenger_enabled on;
    passenger_min_instances 1;
    client_max_body_size 10m;
}

 

Mengakses Redmine

Buka browser dan ketikkan domain Anda, Jika instalasi berhasil, akan muncul tampilan yang mirip dengan screen shot berikut ini akan muncul:

Kredensial login default untuk Redmine adalah:

  • Username: admin
  • Password: admin

Ketika Anda masuk untuk pertama kalinya, Anda akan diminta untuk mengubah kata sandi seperti yang ditunjukkan di bawah ini:

Setelah mengubah kata sandi, Anda akan diarahkan ke halaman akun pengguna.

Kesimpulan

Anda telah mengikuti panduan menginstal Redmine pada sistem CentOS 7. Agar lebih memahami tentang Redmine, Anda dapat memeriksa Dokumentasi Redmine dan mempelajari lebih lanjut tentang cara mengkonfigurasi dan menggunakan Redmine.