A bejegyzésből megtudhatod, hogy hogyan lehet saját verziókezelő rendszert telepíteni. Az alaprendszer egy debian10 (buster) linux szerver.
Telepítés
Először telepítsük fel a szükséges csomagokat:
apt install apache2 apache2-utils subversion libapache2-mod-svn
Ellenőrizzük, hogy a szükséges modulok engedélyezve vannak-e:
a2enmod dav dav_svn
Beállítások
A subversion verziókezelőhöz hozzunk létre egy tárolólt:
svnadmin create /tároló/útvonala/projekt
Adjuk hozzá a www-data felhasználóhoz a tárolót:
chown www-data.www-data -R /tároló/útvonala/
Majd konfiguráljuk az apache számára a virtualhost állományt, persze az egyes értékeket módosítsuk a saját igényeinknek megfelelően:
nano /etc/apache2/site-available/snv.conf
<VirtualHost *:80> ServerName svn.example.com ServerAdmin postmaster@example.com ErrorLog ${APACHE_LOG_DIR}/svn_error.log CustomLog ${APACHE_LOG_DIR}/svn_access.log combined <Location /> DAV svn SVNPath /tároló/utvonala AuthType Basic AuthName "Example SVN Repo" AuthUserFile /etc/subversion/passwd Require valid-user </Location> </VirtualHost>
Mielőtt engedélyeznénk a beállításokat az apache részére, gondoskodjunk a biztonságról, hogy csak meghatározott felhasználók férhessenek a tárolóhoz:
sudo htpasswd -c /etc/subversion/passwd felhasználó_neve
Most már jöhet az apache:
a2ensite svn && systemctl daemon-reload && systemctl reload apache2
Subversion tároló létrehozása után beállíthatja a hozzáférés-felügyeletet a tároló/útvonala/projekt/conf/svnserve.conf fájl szerkesztésével. A hitelesítés beállításához például a beállítófájl következő sorait kell kivenni megjegyzésből:
# [general] # password-db = passwd
A fenti sorok aktiválása után a passwd fájlban tarthatjuk karban a felhasználók listáját. Ugyanabban a könyvtárban szerkesszük a passwd fájlt, és vegyük fel az új felhasználót. A szintaxis a következő:
felhasználónév = jelszó
Kész is vagyunk, tovább finomíthatjuk a konfigunkat azzal, hogy az Let’s Encrypt ssl tanúsítványával védjük a hozzáférést.
Kiegészítés
A korábbi svn tárolómat átköltöztettem, és ha már így alakult akkor ehhez a docker-t használtam. Töltsük le az image-t, készítsünk belőle konténert, majd rögtön futtassuk is azt:
docker run -d --restart=always -p 8088:80 -v svn:/home/svn --name svn-server krisdavison/svn-server:v3.0
Az image-ről bővebben ezen a weboldalon található információ. Szükség lesz még némi módosításra, mivel az svn volume-n egy SampleProject minta tároló érhető el. Ez töröljük és másoljuk be a saját tárolónk tartalmát, a jogosultságokra figyeljünk. Majd lépjünk be a futó konténerbe:
docker exec -it svn-server bash
Az /etc/apache2/mods-enabled könyvtárban van egy dav_svn.conf nevű fájl. Nyissuk meg, és a tartalmát cseréljük ki:
<location /> DAV svn SVNPath /home/svn/ AuthType Basic AuthName "Example SVN Repo" AuthUserFile /etc/subversion/passwd Require valid-user </location>
Vegyük észre, hogy az SVNPath ez esetben már adva van, a /home/svn könyvtár van összerendelve a docker svn volume-val.
Mentsük a tartalmat, majd másoljuk at a ../mods-available könyvtárba. Tiltsuk, majd engedélyezzük újra a modulokat:
a2dismod authz_svn && a2dismod dav_svn && service apache2 restart a2enmod authz_svn && a2enmod dav_svn && service apache2 restart
Ezután hozzuk létre a csatlakozásra jogosult felhasználónkat, persze a user-name részt cseréljük a saját felhasználói nevünkre:
htpasswd -c /etc/subversion/passwd user-name
A program bekéri a jelszót. Exit paranccsal kiléphetünk a konténerből, és ha mindent jól csináltunk, akkor a http://localhost:8088 linken el kell tudnunk érni az SVN tárolónkat.