Nachfolgend wird beschrieben, wie man einen Subversion Server (svnserve) als eigenständigen Deamon installiert (ohne Apache Webserver).
Diese Art der Installation wird idR. innerhalb von Unternehmenskonfigurationen verwendet, ua. weil sich der SVN-Deamon dann speziell auf die Server-Hardware anpassen lässt (Stichwort Thread-Management) und weil man den SVN-Deamon so auch an LDAP bzw. Active Directory Server anbinden kann. Des weiteren kann man auch bzgl. der Verschlüsselung zw. SVN-Clients und SVN-Server per "SASL" sehr umfangreiche Konfigurationen definieren und man spart sich die Installation und Konfiguration des Apache Webservers.
Subversion (Client und Server) runterladen
# apt install subversion
Danach sollten folgende Dateien vorhanden sein:
Service-User erstellen
# adduser --system --no-create-home --group svn
SVN Home-Verzeichnis erstellen und Rechte vergeben
# mkdir /var/lib/svn
# cd /var/lib/svn
# chown -R svn:svn /var/lib/svn
# chmod -R g+rws /var/lib/svn
SVN Server zum Testen manuell starten
# svnserve -d -r /var/lib/svn
Default Port 3690 überprüfen
# ss -ltn
SVN Deamon Prozess manuell beenden
# pkill svnserve
Im Service-Verzeichnis die Datei "/etc/systemd/system/svn.service" erstellen und den folgenden Text hinzufügen:
[Unit]
Description=Subversion daemon
After=syslog.target network.target
[Service]
Type=forking
RuntimeDirectory=svnserve
PIDFile=/run/svnserve/svnserve.pid
EnvironmentFile=/etc/default/svnserve
ExecStart=/usr/bin/svnserve $DAEMON_ARGS
User=svn
Group=svn
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Datei "/etc/default/svnserve" erstellen und folgenden Text hinzufügen
# svnserve options
DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /var/lib/svn --log-file /var/log/svnserve/svnserve.log"
Rechte für Default-Datei setzen
# chown -R svn:svn /etc/default/svnserve
Verzeichnisse für das Logging und die Prozess ID Datei erstellen
# mkdir -p /var/log/svnserve; chown -R svn:svn /var/log/svnserve
# mkdir -p /run/svnserve; chown -R svn:svn /run/svnserve
Datei "/etc/logrotate.d/svnserve" erstellen und folgenden Text hinzufügen
/var/log/svnserve/*.log {
daily
missingok
rotate 14
compress
notifempty
create 640 svn adm
sharedscripts
postrotate
if /bin/systemctl status svnserve > /dev/null ; then \
/bin/systemctl restart svnserve > /dev/null; \
fi;
endscript
}
Um den SVN-Dienst beim Serverstart automatisch zu starten, gibt man einmalig folgenden Befehl ein:
# systemctl enable svn.service
Mit folgenden Befehlen kann man den Dienst manuell kontrollieren
# systemctl start svn.service
# systemctl stop svn.service
# systemctl restart svn.service
In der Firewall den Port 3690 freischalten
# ufw allow 3690
# ufw status
Zum Abschluss nochmal den Port 3690 überprüfen
# ss -ltn
Dieser Artikel beschreibt nur die wichtigsten Punkte. Eine ausführliche Dokumentation zu Subversion findet man im offiziellen Buch "Subversion" von RedBean, das auch kostenlos online verfügbar ist.
Weitere Informationen findet man auf der offiziellen Subversion Webseite von Apache, welches Subversion entwickelt und verwaltet.
Comments