Введення та налаштування Redmine на Debian 9

7/20/2020
10 minutes
Лукаш Беньа.

Redmine включає різні види підтримки проектів, вікі, відстеження проблем системи, форуми, календарі, електронні повідомлення та багато іншого. У цьому підручнику ми покажемо вам, як встановити та налаштувати нову версію Redmine на Debian 9.

Перед початком переконайтеся, що ви зробили це

  • Маєте доменне ім'я, яке вказує на публічний IP-адресу на вашому сервері. Ми будемо використовувати example.com.
  • Увійшли як користувач з sudo-правами.
  • Встановили Nginx.
  • Маєте встановлену SSL-декларацію домену.


Створіть базу даних My SQL

Redmine підтримує MySQL/MariaDB, SQL Server, SQLite 3, Microsoft та PostgreSQL. Ми використовуватимемо MariaDB як back-end для бази даних. Перевірте, що ви встановили принаймні MySQL 5.7 або MariaDB 10.3 на своєму ПК. 
Якщо на вашому сервері Debian немає MariaDB або MySQL, ви можете встановити його, використовуючи ці інструкції. 
Почніть зі входу в консоль MySQL:
$ sudo mysql
Щоб створити нову базу даних, запустіть наступний SQL-запит; 
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
Створіть новий обліковий запис користувача для MySQL та дозвольте доступ до бази даних: 
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
mysql> flush priviledges; <- це важливо! Інакше зміни не будуть застосовуватися до перезапуску служби mysql.
Не забудьте змінити міцний пароль на change-with-strong passwords.
Після завершення роботи вийдіть з консолі MariaDB, набравши:
mysql> EXIT;


Встановіть Ruby

Встановіть останню версію Ruby за допомогою Rbenv або RVM.


RVM

1. встановіть rvm, запустіть його, додайте до автозапуску
curl -sSL https://get.rvm.io | sudo bash -s master
source /etc/profile.d/rvm.sh
echo '[[ -s "/etc/profile.d/rvm.sh" ]] && source "/etc/profile.d/rvm.sh"' >> ~/.bashrc
2. Створіть користувача "easy" (або ви можете назвати його як завгодно, головне, щоб цей користувач працював з вашим додатком Redmine, а не користувачем root. Це потрібно з міркувань безпеки)
useradd -m -G rvm -s /bin/bash easy
Також вам потрібно додати користувача "easy" до групи sudoers (ми повинні дозволити цьому користувачеві запускати деякі команди з sudo)
usermod -a -G sudo easy
Якщо ви це зробили, ви можете пропустити наступний крок, оскільки після цієї команди ваш користувач вже знаходиться в потрібній групі. Перейдіть до цього користувача
su - easy
3. додайте користувача до групи rvm
usermod -a -G rvm easy
Також вам потрібно додати користувача "easy" до групи sudoers (ми повинні дозволити цьому користувачеві запускати деякі команди з sudo)
usermod -a -G sudo easy
Перейдіть до користувача "easy"
su - easy
4. встановіть ruby
rvm install 2.6 --patch railsexpress
5. встановіть git
sudo apt-get install git
6. встановіть ruby 2.6 як типовий
rvm use 2.6 --default
Частина в курсиві потрібна лише тоді, коли ви збираєтеся встановлювати ruby з користувача, який не є root. Якщо ви вирішили залишити це, ви можете замінити ім'я користувача "easy" на "redmine".


Rbenv

Будь ласка, дотримуйтесь інструкцій у цій статті.


Введення Passenger та Nginx #

Passenger - це швидкий, легкий веб-сервер Ruby, Node.js та Python, який можна включити до Apache та Nginx. Passenger буде встановлено як модуль 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 561F9B9CAC40B2F7

$   sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'

Оновіть список пакетів та встановіть модуль Nginx Passenger з:

$   sudo apt update

$   sudo apt install libnginx-mod-http-passenger

$   gem install passenger --no-ri --no-rdoc

$   passenger-install-nginx-module


Встановлення Redmine на Debian

Почніть з встановлення необхідних залежностей для створення Redmine:

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

Перед продовженням наступного кроку перевірте сторінку завантаження Redmine на наявність новішої версії.


Завантаження Redmine

Використовуйте наступну команду curl для завантаження архіву на Redmine:

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

Після завершення завантаження розпакуйте архів та перенесіть його в каталог /opt:

$  cd /tmp

$  sudo tar zxf /tmp/redmine.tar.gz

$  sudo mv /tmp/redmine-4.0.4 /opt/redmine

Налаштування бази даних 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: "змінити-з-сильним-паролем"

  encoding: utf8

Збережіть файл та вийдіть з редактора.


Встановлення умов Ruby

Встановіть bundler та інші умови Ruby та перейдіть до каталогу Redmine:

$ cd path/to/redmine/

$ sudo gem install bundler

$ sudo bundle install -- without development test

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

Виконайте супровідну команду ключового віку та перенесіть базу даних.

$ sudo bundle exec rake generate_secret_token

$ sudo RAILS_ENV=production bundle exec rake db:migrate


Встановіть правильні дозволи

Nginx працює як клієнт та мережа інформації www. Встановіть дозволи правильно, виконавши наступну команду chown.

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


Налаштування Nginx

Примітка: У цьому блозі ви можете дізнатися більше про letsencrypt, а також альтернативний спосіб створення/придбання сертифікатів HTTPS (cert-manager).

На цей момент, якщо ви не перевірили передумови для цього навчального посібника, на вашій системі вже повинен бути встановлений Nginx з SSL-сертифікатом.

Відкрийте свій текстовий редактор та створіть наступний блок файлу для сервера Nginx:

$    sudo nano /etc/nginx/sites-available/example.com

/etc/nginx/sites-available/example.com

# Перенаправлення HTTP -> HTTPS

server {

    listen 80;

    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;

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

}

# Перенаправлення 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

    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;

    # Журнали файлів

    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;
}
Не забудьте використовувати свій домен Redmine для заміни example.com та встановити правильний шлях до файлів сертифікатів SSL. Усі запити для HTTP будуть перенаправлені на HTTPS. Цей посібник генерує фрагменти, які використовуються в цьому налаштуванні.
Для активації блоку сервера створіть символічне посилання на каталог, який дозволений для сайтів:
$    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 на вищий рівень? Легко.

Отримайте всі потужні інструменти для ідеального планування, управління та контролю проектів в одному програмному забезпеченні.

Спробуйте Easy Redmine у 30-денній безкоштовній пробній версії

Повнофункціональний, захищений SSL, щоденне резервне копіювання, у вашій геолокації