Git – #5 – Synology NAS + Git server

Kilka słów na początek.

Prowadzenie projektów w grupie wiąże się z koniecznością ich współdzielenia. Współdzielenie może obejmować swym zasięgiem zarówno sieci lokalne jak i globalne. Najpopularniejsze serwisy, które oferują możliwość globalnego współdzielenia repozytoriów to github.com oraz bitbucket.org. Ze względu na fakt, że w swoich zasobach posiadam serwer NAS firmy Synology przedstawię krok po kroku proces instalacji oraz konfiguracji usługi Git server.

Zakres artykułu.

  • Instalacja programu Git Server na serwerze Synology.
  • Konfiguracja routera.
  • Tworzenie na serwerze folderu na potrzeby programu git.
  • Stworzenie przykładowego dzielonego surowego repozytorium.

Instalacja programu Git Server na serwerze Synology.

W celu zainstalowania programu Git Server należy:

  1. Zainstalować program Git Server z Menu główne > Centrum pakietów > Git Server
  2. Włączyć usługę SSH z Menu główne > Panel sterowania > Terminal i SNMP. W celu zwiększenia ochrony przez atakami z sieci zaleca się zmianę domyślnego portu 22 przeznaczonego dla protokołu SSH.
  3. Włączyć usługę użytkownika domowego z Menu główne > Panel sterowania > Użytkownik > Zaawansowane.
  4. Stworzyć nową grupę użytkowników z Menu główne > Panel sterowania > Grupa > Utwórz.
  5. Stworzyć lub dodać aktualnych użytkowników do grupy z kroku 4. z Menu główne > Panel sterowania > Grupa > Edytuj członków > Dodaj.
  6. Zezwolić na dostęp konkretnych użytkowników w programie zainstalowanym w kroku 1. Menu główne > Git Server.

Konfiguracja routera

Aby możliwa była komunikacja po protokole SSH z naszym serwerem należy przekierować porty na routerze domowym na serwer. Konfiguracji routera możemy dokonać na dwa sposoby. 

Sposób 1
Serwer Synology posiada oprogramowanie umożliwiające zdalną zmianę ustawień routera. W celu przekierowania portu należy przejść do Menu główne > Panel sterowania > Dostęp zewnętrzny > Konfiguracja routera. Następnie należy nacisnąć przycisk Utwórz zaznaczyć opcję Port niestandardowy i nacisnąć przycisk Następne. Z pola protokół wybieramy TCP, a w miejsce Portu lokalnego i Portu routera wpisujemy numer port, który wybraliśmy do komunikacji po protokole SSH. 
W przypadku gdybyśmy pozostawili domyślny port 22 wówczas w oknie, gdzie wybieraliśmy Port niestandardowy możemy wybrać Wbudowana aplikacja, a następnie zaznaczyć Szyfrowana usługa terminala (w tym szyfrowanie rsync i SFTP) i nacisnąć przycisk Zastosuj.
Następnie w zakładce Konfiguracja routera powinien nam się pojawić wybrany port, który kolejno należy zaznaczyć, nacisnąć przycisk Zapisz i następnie możemy nacisnąć przycisk Skonfiguruj router.
Po wykonaniu powyższych czynności port w routerze powinien zostać przekierowany na nasz serwer. 

Sposób 2
Metoda ta polega na przekierowaniu portu bezpośrednio w routerze. W tym przypadku wiele zależy od dostawcy internetu. Ponieważ posiadam internet od UPC przedstawię w jaki sposób można przekierować porty na routerze Connect Box od UPC.
W pierwszym kroku należy włączyć przeglądarkę internetową i wpisać adres 192.168.0.1. Kolejny krok polega na wpisaniu hasła do oprogramowania naszego routera. Następnie przechodzimy do Ustawienia zaawansowane > Bezpieczeństwo > Przekierowanie portów tam naciskamy na przycisk Nowa reguła i wypełniamy wszystkie dane:
– lokalny adres IP – wpisujemy adres naszego serwera;
– początkowy port sieci lokalnej – wpisujemy liczbę 22;
– końcowy port sieci lokalnej – również wpisujemy 22;
– początkowy port sieci publicznej – również wpisujemy 22;
– końcowy port sieci publicznej – również wpisujemy 22;
– protokół – wybieramy TCP;
– włączony – wybieramy opcję włączony.

