Redmine — это веб-приложение с открытым исходным кодом (лицензия GPLv2), разработанное на Ruby on Rails. Его используют, чтобы управлять задачами и настраивать рабочие процессы, контролировать сроки, работать с репозиториями и разграничивать права доступа.
Redmine поддерживает плагины и позволяет гибко настраивать рабочие процессы. Администратор может менять статусы задач, трекеры, роли пользователей, уведомления и интеграции, подстраивая систему под конкретные процессы разработки и управления проектами.
Несмотря на популярность облачных сервисов (Jira, GitLab Issues или YouTrack), Redmine по-прежнему востребован. Приложение используется, когда важно сохранить полный контроль над данными и независимость от внешних SaaS-платформ. Поэтому его часто используют компании с повышенными требованиями к безопасности.
В статье расскажем, как установить Redmine на Ubuntu (инструкцию по развертыванию на CentOS и AlmaLinux можно прочитать здесь). Для работы приложения потребуется:
- база данных MySQL;
- интерпретатор Ruby и фреймворк Rails;
- веб-сервер: Apache или Nginx;
- сервер приложений Ruby: Passenger или Puma.
Инструкция подойдёт для развёртывания приложения на сервере без предустановленного окружения (с нуля), а также для интеграции в стек LAMP или LEMP.
Команды в статье предполагают выполнение с правами суперпользователя (sudo), часть операций выполняется от имени системного пользователя redmine.
Ручная установка Redmine довольно трудоемкая. Если нет времени разбираться с зависимостями и настройкой окружения — закажите VDS с готовым рецептом. Вы получите рабочую систему, на которой можно разворачивать проекты.
Требования к серверу
Указанные требования ориентировочные. Точное количество нужных ресурсов зависит от интенсивности использования приложения, количества плагинов, объёма вложений, размера базы данных и настроек СУБД.
Минимальная конфигурация
Подходит для тестов или работы 1–3 пользователей, без плагинов и вложений.
- CPU: 1 vCPU.
- RAM: 1 ГБ.
- Диск: 1–2 ГБ HDD.
- База данных: SQLite/ MySQL / PostgreSQL.
- Веб-сервер: Apache + Passenger / Nginx + Puma.
Малый сервер
Подходит для небольшой команды из 5–20 пользователей, умеренного количества задач и вложений.
- CPU: 2 vCPU.
- RAM: 2–4 ГБ.
- Диск: 10–20 ГБ SSD.
- База данных: MySQL/PostgreSQL.
- Веб-сервер: Apache + Passenger / Nginx + Puma.
Средний сервер
Подходит для активной эксплуатации команды из 20–70 пользователей. Обеспечит комфортную эксплуатацию с вложениями, плагинами и интеграциями.
- CPU: 4 vCPU.
- RAM: 4–8 ГБ.
- Диск: 50–100 ГБ SSD (желательно NVMe).
- База данных: PostgreSQL.
- Веб-сервер: Nginx + Puma.
- Дополнительно: Redis (желательно для кэша и плагинов).
Установка MySQL
Если у вас установлен LAMP или LEMP, значит, MySQL уже предустановлен. В этом случае можно начать с пункта 3.
- Обновите информацию о пакетах:
sudo apt update- Установите сервер MySQL и включите автозапуск:
sudo apt -y install mysql-server
sudo systemctl enable --now mysql- Запустите базовую первичную настройку MySQL:
sudo mysql_secure_installationПодробная инструкция по установке MySQL есть в другой нашей статье.
- Зайдите в MySQL:
sudo mysql- Выполните команду:
SHOW VARIABLES LIKE '%isolation';Запомните имя переменной: оно понадобится на этапе подключения БД к redmine:

- Создайте базу данных, пользователя, выдайте ему необходимые права и установите пароль. Лучше использовать сложные пароли — длинные комбинации (от 12+ символов), состоящие из набора заглавных и строчных букв, цифр и специальных символов. Этот пароль понадобится нам позже.
CREATE DATABASE redmine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'StrongPassw0rd!';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;Установка Ruby и зависимостей для сборки gem
Подготовка
- Установите все необходимое для сборки Ruby, gem’ов (библиотек Ruby) и корректной работы Redmine — компилятор, SSL, БД, сжатие и системные библиотеки:
sudo apt install -y rsync curl git build-essential libssl-dev libreadline-dev zlib1g-dev libyaml-dev libffi-dev libgdbm-dev libncurses5-dev libsqlite3-dev libmysqlclient-dev libyaml-dev- В работе могут потребоваться пакеты, необходимые для поддержки систем контроля версий, обработки изображений, а также сборки Ruby и его расширений, используемых Redmine. Эти пакеты не обязательны к установке, но желательны.
sudo apt -y install subversion imagemagick pkg-config bison - Создайте пользователя redmine, под которым будет работать приложение, и переключитесь на него:
sudo useradd -r -m -d /home/redmine -s /bin/bash redmine
sudo -iu redmine- Для установки Ruby будем использовать rbenv — менеджер версий Ruby, который позволяет управлять версиями интерпретатора независимо от системного Ruby. Это обеспечивает совместимость с требуемой версией Redmine и уменьшает риск конфликтов версий Ruby и зависимостей при обновлении системы. Установите rbenv и плагин ruby-build из исходников:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build- Добавьте rbenv в
PATHи инициализируйте его вshell. Для этого откройте файл:
nano ~/.profileИ добавьте в самый конец:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"Для применения настроек выйдите и зайдите под пользователем Redmine:
exit
sudo -iu redmineУстановка Ruby
- Версию Ruby можно проверить в официальной документации Redmine. Выберите нужную из поддерживаемого диапазона. В данной инструкции установим Redmine — 6.1, Ruby — 3.4.

Проверьте доступные для установки версии Ruby:
rbenv install -l
- Запустите установку:
rbenv install 3.4.8Дождитесь окончания установки. Ее продолжительность зависит от производительности сервера:

- Установите данную версию Ruby глобально для пользователя Redmine:
rbenv global 3.4.8- Установите Bundler — инструмент управления зависимостями для приложений на языке Ruby. Он установит нужные версии gems, необходимых проекту.
gem install bundler- Выйдите из сессии пользователя Redmine:
exitУстановка Redmine
Установим свежую версию Redmine. Скачать нужную версию вы можете с сайта проекта.
- Создайте директорию проекта:
sudo mkdir -p /var/www/redmine/- Скачайте архив и распакуйте его:
cd /tmp
curl -fL -o redmine.tar.gz https://www.redmine.org/releases/redmine-6.1.1.tar.gz
tar xzf redmine.tar.gz
sudo rsync -a redmine-6.1.1/ /var/www/redmine/
sudo rm -rf redmine.tar.gz redmine-6.1.1- Подключите Redmine к базе данных:
cd /var/www/redmine
sudo cp config/database.yml.example config/database.ymlОткройте файл database.yml и измените поля username и password в блоке production. Используйте пароль, который вы указали при создании пользователя MySQL. При необходимости измените имя переменной в блоке variables — оно должно соответствовать параметру, определённому в разделе «Установка MySQL» (transaction_isolation или tx_isolation).
sudo nano config/database.yml
- Создайте вспомогательные директории:
sudo mkdir -p tmp tmp/pdf public/assets- Установите пользователя Redmine владельцем файлов:
sudo chown -R redmine:redmine /var/www/redmine- Под пользователем Redmine cкачайте и установите все gem-зависимости проекта (которые прописаны в
Gemfileи закреплены вGemfile.lock):
sudo -iu redmine
cd /var/www/redmine/
bundle config set --local path 'vendor/bundle'
bundle config set --local without 'development test'
bundle installВ выводе появится длинный список зависимых пакетов. Также будет установлен Rails.
В начале вывода может появиться предупреждение [DEPRECATED] об устаревших Windows-платформах (:mingw, :mswin). Оно информирует, что в будущих версиях Bundler эти обозначения удалят. Поэтому предупреждение можно проигнорировать — установка продолжится в штатном режиме.

После завершения установки могут появиться информационные сообщения (post-install messages) gem’ов. Они не указывают на ошибки и не требуют дополнительных действий.

Инициализация Redmine
Продолжайте установку под пользователем Redmine.
- Сгенерируйте секретный ключ приложения (secret token) для Redmine. С его помощью можно подписывать cookies-сессии, чтобы их нельзя было подделать; защищать данные, которые Rails хранит на стороне клиента; обеспечивать корректную работу авторизации и сессий.
bundle exec rake generate_secret_token- Запустите миграции. В контексте Ruby от Rails — это набор Ruby-скриптов, которые: создают таблицы Redmine в БД; создают индексы; добавляют поля; обновляют структуру БД при обновлениях Redmine.
Команда фактически разворачивает схему базы данных Redmine:
RAILS_ENV=production bundle exec rake db:migrateВ выводе появится длинный список изменений:

