Git szerver telepítés Synology NAS-on

By | 2013. január 11.

Az otthoni munkáim során is szükség van verziókövető rendszerre a fejlesztéseknél. A legkézenfekvőbb megoldás, hogy a már amúgy is használatban lévő NAS-omra telepítek egyet, hiszen azt bármelyik gépről elérem, a RAID miatt biztonságban vannak a dolgaim rajta és amúgy is… miért a lokális gépemre telepíteném?!

A következő kérdés ugyebár az, hogy mégis melyik rendszert használjam? A két legmarkánsabb képviselője a mezőnynek a Git és az SVN. Tapasztalatok végett mindkettőt telepítettem, de most egyelőre csak az előbbiről írok. A munkahelyemen is ezt használjuk, tökéletesen meg vagyunk vele elégedve. Teszi a dolgát, jól kezelhetően a branch-ek, jól működik a merge-ölés, stb. Mivel a cégnél Windows-os környezetben dolgozunk, így a Git előtt TFS-t használtunk, de az maga volt a fájdalom. Azóta amióta átmigráltuk az összes project-ünket, senki sem nyavajog (annyit). :)

No de lássuk is akkor a telepítést. Előre szólok, hogy nagyon egyszerű lesz! :) Előfeltétel, hogy a NAS-unk okosítva legyen, tehát legyen rajta a Bootstrap és az ipkg. Ha ez még nincsen meg, akkor itt a how-to hozzá. Én egy DS411-es kütyün dolgozom (DSM 3.2 van rajta, bár ez jelenleg nem releváns).

Lépjünk be SSH-n a NAS-ra root felhasználóként vagy ha van normál felhasználó nevünk, akkor azzal. Abban az esetben, ha normál felhasználóval léptünk be, váltsuk át a környezetet root-ra:

sudo su -

Git felhasználó létrehozása

Első lépésként létre kell hoznunk egy felhasználót, amivel a Git szervert fogjuk tudni használni. Ez kétféleképpen történhet. Vagy a grafikus admin felületen hozzuk létre vagy konzolról. Én most csak a konzolos verziót írom le, mivel a további lépések is mind itt fognak történni. A grafikus felület next-next-finish procedúrája amúgy sem nagy kihívás. ;)

Tehát hozzuk létre a felhasználót, melynek a neve git és nincsen jelszava:

synouser -add git '' "GIT user" 0 '' 0

Ez után az /etc/passwd file-t kell szerkeszteni (a user UID-je a rendszertől függ, hogy mit adott neki. A soron következő érték.), hogy a felhasználóhoz tartozó shell a /bin/sh legyen:

git:x:1026:100::/volume1/home/git:/bin/sh

Az SSH környezet beállítása Git használthoz

Az /etc/ssh/sshd_config file szerkesztése következik. Ahhoz, hogy publikus RSA kulcsos autentikációt tudjunk használni a kliens oldalról való bejelentkezéshez, a következő sorok szükségesek a file-ban:

PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

Ahhoz, hogy jelszó nélkül is képes legyen bejelentkezni SSH-n, ez a sor szükséges:

PermitEmptyPasswords yes

Végül pedig a környezeti beállításokat is felvehesse:

PermitUserEnvironment yes

Bizonyosodjunk meg, hogy a fenti négy sor szerepel a file-ban, majd mentsük el és lépjünk ki.

Ezek után indítsuk újra az SSH service-ünket:

/usr/syno/etc/rc.d/S95sshd.sh restart

Majd lépjünk vissza. Abban az esetben, ha elérhetetlenné válik a NAS SSH-n, nem kell pánikba esni! :) Sokszor előfordul, hogy a restart funkció csak a stop részt valósítja meg, de a startot már nem hajtja végre. Ebben az esetben a grafikus admin felületen engedélyezzük újra (Control Panel – Terminal – Enable SSH service).

 Git szerver telepítése

Csak a biztonság kedvéért futtasunk le egy ipkg frissítést

ipkg update
ipkg upgrade

Ezután megtörténhet a tényleges install

ipkg install git

Készítsünk el pár symbolic link-et a git állományokra:

cd /usr/bin
ln -s /opt/bin/git* .

Amennyiben ezt az utóbbi lépést nem tennénk meg, akkor a repo klónozásakor az alábbi hibaüzenetet kapnánk:

sh: git-upload-pack: not found
fatal: The remote end hung up unexpectedly

Git repository létrehozása

Lépjünk be egy másik konzolon a NAS-ra, de most az új, git nevű user-rel (Jelszó ugyebár nem kell, hiszen nincs). Hozzuk létre magát a Git repo-k főkönyvtárát, illetve benne egy test nevű első repo-t.

mkdir -p /volume1/git/test

Lépjünk bele és készítsük el az üres, csupasz repo-t:

cd /volume1/git/test
git init --bare

A következő üzenetet kell visszakapnunk:

[Initialized empty Git repository in /volume1/git/test/]

Ha ez megtörtént, akkor gratulálok, készen vagyunk a szerver telepítésével! :) A következő post a kliens oldali beállításokról fog szólni. Az is érdekel? Kattints!

Kliens beállítása

Hasonló cikkek

Hogyan csináljunk videót képekből Windowson Adott egy könyvtár, amiben van több száz alkönyvtár, amelyek mindegyikében van több ezer jpg kép. Ezekből kellene videót gyártani... automatizáltan......
NodeJs NPM – A nyakkendős modulraktáros A előző NodeJs postban a modulokat taglaltam. Most nézzük meg, hogy mi van, ha nem mi írunk magunknak, hanem már előre elkészített modul-csomagokat sz...
Synology NAS, home share és az MS Office for Mac e... A probléma Nem lehet megnyitni OSX-en a Synology NAS felhasználó privát megosztásából (home share) semmilyen Microsoft Office for Mac 2011 file-t. Se...
NodeJs + Express és a HTTPS Előfordulhat, hogy szükségünk van egy SSL-es webszerverre a NodeJs-es környezetünkben. Ugyebár webszervert Express-szel a legegyszerűbb készíteni, ami...