Ważna uwaga! Ze względu na fakt, że najnowsze oprogramowanie routera Connect Box posiada domyślne adresowane IPv6 możemy nie znaleźć powyższych opcji. Aby powyżej wspomniane opcje zostały odblokowane należy zadzwonić do dostawczy internetu UPC i poprosić, żeby przełączyli nasz router na adresowanie IPv4. Po kilkunastu minutach od zakończenia rozmowy powinniśmy mieć możliwość dostępu do wszystkich potrzebnych opcji. 

Tworzenie na serwerze folderu na potrzeby programu git

W celu poruszaniu się po serwerze musimy wykorzystać protokół SSH. W systemie operacyjnym linuks należy w konsoli wpisać polecenie:
ssh [użytkownik]@[adres_ip_serwera]
w przypadku gdy ustawiliśmy niestandardowy port komunikacyjny należy na końcu adresu serwera napisać :numer_portu
ssh [użytkownik]@[adres_ip_serwera]:numer_portu
W przypadku gdy korzystamy z systemu operacyjnego Windows należy pobrać dodatkowe oprogramowanie. Ja korzystam z programu PuTTY.
W miejscu Host Name (or IP address) należy pisać nazwę domeny (jeśli posiadamy) lub zewnętrzny adres IP routera. W miejscu Port należy pisać numer portu, który ustawiliśmy do komunikacji po protokole SSH na serwerze.
Po wpisaniu powyższych danych należy nacisnąć na przycisk Open, wówczas pojawi nam się konsola.

Dalsza część pracy wygląda tak samo dla obu systemów.
Po wykonaniu powyższych czynności należy zalogować się na serwer. W pierwszej kolejności podajemy login a następnie hasło. Po zalogowaniu się na serwer należy przejść na użytkownika root. W tym celu w konsoli wpisujemy:
sudo -i
następnie serwer poprosi nas o podanie hasła, które jest identyczne jak nasze hasło.
W kolejnym kroku przechodzimy wpisujemy polecenie
cd /
i przechodzimy do jednego z folderów volumeX gdzie X jest cyfrą. Polecenie, którym przejdziemy do folderu to:
cd volume1
W tym folderze tworzymy nowy folder, który będzie wykorzystywany przez program git. Ja stworzyłem nowy folder o nazwie git poleceniem:
mkdir git
następnie pozostając  w folderze volume1 należy zmienić właściciela folderu oraz grupę folderu. W tym celu wpisujemy w konsoli:
chown -R [użytkownik]:[grupa] git
Kolejny krok polega na zmianie praw dostępu w tym celu zaleca się wpisanie następującego polecenia:
chmod -R 772 git
Jeżeli mamy życzenie nadać inne prawa dla właściciela, grupy czy innych warto zapoznać się z szczegółami polecenia chmod. 

Stworzenie przykładowego dzielonego surowego repozytorium.

W celu stworzenia dzielonego surowego repozytorium na serwerze należy przejść do folderu git (stworzony wyżej) poleceniem
cd /volume1/git
a następnie wpisać polecenie:
git init -‍-bare -‍-shared [nazwa_projektu].git

Kopiowanie przykładowego dzielonego surowego repozytorium z serwera na dysk lokalny

W celu skopiowania dzielonego surowego repozytorium z serwera na dysk lokalny należy przejść do folderu gdzie zamierzamy przechowywać projekt, następnie należy otworzyć konsolę z gitem i wpisać polecenie:
git clone ssh://[użytkownik]@[adres_ip_serwera]:[port]/volume1/git/[nazwa_projektu].git

Kopiowanie przykładowego repozytorium z dysku lokalnego na serwer

W celu skopiowania już istniejącego repozytorium na serwer należy w konsoli z gitem -przejść do folderu w którym znajduje się projekt wpisać polecenie ustawiające adres zdalnego repozytorium 
git remote add origin ssh://[użytkownik]@[adres_ip_serwera]:[port]/volume1/git/[nazwa_projektu].git
 w następnym kroku należy wpisać polecenie
git push -u origin master

Na koniec

Możliwości Serwera Git na serwerze Synology są identyczne jak na pozostałych serwisach internetowych z tym, że na naszym serwerze nie posiadamy ograniczeń licencyjnych.

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.