Как установить и настроить Redmine на Debian 9

Redmine — это бесплатное приложение с открытым исходным кодом для управления проектами и отслеживания проблем. Это кроссплатформенная и кросс-база данных, построенная на основе Ruby on Rails.

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

В этом руководстве мы покажем вам, как установить и настроить последнюю версию Redmine на сервере Debian 9, используя MySQL в качестве серверной части базы данных и Passenger + Nginx в качестве сервера приложений Ruby.

Подготовка

Прежде чем продолжить работу с этим руководством, убедитесь, что вы выполнили следующие предварительные требования:

Создание базы данных MySQL

Redmine поддерживает MySQL / MariaDB, Microsoft SQL Server, SQLite 3 и PostgreSQL . Мы будем использовать MariaDB в качестве серверной части базы данных. Убедитесь, что на вашем компьютере установлена как минимум MySQL 5.7 или MariaDB 10.3.

Если MariaDB или MySQL не установлены на вашем сервере Debian, вы можете установить их, следуя этим инструкциям .

Начните с входа в консоль MySQL, набрав:

sudo mysql

Выполните следующий оператор SQL, чтобы создать новую базу данных :

CREATE DATABASE redmine CHARACTER SET utf8mb4;

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

GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Не забудьте сменить change-with-strong-password на надежный.

После этого выйдите из консоли MariaDB, набрав:

EXIT;

Установка Ruby

Самый простой способ установить Ruby в Debian — использовать менеджер пакетов apt :

Установите Ruby, набрав:

sudo apt install ruby-full

На момент написания в репозиториях Debian стоит 2.3.3p222 которая поддерживается последней версией Redmine.

Если вы хотите установить Ruby через Rbenv или RVM, посетите это руководство .

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

Passenger — это быстрый и легкий сервер веб-приложений для Ruby, Node.js и Python, который можно интегрировать с Apache и Nginx. Мы установим Passenger как модуль Nginx.

Убедитесь, что Nginx установлен, прежде чем продолжить следующие шаги.

Установка необходимых пакетов для включения репозитория https:

sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common

Импортируйте ключ GPG репозитория и включите репозиторий Phusionpassenger :

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'

Обновите список пакетов и установите модуль Passenger Nginx с помощью:

sudo apt updatesudo apt install libnginx-mod-http-passenger

Установка Redmine на Debian

Начните с установки зависимостей, необходимых для сборки Redmine:

sudo apt install build-essential libmariadbclient-dev imagemagick libmagickwand-dev curl ruby-dev libxslt-dev libxml2-dev zlib1g-dev

На момент написания этой статьи последней стабильной версией Redmine была версия 4.0.4.

Перед тем, как перейти к следующему шагу, вам следует проверить страницу загрузки Redmine, чтобы найти более новую версию.

1. Скачивание Redmine

Загрузите архив Redmine с помощью следующей команды curl :

sudo curl -L http://www.redmine.org/releases/redmine-4.0.4.tar.gz -o /tmp/redmine.tar.gz

После завершения загрузки извлеките архив и переместите его в каталог /opt :

cd /tmpsudo tar zxf /tmp/redmine.tar.gzsudo mv /tmp/redmine-4.0.4 /opt/redmine

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

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

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

Откройте файл в текстовом редакторе:

sudo nano /opt/redmine/config/database.yml

Найдите production раздел и введите базу данных MySQL и информацию о пользователе, которую мы создали ранее:

/opt/redmine/config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "change-with-strong-password"
  encoding: utf8

После этого сохраните файл и выйдите из редактора.

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

Перейдите в каталог redmine и установите бандлер и другие зависимости Ruby:

cd /opt/redmine/sudo gem install bundler --no-rdoc --no-ri sudo bundle install --without development test postgresql sqlite

4. Сгенерируйте ключи и перенесите базу данных.

Выполните следующую команду, чтобы сгенерировать ключи и перенести базу данных:

cd /opt/redmine/sudo bundle exec rake generate_secret_tokensudo RAILS_ENV=production bundle exec rake db:migrate

5. Установите правильные разрешения.

Nginx работает как пользователь и группа www-data . Установите правильные разрешения, выполнив следующую команду chown :

sudo chown -R www-data: /opt/redmine/

Настроить Nginx

К настоящему времени у вас уже должен быть установлен Nginx с сертификатом SSL в вашей системе, если нет, проверьте предварительные требования для этого руководства.

Откройте текстовый редактор и создайте следующий файл блока сервера Nginx :

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /opt/redmine/public;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    passenger_enabled on;
    passenger_min_instances 1;
    client_max_body_size 10m;
}
Не забудьте заменить example.com своим доменом Redmine и указать правильный путь к файлам сертификатов SSL. Все HTTP-запросы будут перенаправлены на HTTPS . Фрагменты, используемые в этой конфигурации, созданы в этом руководстве .

Включите блокировку сервера, создав символическую ссылку на каталог sites-enabled :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Перед перезапуском сервиса Nginx проверьте, нет ли синтаксических ошибок:

sudo nginx -t

Если ошибок нет, результат должен выглядеть так:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, перезапустите службу Nginx , набрав:

sudo systemctl restart nginx

Доступ к Redmine

Откройте браузер , введите свой домен и, если установка прошла успешно, появится экран, подобный следующему:

Учетные данные для входа в Redmine по умолчанию:

  • Имя пользователя: admin
  • Пароль: admin

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

После изменения пароля вы будете перенаправлены на страницу учетной записи пользователя.

Выводы

Вы успешно установили Redmine в своей системе Debian. Теперь вам следует проверить документацию Redmine и узнать больше о том, как настроить и использовать Redmine.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Оставьте комментарий