Redmine — это мощный инструмент с открытым исходным кодом для управления проектами и отслеживания проблем, который становится все более популярным среди разработчиков, менеджеров проектов и организаций всех размеров. Его гибкость, обширный набор функций и возможности настройки делают его отличным выбором для команд, стремящихся оптимизировать рабочие процессы своих проектов. В этом подробном руководстве мы познакомим вас с процессом установки Redmine в Ubuntu 24.04, последней версии популярного дистрибутива Linux с долгосрочной поддержкой.

Ubuntu 24.04, известная своей стабильностью и надежной системой управления пакетами, обеспечивает идеальную платформу для размещения Redmine. Следуя этому пошаговому руководству, вы сможете настроить полнофункциональный экземпляр Redmine, готовый улучшить возможности совместной работы и управления проектами вашей команды.

Предварительные условия

Прежде чем мы углубимся в процесс установки, давайте убедимся, что у вас есть все необходимое для успешной настройки Redmine в вашей системе Ubuntu 24.04:

  • Чистая установка Ubuntu 24.04 LTS (серверная или настольная версия).
  • Root-доступ или sudo-доступ к системе
  • Стабильное подключение к Интернету для загрузки пакетов
  • Не менее 2 ГБ ОЗУ (для оптимальной производительности рекомендуется 4 ГБ или более)
  • Минимум 10 ГБ свободного места на диске

Кроме того, вы должны иметь базовое представление об интерфейсе командной строки Linux, поскольку в этом руководстве мы будем использовать команды терминала.

Обновление системы

Откройте терминал и выполните следующие команды:

sudo apt update
sudo apt upgrade -y

Это обновит списки пакетов и обновит все установленные пакеты до последних версий.

Установка основных зависимостей

Далее мы установим несколько необходимых пакетов, от которых зависит Redmine:

sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev libcurl4-openssl-dev libmysqlclient-dev libpq-dev

Настройка брандмауэра

Если вы используете брандмауэр Ubuntu по умолчанию (UFW), вам необходимо разрешить трафик HTTP и HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Установка Ruby

Redmine построен на Ruby, поэтому нам необходимо установить правильную версию. Хотя Ubuntu 24.04 поставляется с предустановленным Ruby, зачастую это более старая версия. Мы будем использовать RVM (менеджер версий Ruby) для установки версий Ruby и управления ими.

Установка RVM

Сначала установите необходимые зависимости для RVM:

sudo apt install -y gnupg2 curl

Теперь установите RVM:

curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm

Установка Ruby

Установите последнюю стабильную версию Ruby:

rvm install ruby --latest
rvm use ruby --latest --default

Проверка установки

Убедитесь, что Ruby установлен правильно:

ruby --version

Вы должны увидеть выходные данные, указывающие установленную версию Ruby.

Настройка базы данных

Redmine поддерживает несколько систем баз данных, но наиболее часто используются PostgreSQL и MySQL. Мы рассмотрим оба варианта, чтобы вы могли выбрать тот, который лучше всего соответствует вашим потребностям.

Вариант 1. Установка и настройка PostgreSQL

Чтобы установить PostgreSQL:

sudo apt install -y postgresql postgresql-contrib

Создайте базу данных и пользователя для Redmine:

sudo -u postgres psql
CREATE DATABASE redmine;
CREATE USER redmine WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE redmine TO redmine;
\q

Вариант 2. Установка и настройка MySQL

Чтобы установить MySQL:

sudo apt install -y mysql-server mysql-client

Защитите установку MySQL:

sudo mysql_secure_installation

Создайте базу данных и пользователя для Redmine:

sudo mysql -u root -p
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Установка Redmine

Теперь, когда наша среда настроена, давайте установим сам Redmine.

Скачиваем Redmine

Загрузите последнюю стабильную версию Redmine:

cd /opt
sudo wget https://www.redmine.org/releases/redmine-5.1.3.tar.gz
sudo tar xzf redmine-5.1.3.tar.gz
sudo mv redmine-5.1.3 redmine
sudo chown -R $USER:$USER redmine

