Summary: How to configure a subversion server.
Date: Around 2021
Refactor: 29 April 2025: Checked links and formatting.
When you've created a subversion server as described here at opensuse you really should add a repository, LDAP authentication and provide a backup:
A separate IP address is needed for every repository if you want to use SSL to connect. The newly selected IP address should be added to the subversion server as an additional address. Next is to configure the Subversion repository (in this case the repository “it”).
svnadmin create /srv/svn/it chown -R wwwrun:www /srv/svn/it/
openssl genrsa -des3 -out /etc/apache2/vhosts.ssl/it.svn.company.local.key 1024 openssl req -new -key /etc/apache2/vhosts.ssl/it.svn.company.local.key -out /etc/apache2/vhosts.ssl/it.svn.company.local.csr cp /etc/apache2/vhosts.ssl/it.svn.company.local.key /etc/apache2/vhosts.ssl/it.svn.company.local.key.org openssl rsa -in /etc/apache2/vhosts.ssl/it.svn.company.local.key.org -out /etc/apache2/vhosts.ssl/it.svn.company.local.key openssl x509 -req -days 3650 -in /etc/apache2/vhosts.ssl/it.svn.company.local.csr -signkey /etc/apache2/vhosts.ssl/it.svn.company.local.key -out /etc/apache2/vhosts.ssl/it.svn.company.local.crt
mkdir /var/log/apache2/it.svn.company.local
vi /etc/apache2/vhosts.d/it.svn.company.local.conf
<VirtualHost 10.10.10.100:443>
ServerName it.svn.company.local
ServerSignature on
DocumentRoot /srv/svn/it/
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel error
HostNameLookups off
ErrorLog /var/log/apache2/it.svn.company.local/error_log
CustomLog /var/log/apache2/it.svn.company.local/access_log combined
SSLEngine on
# Server Certificate:
SSLCertificateFile /etc/apache2/vhosts.ssl/it.svn.company.local.crt
# Server Private Key:
SSLCertificateKeyFile /etc/apache2/vhosts.ssl/it.svn.company.local.key
# Server Certificate Chain:
SSLCertificateChainFile /etc/apache2/vhosts.ssl/svn.company.local-ca.crt
# Certificate Authority (CA):
SSLCACertificateFile /etc/apache2/vhosts.ssl/svn.ompany.local-ca.crt
#SSLPassPhraseDialog exec:/etc/apache2/vhosts.ssl/svn-passphrase.sh
# I have different locations for different repositories
<Location />
AllowOverride None
Options None
Order allow,deny
Allow from all
DAV svn
SVNPath /srv/svn/it/
AuthBasicProvider ldap
AuthType Basic
AuthName "SubVersion"
AuthLDAPURL ldap://ldap.company.local:389/OU=services,O=company?uid?sub
Require ldap-group CN=AccessSubversion,OU=SecurityGroups,OU=services,O=company
</Location>
</VirtualHost>
rcapache2 restart
Create a directory in /srv/svn/backup, in this case:
/srv/svn/backup/full.it
Edit the crontab file and add the following line (and edit it for the just created repository), increase the first number with 5 from the previous line.
10 20 * * * root perl /srv/svn/fullbackup.sh -v -i 500 --out-dir /srv/svn/backup/full.it /srv/svn/it --compress
This wiki has been made possible by: