Das freie Apache Subversion (SVN) ist eine zentrale Software für die Versionsverwaltung von Dateien und Verzeichnissen. Der Synology Disk Station NAS-Server (nachfolgend auch DS genannt) eignet sich relativ gut, um einen eigenen kleinen SVN-Server darauf zu betreiben.

In diesem Tutorial möchte ich eine kurze Anleitung geben, wie dieser Server auf die DS installiert und eingerichtet werden kann.

1.
Vorbereitung & Voraussetzungen

– Auf der DS muss bereits ein Linux Betriebssystem installiert und eingerichtet sein.

– Für die Installation von SVN muss es möglich sein, sich als Benutzer „root“ über SSH oder Telnet einloggen zu können.

– Auf der Disk Station muss das Paketverwaltungssystem IPKG (Itsy Package Management System) installiert sein.
Sollte dies noch nicht der Fall sein, kann über diese Anleitung das Paketverwaltungssystem installiert werden.
IPKG Paketverwaltungssystem auf einer Synology Disk Station installieren

2.
Gemeinsamer Ordner „svn“ anlegen

Über die Web Oberfläche einen neuen gemeinsamen Ordner (Netzwerkfreigabe) mit dem Namen „svn“ erstellen.
Dabei wird vom System der SVN-Ordner unter „/volume1/svn“ angelegt.

3.
Eigener Benutzer „svnowner“ anlegen

Über die Web Oberfläche einen neuen Synology Benutzer mit dem Namen „svnowner“ anlegen.

Um die Anleitung so einfach wie möglich zu halten, habe ich diesen Benutzer ohne Passwort angelegt. Das Passwort sollte jedoch nach der Installation noch nachträglich eingerichtet werden.
Sollte das Passwort-Feld ein Pflichtfeld sein, ist wahrscheinlich die Prüfung der „Kennwortstärke“ aktiviert. Diese muss dann vor dem Anlegen des Benutzers deaktiviert werden.

Der Benutzer sollte nur Schreib- und Leserechte für das Verzeichnis „svn“ bekommen.

4.
Login über den SSH-Zugang

Als Benutzer „root“ über den SSH-Zugang einloggen.
Dafür kann z.B. der kostenlose SSH-Client Putty verwendet werden.

Hinweis: Das Passwort für den Benutzer „root“ ist das gleiche Passwort wie für den Benutzer „admin“.

5.
SVN IPKG-Pakete installieren

IPKG Pakete aktualisieren und das SVN IPKG-Paket installieren.

ipkg update
ipkg install svn

6.
SVN Repository anlegen

In den zuvor angelegten gemeinsamen SVN Ordner „/volume1/svn“ wechseln.

cd /volume1/svn

Ein neues SVN-Verzeichnis mit folgenden Befehl erstellen.

svnadmin create /volume1/svn/REPOSITORYNAME

Hier muss natürlich ein eigener Name für das Repository gewählt werden.
Wichtig ist hier, dass die Erstellung über die absolute Pfadangabe erfolgen muss.

Nun müssen die Berechtigungen für das neue Repository Verzeichnis angepasst werden.
Alle Dateien sollen dem Benutzer „svnowner“ und der Gruppe „users“ gehören.

chown svnowner:users -R /volume1/svn/REPOSITORYNAME

Ob die Berechtigungen korrekt gesetzt wurden, kann über den Befehl „ls –l“ geprüft werden.

ls -l
drwxr-xr-x    6   svnowner users         4096 Jun 11 14:04 REPOSITORYNAME

In das Verzeichnis Repository-Verzeichnis wechseln.

cd REPOSITORYNAME

Danach am Besten die angelegte Verzeichnis-Struktur wieder mit dem Befehl „ls –l“ kontrollieren.

ls -l
-rw-r--r--    1 svnowner users          229 Jun 11 14:04 README.txt
drwxr-xr-x    2 svnowner users         4096 Jun 11 14:04 conf
drwxr-sr-x    6 svnowner users         4096 Jun 11 14:04 db
-r--r--r--    1 svnowner users            2 Jun 11 14:04 format
drwxr-xr-x    2 svnowner users         4096 Jun 11 14:04 hooks
drwxr-xr-x    2 svnowner users         4096 Jun 11 14:04 locks

Dann in das Unterverzeichnis „conf“ Repository-Verzeichnis wechseln.

cd conf

Wieder die Verzeichnis-Struktur kontrollieren.

ls -l
-rw-r--r--    1 svnowner users         1080 Jun 11 14:04 authz
-rw-r--r--    1 svnowner users          309 Jun 11 14:04 passwd
-rw-r--r--    1 svnowner users         2279 Jun 11 14:04 svnserve.conf

Wenn die Strukturen passen, kann jetzt mit der Konfiguration weitergemacht werden.

7. Repository konfigurieren

Die Datei „passwd“ mit der Benutzerdatenbank „/volume1/svn/REPOSITORYNAME/conf/passwd“ mit dem Editor VI öffnen.

vi passwd

Über die Taste „i“ wird in den Bearbeiten-Modus gewechselt.
In dieser Datei müssen jetzt die gewünschten Repository-Benutzer und dessen Passwörter eintragen werden.

esche=abcde
max=12345
…..

Die Taste „ESC“ drücken um den Bearbeiten-Modus zu verlassen.
Um die Änderungen abzuspeichern und den Editor zu verlassen, muss folgender Befehl eingegeben werden.

:wq

Jetzt sollten die Schreib- und Leserechte für die Datei „passwd“ angepasst werden.

chmod 600 passwd

Die Konfigurationsdatei unter „/volume1/svn/REPOSITORYNAME/conf/svnserve.conf“ muss jetzt noch angepasste werden.
Dazu die Datei mit dem VI-Editor öffnen.

vi svnserve.conf

Wieder mit der Taste „i“ in den Bearbeiten-Modus wechseln.

Folgende Zeilen auskommentieren bzw. bearbeiten:

anon-access = none
auth-access = write
password-db = passwd
realm = Mein Erstes Repository

1: Berechtigung für anonyme Benutzer
2: Berechtigung für angemeldete Benutzern
3: Passwortdatei in der die Benutzer eingetragen sind
4: Optional: Eine eigene Benamung des Repository

Die Taste „ESC“ drücken um den Bearbeiten-Modus zu verlassen.
Um die Änderungen abzuspeichern und den Editor zu verlassen, muss wieder folgender Befehl eingegeben werden.

:wq

Grundsätzlich ist die Konfiguration für das Repository beendet und es kann verwendet werden.

SVN-Server starten
Der SVN-Server kann einmalig über diesen Befehl gestartet werden.

svnserve -d -r REPOSITORYNAME

SVN-Server stoppen
Um den SVN-Server wieder zu stoppen, kann z. B. dieser Befehl verwendet werden.

killall svnserve

8.
Server – Konfiguration

Da der SVN-Server etwas mehr Ressourcen benötigt, ist es zu empfehlen diesen nur zu starten, wenn er benötigt wird. Dies kann über den Internet-Dämon inetd realisiert werden.
Dieser fragt mehrere Ports (in unserem Fall Port 3690) parallel ab. Sobald über einen dieser Ports eine Anfrage eintrifft, startet er den entsprechenden Server.

inet-Daemon konfigurieren

Dazu die Datei „/etc/inetd.conf“ im Editor öffnen.

vi /etc/inetd.conf

Mit „i“ wieder in den Bearbeitungsmodus wechseln und folgende Zeile einfügen.

svn stream tcp nowait svnowner /opt/bin/svnserve svnserve -i -r /volume1/svn

Mit „ESC“ den Bearbeitungsmodus verlassen und die Datei speichern und den Editor schließen.

: wq

Services Datei anpassen

Dazu die Datei „/etc/services“ im Editor öffnen.

vi /etc/services

Mit „i“ wieder in den Bearbeitungsmodus wechseln und am Ende folgende Zeile einfügen.

svn             3690/tcp                       #Subversion
svn             3690/udp                       #Subversion

Tipp: Im Command-Modus den man über „ESC“ erreicht, kann mit dem Befehl „:$“ ans Ende der Datei gesprungen werden.

Mit „ESC“ den Bearbeitungsmodus verlassen und die Datei speichern und den Editor schließen.

: wq

9.
System neustarten

Wurden alle Einstellungen vorgenommen muss die Disk Station neu gestartet werden.
Dies kann manuell über die Weboberfläche oder über diesen Konsolenbefehl erfolgen:

reboot

10.
SVN-Repository über einen Client aufrufen

Um von einem Computer auf das SVN-Repository zugreifen zu können, wird ein SVN Client benötigt. Dafür kann z. B. unter Windows das kostenlose Programm TortoiseSVN benutzt werden. Für Mac OS kann ich das kostenlose Programm SVNX oder den kostenpflichtige SVN-Client VERSIONS empfehlen.

Der SVN-Pfad der der für den SVN-Checkout eingegeben werden muss lautet:

svn://DISKSTATION_IP/REPOSITORYNAME

Dabei wird man aufgefordert, einen Benutzernamen und das dazugehörige Passwort einzugeben.
Zur Erinnerung: Das sind die Daten, die in der Datei „/volume1/svn/REPOSITORYNAME/conf/passwd“ eingetragen wurden.

11.
Ein SVN-Repository wieder löschen

Um ein SVN-Repository zu löschen, muss das Repository-Verzeichnis über die Netzwerkfreigabe gelöscht werden.

Das Löschen kann natürlich auch über folgenden Shell-Befehl erfolgen.

cd /volume1/svn
ls -l
rm -r REPOSITORYNAME
Subversion-Server auf einem Synology Disk Station NAS installieren

5 Gedanken zu „Subversion-Server auf einem Synology Disk Station NAS installieren

  • Schöne Anleitung!

    Das erleichtert die Sache doch enorm.
    Eine Frage stellt sich mir aber noch: Gibt es auch eine Möglichkeit, über das Internet auf den Server zuzugreifen?
    Es scheint so erst mal nur im lokalen Netz zu funktionieren.

    Bin für Hinweise offen….

    Frank

  • „Gibt es auch eine Möglichkeit, über das Internet auf den Server zuzugreifen?“
    diese frage stellt sich mir auch.

    Aber local funktioniert es top.

    danke =)

  • Hallo,

    würde mich auch freuen wenn du noch einen Tipp/ Anleitung/ Best practices für mich hast um mein repo über’s Internet zu erreichen.

    Danke und schönen Abend!
    Gruß André

  • Hallo,

    ich würde auch gerne wissen, wie man die repos übers Internet erreicht.
    Danke
    Gruß Philipp

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.