Настройка Redmine

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

cd /opt/redmine
cp config/database.yml.example config/database.yml

Отредактируйте файл конфигурации в соответствии с настройками вашей базы данных:

nano config/database.yml

Для PostgreSQL используйте:

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "your_password"
  encoding: utf8

Для MySQL используйте:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "your_password"
  encoding: utf8mb4

Установка необходимых драгоценных камней

Установите необходимые драгоценные камни Ruby:

gem install bundler
bundle install --without development test

Настройка Redmine

После установки Redmine нам необходимо выполнить некоторые дополнительные шаги по настройке.

Генерация секретного токена

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

bundle exec rake generate_secret_token

Настройка схемы базы данных

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

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

Настройка параметров электронной почты

Скопируйте пример файла конфигурации:

cp config/configuration.yml.example config/configuration.yml
nano config/configuration.yml

Отредактируйте настройки электронной почты в соответствии с конфигурацией вашего SMTP-сервера.

Настройка веб-сервера

Для обслуживания Redmine мы будем использовать Nginx в качестве веб-сервера и Passenger в качестве сервера приложений.

Установка Nginx и Passenger

sudo apt install -y nginx
gem install passenger
passenger-install-nginx-module

Следуйте инструкциям на экране, чтобы завершить установку Passenger.

Настройка Nginx

Отредактируйте файл конфигурации Nginx:

sudo nano /etc/nginx/nginx.conf

Добавьте следующий блок сервера в блок http:

server {
    listen 80;
    server_name your_domain.com;
    root /opt/redmine/public;
    passenger_enabled on;
    client_max_body_size 10m;
}

Перезапустите Nginx, чтобы применить изменения:

sudo systemctl restart nginx

Безопасность Redmine

Безопасность имеет решающее значение для любого веб-приложения. Давайте реализуем некоторые базовые меры безопасности для нашей установки Redmine.

Реализация SSL/TLS

Чтобы включить HTTPS, вам понадобится сертификат SSL. Вы можете получить бесплатный сертификат от Let’s Encrypt:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com

Следуйте инструкциям, чтобы завершить установку сертификата и настройку Nginx.

Настройка аутентификации пользователя

Redmine обеспечивает встроенную аутентификацию пользователя. Для повышения безопасности рассмотрите возможность внедрения двухфакторной аутентификации или интеграции с LDAP, если это необходимо для вашей организации.

Настройка регулярного резервного копирования

Создайте сценарий резервного копирования, чтобы регулярно сохранять данные Redmine:

#!/bin/bash
BACKUP_DIR="/path/to/backup/directory"
REDMINE_DIR="/opt/redmine"
DB_NAME="redmine"
DB_USER="redmine"
DB_PASS="your_password"

# Backup files
tar -czf $BACKUP_DIR/redmine_files_$(date +%Y%m%d).tar.gz $REDMINE_DIR

# Backup database
pg_dump -U $DB_USER $DB_NAME > $BACKUP_DIR/redmine_db_$(date +%Y%m%d).sql

# Or for MySQL:
# mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/redmine_db_$(date +%Y%m%d).sql

Запланируйте регулярный запуск этого сценария с помощью cron.

Устранение распространенных проблем

Даже при тщательной установке вы можете столкнуться с некоторыми проблемами. Вот решения распространенных проблем:

Проблемы с подключением к базе данных

Если Redmine не может подключиться к базе данных, дважды проверьте файл data.yml на наличие правильных учетных данных. Убедитесь, что сервер базы данных работает и доступен.

Конфликты версий Ruby

Если вы столкнулись с конфликтом версий Ruby, убедитесь, что вы используете правильную версию, указанную в требованиях Redmine. При необходимости используйте RVM для переключения между версиями Ruby.

Ошибки конфигурации веб-сервера

Проверьте журналы ошибок Nginx (/var/log/nginx/error.log) для решения любых проблем с конфигурацией. Убедитесь, что пассажирский модуль правильно установлен и серверный блок правильно настроен.