Now that you have your Redmine server working you may want to add SVN to it.
First you will need to install some things.
mkdir /var/svn
chown root:www-data /var/svn
chmod 0750 /var/svn
cd /var/www/vhosts/redmine/extra/svn/ruby reposman.rb --redmine www.yoursite.com --svn-dir /var/svn --owner www-data --url http://www.yoursite.com/svn/ --key=KeyFromWebAdminRedmine
cp /var/www/vhosts/redmine/extra/svn/Redmine.pm /usr/lib/perl5/Apache/Redmine.pm
apt-get install libapache2-svn
apt-get install libapache-dbi-perl
apt-get install libapache2-mod-perl2
apt-get install libdbd-mysql-perl libdigest-sha1-perl
apt-get install libdbd-mysql-perl
a2enmod perl
cd /etc/apache2/sites-available/
nano default
------------------------------------------------------------------- add to your existing port 80 site. after </Directory>---------------------------
# /svn location for users
PerlLoadModule Apache::Redmine
<Location /svn>
DAV svn
SVNParentPath "/var/svn"
Order deny,allow
Deny from all
Satisfy any
# If a client tries to svn update which involves updating many files,
# the update request might result in an error Server sent unexpected
# return value (413 Request Entity Too Large) in response to REPORT
# request,because the size of the update request exceeds the limit
# allowed by the server. You can avoid this error by disabling the
# request size limit by adding the line LimitXMLRequestBody 0
# between the <Location...> and </Location> lines.
LimitXMLRequestBody 0
# Only check Authentication for root path, nor again for recursive
# folder.
# Redmine core does only permit access on repository level, so this
# doesn't hurt security. On the other hand it does boost performance
# a lot!
SVNPathAuthz off
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 192.168.1.55
# Allow from another-ip
Satisfy any
</Limit>
# write access
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
## for mysql
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
RedmineDbUser "redmine-user"
RedmineDbPass "redminepassword"
</Location>
---------------------------------------------------------------------- end add --------------------------------------------------------
service apache2 restart
You may want to automate the repository discovery by adding a cron job.
I added created a file called pullrepos.sh
------------------------------------------------------- this is the content of that file -----------------------------------------------------
rvm_bin_path=/usr/local/rvm/bin
GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p429
TERM=xterm
SHELL=/bin/bash
IRBRC=/usr/local/rvm/rubies/ruby-1.9.3-p429/.irbrc
OLDPWD=/var/www/vhosts/redmine
MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-1.9.3-p429
SSH_TTY=/dev/pts/0
USER=root
rvm_path=/usr/local/rvm
rvm_prefix=/usr/local
MAIL=/var/mail/root
PATH=/usr/local/rvm/gems/ruby-1.9.3-p429/bin:/usr/local/rvm/gems/ruby-1.9.3-p429@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p429/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PWD=/usr/bin
LANG=en_US.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root
GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p429:/usr/local/rvm/gems/ruby-1.9.3-p429@global
RUBY_VERSION=ruby-1.9.3-p429
cd /var/www/vhosts/redmine/extra/svn/
ruby reposman.rb --redmine www.yoursite.com --svn-dir /var/svn --owner www-data --url http://www.yoursite.com/svn/ --key=KeyFromWebAdminRedmine
------------------------------------------------------- end of content-----------------------------------------------------
I'll run this file every :10 of the hour to check for new projects
crontab -e -u www-data
10 * * * * /var/www/vhosts/redmine/pullrepos.sh