Redmine adalah salah satu perangkat lunak manajemen proyek dan pelacakan masalah sumber terbuka yang paling populer. Ini adalah lintas platform dan lintas basis data dan dibangun di atas kerangka kerja Ruby on Rails.
Redmine menyertakan dukungan untuk beberapa proyek, wiki, sistem pelacakan masalah, forum, kalender, pemberitahuan email, dan banyak lagi.
Dalam tutorial ini kita akan membahas langkah-langkah yang diperlukan untuk menginstal dan mengonfigurasi Redmine versi terbaru di server CentOS 7 menggunakan MariaDB sebagai back-end database dan Passenger + Nginx sebagai server aplikasi Ruby.
Prasyarat #
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:
- Nama domain menunjuk ke IP publik server Anda. Dalam tutorial ini kita akan menggunakan
example.com
. - Masuk sebagai pengguna dengan hak istimewa sudo.
Instal paket yang diperlukan untuk membangun Redmine dan Ruby dari sumber:
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. Dalam tutorial ini kita akan menggunakan MariaDB sebagai back-end database.
Jika Anda belum menginstal MariaDB atau MySQL di server CentOS, Anda dapat menginstalnya dengan mengikuti petunjuk berikut.
Login ke shell MySQL dengan mengetikkan perintah berikut:
sudo mysql
Dari dalam shell MySQL, jalankan pernyataan SQL berikut untuk membuat database baru:
CREATE DATABASE redmine CHARACTER SET utf8;
Selanjutnya, buat akun pengguna MySQL dan berikan akses ke database:
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Pastikan Anda mengubah change-with-strong-password
dengan kata sandi yang kuat. Setelah selesai, keluar dari shell mysql dengan mengetik:
EXIT;
Menginstal Penumpang dan Nginx #
Penumpang adalah server aplikasi web yang cepat dan ringan untuk Ruby, Node.js dan Python yang dapat diintegrasikan dengan Apache dan Nginx. Kami akan menginstal Passenger sebagai modul Nginx.
Instal repositori EPELdan 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 Pengguna Sistem Baru #
Buat pengguna dan grup baru, yang akan menjalankan instance Redmine, untuk kesederhanaan kami akan memberi nama pengguna redmine
:
sudo useradd -m -U -r -d /opt/redmine redmine
Tambahkan nginx
pengguna ke grup pengguna baru dan ubah /opt/redmine
izin direktorisehingga Nginx dapat mengaksesnya:
sudo usermod -a -G redmine nginx
sudo chmod 750 /opt/redmine
Menginstal Ruby #
Versi Ruby di repositori CentOS cukup usang dan tidak didukung oleh Redmine. Kami akan menginstal Ruby menggunakan RVM.
Beralih ke penggunaredmine
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 sumber RVMrvm
berkas:
source /opt/redmine/.rvm/scripts/rvm
Sekarang kita dapat menginstal Ruby dengan menjalankan:
Jika Anda ingin menginstal Ruby melalui Rbenv, periksa panduan ini.rvm install 2.5
rvm --default use 2.5
Menginstal Redmine di CentOS #
Saat artikel ini ditulis, Redmine versi stabil terbaru adalah versi 4.0.1.
Sebelum melanjutkan dengan langkah selanjutnya, Anda harus memeriksa halaman unduh Redmine untuk melihat apakah versi yang lebih baru tersedia.
Pastikan Anda menjalankan langkah-langkah berikut sebagairedmine
pengguna. 1. Mengunduh Redmine #
Unduh arsip Redmine dengan perintah curl berikut:
curl -L http://www.redmine.org/releases/redmine-4.0.1.tar.gz -o redmine.tar.gz
Setelah unduhan selesai, ekstrak arsip:
tar -xvf redmine.tar.gz
2. Konfigurasi Database Redmine #
Salin file konfigurasi database contoh Redmine:
cp /opt/redmine/redmine-4.0.1/config/database.yml.example /opt/redmine/redmine-4.0.1/config/database.yml
Buka file dengan editor teks Anda:
nano /opt/redmine/redmine-4.0.1/config/database.yml
Telusuri production
bagian dan masukkan database MySQL dan informasi pengguna yang kami buat sebelumnya:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8
Setelah selesai, simpan file dan keluar dari editor.
3. Menginstal dependensi Ruby #
Arahkan ke redmine-4.0.1
direktori dan instal bundler dan dependensi Ruby lainnya:
cd ~/redmine-4.0.1
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite
4. Buat Kunci dan Migrasikan Basis Data #
Jalankan perintah berikut untuk membuat kunci dan memigrasikan database:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
Mengonfigurasi Nginx #
Beralih kembali ke pengguna sudo Anda:
exit
Buka editor teks Anda dan buat file blok server Nginx berikut:
sudo nano /etc/nginx/conf.d/example.com.conf
/etc/nginx/conf.d/example.com.confpassenger_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 memulai ulang layanan Nginx, lakukan tes untuk memastikan tidak ada kesalahan sintaks:
sudo nginx -t
Jika tidak ada kesalahan, outputnya 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 tidak memiliki sertifikat SSL tepercaya untuk domain Anda, Anda dapat membuat sertifikat SSL Let's Encrypt gratis dengan mengikuti petunjuk berikut.
Setelah sertifikat dibuat, edit konfigurasi domain Nginx sebagai berikut:
sudo nano /etc/nginx/conf.d/example.com.conf
/etc/nginx/conf.d/example.compassenger_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;
}
Jangan lupa untuk mengganti example.com dengan domain Redmine Anda dan atur jalur yang benar ke file sertifikat SSL. Semua permintaan HTTP akan dialihkan ke HTTPS. Mengakses Redmine #
Buka browser Anda, ketik domain Anda dan dengan asumsi instalasi berhasil, layar yang mirip dengan berikut akan muncul:
Kredensial login default untuk Redmine adalah:
- Nama pengguna:admin
- Sandi:admin
Saat Anda login untuk pertama kalinya, Anda akan diminta untuk mengubah kata sandi seperti yang ditunjukkan di bawah ini:
Setelah Anda mengubah kata sandi, Anda akan diarahkan ke halaman akun pengguna.