== Redmine im Tomcat installieren ==

[Redmine|http://redmine.org] ist ein Werkzeug zur [Projektverwaltung] - in erster Linie für Software-Entwicklungs-Projekte geeignet.

Redmine ist in [http://www.ruby-lang.org/de/ Ruby] mit dem Framework [Ruby on Rails|http://rubyonrails.org/] programmiert. Es steht unter der [GNU General Public License v2|http://www.gnu.org/licenses/old-licenses/gpl-2.0.html] (GPL).

Hier soll es als Beispiel dienen, wie man auf der [Hostsharing|http://www.hostsharing.net]-Infrastruktur mit der Tomcat-Option Rails-Anwendungen betrieben kann.

=== Vorbereitungen ===

Zunächst baue und teste ich auf meinem lokalen Rechner eine Java-Webapplikation, die ich später bei Hostsharing installiere.

Ich brauche:
# die aktuelle Redmine Version von [RubyForge|http://rubyforge.org/frs/?group_id=1850] (zur Zeit Version 1.1.1)
# die Ruby-/Rails-Infrastruktur mit JRuby auf meinem lokalen Rechner

=== Software-Pakete ===

Zunächst installiere ich als ''root'' die Ruby-Infrastruktur:

{{{
  aptitude install jruby rubygems
}}}

Als Datenbank will ich Postgres nutzen:

{{{
  aptitude install postgresql
}}}

Eine Postgres-Datenbank mit eigenem Datenbank-User lege ich als User ''postgres'' an:

{{{
  su - postgres
  createuser -D -S -R -P redmine
  createdb -O redmine -E UTF8 redmine
}}}

=== Webapplikation bauen ===

Als ''normaler'' User baue ich dann die Web-Applikation zusammen:

Download und entpacken von redmine in /home/user/redmine-n.n.n

{{{
  tar xzf redmine-1.1.1.tar.gz
  cd /home/user/redmine-1.1.1
}}}

Installation einiger Ruby-Gem-Pakete:

{{{
  mkdir /home/user/.gem
  export GEM_HOME=/home/user/.gem
  gem install -v=0.4.2 i18n
  gem install -v=1.0.1 rack
  gem install jruby-openssl
  gem install activerecord-jdbcpostgresql-adapter
  gem install rake
}}}

In ''config/environment.rb'' habe ich folgende Zeilen eingefügt:

Unmittelbar vor {{Rails::Initializer.run do |config|}}

{{{
    if RUBY_PLATFORM =~ /java/
       require 'rubygems'
       gem 'activerecord-jdbc-adapter'
       require 'arjdbc'
    end
}}}

Direkt hinter {{Rails::Initializer.run do |config|}} dann:

{{{
    config.action_controller.session = { :key => "_myapp_session", :secret => "ueber-30-zeichen-session-key" }
}}}

Dann lege ich die Datei ''config/database.yml'' mit folgendem Inhalt an:

{{{
    production:
      adapter: jdbc
      driver: org.postgresql.Driver
      url: jdbc:postgresql://localhost/redmine
      encoding: unicode
      username: redmine
      password: mein_geheimnis
      host: localhost
      port: 5432
}}}

Jetzt kann ich die Datenbank initialisieren:

{{{
    export RAILS_ENV=production
    jruby ~/.gem/bin/rake db:migrate
    jruby ~/.gem/bin/rake redmine:load_default_data
}}}

Ein erster Test mit:

{{{
    jruby ./script/server -e production
}}}

Jetzt sollte Redmine im internen ''WEBrick''-Webserver unter ''http://localhost:3000 '' erreichbar sein. Die Anmeldung mit admin/admin kann man schon ausprobieren...

Die letzten Schritte zum Bau der WAR-Datei:

{{{
    gem install warbler
    ~/.gem/bin/warble config
}}}

Folgendes in der Datei config/warble.rb hinter {{Warbler::Config.new do |config|}} anpassen bzw. ergänzen:

{{{
    config.dirs = %w(app config lib log vendor tmp extra files lang)
    config.gems += ["activerecord-jdbcpostgresql-adapter", "i18n", "jruby-openssl", "rack"]
    config.gems["i18n"] = "0.4.2"
    config.gems["rack"] = "1.0.1" 
}}}

Der letzte Schritt 

{{{
    ~/.gem/bin/warble
}}}

erzeugt eine Datei ''redmine-1.1.1.war'', die ich in ''redmine.war'' umbenenne und im Tomcat deploye.