Cara Memasang Redmine di Ubuntu 16.04

Redmine adalah alat manajemen proyek berbasis web gratis dan open source. Itu ditulis dalam Ruby on Rails dan mendukung beberapa server basis data untuk menyimpan basis data. Ini adalah aplikasi kaya fitur yang mendukung banyak proyek, ACL berbasis peran dan sistem pelacakan masalah. Ini juga memiliki grafik Gantt dan dukungan kalender, manajemen file, per proyek wiki dan forum, serta banyak fitur lainnya. Ini mendukung sistem kontrol versi seperti Git, SVN atau CVS. Ini juga multibahasa, mendukung sebanyak 49 bahasa.

Prasyarat

  • Contoh server Vultr Ubuntu 16.04.
  • Seorang pengguna sudo .
  • Nama domain menunjuk ke arah server.

Untuk tutorial ini, kita akan menggunakan 192.168.1.1sebagai alamat IP publik dan redmine.example.com sebagai nama domain yang menunjuk ke instance Vultr. Pastikan untuk mengganti semua kemunculan contoh nama domain dan alamat IP dengan yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui Ubuntu 16.04 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal dependensi.

Instal Apache

Redmine ditulis dalam Ruby on Rails, jadi kami akan meminta Penumpang Phusion untuk berintegrasi dengan server web Apache untuk melayani aplikasi.

Instal Apache.

sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev

Untuk membangun Ruby dan Penumpang, kita akan memerlukan beberapa alat pengembangan juga. Instal alat yang diperlukan.

sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev

Instal PostgreSQL

Redmine mendukung berbagai jenis server basis data seperti MySQL, PostgreSQL, dan MSSQL. Dalam tutorial ini, kita akan menggunakan PostgreSQL untuk meng-host server database Redmine.

PostgreSQL adalah sistem basis data objek-relasional. Repositori Ubuntu default berisi PostgreSQL versi lama, jadi tambahkan repositori PostgreSQL ke sistem.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Instal server database PostgreSQL.

sudo apt -y install postgresql

Mulai server PostgreSQL dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Ubah kata sandi untuk pengguna PostgreSQL default.

sudo passwd postgres

Masuk sebagai pengguna PostgreSQL.

sudo su - postgres

Buat pengguna PostgreSQL baru untuk Redmine.

createuser redmine

Anda diizinkan menggunakan nama pengguna apa pun alih-alih redmine. PostgreSQL menyediakan psql shell untuk menjalankan query pada database. Beralih ke shell PostgreSQL.

psql

Tetapkan kata sandi untuk pengguna yang baru dibuat untuk database Redmine.

ALTER USER redmine WITH ENCRYPTED password 'DBPassword';

Ganti DBPassword dengan kata sandi aman. Buat database baru untuk instalasi Redmine.

CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

Keluar dari psql shell.

\q

Beralih ke sudo pengguna.

exit

Instal beberapa dependensi PostgreSQL yang diperlukan.

sudo apt -y install libpqxx-dev protobuf-compiler

Instal Ruby

Kami akan menginstal Ruby versi terbaru menggunakan RVM. Ini digunakan untuk menginstal dan mengelola beberapa versi Ruby.

Tambahkan repositori RVM.

sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update

Pasang RVM.

sudo apt -y install rvm

Karena kita perlu menginstal sistem Ruby secara luas, kita akan beralih ke pengguna root sementara.

sudo -i

Perbarui variabel lingkungan.

echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh

Instal Ruby versi terbaru.

rvm install 2.5.1

Catatan: Jika Anda menggunakan versi Ruby yang berbeda, pastikan untuk memperbarui jalur Ruby yang sesuai.

Gunakan versi Ruby yang diinstal.

rvm use 2.5.1 --default

Anda dapat memverifikasi versinya.

ruby -v

Anda akan melihat output yang serupa.

root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

Instal bundler, yang merupakan manajer dependensi untuk aplikasi Ruby.

gem install bundler

Ruby sekarang diinstal. Sebelum kita menginstal Redmine, kita perlu menginstal Phusion Passenger.

Instal Penumpang

Jalankan perintah berikut untuk menginstal Penumpang.

gem install passenger

Instal modul Apache untuk Penumpang.

passenger-install-apache2-module

