Добавить в корзинуПозвонить
Найти в Дзене
Записки сисадмина

Redmine. Трекер задач. Разворачиваем сервер.

Долго думал, какое бы вступление к статье написать, обозначить все полюсы и минусы redmine, вставить то, что каждой компании нужен таск трекер, даже если у нее один программист и один админ. Но давайте будем честны: если вы читаете эту статью, значит, вы уже познали дзен, запороли несколько дедлайнов, потеряли контроль над бизнес процессами, либо у вас дергается глаз от слова «битрикс». Короче, вы здесь не просто так. А я здесь - чтобы чуть-чуть облегчить вашу жизнь. Поехали, начинаем разворачивать сервер. sudo apt install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn -y git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec $SHELL git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/
Оглавление

Долго думал, какое бы вступление к статье написать, обозначить все полюсы и минусы redmine, вставить то, что каждой компании нужен таск трекер, даже если у нее один программист и один админ.

Но давайте будем честны: если вы читаете эту статью, значит, вы уже познали дзен, запороли несколько дедлайнов, потеряли контроль над бизнес процессами, либо у вас дергается глаз от слова «битрикс».

Короче, вы здесь не просто так. А я здесь - чтобы чуть-чуть облегчить вашу жизнь.

Поехали, начинаем разворачивать сервер.

Устанавливаем Ruby

  • Для начала установим необходимые зависимости:
sudo apt install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn -y
  • Далее по очереди выполняем команды:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
  • Используем rbenv для установки ruby
rbenv install 3.3.0
rbenv global 3.3.0
ruby -v
  • Ruby использует bundler для установки своих "гемов".
gem install bundler
  • Устанавливаем Rails on Ruby
gem install rails -v 7.2

Настраиваем PostgreSql

  • Устанавливаем СУБД
apt install postgresql libpq-dev
  • Скачиваем redmine последней версии и распаковываем его:
wget https://www.redmine.org/releases/redmine-6.0.3.tar.gz
tar -xvzf redmine-6.0.3.tar.gz
  • Создаем папку для redmine и копируем туда все файлы:
mkdir /var/lib/redmine
  • Заходим в psql и создаем базу данных для redmine c владельцем:
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

Настраиваем приложение redmine

Переходим в каталог /var/lib/redmine/

  • В каталоге ./config меняем файл:
cp database.yml.example database.yml

Вписываем те данные, которые указали при создании базы данных и пользователя СУБД

  • Возвращаемся в папку с redmine и устанавливаем все гемы, необходимые для работы redmine:
bundle config set --local without 'development test'
bundle install
  • Создаем секретный ключ, который нужен Rails для хранения сессий
bundle exec rake generate_secret_token
  • Запускаем создание структуры базы данных:
RAILS_ENV=production bundle exec rake db:migrate

Если получаете такой вывод, дайте пользователю redmine права superuser (проблема postgresql 15)

-2
ALTER USER redmine WITH SUPERUSER;
  • Запускаем наполнение базы данных:
RAILS_ENV=production bundle exec rake redmine:load_default_data
  • Запускаем тестово наше приложение:
bundle exec rails server -e production

Redmine будет доступен по адресу ip.ip.ip.ip:3000

Логин и пароль по умолчанию: admin/admin

Настраиваем Web сервер Apache

  • Устанавливаем необходимые пакеты:
apt install apache2 libapache2-mod-passenger apache2-dev
  • Создаем конфигурационный файл для сайта:
touch /etc/apache2/sites-available/redmine.conf
  • Прописываем в нем новый VirtualHost:
-3
<VirtualHost *:80>
ServerName rmlocal2.fb
ServerAdmin webmaster@rmlocal2.fb
DocumentRoot /var/lib/redmine/public/
<Directory "/var/lib/redmine/public/">
Options Indexes ExecCGI FollowSymLinks
Order allow,deny
Allow from all
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
  • Выдаем права apache на папку redmine:
chmod -R www-data /var/lib/redmine/
  • Устанавливаем passenger и запускаем через него настройку apache:
gem install passenger
passenger-install-apache2-module

Passenger выдаст все необходимые инструкции, что нужно сделать для того, чтобы apache правильно заработал вместе с приложением redmine. Внимательно читайте, что он будет Вам писать.

  • Также он попросит прописать в конфигурацию apache /etc/apache2/apache2.conf
LoadModule passenger_module /root/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/passenger-6.0.26/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /root/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/passenger-6.0.26
PassengerDefaultRuby /root/.rbenv/versions/3.3.0/bin/ruby
</IfModule>
  • После данных настроек выдаем права на запуск ruby из папки /root
sudo chmod o+x "/root"

Нужно только в том случае, если вы устанавливали все гемы из под root.

  • Перезапускаем apache и переходим по URL, который указали в конфигурации:
-4

Готово! Мы развернули redmine на нашем сервере. Остальные настройки будем производить в других статьях.