Git szerver RaspberryPi/BananaPi alapokon

Verziókezelésre de-facto szabvánnyá nőtte ki magát az utóbbi pár évben a Git és a köré épített technológiák, mint a Github és a Bitbucket. Adódhat, hogy saját szervert szeretnénk üzemeltetni olyan kód számára, amit nem szívesen tennénk fel a felhőbe. Ezen írásból kiderül, hogy hogyan tudunk egy RaspberryPi-ből vagy egy BananaPi-ből házi Git szervert varázsolni.

A verziókezelésnek szoftverfejlesztésben és más területeken is számos előnye van. Például vissza tudjuk követni a változásokat és hatékony csoportmunkát tesz lehetővé. A verziókezelés hasznosságáról és konkrétan a Git használatáról is rengeteget lehetne írni, de mivel jelen cikknek nem ez a témája, ezért csak linkelek néhány olvasnivalót:

Git szerverből telepíthetünk csak kód tárolására alkalmas szervert, vagy használhatjuk a GitLab-ot, ami a Git szerver mellé webes felületet is ad csoportmunkát támogató funkciókkal, hasonlóan, mint a GitHub.

A GitLab-ból két változat létezik. Van az ingyenes közösségi és van a fizetős Enterprise változat. Az Enterprise változat igen sok mindent tud, de egy 10-15 fős fejlesztő csapat igényeinek bőven megfelel a Community változat. A változatok összehasonlítása itt található

A GitLab működésre bírása igen egyszerű. Első körben szükségünk lesz egy Raspbian-ra vagy egy Bananian Linux-ra és valamelyik futtatására alkalmas lapra. RaspberryPi-ből a 2-es változat támogatott hivatalosan. RPi1-en sajna nem fog elfutni, mivel a Pi első változatában a processzor ARMv6-os és a csomag ARMv7-re van fordítva. BananaPi és RaspberryPi3 egyenlőre nincs hivatalosan támogatva. Ennek ellenére gond nélkül elfut a rendszer a BananaPi-ből készített NAS gépemen.

A telepítést rendszergazdaként kell elvégeznünk. Az alábbi parancsok előtt a sudo ezt szolgálja. Bananian Linux esetében ezen parancs elhagyható a többi parancs elől ha rendszergazdaként jelentkezünk be.

Az első lépés, hogy naprakészre hozzuk a rendszerünket:

sudo apt-get update
sudo apt-get upgrade

Ezután telepítjük a GitLab függőségeit:

sudo apt-get install curl openssh-server ca-certificates postfix apt-transport-https samba

Bár közvetlenül nem függősége a GitLab-nak, a Windows fájlmegosztás támogatás érdemes telepíteni a Samba csomagot is, ha az szeretnénk, hogy a szerverünk hostnév alapján is elérhető legyen a Windows-t futtató gépek számára.

Ha ez megvan, akkor felvesszük a GitLab tárolót az APT listába

curl https://packages.gitlab.com/gpg.key | apt-key add -

Wheezy esetén (a simpleNAS Wheezy alapú):

sudo curl -o /etc/apt/sources.list.d/gitlab_ce.list "https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/config_file.list?os=debian&dist=wheezy"

Jessie esetén (Legújabb RaspberryPi image):

sudo curl -o /etc/apt/sources.list.d/gitlab_ce.list "https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/config_file.list?os=debian&dist=jessie"

Ha ezekkel megvagyunk, akkor jöhet a GitLab telepítése. Ezzel egy darabig el lesz a gép, mivel majdnem 300Mb méretű csomagot fog letölteni, ami telepítve 700-800Mb körül lesz:

sudo apt-get update
sudo apt-get install gitlab-ce

A telepítés után újra kell konfigurálni a rendszert. Az újrakonfigurálás szintén eltart egy ideig. A tesztelésre használt BananaPi rendszeremen nagyjából 8 percig futott a beállító szkript. A beállító szkript futtatása előtt érdemes a portot manuálisan áttelni, ha a szerveren már van egy webszerver vagy az OpenMediaVault, mivel ezek a 80-as porton futnak, mint http szolgáltatás, amin a GitLab is futni szeretne.

A Gitlab konfigurációs fájlja a /etc/gitlab/gitlab.rb fájl. Ebben kell átírni az external_url sor értékét úgy, hogy a cím végén kettősponttal ott legyen a port, amin elérhető. A szerkesztésre a nano szerkesztő kiválóan alkalmas:

sudo nano /etc/gitlab/gitlab.rb

Ha a szerkesztés megvan, akkor az újrakonfiguráláshoz használható szkriptet kell futtatni:

sudo gitlab-ctl reconfigure

Ha ez lefutott, akkor a szerverünk címén be tudunk jelentkezni a GitLab rendszerbe. Bejelentkezési adatok első használat esetén:

  • Felhasználó: root
  • Jelszó: 5iveL!fe

GitLab bejelentkező képernyő

Első bejelentkezés után a jelszót meg kell változtatni, majd az új jelszóval kell bejelentkezni. Ezután használható is a rendszer. Amennyiben nem szeretnénk SMTP szervert is üzemeltetni otthonról, akkor érdemes kivenni a regisztrációs lehetőséget a bejelentkezési oldalról. Ez a bejelentkezés utáni bal oldali menüben található Settingsre kattintva megtehető, majd görgessünk le a Sign-in restrictions szekcióig és vegyük ki a Sign-up mellől a pipát.

Regisztráció eltávolításaÚj projekt létrehozásánál lehetőség van már meglévő projekt klónozása alapján is dolgoznunk. A projekt létrehozása után ugyanúgy használható Git segítségével, mint minden más Git tároló 🙂

Új projekt létrehozásaAnnyit még érdemes megjegyezni a GitLab-ról, hogy a szerver kikapcsolása után viszonylag sok időt vesz igénybe a betöltése. Ez akár eltarthat 1-2 percig is és közben 502-es hibaüzeneteket dobálhat a rendszer.

A teljes GitLab dokumentáció a https://about.gitlab.com/documentation/ címen található meg. Hivatalos leírás szerint a Pi-n lévő 1GB RAM képes képes kiszolgálni 100 felhasználót, de lassú lesz. Érdemes ezért a GitLab-ot dedikált vason futtatni, vagy ha komolyan gondoljuk a használatát, akkor egy x86 alapú PC-t állítsunk be alá.