Skrip pemasang akan menanyakan beberapa pertanyaan kepada Anda. Pertama, ini akan memberi Anda informasi tentang proses instalasi. Kemudian, ia akan meminta Anda untuk memilih bahasa yang akan Anda gunakan. Karena aplikasi kita ditulis dalam Ruby on Rails, pilih Ruby dari menu dan tekan ENTERuntuk melanjutkan.

Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, press '!'

 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor

Pemasang sekarang akan memeriksa persyaratan. Pemasang tidak akan menemukan dependensi yang hilang dan secara otomatis akan melanjutkan untuk mengkompilasi dan menginstal modul.

Setelah modul terinstal, itu akan meminta Anda untuk menambahkan modul ke file konfigurasi Apache.

Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
     PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
   </IfModule>

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.

Kami akan melewati ini untuk saat ini dan akan menyelesaikannya nanti di tutorial. Tekan ENTERuntuk melewati langkah ini.

Akhirnya, skrip penginstal akan memvalidasi penginstalan dan Anda akan melihat peringatan yang mengatakan modul Penumpang tidak ditentukan dalam konfigurasi Apache.

Validating installation...

 * Checking whether this Passenger install is in PATH... ✓
 * Checking whether there are no other Passenger installations... ✓
 * Checking whether Apache is installed... ✓
 * Checking whether the Passenger module is correctly configured in Apache... (!)

   You did not specify 'LoadModule passenger_module' in any of your Apache
   configuration files. Please paste the configuration snippet that this
   installer printed earlier, into one of your Apache configuration files, such
   as /etc/apache2/apache2.conf.


Detected 0 error(s), 1 warning(s).
Press ENTER to continue.

Sekarang kita telah menginstal modul Penumpang untuk Apache, lanjutkan mengunduh dan menginstal Redmine. Beralihlah ke sudopengguna lagi karena kita tidak perlu lagi menjalankan perintah menggunakan rootpengguna.

exit

Instal Redmine

Dianjurkan untuk menggunakan pengguna yang tidak memiliki hak istimewa untuk menjalankan aplikasi agar tetap terisolasi dari sistem lainnya. Buat pengguna baru untuk Redmine dan beralih ke pengguna yang baru dibuat.

sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - redmine

Unduh versi terbaru Redmine dari halaman unduh resmi Redmine .

cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz

Ekstrak arsip dan ganti nama direktori demi kenyamanan.

tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/

Salin contoh file konfigurasi ke lokasi produksinya.

cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

Buka file konfigurasi database yang baru saja kami salin untuk memasukkan detail database.

nano config/database.yml

Secara default, file database dikonfigurasikan untuk MySQL. Temukan konfigurasi untuk produksi dan pengembangan, dan uji yang menggunakan adaptor MySQL. Komentari semua kalimat ini.

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

#development:
#  adapter: mysql2
#  database: redmine_development
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

#test:
#  adapter: mysql2
#  database: redmine_test
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

Furthur, temukan baris yang dikomentari, memiliki production konfigurasi untuk postgresql adaptor. Batalkan komentar pada baris tersebut dan perbarui nama database dan kredensial pengguna. Pastikan untuk menggunakan lekukan yang benar, yaitu dua spasi.

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "DBPassword"

Konfigurasikan aplikasi untuk menggunakan konfigurasi PostgreSQL.

bundle config build.pg --with-pg-config=/usr/bin/pg_config

Instal dependensi yang diperlukan oleh aplikasi.

bundle install --path vendor/bundle --without development test

