Na moich serwerach mam zainstalowany panel administracyjny ajenti.org. Bindowanie dwóch instancji nginx’a na jeden port jest niemożliwe, więc postanowiłem zmusić gitlab’a do używania już istniejącej. Rozwiązanie znajduje się praktycznie w dokumentacji, ale postanowiłem zebrać te informacje w jednym miejscu.
Instalacja Gitlab-CI
Nasza instancja gitlaba będzie instalowana za pomocą omnipackage.
- Wchodzimy na stronę projektu. I wybieramy naszą dystrybucję.
- Wklejamy link.
- sudo apt-get update
- sudo apt-get install gitlab-ce
Instalacja nginx
- Edytujemy plik /etc/apt/sources.list$ sudo nano /etc/apt/sources.list Dodajemy odpowiednie wpisy dla naszego systemudeb http://nginx.org/packages/debian/ wheezy nginx
 deb-src http://nginx.org/packages/debian/ wheezy nginx
 
- Instalujemy paczkę.$ sudo apt-get update
 $ sudo apt-get install nginx apt-transport-https ca-certificates
 
- Zatrzymujemy instancje gitlab’a$ sudo gitlab-ctl stop W zwrotce z polecenia będzie się pokazywała informacja odnośnie zatrzymania Nginx.# Pod jakim linkiem bedzie widoczny nasz gitlab
 external_url "http://git.example.com/"
 
 # Nie chcemy wymuszac przekierowania na polaczenie szyfrowane
 nginx['redirect_http_to_https'] = false
 
 # Nasze ssh nie dziala na domyslnym porcie.
 gitlab_rails['gitlab_shell_ssh_port'] = 49653
 
 # informujemy gitlab'a, ze chcemy uzywac wlasnej instancji nginx'a.
 nginx['enable'] = false
 
 # informujemy gitlab-ci, ze chcemy uzywac wlasnej instancji nginx'a.
 ci_nginx['enable'] = false
 
- Zmiana domyślnego portu dla ssh
 Poza zmianą w konfiguracji trzeba dodać jeszcze wpis do pliku /etc/hosts$ sudo nano /etc/hosts I dodajemy tam linijkę111.222.333.444 git.example.com Po wprowadzaniu powyższych zmian rekonfigurujemy instancje Gitlab’a i uruchamiamy ją ponownie.$ sudo gitlab-ctl reconfigure
 $ sudo gitlab-ctl start
 A tutaj efekt uruchomienia polecenia startu Gitlaba.$ sudo gitlab-ctl start
 ok: run: logrotate: (pid 31474) 2617s
 ok: run: postgresql: (pid 4547) 326623s
 ok: run: redis: (pid 4555) 326622s
 ok: run: sidekiq: (pid 4563) 326620s
 ok: run: unicorn: (pid 4585) 326619s
 
Instalacja modułu passenger
Do poprawnego działania potrzebujemy zainstalować moduł obsługi passenger dla nginx.
- Dodanie kluczy repozytorium.$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7 
- Edytujemy plik /etc/apt/sources.list$ sudo nano /etc/apt/sources.list Dodajemy odpowiednie wpisy dla naszego systemudeb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main 
- Instalujemy paczkę.$ sudo apt-get update
 $ sudo apt-get -y nginx-extras passenger
 Po poprawnym skonfigurowaniu pliku vhostu dla nginx – gitlab będzie działał na istniejącej wcześniej instancji Nginx’a.
Efekty naszych zmian
Poza działającą instancją gitlaba powinniśmy widzieć inny układ linków przy klonowaniu naszego projektu:
ssh://git@git.example:49653/superuser/test-repository.git