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

Источник: https://blog.xsk.in/it/redmine-i-gitlab-na-odnom-servere/640/
Опубликовано: 2014-08-16 · Рубрики: IT, Linux, nginx, Redmine


Об установке Gitlab на сервере под управлением Debian Squeeze ранее [уже было написано](/it/ustanovka-gitlab-na-debian-squeeze/303/ "Установка GitLab на Debian Squeeze"). Теперь разберемся, как добавить на сервер систему управления проектами Redmine и по возможности не сломать управление репозиториями.

Согласно [официальной документации](http://www.redmine.org/projects/redmine/wiki/InstallRedmineOnDebianStableApacheMysqlPassenger "InstallRedmineOnDebianStableApacheMysqlPassenger - 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](/wp-content/uploads/2014/08/webrick.txt)
Сохраняем файл в директории /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 &lt;ВАШ ХОСТ>;
>
> location / {
> proxy\_pass http://127.0.0.1:3000;
> }
> }

*Ссылки:*

- [GitLab и Redmine на VPS сервере](http://blog.nonick.name/sreda-razrabotki/debian/gitlab-i-redmine-na-vps-servere/)
- [Install Redmine On Debian Stable Apache Mysql Passenger - Redmine](http://www.redmine.org/projects/redmine/wiki/InstallRedmineOnDebianStableApacheMysqlPassenger)