Anda akan melihat pesan berikut di akhir instalasi.

Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`

Perintah berikut menghasilkan token rahasia yang digunakan untuk menyandikan data sesi.

bundle exec rake generate_secret_token

Tulis basis data PostgreSQL.

RAILS_ENV=production bundle exec rake db:migrate

Jalankan perintah berikut, yang menulis data default ke dalam database PostgreSQL.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Perintah di atas akan meminta Anda untuk memilih bahasa default yang akan digunakan dengan aplikasi. Pilihan standar adalah bahasa Inggris; pilih sesuai dengan preferensi Anda.

[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.

Instalasi aplikasi Redmine sekarang selesai. Ubah kepemilikan dan izin direktori dan file.

mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Kami telah mengonfigurasi semua yang kami butuhkan dari pengguna yang tidak memiliki hak istimewa. Beralih kembali ke sudo pengguna dengan menjalankan su - <username>.

Konfigurasikan Apache

Tambahkan modul Penumpang untuk Apache ke dalam file konfigurasi Apache. Ini akan memuat modul Penumpang secara otomatis.

echo "LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/apache2/apache2.conf

Catatan: Jalur ke modul Penumpang dapat berubah ketika ada rilis baru Penumpang. Untuk menemukan jalur ke modul, gunakan sudo find / -name mod_passenger.soperintah.

Buat file host virtual baru untuk aplikasi Redmine Anda.

sudo nano /etc/apache2/sites-available/redmine.conf

Isi file dengan konten berikut.

<VirtualHost *:80>
    ServerName redmine.example.com

    DocumentRoot /home/redmine/redmine/public

    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine

    <Directory /home/redmine/redmine/public>
      Allow from all
      Options -MultiViews
      Require all granted
    </Directory>
</VirtualHost>

Pastikan untuk mengganti redmine.example.com dengan nama domain Anda yang sebenarnya. Juga, pastikan bahwa jalur ke PassengerRoot dan PassengerDefaultRuby sudah benar. Path ke binari dapat berubah ketika ada rilis baru Ruby atau Penumpang. Untuk menemukan jalur ini, jalankan perintah berikut.

passenger-config about ruby-command

Anda akan mendapatkan hasil berikut.

user@vultr:~$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
  Command: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
  To use in Apache: PassengerRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use in Nginx : passenger_ruby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use with Standalone: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/bin/passenger start


## Notes for RVM users
Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config about ruby-command'.

Setelah file host Virtual dibuat. Aktifkan konfigurasi.

sudo a2ensite redmine

Mulai ulang server web Apache.

sudo systemctl restart apache2

Anda sekarang dapat mengakses antarmuka Redmine Anda http://redmine.example.com. Login dengan nama pengguna admin, dan kata sandi admin. Pada login pertama Anda, Redmine akan meminta Anda untuk memperbarui kata sandi.

Mengamankan Apache dengan Let's Encrypt SSL

Karena instalasi Redmine kami berada di server yang menghadap publik, disarankan untuk menggunakan SSL untuk mengamankan pertukaran data dari server.

Tambahkan repositori Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instal Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo apt -y install certbot

Catatan: Untuk mendapatkan sertifikat dari Let's Encrypt CA, domain tempat sertifikat akan dibuat harus diarahkan ke server. Jika tidak, buat perubahan yang diperlukan pada catatan DNS domain dan tunggu hingga DNS menyebar sebelum membuat permintaan sertifikat lagi. Certbot memeriksa otoritas domain sebelum memberikan sertifikat.

Buat sertifikat SSL.

sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/redmine.example.com/. Sertifikat SSL akan disimpan sebagai cert.pem dan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, oleh karena itu disarankan untuk mengatur perpanjangan otomatis sertifikat menggunakan pekerjaan Cron.

Buka file pekerjaan Cron untuk root pengguna.

sudo crontab -e

Tambahkan baris berikut di akhir file.

30 5 * * * /usr/bin/certbot renew --quiet

Pekerjaan Cron di atas akan berjalan setiap hari pada pukul 5:30 pagi. Jika sertifikat akan kedaluwarsa, maka secara otomatis akan diperpanjang.

Aktifkan modul SSL untuk Apache.

sudo a2enmod ssl

Edit file host virtual yang kami buat sebelumnya untuk Redmine.

sudo nano /etc/apache2/sites-available/redmine.conf

Ubah file host Virtual agar serupa dengan yang berikut ini.

<VirtualHost *:80>
    ServerName redmine.example.com
    Redirect permanent / https://redmine.example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName redmine.example.com
    DocumentRoot "/home/redmine/redmine/public"
    <Directory "/home/redmine/redmine/public">
        Options None
        Require all granted
    </Directory>
    PassengerAppEnv production
    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine
    PassengerHighPerformance on

    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/redmine.example.com/cert.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/redmine.example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem

    SSLProtocol             all -SSLv2 -SSLv3
    SSLHonorCipherOrder     on
    SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

    <IfModule headers_module>
        Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
    </IfModule>
</VirtualHost>

Simpan file dan keluar dari editor.

Mulai ulang Apache agar perubahan dapat diterapkan.

sudo systemctl restart apache2

Anda sekarang dapat mengakses Redmine HTTPS di https://redmine.example.com.

Selamat, Anda telah berhasil menginstal Redmine pada instance Ubuntu 16.04 Anda. Mulai kembangkan proyek Anda dengan membuat atau mengimpor proyek Anda.



Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut