Гид по технологиям

Установка Redmine на Debian 12 с Apache и MariaDB

• 8 min read • Инструкции • Обновлено 26 Nov 2025
Установка Redmine на Debian 12 с Apache и MariaDB
Установка Redmine на Debian 12 с Apache и MariaDB

Что вы получите в этом руководстве

В этом документе описаны все шаги, необходимые для развёртывания Redmine 5.x на сервере Debian 12 с использованием Apache2 + Passenger и MariaDB (MySQL-совместимая). После выполнения вы получите рабочую инстанцию Redmine, доступную по HTTPS, с первоначальной учётной записью администратора и рекомендациями по дальнейшей эксплуатации.

Кратко о Redmine

Redmine — это бесплатный инструмент управления проектами и трекинга задач с веб-интерфейсом, написанный на Ruby on Rails. Поддерживает несколько баз данных (MariaDB/MySQL, PostgreSQL, SQLite), плагины, роли доступа и встроенную вики.

Важно: в руководстве показано развертывание на Debian 12 и использование MariaDB и Apache2. Альтернативы (NGINX, PostgreSQL) описаны в разделе «Альтернативные варианты».


Содержание

  • Требования и подготовка
  • Установка зависимостей
  • Проверка и запуск служб
  • Настройка MariaDB: безопасность и создание БД
  • Загрузка и установка Redmine (Subversion + Bundler)
  • Конфигурация Apache2 и получение SSL через Certbot
  • Первоначальный вход, смена пароля и проверка версии
  • Безопасность, резервное копирование и мониторинг
  • Отладка и распространённые ошибки
  • Роли и чеклист для эксплуатации
  • Критерии приёмки
  • Сводка

Требования и подготовка

Перед началом убедитесь, что у вас есть:

  • Сервер с Debian 12 (x86_64) с доступом по SSH.
  • Ненулевой (не root) пользователь с правами sudo.
  • Доменное имя, указывающее на IP сервера (необязательно для теста на локальной сети, обязательно для HTTPS).
  • Резервные копии критичных данных перед изменением конфигураций.

Совет: регулярно делайте снимки виртуальной машины или используйте систему резервного копирования файлов и БД.

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

Обновите индекс пакетов:

sudo apt update

Установите необходимые пакеты. В этом примере устанавливаются Apache2 с Passenger (через libapache2-mod-passenger), MariaDB, Ruby 3.1 (поставляется из репозиториев Debian 12), Certbot для Let’s Encrypt, ImageMagick и Subversion:

sudo apt install apache2 libapache2-mod-passenger mariadb-server certbot python3-certbot-apache ruby ruby-dev build-essential default-mysql-server default-libmysqlclient-dev libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev subversion

Подтвердите установку, нажав y.

Обновление репозиториев и установка пакетов

После установки проверьте версии и статусы служб.

Проверка Apache2 и MariaDB

Проверьте, что Apache2 включён и запущен:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Проверка статуса Apache2

Проверка MariaDB:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Проверка статуса MariaDB

Проверьте Ruby и Subversion:

ruby --version
svn --version

Ожидаемый Ruby: 3.1.x (Debian 12). Если версия Ruby ниже или вы хотите управлять версиями Ruby, рассмотрите установку rbenv или RVM (раздел «Альтернативные варианты»).

Проверка Subversion

Настройка MariaDB: безопасная установка и создание БД

Запустите утилиту безопасности MariaDB и ответьте на вопросы для усиления защиты:

sudo mariadb-secure-installation

Рекомендуемые ответы (типичный сценарий):

  • Switch to unix_socket authentication? — n (если хотите оставить unix_socket, можно выбрать y, но тогда root будет доступен через sudo)
  • Change the root password? — y
  • Remove anonymous users? — y
  • Disallow root login remotely? — y
  • Remove test database and access to it? — y
  • Reload privilege tables now? — y

Важно: сохраните пароль root MariaDB в защищённом месте.

Войдите в клиент MariaDB и создайте базу данных и пользователя для Redmine. Замените secretPassword на сложный пароль:

sudo mariadb -u root -p

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

Проверьте права:

SHOW GRANTS FOR 'redmine'@'localhost';

Создание базы и пользователя в MariaDB

Затем выполните quit чтобы выйти.

Загрузка и установка Redmine

В этом руководстве мы используем исходники Redmine из SVN ветки 5.0-stable и установим зависимости через Bundler.

Установите Bundler:

gem install bundler

Установка Bundler

Перейдите в директорию /var/www и загрузите Redmine:

cd /var/www
svn co https://svn.redmine.org/redmine/branches/5.0-stable redmine-5.0

Загрузка исходников Redmine

Перейдите в каталог и создайте файл конфигурации БД по образцу:

cd /var/www/redmine-5.0
cp config/database.yml.example config/database.yml

Откройте config/database.yml и укажите параметры для production (замените password на ваш пароль):

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "secretPassword"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Сохраните файл.

Установите Ruby-зависимости, исключив группы development и test:

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

Установка Ruby-зависимостей

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

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

Миграция базы данных Redmine

Загрузите начальные данные (опционально, можно выбрать язык):

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

Ожидаемый вывод: “Default configuration data loaded”.

Права доступа к файлам

Назначьте владельца и права для папки Redmine (Apache под пользователем www-data):

sudo chown -R www-data:www-data /var/www/redmine-5.0
sudo find /var/www/redmine-5.0 -type d -exec chmod 755 {} +
sudo find /var/www/redmine-5.0 -type f -exec chmod 644 {} +

Это важный шаг: неправильные права приводят к ошибкам доступа при запуске.

Конфигурация Apache2: виртуальный хост и Passenger

Создайте виртуальный хост /etc/apache2/sites-available/redmine.conf:

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

Вставьте конфигурацию (обновите ServerName на ваш домен):



    ServerName redmine.howtoforge.local
    RailsEnv production
    DocumentRoot /var/www/redmine-5.0/public

    ErrorLog ${APACHE_LOG_DIR}/redmine.howtoforge.local.error.log
    CustomLog ${APACHE_LOG_DIR}/redmine.howtoforge.local.access.log combined

    
        Allow from all
        Require all granted
    

Включите модуль rewrite и сайт, проверьте конфигурацию и перезапустите Apache:

sudo a2enmod rewrite
sudo a2ensite redmine.conf
sudo apachectl configtest
sudo systemctl restart apache2

Настройка виртуального хоста Apache

Получение SSL сертификата с Certbot

Запустите certbot (замените email и домен):

sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d redmine.howtoforge.local

Certbot автоматически изменит конфигурацию виртуального хоста для HTTPS и создаст сертификаты в /etc/letsencrypt/live/<ваш_домен>/.

Важно: убедитесь, что DNS вашего домена указывает на сервер, иначе certbot не сможет подтвердить владение доменом.

Доступ к Redmine и первые шаги

Откройте браузер и перейдите по адресу https://ваш_домен. Первоначальные учётные данные администратора:

  • Логин: admin
  • Пароль: admin

При первом входе система предложит сменить пароль администратора. Обновите контактные данные администратора и настройте SMTP, если хотите отправлять уведомления.

Вход в Redmine

Смените пароль администратора и подтвердите изменения.

Смена пароля администратора

Проверьте Информация об установке в разделе Администрирование > Информация, чтобы убедиться в версиях компонентов (Redmine, Ruby, Rails, adapter mysql2, Subversion).

Информация об установке Redmine

Безопасность, резервное копирование и сопровождение

Рекомендуемые практики эксплуатации:

  • Обновления: регулярно обновляйте Debian, Ruby-библиотеки и плагины Redmine.
  • Бэкапы БД: делайте ежедневные дампы MariaDB с помощью cron и храните копии вне сервера.

Пример простого резервного копирования MariaDB:

mysqldump -u root -p redmine | gzip > /var/backups/redmine-$(date +%F).sql.gz
  • Файлы: копируйте папку files и конфигурационные файлы (/var/www/redmine-5.0/config) вместе с дампом БД.
  • Права доступа: не запускайте процессы Redmine от root; используйте www-data.
  • SSL: certbot автоматически ставит cron для продления сертификатов, проверьте sudo certbot renew --dry-run.
  • Мониторинг: включите мониторинг диска, памяти и процессов (systemd unit для Apache, MariaDB).

Настройка почты (SMTP)

Чтобы Redmine отправлял уведомления, создайте файл config/configuration.yml и добавьте секцию email_delivery с параметрами SMTP. Пример для SMTP (Postfix/SMTP-сервиса):

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "smtp.example.com"
      port: 587
      domain: "example.com"
      authentication: :login
      user_name: "user@example.com"
      password: "smtp_password"
      enable_starttls_auto: true

Перезапустите веб-сервер после изменений.

Отладка и распространённые ошибки

  • Проблема: белая страница или 500 ошибка.

    • Проверьте логи Apache: /var/log/apache2/redmine.*.log
    • Проверьте логи Redmine: /var/www/redmine-5.0/log/production.log
    • Убедитесь, что файлы имеют корректного владельца (www-data).
  • Проблема: ошибка при миграции БД.

    • Проверьте настройки config/database.yml, тестируйте вход в MariaDB под пользователем redmine.
  • Проблема: certbot не может проверить домен.

    • Проверьте DNS A/AAAA записи и наличие открытых портов 80/443.
  • Проблема: разрешения файлов не позволяют загрузить вложения.

    • Убедитесь в правах на каталог files: chown -R www-data:www-data files

Альтернативные варианты и когда они лучше

  • NGINX вместо Apache: лучше при высокой нагрузке и при использовании Phusion Passenger + NGINX или Puma.
  • PostgreSQL: рекомендован в некоторых корпоративных средах за счёт расширенных возможностей транзакций и репликации.
  • Управление Ruby-версиями: rbenv/RVM позволяют свободно переключать версии Ruby, полезно при установке плагинов, требующих других версий.

Роли и чеклист для развёртывания и эксплуатации

Роль: системный администратор

  • Подготовить сервер и DNS.
  • Установить зависимости и конфигурировать службы.
  • Настроить бэкапы и мониторинг.

Роль: администратор Redmine

  • Создать проекты и роли пользователей.
  • Настроить уведомления и интеграции (LDAP, SMTP).
  • Установить необходимые плагины и темы.

Чеклист перед передачей в эксплуатацию:

  • Установлен SSL и проверено продление сертификата
  • Настроен бэкап БД и файлов
  • Права и владельцы каталогов установлены
  • SMTP настроен и протестирован
  • Созданы учётные записи и права доступа

Критерии приёмки

  • Доступ по HTTPS к главной странице Redmine.
  • Успешный вход с учётной записью admin после смены пароля.
  • Успешное создание задачи и загрузка вложения.
  • Наличие рабочих резервных копий: дамп БД и копия каталога files.
  • Логи не содержат критических ошибок при выполнении основных операций.

Быстрый справочник команд (Cheat sheet)

  • Обновить пакеты: sudo apt update && sudo apt upgrade
  • Перезапустить Apache: sudo systemctl restart apache2
  • Просмотреть лог Redmine: tail -f /var/www/redmine-5.0/log/production.log
  • Создать дамп БД: mysqldump -u root -p redmine > redmine.sql
  • Проверка продления сертификатов: sudo certbot renew --dry-run

Решение типичных задач и сценариев отказа

  • Восстановление из бэкапа:

    1. Восстановите дамп БД: gunzip < redmine-YYYY-MM-DD.sql.gz | mysql -u root -p redmine
    2. Восстановите содержимое папки files и config.
    3. Перезапустите Apache.
  • Миграция на новый сервер:

    1. Сделайте дамп БД и скопируйте папку files и конфиги.
    2. Разверните Redmine на новом сервере (те же версии Ruby/Gems).
    3. Выполните bundle install и RAILS_ENV=production bundle exec rake db:migrate.

Mini-методология: как безопасно обновлять Redmine

  1. На тестовом сервере выполните полную процедуру обновления (код, Gems, миграции).
  2. Протестируйте функционал, плагины и API.
  3. Создайте бэкап продакшенБД и файлов перед обновлением.
  4. На продакшене примените те же шаги и проконтролируйте логи.

Decision flow — какой стек выбрать?

flowchart TD
  A[Нужна простота и быстрая настройка?] -->|Да| B[Apache + Passenger]
  A -->|Нет: нужна высокая производительность| C[NGINX + Puma]
  B --> D[MariaDB 'MySQL-совместимая' — проще в поддержке]
  C --> E[PostgreSQL — расширенные возможности]
  D --> F[Подходит для небольших и средних инсталляций]
  E --> F

Глоссарий (1 строка)

  • Redmine — веб-приложение для управления проектами и задачами на Ruby on Rails.
  • Passenger — модуль для интеграции Ruby-приложений в Apache/Nginx.
  • Bundler — менеджер зависимостей Ruby.
  • Certbot — инструмент для автоматической выдачи сертификатов Let’s Encrypt.

Безопасность и приватность

  • GDPR/LPD: если вы храните личные данные пользователей ЕС/России, документируйте обработку данных и обеспечьте доступ по HTTPS.
  • Минимизируйте количество администраторов и используйте сложные пароли.
  • Отключите ненужные плагины и регулярно проверяйте уязвимости.

Частые вопросы и рекомендации

  • Можно ли использовать SQLite для продакшна? SQLite подходит для тестирования и небольших инстанций, но не рекомендуется для продакшен с многопользовательским доступом.
  • Как добавить плагины? Скачайте плагин в папку plugins и выполните bundle install и RAILS_ENV=production bundle exec rake redmine:plugins:migrate.

Заключение

Вы успешно установили Redmine на Debian 12, настроили MariaDB, установили зависимости Ruby, сконфигурировали Apache и получили SSL-сертификат через Certbot. Дальше рекомендуем настроить автоматические бэкапы, мониторинг и тестовое окружение для обновлений.

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


Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро