Skip to main content

Установка Redmine 5.1.2 на Debian 12

Описание

Redmine - это гибкое веб-приложение для управления проектами.

Оно написано с использованием фреймворка Ruby on Rails и является кросс-платформенным и совместимым с базами данных.

Redmine имеет открытый исходный код и выпускается на условиях GNU General Public License версии 2 (GPL).

Установка

В данной установке используется образ Debian 12 netinstall.

Подготовка ОС для установки

Перед установкой необходимо обновить пакеты:

apt -y update
apt -y upgrade

Настройка локали:

dpkg-reconfigure locales

Создание пользователя:

useradd -r -m -d /opt/redmine -s /usr/bin/bash redmine

Добавление пользователя Redmine в группу www-data:

usermod -aG www-data redmine

Установка дополнительных пакетов по необходимости:

apt -y install sudo ruby ruby-dev wget mc htop chrony postgresql-contrib libpq-dev libmysqld-dev apt-transport-https ca-certificates gnupg2

Установка Apache2, MariaDB и других дополнительных пакетов:

apt -y install apache2 apache2-dev libapache2-mod-passenger mariadb-server mariadb-client build-essential libxslt1-dev libmariadb-dev libxml2-dev zlib1g-dev imagemagick libmagickwand-dev curl libmariadb-dev-compat libmariadb-dev

MariaDB (MySQL)

Необходимо создать базу данных в MySQL для Redmine.

Для подключения к MySQL используем следующую команду:

mysql

После подключения создаем базу данных и пользователя:

CREATE DATABASE redmine CHARACTER SET utf8mb4;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';

После создания применяем изменения и выходим из MySQL:

FLUSH PRIVILEGES;
EXIT;

Меняем уровень транзакций:

SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;

Проверяем изменения:

select @@session.tx_isolation;

Redmine

Заходим под пользователем redmine:

su - redmine

Загружаем и распаковываем Redmine:

wget https://www.redmine.org/releases/redmine-5.1.2.tar.gz
tar -xvzf redmine-5.1.2.tar.gz -C /opt/redmine/ --strip-components=1
cd /opt/redmine/

Копируем дефолтный файл конфигурации в текущую конфигурацию:

cp config/database.yml.example config/database.yml

Редактируем файл текущей конфигурации:

nano config/database.yml

Приводим к виду:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "Ваш_пароль_к_базе_данных"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4
  variables:
    # Recommended `transaction_isolation` for MySQL to avoid concurrency issues is
    # `READ-COMMITTED`.
    # In case of MySQL lower than 8, the variable name is `tx_isolation`.
    # See https://www.redmine.org/projects/redmine/wiki/MySQL_configuration
    transaction_isolation: "READ-COMMITTED"

Начиная с версии 5.1.1 redmine использует в коннекторе transaction_isolation: "READ-COMMITTED", в установленной нами MariaDB используется старое значение, поэтому необходимо заменить transaction_isolation на tx_isolation.

Меняем

transaction_isolation: "READ-COMMITTED"

на

tx_isolation: "READ-COMMITTED"

Выйти из под пользователя redmine обратно в root:

exit
cd /opt/redmine/

Установка рекомендуемых gems:

gem install bundler

Заходим под пользователем Redmine:

su - redmine
cd /opt/redmine/

Установка 

bundle config set --local without 'development test' 
bundle install

Генерируем секретный токен:

bundle exec rake generate_secret_token

Создаем структуру базы данных и загружаем данные конфигурации по умолчанию:

RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production REDMINE_LANG=ru bundle exec rake redmine:load_default_data

Выходим из под пользователя redmine

exit

Создаем несколько необходимых файлов и каталогов с помощью следующей команды:

for i in tmp tmp/pdf public/plugin_assets; do [ -d $i ] || mkdir -p $i; done

Устанавливаем права доступа и владельца для каталога /opt/redmine:

chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 /opt/redmine

Apache2

Настройка apache2 для redmine.

Необходимо создать файл виртуальной конфигурации Apache2 для Redmine и записать конфигурацию.

Создаем файл:

nano /etc/apache2/sites-available/redmine.conf

Добавляем строки:

<VirtualHost *:80>
	ServerName redmine.example.com
	RailsEnv production
	DocumentRoot /opt/redmine/public

	<Directory "/opt/redmine/public">
	        Allow from all
	        Require all granted
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
        CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
</VirtualHost>

Сохраните и закройте файл конфигурации.

Подключаем файл виртуального хоста Redmine:

a2ensite redmine

Перезапускаем службу apache2:

systemctl restart apache2

UFW

Устанавливаем фаервол ufw:

apt -y install ufw

Включаем политики входящих и исходящих соединений по умолчанию:

ufw default deny incoming
ufw default allow outgoing

Открываем необходимые нам порты:

ufw allow ssh
ufw allow http
ufw allow https

Добавляем ufw в автозагрузку:

systemctl enable ufw
systemctl restart ufw

Включаем ufw:

ufw enable

Перечитываем правила:

ufw reload

Проверяем статус и открытые порты:

ufw status