Установка Redmine на Ubuntu 20.04

Redmine — это бесплатное и открытое приложение для управления проектами на Ruby. Работает через веб-интерфейс и поддерживает несколько проектов, систему отслеживания задач, вики, форумы, календарь и интеграцию с системами контроля версий. В этом руководстве показано, как установить Redmine на сервер с Ubuntu 20.04 и Apache/Passenger.
Основные возможности
- Диаграмма Ганта и календарь
- Поддержка нескольких проектов
- Ролевая модель доступа
- Уведомления по электронной почте
- Система отслеживания задач (Issues)
- Интеграция с SCM (например, Git)
- Многоязычность и поддержка разных СУБД
Важно: этот гайд рассчитан на установку в продакшен-подобной среде на Ubuntu 20.04 с Apache и Passenger. Если вы хотите использовать Docker, Nginx или другую базу данных — см. раздел «Альтернативные подходы».
Кому это нужно
Кому подойдёт этот материал: системным администраторам, DevOps-инженерам и разработчикам, которые хотят поднять собственный инстанс Redmine на сервере с Ubuntu 20.04.
Краткое определение: Passenger — модуль Apache, который запускает приложения на Ruby/Python/Node.js и управляет их процессами.
Требования
- Сервер с Ubuntu 20.04
- Домен, указывающий на IP сервера (рекомендуется)
- Доступ root или пользователь с sudo
Подготовка системы
Обновите кэш APT:
apt-get update -yУстановите необходимые пакеты для сборки, библиотек работы с изображениями и клиентских библиотек MySQL:
apt-get install build-essential libmysqlclient-dev libmysqlclient-dev imagemagick libmagickwand-dev libmagickcore-dev apt-transport-https ca-certificates dirmngr gnupg2 -yПримечание: imagemagick используется Redmine для обработки вложений и миниатюр.
Установка Apache, MariaDB и Passenger
Установим Apache, модуль Passenger для Apache и сервер MariaDB:
apt-get install apache2 apache2-dev libapache2-mod-passenger mariadb-server mariadb-client -yЗапустите сервисы:
systemctl start apache2
systemctl start mariadbПроверьте статус служб при необходимости (systemctl status apache2).
Настройка MariaDB
Защитите установку MariaDB и задайте пароль root:
mysql_secure_installationОтветьте утилите положительно на вопросы о пароле root, удалении анонимных пользователей, запрете удалённого доступа для root и удалении тестовой базы.
Создайте базу данных и пользователя для Redmine:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8mb4;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Замените ‘password’ на надёжный пароль и сохраните его в менеджере паролей.
Важно: используйте utf8mb4, чтобы корректно хранить emoji и символы из разных языков.
Установка Redmine из репозитория Ubuntu
Пакет Redmine доступен в стандартных репозиториях Ubuntu:
apt-get install redmine redmine-mysql -yВо время установки пакет попросит настроить базу данных. Выберите «yes» и введите пароль MySQL приложения (тот самый, что задали выше).


Обновите gem и установите bundler:
gem update
gem install bundlerЕсли команда gem недоступна или вызывает ошибки, убедитесь, что установлены ruby и rubygems. В Ubuntu пакет ruby может требовать дополнительной установки.
Конфигурация Passenger
Отредактируйте конфиг Passenger, чтобы процессы запускались от www-data:
nano /etc/apache2/mods-available/passenger.confИзмените содержимое на:
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
Сохраните файл.
Создайте символическую ссылку публичной части Redmine в корне веб-сервера и выставьте владельца:
ln -s /usr/share/redmine/public /var/www/html/redmine
chown -R www-data:www-data /var/www/html/redmineКонфигурация Apache для Redmine
Создайте виртуальный хост:
nano /etc/apache2/sites-available/redmine.confДобавьте:
ServerAdmin [email protected]
DocumentRoot /var/www/html/redmine
ServerName redmine.example.com
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Замените ServerName и ServerAdmin на свои значения.
Включите модуль rewrite и сайт, затем перезапустите Apache:
a2enmod rewrite
a2ensite redmine.conf
systemctl restart apache2Проверьте статус:
systemctl status apache2Ожидаемый пример вывода демонстрирует активность сервера и процессы Passenger.
Доступ к веб-интерфейсу и первичная настройка
Откройте в браузере http://redmine.example.com (замените на ваш домен). На странице входа используйте административный аккаунт:
- Имя пользователя: admin
- Пароль: admin
Система предложит сменить пароль. Установите безопасный пароль и сохраните резервный доступ.




