iF.SVNAdmin

Web-based GUI to manage Subversion repositories and User/Group permissions (+LDAP support)

View the Project on GitHub mfreiholz/iF.SVNAdmin

Documentation

Installation

Current stable version (>= 1.4)

Extract & Prepare

Extract the ZIP archive and copy the complete /svnadmin/ folder to your web folder. You can also copy the contents of the folder to your web servers (VirtualHost) root directory.

File Permissions

The application requires full-access to its own /data/ folder.
$> chmod -R 777 /var/www/svnadmin/data
To manage the Subversion authorization file it is also required to set write permissions on the SVNAuthFile. (make a backup!)

Configure

After the above steps you can reach the application by typing http://www.<yourhost>.com/svnadmin/ into the address bar of your browser and configure it.

Update

Updating from older version to 1.4.x

Easy to say: “It is not possible.”
The 1.4 comes with a new structure to make future updates easy. All configurations are now saved in the new data/config.ini file, which is created on the first start up. We recommend to save your current include/config.inc.php to simply copy-paste your configuration into the new setup page.

Updating from >= 1.4.x to 1.6.x

No tests until now...
I recommend to do clean installation, because the complete templating system has been changed and a lot of files has been moved.

Note: You can still use your old /data/ directory, which contains the configuration of the application.

Configuration (GUI)

The configurations are all in the application /data/config.ini file. If you have made updates, it is possible that not all configurations are in your config file. You can copy them from /data/config.ini.tpl.

Here are all configurations beeing covered, which are not changeable by the application's settings page.

Show/Hide delete button in Repository-List

The application provides the functionality to delete repositories, but its disabled by default.
SectionGUI
KeyRepositoryDeleteEnabled
Value(bool) true / false

Show/Hide update button in navigation

In cases of long running updates it makes sense to hide the Update link in navigation and run the updates via the command line interface (cli.php).
SectionGUI
KeyAllowUpdateByGui
Value(bool) true / false

Show/Hide links to external repository browsers (ViewVC, WebSVN)

The application allows you to define two configuration for external repository browsers. The inbuild Apache Subversion browsing functionality and a custom one like ViewVC or WebSVN.

Configuration for Apache directory listing

SectionGUI
KeyApacheDirectoryListing
Value(string) URL
Parameters%1 = Repository name
%2 = Relative path (no leading slash)
Examplehttps://svn.insanefactory.com/repositories/%1/%2

Configuration for custom web application repository listing

SectionGUI
KeyCustomDirectoryListing
Value(string) URL
Parameters%1 = Repository name
%2 = Relative path (no leading slash)
Examplehttp://localhost/svnadmin/repositoryview.php?r=%1&p=%2

Repository management

Multiple repository locations

The settings page currently only allows to use a single location of repositories (SVNParentPath). You can configure more adding additional sections.

Example configuration for multiple repository locations:

[Repositories:svnclient]
SVNParentPath=C:\my repos
SvnExecutable=C:\subversion\svn.exe
SvnAdminExecutable=C:\subversion\svnadmin.exe
Description=First location

[Repositories:svnclient:1]
SVNParentPath=C:\my repos 1
Description=Second location

[Repositories:svnclient:2]
SVNParentPath=C:\my repos 2
Description=Third location

LDAP (e.g. ActiveDirectory/OpenLDAP)

Most configurations are already available on the application's settings page.

Enable/disable LDAP caching

The caching mechanism allows to save the required data from LDAP server to a local storage file (in /data/) directory. This increases the performance a lot.
SectionLdap
KeyCacheEnabled
Value(bool) true / false
The path to the storage file can be configured by (optional):
SectionLdap
KeyCacheFile
Value(string) Path to the storage file
Default./data/ldap.cache.json

More than 1000 users and groups in LDAP

If your LDAP database has more than 1000 users and groups, but you only receive 1001 entities you need to update your PHP version to 5.4. Previous PHP versions doesn't support fetching more than 1001 entities from LDAP server.

iF.SVNAdmin is compatible with PHP 5.4 since 1.6.0