- Добавьте данные по умолчанию в базу данных:
RAILS_ENV=production REDMINE_LANG=ru bundle exec rake redmine:load_default_data- Выйдите из сессии пользователя redmine:
exitУстановка веб-сервера
Рассмотрим два варианта серверного стека: Apache + Passenger и Nginx + Puma.
- Apache и Nginx выполняют роль веб-сервера и обратного прокси, обрабатывающего входящие HTTP-запросы.
- Passenger и Puma — серверы приложений для Ruby on Rail, которые отвечают за запуск и работу приложения Redmine.
Выберите подходящий в зависимости от требований к нагрузке и сопровождению.
Apache + Passenger
Плюсы:
- проще интеграция с Ruby on Rails;
- встроенное управление процессами приложения;
- стабильная работа без тонкой ручной настройки.
Минусы:
- выше потребление RAM/CPU;
- менее эффективная обработка статических файлов;
- хуже масштабируемость при росте нагрузки.
Nginx + Puma
Плюсы:
- более эффективное использование ресурсов (RAM/CPU);
- высокая производительность при отдаче статики (CSS, JS, изображения, вложения);
- гибкая настройка параметров запуска Puma (workers и threads);
- типовая конфигурация для современных Rails-приложений.
Минусы:
- сложнее первоначальная настройка и тюнинг;
- требуется отдельное управление процессом Puma (systemd и т.п.);
- сложнее диагностика при сбоях по сравнению с Passenger.
Apache + Passenger лучше подходит для небольших установок, где важна минимальная настройка, а Nginx + Puma — для production-среды с более высокой нагрузкой, требующей высокой производительности и гибкой настройки.
Установка Apache + Passenger
Если вы используете готовый стек LAMP, Apache у вас уже установлен. В этом случае можно сразу переходить к пункту 2.
- Установите Apache:
sudo apt -y install apache2 - Установите Passenger:
sudo apt -y install libapache2-mod-passenger- Включите необходимые модули для запуска Apache.
sudo a2enmod passenger rewrite headers env- Запустите Apache, добавив его в автозагрузку:
sudo systemctl enable --now apache2- Добавьте пользователя Apache (
www-data) в группу redmine:
sudo usermod -aG redmine www-data- Настройте виртуальный хост Apache:
sudo nano /etc/apache2/sites-available/redmine.confВставьте (в ServerName укажите свой домен вместо redminetest.fvds.ru):
<VirtualHost *:80>
ServerName redminetest.fvds.ru
DocumentRoot /var/www/redmine/public
PassengerRuby /home/redmine/.rbenv/shims/ruby
<Directory /var/www/redmine/public>
Require all granted
Options -MultiViews
AllowOverride all
</Directory>
</VirtualHost>- Включите сайт:
sudo a2dissite 000-default.conf
sudo a2ensite redmine.conf
sudo systemctl restart apache2Установка Nginx + Puma
Если вы используете стек LEMP, Nginx у вас уже установлен. Поэтому можно начинать с пункта 2.
- Под пользователем redmine откройте файл
Gemfile.
sudo -iu redmine
cd /var/www/redmine/
nano Gemfile- Закомментируйте строку
gem 'puma'(обычно она находится в группе:test, ближе к концу файла):

- Добавьте строку
gem 'puma'передgem 'rails'в начале файла:

