1. Install required packages
sudo apt-get install subversion libapache2-svn
libapache-mod-dav apache2
2. Enable SSL support in Apache
sudo a2enmod ssl
3. Stop Apache
sudo /etc/init.d/apache2 stop
4. Let Apache2 listen on port 443
sudo echo "Listen 443" >> /etc/apache2/ports.conf
5. Create SSL certificate
sudo apache2-ssl-certificate
6. Configure site
sudo cp /etc/apache2/sites-available/default
/etc/apache2/sites-available/<sitename>
then edit
sudo gedit /etc/apache2/sites-available/<sitename>
- Change NameVirtualHost to NameVirtualHost *:443
- Change <VirtualHost> to <VirtualHost *:443>
- Append before </VirtualHost> the following
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
Note: <sitename> should be same as your hostname
7. Create a Subversion Repository
sudo svnadmin create /opt/svn
sudo chown -R www-data:www-data /opt/svn
sudo chmod -R g+ws /opt/svn
8. Use Apache for Authentication
sudo htpasswd -c -m /opt/svn/conf/htpasswds <username>
9. Configure mod_dav
edit dav_svn.conf
sudo gedit /etc/apache2/mods-available/dav_svn.conf
DAV svn
SVNPath /opt/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /opt/svn/conf/htpasswds
Require valid-user
SSLRequireSSL
Disable anonymous browsing by commenting out the following:
#<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
#</LimitExcept>
10. Start Apache
sudo /etc/init.d/apache2 start
Now try to browse https://<sitename>/svn and import something
