Установка GitLab и Redmine на Ubuntu 12.04
Для начала скажу пару слов о том что есть что. GitLab, на мой взгляд, это лучшая веб обертка над git, и если быть совсем кратким это свой личный GitHub. Redmine это отличный менеджер проектов. Как мне кажется это две очень необходимые вещи для любого разработчика
Для начала необходимо установить все нужные пакеты:
apt-get update apt-get upgrade apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev \ libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core \ openssh-server redis-server checkinstall libxml2-dev libxslt-dev \ libcurl4-openssl-dev libicu-dev postfix python nginx \ imagemagick libmagickcore-dev libmagickwand-dev \ mysql-server mysql-client libmysqlclient-dev
Теперь нам нужно удалить старую версию ruby и установить то что нужно нам для работы
apt-get remove ruby1.8
и ставим новый ruby
mkdir /tmp/ruby && cd /tmp/ruby curl --progress http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.gz | tar xz cd ruby-1.9.3-p429 ./configure make make install gem install bundler --no-ri --no-rdoc
Установка GitLab
для начала нужно создать нового пользователя для GitLab
adduser --disabled-login --gecos 'GitLab' git
меняем пользователя и переходим в домашнюю директорию:
sudo su git cd /home/git
Устанавливаем gitlab-shell
git clone https://github.com/gitlabhq/gitlab-shell.git cd gitlab-shell/ git checkout -b v1.5.0 v1.5.0 cp config.yml{.example,} vim config.yml # проверяем конфигурацию ./bin/install cd ../
Устанавливаем GitLab
cd /home/git git clone https://github.com/gitlabhq/gitlabhq.git gitlab cd /home/git/gitlab git checkout -b v5.2.1 v5.2.1 cp config/gitlab.yml{.example,} vim config/gitlab.yml # проверяем конфигурацию chown -R git log/ chown -R git tmp/ mkdir tmp/pids/ mkdir tmp/sockets/ mkdir public/uploads chmod -R u+rwX log/ chmod -R u+rwX tmp/ chmod -R u+rwX public/uploads cp config/puma.rb{.example,} git config --global user.name "GitLab" git config --global user.email "[email protected]"
Создаем и настраиваем базу данных
cp config/database.yml{.mysql,} mysql -u root -p mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password'; mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost'; mysql> exit; vim config/database.yml
И теперь проводим саму установку
gem install charlock_holmes --version '0.6.9.4' --no-ri --no-rdoc bundle install --deployment --without development test postgres bundle exec rake gitlab:setup RAILS_ENV=production bundle exec rake gitlab:env:info RAILS_ENV=production bundle exec rake sidekiq:start RAILS_ENV=production
Добавляем запуск службы в init.d
su cp lib/support/init.d/gitlab /etc/init.d/gitlab chmod +x /etc/init.d/gitlab update-rc.d gitlab defaults 21
Поздравляю, мы только что установили GitLab
Redmine
Для начала необходимо создать директорию и скачать само приложение
mkdir -m 755 /home/project cd /home/project git clone https://github.com/redmine/redmine.git cd redmine
Конфигурируем базу данных:
cp config/database.yml{.example,} mysql -u root -p mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY '$password'; mysql> CREATE DATABASE IF NOT EXISTS `redmine` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `redmine`.* TO 'redmine'@'localhost'; mysql> exit; vim config/database.yml # вносим информацию о бд
Для запуска redmine нам необходимо скопировать файл puma.rb из GitLab
cp /home/git/gitlab/config/puma.rb config/puma.rb vim config/puma.rb # изменить все gitlab на redmine, и откоректировать пути vim Gemfile # нужно добавить строку " gem "puma", '~> 2.0.1' " cp -pR config/configuration.yml{.example,} vim config/configuration.yml # основная конфигурация bundle install --without development test postgresql sqlite rake generate_secret_token
И последние шаги:
RAILS_ENV=production rake db:migrate RAILS_ENV=production rake redmine:load_default_data mkdir tmp public/plugin_assets chown -R www-data:www-data /home/project chmod -R 755 files log tmp public/plugin_assets
Теперь нам нужно создать файл /etc/init.d/redmine и добавить в него следующее содержимое Gist
vim /etc/init.d/redmine chmod +x /etc/init.d/redmine update-rc.d redmine defaults 21
NGINX
Конфигурация nginx для gitlab
vim /etc/nginx/sites-available/gitlab upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; } server { listen 80; server_name git.smidth.ru; server_tokens off; root /home/git/gitlab/public; access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { try_files $uri $uri/index.html $uri.html @gitlab; } location @gitlab { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://gitlab; } }
и конфигурация для redmine
vim /etc/nginx/sites-available/redmine upstream redmine { server unix:/home/project/redmine/tmp/sockets/redmine.socket; } server { listen 80; server_name redmine.smidth.ru; server_tokens off; root /home/project/redmine/public; access_log /var/log/nginx/redmine_access.log; error_log /var/log/nginx/redmine_error.log; location / { try_files $uri $uri/index.html $uri.html @redmine; } location @redmine { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://redmine; } }
После этого все что нам остается это перезапустить все службы
service gitlab restart service redmine restart service nginx restart
Комментарии (0)
Вам нужно авторизироваться, чтобы оставить свой комментарий