GitLab для Gentoo

Для совместной работы с кодом (а так же для возможности резервного копирования и отката изменений) придумали множество разных систем контроля версий (VCS): svn, git bazzar…

В данный момент наиболее актуальной является GIT. Для работы с ним доступно множество бесплатных площадок (GitHub, Bitbucket…). Но на всех из них есть те или иные ограничения для бесплатного использования.

Далее идёт описание установки GitLab (аналог GitHub для установки на собственных серверах) на Gentoo (именно он у меня на домашнем сервере) с systemd.

UPD: GitLab нынче ставится в /opt/gitlab да и поддержку systemd я там помогаю держать в актуальном состоянии, поэтому инструкция обновлена.

Для фанатиков имеется инструкция по сборке из исходников, но мне ближе всё-таки вариант инструкции с готовым ebuild (всё делается само по накатанной схеме + не надо париться об обновлениях).  Правда автор инструкции давно не обновлял сам ebuild для GitLab, поэтому ставить лучше из этого репозитария. После установки ebuild напишет дополнительные шаги к установке. Я выбрал комбинацию из MySQL (MariaDB) и Unicorn.

GitLab активно использует электронную почту для операций с учётными записями и для оповещений. Для этого я его подружил с Gmail для собственного домена на основе этого мануала.

Меняем строчку:

# vi /opt/gitlab/config/environments/production.rb
config.action_mailer.delivery_method = :smtp

Делаем следую комбинацию с редактированием:

# cp /opt/gitlab/config/initializers/smtp_settings.rb.sample /opt/gitlab/config/initializers/smtp_settings.rb
# vi /opt/gitlab/config/initializers/smtp_settings.rb
if Rails.env.production?
  Gitlab::Application.config.action_mailer.delivery_method = :smtp

  ActionMailer::Base.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    user_name: "alarm@kami-no.ru",
    password: "Qwerty123",
    domain: "kami-no.ru",
    authentication: :plain,
    enable_starttls_auto: true
  }
end

Хотя есть вероятность того, что это можно теперь сделать проще.

Далее запускаем демонов, проверяем, что пользователю git разрешено подключение по SSH и начинаем использовать новую игрушку. Стоит так же обратить внимание, что в свежих версиях пользьзователем по умолчанию стал root со старым паролем 5iveL!fe

Во время работы при загрузке данных на сервер у меня возникала следующая ошибка: remote: GitLab: An unexpected error occurred (redis-cli returned 1).

Решение: закомментировать в файле /etc/gitlab-shell/config.yml строчку socket: /var/run/redis/redis.sock