Проверка работоспособности
- Авторизуйтесь под admin. Если панель отображается и создаются проекты — установка успешна.
- Проверьте лог Apache на ошибки: /var/log/apache2/error.log
- Проверьте логи Redmine (если есть) в /var/log/redmine или /var/www/html/redmine/log.
Безопасность и жёсткая конфигурация
Важно выполнить следующие шаги перед запуском в продакшен:
- Включите HTTPS: получайте TLS-сертификат через Let’s Encrypt и настройте виртуальный хост на 443.
- Отключите функцию установки пакетов на продакшен-сервере и примените минимальные права на файлы.
- Настройте регулярное резервное копирование базы данных и каталога files Redmine.
- Настройте почтовый сервер/SMTP для уведомлений и тестируйте отправку писем.
- Обновляйте систему и Ruby-гемы по расписанию, тестируя обновления на стенде.
Резервное копирование и миграция
Минимальный набор для восстановления:
- Дамп базы данных: mysqldump redmine > redmine.sql
- Папка public/files — вложения пользователей
- Конфиги (например, /etc/redmine, /etc/apache2/sites-available/redmine.conf)
При миграции на другую машину импортируйте базу, восстановите файлы и исправьте параметры в config/database.yml.
Альтернативные подходы
- Docker: использование официального образа Redmine или кастомного docker-compose позволяет изолировать зависимости и упростить миграции.
- Nginx + Passenger или Puma: Nginx часто быстрее в статике и даёт гибкую конфигурацию обратного прокси.
- Установка из исходников: когда нужна особая версия Redmine — собрать и настроить руками через rvm/rbenv.
Когда это не подходит: репозиторный пакет Ubuntu может быть старее актуальной версии Redmine. Для получения новых релизов рассмотрите установку из исходников или Docker.
Типовые проблемы и их решения
- Ошибка bundle при старте: убедитесь, что bundler установлен и запущен от правильного Ruby (PassengerDefaultRuby).
- Проблемы с правами на файлы: выполните chown -R www-data:www-data /var/www/html/redmine и проверьте права на папку files.
- Ошибка подключения к БД: проверьте config/database.yml или учётные данные, права пользователя и возможность подключения по сокету/localhost.
Чеклист для развёртывания (роль: DevOps)
- Обновлён APT и установлены зависимости
- Установлены apache2, mariadb-server, libapache2-mod-passenger
- Создана БД redmine и пользователь с нужными правами
- Установлен пакет redmine и заданы параметры БД
- Создан виртуальный хост Apache и включён модуль rewrite
- Настроен HTTPS и сертификаты
- Настроено резервное копирование и мониторинг
Критерии приёмки
- Веб-интерфейс Redmine доступен по настроенному домену
- Удачная авторизация под admin и смена пароля
- Возможность создать проект и задачу
- Логи чистые от критических ошибок (в течение 5 минут после запуска)
Короткая методология проверки перед запуском
- Проверка служб: systemctl status apache2 mariadb
- Проверка логов: tail -n 200 /var/log/apache2/error.log
- Тест UI: авторизация, создание проекта, загрузка вложения
- Тест почты: отправка уведомления по созданию задачи
Совместимость и заметки по версиям
- Тестировано для Ubuntu 20.04; на 22.04 возможны отличия в версиях Ruby и пакетах (проверьте зависимости gem).
- Репозиторный пакет Redmine может отставать от upstream: для новых функций используйте установку из исходников или контейнеры.
Короткое резюме
Поздравляем — вы установили и настроили Redmine на Ubuntu 20.04 с Apache и Passenger. Проведите базовую проверку, настройте HTTPS и резервное копирование, а затем перенесите проект в продакшен-пользование.
Важно: планируйте регулярные обновления зависимостей и мониторинг для поддержки безопасности и стабильности.
Справочная информация
Официальная документация Redmine: https://www.redmine.org/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента