Redmine и Gitlab на одном сервере

Об установке Gitlab на сервере под управлением Debian Squeeze ранее уже было написано. Теперь разберемся, как добавить на сервер систему управления проектами Redmine и по возможности не сломать управление репозиториями.

Согласно официальной документации Redmine работа с бэкендом на ruby должна осуществляться через Apache mod passenger. Дальше будет описан способ отказаться от Apache и настроить работу через Nginx.

Для начала скачиваем репозиторий в рабочий каталог. По аналогии с прошлой статьей выберем /home в качестве каталога с приложениями:

cd /home
git clone https://github.com/redmine/redmine.git

Установим gem для работы с mysql и кучу девовских пакетов (так просят разработчики). После установки всех зависимостей собираем redmine для работы с MySQL (есть возможность работы с PostrgeSQL, но мы уже использовали первую БД в прошлой статье, а зоопарк нам ни к чему):

gem install bundler mysql2
apt-get install libmagickwand-dev libmysqlclient-dev
bundle install --without postgresql

Входим в консоль MySQL:

mysql -u root -p

Cоздаем новую БД (не забываем исправить команду, добавив свой пароль):

mysql> create database redmine character set utf8;
mysql> create user 'redmine'@'localhost' identified by 'PASSWORD';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';

После этого необходимо указать данные для доступа к созданной базе в настройках redmine в секции production:

cp config/database.yml.example config/database.yml
mcedit config/database.yml
production:
 adapter: mysql2
 database: redmine
 host: localhost
 username: redmine
 password: "PASSWORD"
 encoding: utf8

Создаем секретный токен и наполняем базу данных

rake generate_secret_token
RAILS_ENV=production rake db:migrate

Создаем временные папки, выставляем необходимые для корректной работы права доступа и пробуем запустить приложение

mkdir tmp tmp/pdf public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
ruby script/rails server webrick -e production
=> Booting WEBrick
=> Rails 3.2.19 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

В случае успешного запуска главная страница redmine будет доступна через браузер на 3000 порту внешнего IP адреса сервера.

Теперь настроим автоматический запуск webrick при старте компьютера, для этого создаём run-скрипт /etc/init.d/webrick следующего содержания:
webrick
Сохраняем файл в директории /etc/init.d, убираем расширение txt и делаем исполняемым. Если для приложения была выбрана директория, отличная от /home/redmine, изменяем переменную DIR в начале скрипта.

wget -O /etc/init.d/webrick /wp-content/uploads/2014/08/webrick.txt
chmod +x /etc/init.d/webrick

Вносим скрипт в автозагрузку:

update-rc.d redmine defaults 21

Запускаем приложение:

/etc/init.d/redmine start
[....] Starting Redmine WebRick:=> Booting WEBrick
 => Rails 3.2.19 application starting in production on http://0.0.0.0:3000
 . ok

Конфигурирование nginx сводится к проксированию запросов на локальный порт 3000, при этом рекомендуется закрыть доступ к этому порту извне в целях безопасности.

server {
listen 80;
server_name <ВАШ ХОСТ>;

location / {
proxy_pass http://127.0.0.1:3000;
}
}

Ссылки: