Перейти к содержанию

Обзор развертывания Redmine на сервере

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

Для корректной работы приложения требуются следующие условия:

  • Установленный Docker и Docker Compose.

  • Доступ к портам 80 (HTTP) и 443 (HTTPS).

  • Наличие доменного имени, соответствующего шаблону конфигурации.

  • Права суперпользователя (root) для управления директориями в /opt и /data.

FDQN итоговой панели на домене hostkey.in

Для доступа к приложению используется следующий шаблон домена:

Параметр Значение
Префикс redmine
Домен hostkey.in
Полный шаблон redmine{Server_ID_from_Invapi}.hostkey.in

Структура файлов и каталогов

В процессе работы приложения используются следующие пути:

  • /opt/redmine — рабочая директория приложения, содержащая конфигурацию Docker Compose.

  • /data/nginx/user_conf.d/ — директория с конфигурационными файлами Nginx для управления проксированием и SSL.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для контейнера Nginx.

Процесс установки приложения

Развертывание Redmine выполняется путем настройки Docker-окружения:

  1. Создается рабочая директория /opt/redmine.

  2. Формируется конфигурационный файл docker-compose.yml на основе параметров сервера.

  3. Генерируется конфигурационный файл Nginx для обеспечения обратного проксирования и поддержки SSL.

  4. Запускается контейнерная среда с помощью команды docker compose up -d.

Приложение использует автоматическую генерацию секретных ключей (REDMINE_SECRET_KEY) и паролей для базы данных (REDMINE_MYSQL_PASSWORD) в целях обеспечения безопасности.

Контейнеры Docker и их запуск

Для работы приложения используется группа контейнеров, описанных в docker-compose.yml. Все сервисы имеют политику автоматического перезапуска при сбоях.

База данных

  • Имя образа: mysql:8.0

  • Имя контейнера: redmine-mysql

  • Переменные окружения:

  • MYSQL_ROOT_PASSWORD: пароль суперпользователя базы данных.

  • MYSQL_DATABASE: redmine.

Основное приложение

  • Имя образа: redmine

  • Имя контейнера: redmine

  • Переменные окружения:

  • REDMINE_DB_MYSQL: db (имя сервиса базы данных).

  • REDMINE_DB_PASSWORD: пароль для подключения к базе.

  • REDMINE_SECRET_KEY_BASE: уникальный секретный ключ приложения.

  • Зависимости: Запуск происходит только после успешной проверки состояния (healthcheck) контейнера базы данных.

Прокси-сервер и SSL

  • Имя образа: jonasal/nginx-certbot:latest

  • Имя контейнера: redmine-nginx

  • Порты: 80 (HTTP), 443 (HTTPS).

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt — для хранения SSL-сертификатов.

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d — для пользовательских конфигураций Nginx.

  • Переменные окружения:

  • CERTBOT_EMAIL: hkadm@hostkey.com.

Базы данных

База данных развернута в отдельном контейнере Docker (MySQL 8.0). Данные изолированы внутри контейнера и доступны приложению Redmine по внутреннему сетевому имени сервиса db.

Инструкция по обновлению приложения

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

  1. Перейти в директорию с конфигурацией: cd /opt/redmine

  2. Выполнить команду: docker compose pull && docker compose up -d

Расположение конфигурационных файлов и данных

  • Конфигурация Docker Compose: /opt/redmine/docker-compose.yml

  • Конфигурация Nginx (проксирование): /data/nginx/user_conf.d/{prefix}{server_id}.{zone}.conf

  • Данные SSL-сертификатов: хранятся в именованном томе nginx_secrets.

Доступные порты для подключения

Протокол Порт Назначение
HTTP 80 Перенаправление на HTTPS
HTTPS 443 Основной доступ к интерфейсу Redmine
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×