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.
(bitnami_base) = /opt/bitnami
in VM images(bitnami_base)/apache2/conf/httpd.conf
and comment out the line:DocumentRoot "/opt/bitnami/apache2/htdocs"
(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>
(bitnami_base)/apps/redmine/config/mongrel_cluster.yml
and change references to prefix: /redmine
to prefix:
(bitnami_base)/ctlscript stop (bitnami_base)/ctlscript start
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
(bitnami_base)/apache/conf/httpd.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule perl_module modules/mod_perl.so
cp (bitnami_base)/apps/redmine/extra/svn/Redmine.pm (bitnami_base)/perl/lib/site_perl/5.8.8/i686-linux/Apache/
(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
(bitnami_base)/apps/redmine/config/database.yml
:
(bitnami_base)/apps/redmine/conf/redmine.conf
to configure apache to host the svn repositories
RewriteEngine On
and the first RewriteCond
to prevent calls to svn from being forwarded to Redmine:RewriteCond %{REQUEST_URI} !/svn(/|$)
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>
(bitnami_base)/ctlscript stop (bitnami_base)/ctlscript start
crontab -e
*/2 * * * * (bitnami_base)/ruby/bin/ruby (bitnami_base)/apps/redmine/extra/svn/reposman.rb --redmine localhost --svn-dir (bitnami_base)/repos/svn --owner root --group daemon --command="(bitnami_base)/subversion/bin/svnadmin create --pre-1.6-compatible --fs-type fsfs" --url http://(servers_public_fqdn)/svn --key=(API_Key) --verbose >> /var/log/reposman.log