GitLab

GitLab to manager repozytoriów Git.


Przed przystąpieniem do instalacji należy:

  1. Przeprowadzić wstępną konfigurację RVM (dla wersji ruby 2.4.4) i RoR.
  2. 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

Należy:

  1. Wyeksportować zmienną wskazującą biblioteki gcc6 export LD_LIBRARY_PATH=/usr/local/lib/gcc6
  2. Zainstalować gem bundler gem install bundler.
  3. Pobrać źródła GitLab git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 11-4-stable gitlab.
  4. Zmienić nazwę pobranego folderu na public_ruby i do niego przejść rm -r public_ruby && mv gitlab public_ruby && cd public_ruby.
  5. Skopiować przykładową konfigurację bazy danych cp config/database.yml.postgresql config/database.yml.
  6. 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ąć #).
  7. Włączyć rozszerzenie pg_trgm w postgresql:
    • devil pgsql extensions nazwa_bazy pg_trgm
  8. Skopiować przykładową konfigurację gitlab cp config/gitlab.yml.example config/gitlab.yml.
  9. 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.
  10. W sekcji satellites zmienną path na /usr/home/login/gitlab-satellites/.
  11. 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/.
  12. W sekcji git zmienną bin_path na /usr/local/bin/git.
  13. Skopiować przykładową konfigurację smtp cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb.
  14. 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.
  15. 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.
  16. ZAINSTALOWAĆ GRPC pobrany z linku: wiki.mydevil.net/grpc-1.11.0.gem.
    • gem install --install-dir ~/domains/"domena"/public_ruby/vendor/bundle/ruby/2.4.0 ~/grpc-1.11.0.gem <-- zakładając obecność gemu w katalogu domowym
  17. 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.
  18. Skonfigurować gitlab_shell oraz GitLaba:
    • bundle exec rake gitlab:shell:install REDIS_URL=unix:/usr/home/login/redis.sock RAILS_ENV=production,
  19. Zainstalować workhorse
    • bundle exec rake "gitlab:workhorse:install[/usr/home/"login"/gitlab-workhorse]" RAILS_ENV=production
  20. 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
  1. 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

Odnośniki zewnętrzne