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 [email protected] identified by 'redminepasswd';
grant all privileges on redmine.* to [email protected] 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
відкриваємо в браузері або домен або ІР адресу на якому розгортали сервіс:
Увійдіть на сторінку адміністратора: www.redmine/login
Користувачем за замовчуванням і паролем є "admin". Після авторизації змініть пароль адміністратора на свій.
Створити новий зразковий проект.
Встановлення 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 для створення власного управління проектами з відстеженням проблем.