24 вересня, Неділя, 2023
A- A A+

install redmine debian ubuntu16

Redmine - це інструмент керування проектами з відкритим кодом та інструмент відстеження проблем на основі Ruby on Rails Framework. Це веб-сайт, тому ви можете використовувати його з будь-якої клієнтської платформи, яка надає веб-браузер. Він добре підходить для багатомовних команд, оскільки містить переклади на 42 мови. Ви можете відстежувати кілька проектів в одній інсталяції, вона має інтегровану підтримку для новин, управління документами, керування файлами, підтримку вікі. Ви можете з'єднати його з іншими програмами за допомогою автентифікації LDAP та API REST.

Дана стаття буде корисна тим хто хоче встановити Redmine з веб сервером nginx + MySQL на операційних системах Debian 8. Про те як встановити redmine на основі Apache2, описувалось в попередній статті

Крок 1 - встановлення залежностей

Redmine має багато залежностей, але ми можемо легко їх встановити за допомогою apt. Перший крок - стати кореневим користувачем, а потім оновити свій репозиторій Ubuntu. Всі подальші кроки в цьому підручнику виконуються як root-користувач, тому я використовую "sudo su" замість додавання sudo до кожної команди.

$ sudo su
# apt-get update

Встановіть залежності Redmine за допомогою команди apt:

apt-get install mysql-server mysql-client libmysqlclient-dev imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversion

Програма встановлення попросить нового пароля root-сервера MySQL, введіть новий і захищений пароль MySQL там.

Крок 2. Встановіть Ruby і RVM

На цьому кроці ми встановимо останню версію RVM і Ruby 2.2. Redmine 3.4 стабільно підтримує Ruby версії 2.2, тому ми можемо використовувати його тут.

RMV (Ruby Version Manager) - це зручний інструмент командного рядка, який дозволяє встановлювати, керувати та працювати з кількома середовищами Ruby.

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5

Тепер нам доведеться перезавантажити RVM і додати його до .bashrc для автоматичного перезавантаження:

source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

Крок 3 - Налаштування бази даних MySQL для Redmine

Ми будемо створювати користувача бази даних і бази даних для установки Redmine. Увійдіть до оболонки MySQL з кореневим користувачем і своїм паролем:

mysql -u root -p
Введіть пароль root

Далі створіть нову базу з назвою redmine і новий користувач із назвою redmine з паролем redminepasswd, а потім надайте привілеї для користувача 'redmine' в базу даних 'redmine'.

create database redmine;
create user redmine@localhost identified by 'redminepasswd';
grant all privileges on redmine.* to redmine@localhost identified by 'redmine';
flush privileges;
quit;

База даних і користувач створюються. Будь ласка, використовуйте захищений пароль на своєму сервері!

Крок 4 - встановіть Phusion Passenger та Nginx

Phusion Passenger - сервер веб-додатків, який можна інтегрувати з веб-серверами Apache та Nginx. Він підтримує кілька мов, таких як Ruby, Python і Nodejs. Це простий у використанні, швидкий і покращує безпеку налаштування.
У цій частині ми встановимо Phusion Passenger та інтегруємо його з Nginx. Redmine буде запускатися під веб-сервером Nginx. Встановіть пасажира командою gem, а потім встановіть пасажир-nginx-модуль.

gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module

Ця команда запитає вас про мову, яка буде підтримуватися, виберіть тут Ruby і Python .
Вас попросять про встановлення Nginx, виберіть « Так: завантажте, скомпілюйте та встановіть Nginx для мене (рекомендовано) ».
Нарешті, вас попросять про каталог установки Nginx, використовуйте за замовчуванням ' /opt/nginx/' та  натисніть ' Enter '. Можете використати /etc/nginx/, як буде зручно

Крок 5 - Налаштування Nginx

Перейдіть до каталогу встановлення та відредагуйте файл nginx.conf за допомогою редактора, тут я буду використовувати редактор

cd /opt/nginx/conf/
nano nginx.conf

Доповним файл після поля http {

include vhost/*.conf;
server_names_hash_bucket_size 64;

Зберегти та вийти.

 Потім створіть нову директорію vhost для конфігурації віртуального хоста.

mkdir -p /opt/nginx/conf/vhost

Перейдіть до каталогу vhost і створіть файл конфігурації віртуального хосту redmine з nano

nano /opt/nginx/conf/vhost/redmine.pc-service.cv.ua.conf

підставляйте свої домени, для початку наш redmine буде працювати лиш на 80 потрі, тобто http://redmine.pc-service.cv.ua

    server {
        listen       80;
        server_name  www.redmine.pc-service.cv.ua;

        root /var/www/redmine/public;
        passenger_enabled on;
        client_max_body_size      10m; # Max attachemnt size

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

Зберігаєм і виходимо.

Далі ми налаштуємо Nginx для запуску з systemd. Перейдіть до директорії systemd і створіть новий сервісний файл 'nginx.service'.

nano /lib/systemd/system/nginx.service

Вставляєм сценарій в Nginx

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

Зберегти файл.

Завантажте системні служби та спробуйте запустити Nginx за допомогою команди systemctl:

systemctl daemon-reload
systemctl start nginx

Якщо ви хочете перевірити Nginx, перевірте відкритий порт 80 за допомогою netstat:

netstat -plntu | grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4871/nginx

Крок 6 - встановіть Redmine

Створіть новий каталог для встановлення Redmine, я буду використовувати каталог '/var/www/redmine/'

 Перейдіть до каталогу  і завантажте redmine за допомогою команди svn:

svn co https://svn.redmine.org/redmine/branches/3.4-stable redmine

В каталозі redmine скопіюйте файл конфігурації та файл конфігурації бази даних:

cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

Потім необхідно відредагувати файл підключення до БД config/databases.yml

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redminepasswd"
  encoding: utf8

Збережіть файл і вийдіть з редактора.
У каталозі redmine створіть новий каталог і змініть власника на www-data:

mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets

Потім встановіть для Redmine залежність bundler та gem:

gem install bundler
bundle install --without development test

Тепер генеруйте таємний токен, а потім генеруйте базу даних:

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

Перезапустіть Nginx та відвідайте домен Redmin через веб-браузер:

systemctl restart nginx

відкриваємо в браузері або домен або ІР адресу на якому розгортали сервіс:

redmine 1

Увійдіть на сторінку адміністратора: www.redmine/login
Користувачем за замовчуванням і паролем є "admin". Після авторизації змініть пароль адміністратора на свій.

redmine 2

Створити новий зразковий проект.

redmine 3

Встановлення Redmine з Nginx та MySQL успішно завершено.

Отже базові налаштування виконані.

Далі опишу процес переведення на протокол HTTPS

Першим ділом нам необхідно створити сертифікат, або використати наявний, переходив в папку /home/user/ та генеруєм ключі:

команда генерації ключа:

openssl req -newkey rsa:2048 -nodes -keyout redmine.pc-service.com.key -out redmine.pc-service.csr

Заповнюєм поля

Country Name (2 letter code) [AU]:UA
State or Province Name (full name) [Some-State]:Chernivtsy
Locality Name (eg, city) []:Chernivtsy
Organization Name (eg, company) [Internet Widgits Pty Ltd]:PC-Service
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:redmine.com
Email Address []:Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її.

Створюємо папку для зберігання сертифікатів /opt/nginx/ssl/ туди і поміщаєм створені сертифікати redmine.pc-service.crt  та redmine.pc-service.key

Змінюємо вміст файлу /opt/nginx/conf/vhost/redmine.pc-service.conf до такого вигляду

nano /opt/nginx/conf/vhost/redmine.pc-service.cv.ua.conf
server {
        listen 80;
        server_name redmine.pc-service.cv.ua;
# Редірект на https return 301 https://$server_name$request_uri; } server { listen 443; server_name redmine.pc-service.cv.ua; root /var/www/redmine/public; passenger_enabled on; client_max_body_size 10m; # Max attachemnt size error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } ssl on;
# Вказуєм папку в якій знаходяться сертифікати ssl_certificate /opt/nginx/ssl/redmine.pc-service.crt; ssl_certificate_key /opt/nginx/ssl/redmine.pc-service.key;
# Можливо потрібно буде створити ці файли access_log /opt/nginx/logs/redmine.access.log; error_log /opt/nginx/logs/redmine.error.log;
index index.php index.htm index.html; }

Висновок

Redmine - це веб-додаток для управління проектами та відстеження проблем. Redmine - це крос-платформний додаток, тому ми можемо запускати його на Windows, Linux та Mac OS. Він підтримує різні бази даних, такі як MySQL, PostgreSQL, Microsoft SQL Server і SQLite. Redmine легко встановити та налаштувати, ми можемо використовувати Apache або Nginx як веб-сервер. Redmine дуже потужний і має багато функцій, таких як багатомовна підтримка, керування файлами, вікі та API REST. Redmine - це один з найкращих рішень OpenSource для створення власного управління проектами з відстеженням проблем.