GitLab
GitLab to manager repozytoriów Git.
Uwaga opis jest nieaktualny i w trakcie aktualizacji
Przed przystąpieniem do instalacji należy:
- Przeprowadzić wstępną konfigurację RVM (dla wersji ruby 2.4.4) i RoR.
- Dodać bazę i użytkownika MySQL lub PostgreSQL.
Przed dalszymi krokami należy się zalogować na shellu MyDevil. Trzeba przejść do katalogu /usr/home/login/domains/domena/
, gdzie za domena należy podstawić wcześniej skonfigurowaną domenę.
Instalacja
Adres serwera PostgreSQL jest zależny od numeru serwera shell. Dla serwera s0.mydevil.net będzie to adres pgsql0.mydevil.net, dla serwera s1.mydevil.net pgsql1.mydevil.net, dla serwera s2.mydevil.net pgsql2.mydevil.net itd. W przykładach użyto adresu pgsqlX.mydevil.net.
Należy:
- Wyeksportować zmienną wskazującą biblioteki gcc6
export LD_LIBRARY_PATH=/usr/local/lib/gcc6
- Zainstalować gem bundler
gem install bundler
. - Pobrać źródła GitLab
git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 11-4-stable gitlab
. - Zmienić nazwę pobranego folderu na
public_ruby
i do niego przejśćrm -r public_ruby && mv gitlab public_ruby && cd public_ruby
. - Skopiować przykładową konfigurację bazy danych
cp config/database.yml.postgresql config/database.yml
. - Ustawić w pliku
config/database.yml
w sekcji production zmienne:- database na nazwę bazy danych (np. p1064_gitlab),
- host na host bazy danych (pgsqlX.mydevil.net),
- username na nazwę użytkownika bazy danych (np. p1064_gitlab),
- password na hasło bazy danych.
- Odkomentować powyższe linijki (usunąć #).
- Włączyć rozszerzenie pg_trgm w postgresql:
-
devil pgsql extensions nazwa_bazy pg_trgm
-
- Skopiować przykładową konfigurację gitlab
cp config/gitlab.yml.example config/gitlab.yml
. - Ustawić w pliku
config/gitlab.yml
w sekcji gitlab zmienne:- host na domenę aplikacji,
- port na 80 (HTTP) lub 443 (HTTPS),
- https na true jeśli strona będzie korzystać z HTTPS,
- user na nazwę użytkownika konta (należy również usunąć znak komentarza
#
przed user), - email_from na adres e-mail z którego GitLab ma wysyłać maile,
- email_display_name na dowolną nazwę, która będzie się wyświetlała zamiast adresu email,
- email_reply_to na adres e-mail na który mają być wysyłana odpowiedzi na emaile wysłane przez GitLab.
W sekcji satellites zmienną path na<-- to chyba wyleciało jakiś czas temu z GitLab/usr/home/login/gitlab-satellites/
.- W sekcji gitlab_shell zmienne:
- path na
/usr/home/login/gitlab-shell/
, - repos_path na
/usr/home/login/gitlab-repo/
, - hooks_path na
/usr/home/login/gitlab-shell/hooks/
.
- path na
- W sekcji git zmienną bin_path na
/usr/local/bin/git
. - Skopiować przykładową konfigurację smtp
cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb
. - Ustawić w pliku
config/initializers/smtp_settings.rb
zmienne:- address na adres serwera smtp,
- port na port serwera smtp,
- user_name na adres email,
- password na hasło do konta email,
- domain na domenę aplikacji,
- enable_starttls_auto na false i openssl_verify_mode na none w przypadku problem z smtp na MyDevil.
- Zainstalować zależności gitlaba:
-
bundle config build.charlock_holmes --with-icu-dir=/usr/local
, -
bundle config build.nokogiri --with-xml2-include=/usr/local/libxml2 --with-xml2-lib=/usr/local/lib/ --with-iconv-include=/usr/local/include --with-iconv-lib=/usr/local/lib --use-system-libraries
, -
bundle install --deployment --without development test postgresql aws
.
-
- ZAINSTALOWAĆ GRPC!
-
gem install --install-dir ~/domains/"domena"/public_ruby/vendor/bundle/ruby/2.4.0 ~/grpc-1.11.0.gem
<-- zakładając onecność gemu w katalogu domowym
-
- Uruchomić serwer redis oraz przystosować konfigurację GitLaba:
-
screen -dm bash -c "redis-server --unixsocket /usr/home/login/redis.sock --port 0"
, -
echo "production: unix:/usr/home/login/redis.sock" > config/resque.yml
.
-
- Skonfigurować gitlab_shell oraz GitLaba:
-
bundle exec rake gitlab:shell:install REDIS_URL=unix:/usr/home/login/redis.sock RAILS_ENV=production
,
-
- Zainstalować workhorse
bundle exec rake "gitlab:workhorse:install[/usr/home/"login"/gitlab-workhorse]" RAILS_ENV=production
- Zainstalować gitaly
- export CC=gcc7
- export CXX=g++7
bundle exec rake "gitlab:gitaly:install[/usr/home/"login"/gitaly,/usr/home/"login"/gitlab-repo]"
RAILS_ENV=production
- W pliku
lib/tasks/gitlab/setup.rake
zakomentować (#) wiersz:- "Rake::Task["db:reset"].invoke" i wstawić "Rake::Task["db:setup"].invoke" lub zamienić "reset => setup". (reset wykonuje drop i setup)
-
bundle exec rake gitlab:setup RAILS_ENV=production
, -
bundle exec rake sidekiq:start RAILS_ENV=production
.
- Podsumowanie
Login oraz hasło do konta administratora zostaną wyświetlone przez przedostatnie polecenie na konsoli - zaleca się je zmienić po zalogowaniu się do GitLaba. Pierwsze ładowanie strony może potrwać nieco dłużej.
Integracja z repozytoriami MyDevil.net
Istnieje możliwość korzystania z GitLaba z naszymi repozytoriami Git. Wystarczy stworzyć link symboliczny do wybranego repo:
cd /home/login/gitlab-repo/gitlab_login/ rm -r gitlab_repo.git ln -s /home/login/repo/git/widoczność_repo/nazwa_repo gitlab_repo.git