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 8. menggunakan MariaDB sebagai back-end database dan Passenger + Apache 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.

Membuat MysSQL Database

Redmine mendukung MySQL / MariaDB, Microsoft SQL Server, SQLite 3, dan PostgreSQL. Dalam tutorial ini, kita akan menggunakan MariaDB sebagai back-end database.

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, user baru dan grant akses ke user yang baru saja kita buat.

CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'GantiDenganPassword';

Jangan lupa untuk mengganti GantiDenganPassword dengan kata sandi pilihan Anda. Setelah selesai, keluar dari shell MySQL :

EXIT;

Install Passenger, Apache dan Ruby

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 Apache.

Aktifkan repositori EPEL dan paket yang diperlukan:

sudo dnf install epel-release
sudo dnf config-manager --enable epel

Setelah repositori diaktifkan, perbarui daftar paket dan instal Ruby, Apache, dan Passenger :

sudo dnf install httpd mod_passenger passenger passenger-devel ruby

Start Apache service dan aktifkan untuk memulai saat boot:

sudo systemctl enable httpd --now

Membuat User System Baru

Buat pengguna dan grup baru, dengan direktori home /opt/redmine yang akan menjalankan instance Redmine:

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

Tambahkan user apache ke grup redmine dan ubah izin direktori /opt/redmine sehingga Apache dapat mengaksesnya:

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

Install Redmine

Pada saat penulisan, versi stabil Redmine terbaru adalah versi 4.1.0. Sebelum melanjutkan pada bagian berikutnya, silahkan untuk memeriksa versi terbaru redmine untuk melihat apakah ada versi rilis terbaru yang tersedia.

Instal GCC compiler dan libraries yang diperlukan untuk build Redmine:

sudo dnf group install "Development Tools"
sudo dnf install zlib-devel curl-devel openssl-devel mariadb-devel ruby-devel

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

sudo su - redmine

1. Download Redmine

Download archive Redmine dengan menggunakan perintah curl berikut :

curl -L http://www.redmine.org/releases/redmine-4.1.0.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.1.0/config/database.yml.example /opt/redmine/redmine-4.1.0/config/database.yml

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

nano /opt/redmine/redmine-4.1.0/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: "GantiDenganPassword"
  encoding: utf8mb4

Setelah selesai, simpan file dan keluar dari editor.

3. Install dependensi Ruby

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

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

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

Konfigurasi Apache untuk Redmine

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

Langkah selanjutnya kita akan membuat file Apache vhost untuk redmine, ganti example.com dengan nama domain Anda :

sudo nano /etc/httpd/conf.d/example.com.conf

Copy dan paste konfigurasi berikut

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /opt/redmine/redmine-4.1.0/public

    <Directory /opt/redmine/redmine-4.1.0/public>
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>

Restart Apache Service dengan mengetik perintah berikut :

sudo systemctl restart httpd

Konfigurasi Apache dengan SSL

Jika Anda tidak memiliki sertifikat SSL tepercaya untuk domain Anda, Anda dapat membuat sertifikat SSL Mari Kita Enkripsi dengan mengikuti petunjuk ini.

Setelah sertifikat dibuat, edit konfigurasi Apache sebagai berikut:

sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com

  Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com

  Protocols h2 http:/1.1

  <If "%{HTTP_HOST} == 'www.example.com'">
    Redirect permanent / https://example.com/
  </If>

  DocumentRoot /opt/redmine/redmine-4.1.0/public
  ErrorLog /var/log/httpd/example.com-error.log
  CustomLog /var/log/httpd/example.com-access.log combined

  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

  <Directory /opt/redmine/redmine-4.1.0/public>
    Options Indexes ExecCGI FollowSymLinks
    Require all granted
    AllowOverride all
  </Directory>

</VirtualHost>

Jangan lupa untuk mengganti example.com dengan domain Redmine Anda dan set jalur yang benar ke file sertifikat SSL. Semua permintaan HTTP akan dialihkan ke HTTPS.

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.

Jika Anda tidak dapat mengakses halaman, maka kemungkinan firewall Anda memblokir port Apache.

Gunakan perintah berikut untuk membuka port yang diperlukan:

sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload

Kesimpulan

Anda telah berhasil menginstal Redmine pada sistem CentOS. Anda dapat memeriksa Dokumentasi Redmine dan mempelajari lebih lanjut tentang cara mengkonfigurasi dan menggunakan Redmine.