ChiliProject 1.4.0 + Ruby Enterprise + Passenger + Apache2

Table Of Contents

I was a happy Trac user, but after seeing Redmine , I realized that Trac has many missing features and that you must do a lot of things with plugins, Redmine has this features out-of-box. After working a bit with Redmine I discovered ChiliProject , which is a fork of Redmine, and its actually compatible with Redmine Themes and Plugins .

Here is a comparison of Redmine/ChiliProject and Trac features:

Feature Redmine/ChiliProject Trac
Multiple projects support βœ… 🚫 (with plugin, planned 0.14)
Flexible role based access control βœ… 🚫
Flexible issue tracking system βœ… βœ… (no bulk ticket changes and ticket dependencies)
Gantt chart and calendar βœ… 🚫 (GanttCalendarPlugin )
Feeds & email notifications βœ… βœ…
Per project wiki βœ… βœ…
Per project forums βœ… 🚫 (DiscussionPlugin )
Time tracking βœ… 🚫 (Plugins or custom field )
Custom fields for issues, time-entries, projects and users βœ… βœ… (editing trac.ini )
SCM integration SVN, CVS, Git, Mercurial, Bazaar and Darcs SVN in core, others with Plugins
Issue creation via email βœ… 🚫 (MailToTracPlugin )
Multiple LDAP authentication support βœ… 🚫 (LDAPPlugin )
User self-registration support βœ… 🚫 (AccountManagerPlugin )
Multilanguage support βœ… βœ…
Multiple databases support MySQL, PostgreSQL, SQLite MySQL (unstable), PostgreSQL, SQLite
Mobile Apps βœ… 🚫

The first thing that made me not to test Redmine/ChiliProject immediately was that it is RoR and the complexity to make it run stable under apache, but after searching a bit, I found Phusion Passenger and Ruby Enterprise , which is a very good solution to run RoR products stable under Apache, and you have the ability to run Ruby with custom user, usefull for shared environments.

Installation

  1. Ruby Enterprise

    I downloaded and installer from source code, so that it’s compiled for my server and I can store it in a specific location. So, the first we have to do is download latest version from Ruby Enterprise Download page

    1wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2011.03.tar.gz
    2tar zxvf ruby-enterprise-1.8.7-2011.03.tar.gz
    3cd ruby-enterprise-1.8.7-2011.03
    4./installer
    5    

    Follow installer instructions, and install dependencies if needed (the installer tells us which packages we need for our Linux distro)

  2. Phusion Passenger

    Next thing to do, is install the Passanger module for apache, this can be done with the passenger-install-apache2-module script available at Ruby Enterprise installation

    1    
    2cd /opt/ruby-enterprise-1.8.7-2011.03/bin
    3./passenger-install-apache2-module 
    4    

    This script also checks the dependencies and says what packages you need for your Linux distro

  3. Apache

    Now we need to configure apache, first we need to activate and configure the passenger module

    /etc/apache2/mods-enabled/passenger.load

    1
    2
    
    LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
        

    /etc/apache2/mods-enabled/passenger.conf

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
      
    <IfModule mod_passenger.c>
      PassengerRoot /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.7
      PassengerRuby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby
    
      PassengerFriendlyErrorPages Off
      PassengerUserSwitching On
      PassengerDefaultUser www-data
      PassengerDefaultGroup www-data
    </IfModule>
        

    And the last thing is configure a vhost under which we will run this ChiliProject installation

    /etc/apache2/sites-enabled/chiliproject

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    NameVirtualHost *:443
    <VirtualHost *:443>
    	SSLEngine on
    	
    	SSLCertificateFile    /etc/apache2/ssl/server.crt
    	SSLCertificateKeyFile /etc/apache2/ssl/server.key
    
    	<IfModule mod_passenger.c>
    		PassengerUser chiliproject
    		PassengerGroup chiliproject
    	</IfModule>
    
      ServerAdmin [email protected]
    	ServerName chiliproject.org
    	
    	DocumentRoot /home/chiliproject/public
    	<Directory />
    		Options -MultiViews
    		AllowOverride All
    	</Directory>
    	
    	ErrorLog /var/log/apache2/chiliproject-error.log
    	
    	CustomLog /var/log/apache2/chiliproject-access.log combined
    </VirtualHost>
        
  4. ChiliProject

    First install needed gems

    1/opt/ruby-enterprise-1.8.7-2011.03/bin/gem install -v=0.4.2 i18n
    2/opt/ruby-enterprise-1.8.7-2011.03/bin/gem install -v=1.0.1 rack
    3/opt/ruby-enterprise-1.8.7-2011.03/bin/gem install mysql
    4    

    Download the last available ChiliProject version from ChiliProject Files Page

    1wget https://www.chiliproject.org/attachments/download/99/chiliproject-1.4.0.tar.gz
    2tar zxvf chiliproject-1.4.0.tar.gz
    3mv chiliproject-1.4.0 /home/chiliproject
    4    

    Create the mysql database and user for ChiliProject

    1    
    2CREATE DATABASE chiliproject CHARACTER SET utf8 collate utf8_unicode_ci;
    3GRANT ALL PRIVILEGES ON chiliproject.* TO 'chiliproject'@'localhost' IDENTIFIED BY 'my_password';
    4    

    Configure ChiliProject Database Connection

    1mv config/database.yml.example config/database.yml
    2    
    1production:
    2  adapter: mysql
    3  database: chiliproject
    4  host: localhost
    5  username: chiliproject
    6  password: my_password
    7    

    Now initialize ChiliProject (session Store, DB Tables, DB Default Data

    1/opt/ruby-enterprise-1.8.7-2011.03/bin/rake generate_session_store
    2RAILS_ENV=production /opt/ruby-enterprise-1.8.7-2011.03/bin/rake db:migrate
    3RAILS_ENV=production /opt/ruby-enterprise-1.8.7-2011.03/bin/rake redmine:load_default_data
    4    

    And the last thing we need to do before we can restart apache and begin to use the new installed ChiliProject, we need to create the chiliproject user

    1    
    2adduser --home /home/chiliproject --shell /bin/false --no-create-home chiliproject
    3chown -R chiliproject:chiliproject /home/chiliproject
    4    
  5. (Optinal) Rmagick

    If we want to enable Gantt export to png image we need to install Rmagick (available as gem). First we need to install imagemagick ang graphicsmagick dev packages and then we can install the rmagick gem.

    1    
    2apt-get install libmagickcore-dev libgraphicsmagick1-dev libmagickwand-dev
    3/opt/ruby-enterprise-1.8.7-2011.03/bin/gem install rmagick
    4    

Now we only need to restart Apache and load ChiliProject in our Browser. The default user is admin/admin


Memcached – Pages/Chunks and Rebalancing
Google +1 for Sharedaddy
comments powered by Disqus