- Установите gem с помощью bundle:
bundle install- Создайте конфигурационный файл puma:
nano config/puma.rbВставьте:
directory '/var/www/redmine'
environment 'production'
pidfile '/var/www/redmine/tmp/pids/puma.pid'
state_path '/var/www/redmine/tmp/pids/puma.state'
stdout_redirect '/var/www/redmine/log/puma.stdout.log',
'/var/www/redmine/log/puma.stderr.log',
true
threads 2, 8
workers 2
bind 'unix:///var/www/redmine/tmp/sockets/puma.sock'- Создайте директории:
mkdir -p /var/www/redmine/tmp/pids
mkdir -p /var/www/redmine/tmp/sockets- Вернитесь к основному пользователю:
exit- Создайте unit-файл сервиса в systemd для puma:
nano /etc/systemd/system/redmine-puma.serviceВставьте:
[Unit]
Description=Redmine Puma Server
After=network.target
[Service]
Type=simple
User=redmine
WorkingDirectory=/var/www/redmine
Environment=RAILS_ENV=production
ExecStart=/home/redmine/.rbenv/shims/bundle exec puma -C config/puma.rb
Restart=always
[Install]
WantedBy=multi-user.target- Включите сервис и проверьте его работу:
sudo systemctl daemon-reload
sudo systemctl restart redmine-puma
sudo systemctl status redmine-puma
- Установите nginx:
sudo apt install -y nginx- Настройте виртуальный хост Nginx:
sudo mkdir -p /etc/nginx/sites-available
sudo nano /etc/nginx/sites-available/redmine.confВставьте (в ServerName укажите свой домен вместо redminetest.fvds.ru):
upstream redmine {
server unix:/var/www/redmine/tmp/sockets/puma.sock fail_timeout=0;
}
server {
listen 80;
server_name redminetest.fvds.ru;
root /var/www/redmine/public;
client_max_body_size 20m;
location / {
try_files $uri @redmine;
}
location @redmine {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://redmine;
}
location ~ ^/(assets|images|javascripts|stylesheets|plugin_assets)/ {
expires max;
gzip_static on;
}
}- Активируйте конфигурацию сайта:
sudo mkdir -p /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/redmine.conf /etc/nginx/sites-enabled/redmine.conf
sudo rm -f /etc/nginx/sites-enabled/default- Откройте файл
/etc/nginx/nginx.confи убедитесь, что в блокеhttp {}присутствует строка:
include /etc/nginx/sites-enabled/*;Если она отсутствует, добавьте указанную строку и сохраните файл.
- Перезагрузите службу Nginx:
sudo systemctl restart nginxПроверка и первый вход
Откройте ваш сайт (Redmine) в браузере. В нашем случае это http://redminetest.fvds.ru

Учетные данные:
login: admin
password: adminРекомендуем сразу сменить пароль.
Диагностика
Если приложение не работает, диагностику нужно проводить последовательно: сначала проверить логи веб-сервера, затем — логи приложений.
Логи веб-сервера стоит проверить, если:
- в браузере отображается 502 Bad Gateway / 504 Gateway Timeout;
- открывается заглушка nginx вместо приложения;
- возникают ошибки 404 на уровне сервера;
- есть проблемы с проксированием или сокетом;
- не загружаются большие файлы (413 Request Entity Too Large).
Apache (Passenger) error log:
/var/log/apache2/error.lognginx error log:
/var/log/nginx/error.logЛоги Puma записываются в системный журнал:
journalctl -u redmine-pumaИх необходимо смотреть, если:
- сервис постоянно перезапускается;
- Nginx выдаёт 502;
- сокет puma.sock исчезает или недоступен;
- приложение не поднимается после старта.
Лог приложения Redmine:
/var/www/redmine/log/production.log Этот лог стоит проверить, если:
- страница открывается, но возникает ошибка 500;
- есть ошибки внутри интерфейса Redmine;
- проблемы с плагинами;
- ошибки подключения к базе данных;
- сбои миграций, rake-задач или фоновых операций.
Логи MySQL(MariaDB):
/var/log/mysql/error.log
/var/log/mysql/mariadb.logИх необходимо анализировать, если:
- возникают ошибки подключения к базе данных;
- появляются ошибки миграций и rake-задач;
- в production.log присутствуют
Mysql2::ErrorилиActiveRecord::StatementInvalid; - наблюдаются блокировки или проблемы с транзакциями.

Какие ошибки часто встречаются в логах веб-сервера:
- Изначально Ruby уже активировал
default gem base64 -v 0.1.1и bundler не может переключить его на новую версию. В этом случае поможет установка нужной версии этого gem’а в системный Ruby.
App 8196 output: Error: The application encountered the following error: You have already activated base64 0.1.1, but your Gemfile requires base64 0.3.0. Since base64 is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports base64 as a default gem. (Gem::LoadError)Ruby работает под пользователем Redmine, поэтому нужно зайти под него и установить необходимые версии gem’ов
sudo -iu redmine
gem install base64 -v 0.3.0- Ошибка сообщает, что для работы приложения требуется более свежая версия Ruby. В большинстве случаев проблема заключается в том, что сервер приложений использует системную версию Ruby, а не ту, которую мы установили через rbenv.
App 19342 output: Error: The application encountered the following error: Your Ruby version is 3.0.2, but your Gemfile specified >= 3.2.0, < 3.5.0 (Bundler::RubyVersionMismatch)В таком случае нужно проверить верный ли путь к интерпретатору Ruby указан в конфигурационном файле Apache — /home/redmine/.rbenv/shims/ruby. Либо путь к bundle в unit-файле сервиса Puma — /home/redmine/.rbenv/shims/bundle.