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
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
Hi, hab dir auf deine Mail geantwortet.
„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
Hallo,
ich würde auch gerne wissen, wie man die repos übers Internet erreicht. Habe z.Zeit alles auf beanstalk gehostet und frage mich ob das auch auf synology svn geht – mit meheren usern die auf das repository zugreifen können
@Robert / Philipp
Grundsätzlich sollte das gehen! Hierzu ist aber etwas mehr Aufwand notwendig.
Die Ports müssten über den Router freigeschaltet werden, so dass diese vom Internet aus erreichbar sein.
Zusätzlich wäre dann noch ein dynamisches DNS zu empfehlen, da wahrscheinlich keine statische IP vorhanden ist. Am Besten mal nach „synology external access“ im Internet suchen.
Danke für diese ausführliches Anleitung.
Die Verwaltung von SVN Repository kann eingenlich auch web basiert sein.
Ich hatte mal das ganze bei einer Anbieter über Redmine.
Leider weiss nicht wie man auf unsere NAS die zwei Pakete zusammen vernetzt.
Hallo, habe ne Frage: Auf meiner DS213J habe ich einen SVN am laufen, aber beim aktualisieren wird immer das Übertragungsdatum angezeigt, obwohl in der CONFIG als auch Registry auf NO steht.
Kann man da was machen? Ich finde über Google leider keine Deutsche Hilfe dazu.
MfG
Reinhard Aufenvenne