« Previous - Version 12/20 (diff) - Next » - Current version
J. Simmons, 05/08/2011 03:01 pm


Installation Instructions

Open Design Engine (ODE) is based on Redmine. The official installation method is to install the Bitnami Redmine Stack, apply some custom configuration to the stack, and then upgrade the installed Redmine instance to the ODE source code. Support for other stacks (or bootstrapped installations) will come with future releases. With luck, one or more of the stack providers will add ODE to their list of supported stacks.

Note, these instructions assume you are running the Ubuntu VM image of the Bitnami Redmine Stack and are running all commands under sudo. They were tested with version 1.1.3 in VMWare Player.

Useful Paths
  • (bitnami_base) = /opt/bitnami in VM images
Steps to install ODE
  • Import the Bitnami Redmine Stack into VMWare (the free VMWare Player is supported)
  • Configure Redmine to run at http://hostname/ instead of http://hostname/redmine
    • Edit (bitnami_base)/apache2/conf/httpd.conf and comment out the line:
      DocumentRoot "/opt/bitnami/apache2/htdocs" 
      
    • Edit (bitnami_base)/apps/redmine/conf/redmine.conf to match the following (the key areas are the addition of the virtual host section and changing all references of /redmine to /):
      <VirtualHost *:80>
        ServerAdmin haha.huhu.com
        ServerName server.our.lan
        ServerAlias server
        ErrorLog "logs/error.log" 
        CustomLog "logs/access.log" combined
       # this not only blocks access to .svn directories, but makes it                
       # appear as though they aren't even there, not just that they are              
       # forbidden                                                                    
       <DirectoryMatch "^/.*/\.svn/">
          ErrorDocument 403 /404.html
          Order allow,deny
          Deny from all
          Satisfy All
        </DirectoryMatch>
        # This passes through remote_user to mongrel                                  
        RewriteEngine On
        # Redirect non-static requests to cluster                                     
        RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
        RewriteRule ^/(.*)$ balancer://redminecluster%{REQUEST_URI} [P,QSA,L]
      </VirtualHost>
      
      #ProxyPass / balancer://redminecluster
      #ProxyPassReverse / balancer://redminecluster
      
      <Proxy balancer://redminecluster>
        BalancerMember http://127.0.0.1:3001
        BalancerMember http://127.0.0.1:3002
        # The number of balancer members depends on the number of mongrels running
        # We use only one mongrel on port 3001 by default for the BitNami Cloud Hosting
        # Please remove the others like 3002 above in such a case.
      </Proxy>
      
    • Edit (bitnami_base)/apps/redmine/config/mongrel_cluster.yml and change references to prefix: /redmine to prefix:
    • Restart Redmine by running:
      (bitnami_base)/ctlscript stop
      (bitnami_base)/ctlscript start
      
  • Configure SVN in Redmine
    • Install dependencies
      apt-get update
      apt-get install build-essential
      apt-get install zlib1g-dev
      (bitnami_base)/perl/bin/cpan  # accept defaults and choose CPAN servers
      cpan> install Test::Simple
      cpan> install DBI
      cpan> install DBD::mysql
      cpan> quit
      apt-get install libapache2-svn libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libdigest-sha1-perl libauthen-simple-ldap-perl
      
    • Enable newly installed apache modules by editing (bitnami_base)/apache/conf/httpd.conf
      • Uncomment approximately line 108:
        LoadModule dav_svn_module modules/mod_dav_svn.so
        
      • Add a line at the end of the load modules list for mod_perl:
        LoadModule perl_module modules/mod_perl.so
        
    • Copy Redmine.pm into the perl library
      cp (bitnami_base)/apps/redmine/extra/svn/Redmine.pm (bitnami_base)/perl/lib/site_perl/5.8.8/i686-linux/Apache/
      
    • Create the directory structure for the svn repositories (Note, ODE is setup to store all project related content in the (bitnami_base) directory, so it uses a non-traditional location to store the svn repositories.)
      cd (bitnami_base)
      mkdir repos
      chown root:daemon repos
      chmod 0755 repos
      cd repos
      mkdir svn
      chown root:daemon svn
      chmod 0750 svn
      
    • Document the following production values in (bitnami_base)/apps/redmine/config/database.yml:
      • username
      • password
      • socket
      • database
      • host
    • Edit (bitnami_base)/apps/redmine/conf/redmine.conf to configure apache to host the svn repositories
      • Add the following line between RewriteEngine On and the first RewriteCond to prevent calls to svn from being forwarded to Redmine:
        RewriteCond %{REQUEST_URI} !/svn(/|$)
        
      • Add the following directives to the end of redmine.conf to enable svn over http (note the various fields that need to be updated with values for your installation, including the values you noted earlier from database.yml):
        # /svn location for users
        PerlLoadModule Apache::Redmine
        <Location /svn>
          DAV svn
          SVNParentPath "(bitnami_base)/repos/svn" 
          Order deny,allow
          Deny from all
          Satisfy any
        
          PerlAccessHandler Apache::Authn::Redmine::access_handler
          PerlAuthenHandler Apache::Authn::Redmine::authen_handler
          AuthType Basic
          AuthName "Redmine SVN Repository" 
        
          #read-only access   
          <Limit GET PROPFIND OPTIONS REPORT>
             Require valid-user
             Allow from localhost
             # Allow from another-ip
             Satisfy any
          </Limit>
          # write access
          <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require valid-user
          </LimitExcept>
        
          ## for mysql
          RedmineDSN "DBI:mysql:database=(database);host=(host);mysql_socket=(socket)" 
        
          RedmineDbUser "(username)" 
          RedmineDbPass "(password)" 
        </Location>
        
    • Restart Redmine by running:
      (bitnami_base)/ctlscript stop
      (bitnami_base)/ctlscript start
      
  • Configure Redmine to automatically create svn repositories

Also available in: HTML TXT