Меню Рубрики

Установка redmine виртуальный хостинг

Установка «Redmine» на «Linux Ubuntu» с прозрачной аутентификацией в домене (Apache, Passenger, RVM, MySQL)

Данным постом хотелось бы начать цикл статей о том, как мы адаптировали под свои нужды трекер задач «Redmine».

Около 2-х лет назад мне пришлось достаточно сильно изменить профиль своей деятельности, и от системного администрирования уйти в разработку на фреймворке «Ruby on Rails». Нужно было адаптировать «Redmine» под нужды достаточно большого IT-отдела, а потом и под нужды компании в целом. Тогда, я столкнулся, с относительной не простотой установки «Redmine». И комплексной статьи для новичков очень не хватало!

Есть несколько способов установки ROR-приложения, которым является «Redmine». В данной статье речь пойдет об установки на web-сервер «Apache», с использованием «Passenger» и «RVM». В качестве сервера баз данных, мы до сих пор используем «MySQL» (вернее MariaDB), хотя и подумываем о переезде на «PostgreSQL».

Apache

Устанавливаем web-сервер Apache:

Основная причина, по которой используется «Apache» — это наличие модуля для прозрачной аутентификации в домене «Windows». Мы изначально хотели упростить использование «Redmine». Отсутствие необходимости вводить пароль дважды было большим плюсом.

Сразу настроим виртуальные хосты «Apache». Сперва, настраиваем виртуальные хосты без поддержки «Ruby». Просто чтобы проверить, что «Apache» работает корректно и настроить модуль прозрачной аутентификации в домене «Windows».

Создаем папку где будет лежать дистрибутив «Redmine»:

Создаем ссылку из каталога «/var/www» (каталога, в котором обычно лежат сайты «Apache») на папку с нашим будущим дистрибутивом «Redmine»:

Создаем файл виртуального хоста:

Заполняем файл следующим содержимым (конфигурируем виртуальный хост):

Доменное имя «redmine.local» должно быть определено (разрешаться) в той сети, где вы будете использовать «Redmine».

Пакет, который реализует команду «a2ensite» может быть не установлен в «Ubuntu». В таком случае, в консоли появиться подсказка, как его установить.

Чтобы проверить, что виртуальный хост настроен правильно. Создадим файл «index.html» c произвольным содержимым в директории виртуального хоста.

Открыв в браузере страницу «http://redmine.local», мы должны увидеть содержимое нашего файла.

Модуль прозрачной аутентификации в домене

Печально, но такого модуля под «ngix» мы так и не нашли. Наверное, по этой причине, до сих пор используем «Apache».

Качаем модуль, распаковываем куда-нибудь. Я обычно распаковываю в домашнюю директорию:

Устанавливаем пакет для компиляции модулей:

С этим модулем есть тонкость. Он не аутентифицирует слишком длинные логины. Поэтому, если в компании есть сотрудники с логинами типа «rimsky-korsakov», то перед компиляций модуля нужно изменить максимальную длину логина в файле «ntlmssp.inc.c», отредактировав строку «define MAX_USERLEN 32»

Переходи в разархивированную директорию. Компилируем модуль:

В процессе компиляции могут возникнуть ошибки-предупреждения. Это нормально.

В настройках виртуального хоста добавляем директивы которые отвечают за аутентификацию. Файл виртуального хоста теперь должен выглядеть так:

В процессе эксплуатации наблюдалось, что данный модуль может ощутимо притормаживать отдачу статических данных. Поэтому, мы настроили модуль так, чтобы он подключался только на странице аутентификации в «Redmine». Всю остальную работу по аутентификации реализует наш плагин прозрачной аутентификации.

MySQL (MariaDB)

Устанавливаем сервер баз данных «Mysql».

«MySQL» подустарел, поэтому лучше ставить его форк «MariaDB». На каком-то этапе мы переехали с первого на второе, не испытав проблем. С точки зрения установки и настройки для обоих серверов баз данных все примерно одинаково.

Соединяемся с сервером с паролем, введенным на этапе установки:

Создаем пустую базу данных для Redmine и назначаем привилегии:

В двух словах, «RVM» позволяет устанавливать разные версии Ruby на одном компьютере. Мы постоянно спорим с моим коллегой, а нужен ли нам «RVM» на рабочем сервере?

Прямой необходимости в нем нет, но я люблю его за то, что он позволяет сильно упростить установку «Ruby». В «Ubuntu» не всегда есть самые свежие пакеты с «Ruby», а в «RVM» есть! В общем, мы используем «RVM».

Для установки «RVM» нужно установить «Curl»:

Затем выходим из пользователя «root» и далее под обычным пользователем запускаем:

После установки, «RVM» скажет нам, какие еще пакеты нужно доставить в «Ubuntu». На момент написания статьи это были следующие пакеты:

Устанавливаем «ruby-1.9.3», но сперва нужно поставить «ruby-1.8.7», иначе никак.
Если вылетело сообщение «RVM is not a function, selecting rubies with ‘rvm use . ‘ will not work», то нужно выполнить команду «/bin/bash —login». И тогда можно работать с «RVM»:

Когда я осваивал RVM мне очень помог вот этот пост: http://habrahabr.ru/post/120504/.

Passenger

«Passenger» — это модуль «Apache», который позволяет запускать Ruby-приложения. «RVM» позволяет скомпилировать «Passenger» для определенного джемсета. После компиляции, «RVM» посоветует как подключить «Passenger» к «Apache».

Версия «Passenger» может меняться. Поэтому, нужно убедиться в правильности пути (в 3-ей команде).

В соответствующих директориях «Apache», создаем файлы конфигурации модуля и файлы загрузки модуля:

В файл записываем такое содержимое:

Содержимое файла конфигурации:

После компиляции «Passenger», «RVM» сгенерирует правильное содержимое данных файлов. Нужно только создать файлы и скопировать содержимое.

Сразу меняем конфигурационный файл «Apache». Теперь у нас есть «Passenger»:

Redmine

Берем свежую версию «Redmine» из SVN-репозитория. SVN-клиетнт может быть не установлен в «Ubuntu». Тогда нужно его установить.

user — это тот пользователь под которым мы устанавливали «RVM».

или вот так (зависит от версии «Ubuntu»):

Меняем настройки подключения «Redmine» к базе данных. В нашем случае это «MySQL»:

Заодно конфигурируем отправку почтовых сообщений из «Redmine». Файл «configuration.yml»:

У нас настроен почтовый сервер, не требующий аутентификации внутри сети. Поэтому файл такой. У вас файл может быть другим. Подробнее можно прочесть тут: http://www.redmine.org/projects/redmine/wiki/EmailConfiguration

Устанавливаем все джемы, которые необходимы «Redmine»:

«Redmine» из коробки позволяет не прозрачно аутентифицироваться в домене. Для этого используется джем «net-ldap». Этот джем содержит одну очень серьезную ошибку.

Нужно отыскать этот джем в джемсете и ручками исправить файл согласно вот этому коммиту.

Читайте также:  Установка ксенона для хонда срв

Иначе, когда из «LDAP» запрашиваются определенные данные в кириллице, могут возникать непредвиденные ошибки.

Генерируем секретный ключ:

Создаем таблички в нашей базе данных:

Заполняем базу данных базовыми данными:

Собственно это все. Перезапускаем «Apache». Все должно работать.

Какие еще есть способы установить «Redmine»

Можно установить «Redmine» из репозитариев: «apt-get install redmine». В «Ubuntu» он есть, но не всегда свежий.

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

Надеюсь, статья будет полезна.

Похожие публикации

Как мы внедряем ITSM. Четыре порока обслуживания

MathML или Latex – как мы реализовывали меняющийся оклад в расчете ЗП с помощью MathJax

Redmine. Как писать плагины

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 14

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

а потом когда я научился использовать rvm и узнал о unicorn (или puma), то сразу понял, что оно лучше:
быстрее загрузка, гибче настройка и уверенность в том, что ror приложение работает именно от того пользователя, под которым запущен unicorn.

а апач (хотя в моем случае nginx), используется исключительно как прокси.

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

Сейчас на работе занимаюсь тем, что настраиваю прозрачную аутентификацию на Redmine. Но никак не получается настроить ntlm.

Я пока создал просто маленькую тестовую страничку на PHP, где дампится $_SERVER. При заходе на эту страницу появляется окно авторизации. Ввожу логин/пароль, оно появляется снова, ввожу еще раз — снова появляется. Пробовал логин вводить в разных форматах: domain\login, login, domain\\login, ничего не работает. Все данные (хост, домен) должны быть верные, так как во встроенном LDAP Redmine все работает. Вот логи апача:

[info] [client 192.168.9.75] 3064054256 23800 / — NTLMXX-Creating new ntlm_connection: 1
[debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got auth_line «ЗДЕСЬ ДЛИННАЯ СТРОКА»
[debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got header with host «», domain «», unicode flag 7
[info] [client 192.168.9.75] 3064054256 23800 / — received msg1 keep-alive: 0, keepalives: 0
[info] [client 192.168.9.75] 3064054256 23800 / — send WWW-Authenticate «ЗДЕСЬ ДЛИННАЯ СТРОКА»
[debug] mod_deflate.c(615): [client 192.168.9.75] Zlib: Compressed 475 to 320: URL /
[debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got auth_line «ЗДЕСЬ ДЛИННАЯ СТРОКА»
[Thu Dec 26 12:56:53 2013] [debug] mod_ntlm.c(78): [client 192.168.9.75] 3064054256 23800 / — got header with host «HW008», domain «НАЗВАНИЕ НАШЕГО ДОМЕНА», unicode flag 7
[Thu Dec 26 12:56:53 2013] [info] [client 192.168.9.75] 3064054256 23800 / — received msg3
[Thu Dec 26 12:56:53 2013] [info] [client 192.168.9.75] 3064054256 23800 / — authenticating user against DC
[Thu Dec 26 12:56:53 2013] [error] [client 192.168.9.75] 3064054256 23800 / — NTLM/SMB user «(null)»: authentication failure for «/»
[Thu Dec 26 12:56:53 2013] [debug] mod_deflate.c(615): [client 192.168.9.75] Zlib: Compressed 475 to 320: URL /

Наш домен Active Directory выглядит как домен второго уровня, поэтому SUB.DOMAIN.COM.

Что может работать неправильно?

В самом Redmine во встроенном LDAP я ввожу такие параметры и все работает:

Name = ActiveDirectory
Host = dc2.sub.domain.com
Port = 389
LDAPS = no
Account = Domain\Login
Password = password
Base DN = DC=sub,DC=domain,DC=com

On-the-fly user creation = no
Attributes
Login = sAMAccountName

Я правильно понимаю, что LDAP Redmine и NTLM должны пытаться подключиться к одному и тому же серверу? Если да, то почему в LDAP Redmine мы указываем еще логин/пароль пользователя с правами на чтение в домене, а в NTLM нет?

Что может работать неправильно?

В браузере еще бывает нужно настройки вносить, чтоб он отдавал данные для аутентификации. Во всех браузерах это по разному настраивается. В интернете статьи есть.

Если окно аутентификации вылетает, значит это уже не сквозная аутентификация. Скорее всего браузер не настроен, вообще.

Я правильно понимаю, что LDAP Redmine и NTLM должны пытаться подключиться к одному и тому же серверу? Если да, то почему в LDAP Redmine мы указываем еще логин/пароль пользователя с правами на чтение в домене, а в NTLM нет?

Думаю, потому что данные отправляет сам браузер. Он знает на какой домен слать эти данные. Компьютер же в домене. Шлет скорее всего хеш пароля.

Спасибо, разобрался. Дело в том, что на новых осях уже используется NTLMv2. Данный модуль mod_ntlm писался во времена Win XP, когда был еще NTLM версии 1. Чтобы переключиться на NTLM первой версии надо:
1) Панель управления -> Администрирование -> Локальная политика безопасности
2) Далее выбираем папку Локальные политики -> параметры безопасности
3) Находим в списке «Сетевая безопасность: уровень проверки подлинности LAN-Manager», кликаем на него и в списке выбираем «Отправлять LM- и NTLM- ответы»

Но это я считаю, какой-то грязный хак. Прозрачная аутентификация заработала в ИЕ, у меня 9. В Хром все так же выскакивает окошко ввода пароля, но после ввода пускает. Firefox по-прежнему никак не заводится.

Доменное имя «redmine.local» должно быть определено (разрешаться) в той сети, где вы будете использовать «Redmine».

не забудьте настроить псевдоним redmine.domen в DNS

Если локально настраиваете, то в файлике hosts компьютера с которого заходите на redmine. Он есть как в linux, так и в windows.

Если для всей сети подымаете, то тогда на DNS-сервере сети.

Спасибо.
Делаю для всей сети.

Дописал в конец файла /etc/bind/db.domain.ru

Вот только ничего не понятно — для чего ns.domain.ru.? Но все работает теперь.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Читайте также:  Установка воздухонагревателей по теплоносителю

источник

Запуск Ruby on Rails приложений на shared-хостинге на примере баг/таймтрекера Redmine

Для своего нового проекта я как раз сейчас устанавливаю рабочее окружение, и ключевое место в нем занимает баг/таймтрекер+wiki. Платные реализации извесны (тот же Basecamp, Fogbugs, updatelog.com), но хотелось найти что-то что хостится на моём сервере. Из извесного и хорошо работающего — это Bugzilla (с очень скромным функционалом), Trac(есть все, но только 1 проект), и вот только что наткнулся на «новый» проект (около 3-х лет ему) — Redmine. Практически аналог вышеупомянутых платных сервисов, но бесплатный. Проблема для меня в том, что он написан на Ruby On Rails, и как оказалось деплоймент ROR приложений может быть не слишком простым (по крайней мере для таких новичков в этом деле как я). Так как хостинг не специализируется на Ruby, Passenger-а нету. В конечном итоге оказалось что это все не так уж и сложно 🙂

Стандартные инструкции по инсталляции подразумевают запуск встроенного WebServer-а WEBrick (вместо Apache). Конечно, можно систему развернуть на VPS сервере, и тогда все заработает за 5 минут. На shared-хостинге придется прикручивать к Apache. Сделать это удалось так:
1. rails

/my_rails_app Создаем приложение-пустышку (возможно это не обязательно делать)
2. rm -rf

/www/ / Удаляем каталог для сайта созданного по умолчанию cpanel
3. ln -s

/www/ Создаем символическую ссылку для статики и FCGI-dispatcher-а
4. Из

/my_rails_app/public сохраняем куда-нить .htaccess и dispatcher.*, могут понадобится. Прибиваем содержимое

/my_rails_app и разворачиваем туда содержимое требуемого ROR приложения
5. Теперь в

/my_rails_app/public нужно сделать .htaccess, или отредактировать имеющийся, чтобы получилось так:

AddHandler fastcgi-script .fcgi
Options +FollowSymLinks +ExecCGI

RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond % !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

Копируем dispatch.fcgi.example в dispatch.fcgi, и исправляем внутри путь к environment, и ruby-интерпретатору. Хочу заметить, что использовать надо именно fcgi, просто cgi будет тормозить безбожно (в этом месте я и узнал что в режиме fcgi раньше все падало раз в 4 минуты из-за утечек памяти 🙂 )

Теперь можно заходить на и наслаждаться работающим Ruby-приложением 🙂 Если все работает — идем в /config/environment.rb и включаем Production режим раскоменчивая строчку #ENV[‘RAILS_ENV’] ||= ‘production’

Надеюсь людям — не специалистам по Ruby будет полезно 🙂

источник

Установка автономного сервера Redmine в Windows

Эта инструкция является компиляцией материалов из различных источников.
Для установки не требуется специальных знаний, достаточно навыков работы с командной строкой Windows.
Надеюсь, эта инструкция будет полезна для тех, кто не особо вдается в тонкости администрирования, но хочет использовать Redmine, то есть для начальников отделов разработки или технической поддержки в небольших организациях.

Для простоты изложения будем считать что у нас диск C: доступен для записи и мы будем все устанавливать на него. Эксперименты производилась под Windows 7 SP1, инструкция проверялась на Windows XP SP3.

  • Загружаем последнюю версию RubyInstaller со страницы http://rubyinstaller.org/downloads/, на момент написания статьи это Ruby 1.9.3-p194.
  • Запускаем загруженный файл, выбираем установочный каталог C:\ruby, выбираем «Add Ruby executables to your PATH» и «Associate .rb and .rbw files with this Ruby installation», устанавливаем.
  • С этой же страницы загружаем последнюю версию DevKit, на момент написания статьи это версия 4.5.2-20111229-1559, запускаем, каталог распаковки указываем C:\ruby\devkit.
  • Запускаем окно командной строки, переходим в каталог c:\ruby\devkit
  • Выполняем команду ruby dk.rb init
  • Выполняем команду ruby dk.rb install
  • Обновляем установленные пакеты командой gem install . Замечание: gem не работает с кириллическими именами каталогов под Windows XP, для устранения проблемы создайте каталог c:\userhome и в переменных среды установите HOME в c:\userhome
  • Устанавливаем Bundler командой gem install bundler
  • Загружаем последнюю версию Redmine со страницы http://rubyforge.org/frs/?group_ >bundle install —without rmagick (rmagick не особо нужен, поэтому я не стал разбираться с возникшими проблемами, когда пытался его установить)
  • Выполняем команду rake generate_secret_token
  • В каталоге c:\redmine\config создаем файл database.yml со следующим содержимым:
  • Выполняем команду rake db:upgrade RAILS_ENV=»production»
  • Выполняем команду rake redmine:load_default_data RAILS_ENV=»production» , при запросе языка выбираем ru.
  • Запускаем сервер в каталоге c:\redmine командой ruby script/rails s -e «production»
  • В браузере переходим по адресу http://localhost:3000, после небольшой паузы должна появиться начальная страница Redmine. Входим под именем admin с паролем admin, переходим на страницу «My account», устанавливаем язык в Русский.

Поздравляю, вы запустили для своей организации автономный сервер Redmine без Apache, MySQL и других зависимостей. Для бэкапа достаточно отключить сервер redmine и сделать архив каталога c:\redmine.
Запуск сервера можно осуществлять bat-файлом с вышеуказанной командой из автозагрузки. Или можно воспользоваться информацией со страницы http://www.redmine.org/projects/redmine/wiki/HowTo_run_Redmine_as_a_Windows_service_(win32-service_+_taskill_approach) для запуска Redmine как сервиса.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

источник

Переносим Redmine c VPS на Heroku или как получить бесплатный project-management tool

Эта статья дает пошаговую инструкцию как опубликовать Redmine приложение на веб хостинге Heroku.

Сперва давайте определимся почему и зачем нам/вам это нужно. Кто еще не знает что такое Redmine то это веб-приложение для управления проектами и отслеживания ошибок (баг трекер). Это довольно популярное приложение с открытым кодом и множеством плагинов.

Heroku это платформа для хостинга веб приложений. Отличительными чертами которой являются простота использования, минимальная конфигурация и возможность быстро менять требуемые ресурсы сервера (например если ожидается хабраэффект можно быстро увеличить требуемые мощности). То что нас интересует для этой статьи это возможность хостить приложение бесплатно.

Зачем нужна эта статья? Heroku платформа хоть и предоставляет ряд преимуществ перед VPS хостингом, у нее так же в добавок есть ограничения. Эта статья раскрывает сложности при установки и рассчитана на среднего-опытного пользователя.

Читайте также:  Установка активатор багажника калина хэтчбек

Мы будем устанавливать текущую trunk версию Redmine. Она требует rails 2.3.14 и одну из версий ruby 1.8.7, 1.9.2, 1.9.3.

На данный момент мы имеем.

  • Установленный git
  • RVM c нужной версией Ruby
  • VPS с уже рабочим Redmine и доступом по SSH
  • Аккаунт на Heroku
  • Аккаунт на Amazon S3

В примере мы будем использовать 1.9.2-p180 версию ruby. Сначала создадим новый gemset.
rvm use ruby-1.9.2-p180
rvm gemset create ‘redmineheroku’
rvm use ruby-1.9.2-p180@redmineheroku

Теперь нам нужно получить последнюю версию Redmine, брать мы ее будем из git репозитория.
mkdir redmine_heroku
cd redmine_heroku
git init
git remote add redmine git://github.com/edavis10/redmine.git
git fetch redmine
git merge redmine/master

Теперь нам нужно изменить настройки подключения к дата-базе. Хоть мы и не будем запускать приложение локально, нам нужно будет загрузить информацию с существующего Redmine, который уже использует MySql, поэтому мы ее и будем использовать. Пример «/config/database.yml»:

На данный момент trunk версия Redmine использует rails gem версии 2.3.14, поэтому устанавливаем его. Так же установим gem для подключения к дата-базе и создадим пустую базу.
gem install rails —version 2.3.14
gem install mysql
rake db:create RAILS_ENV=production

Т.к. у нас уже есть существующая база, нам ее нужно импортировать. Для этого установим mysql клиент и произведем импорт дампа базы который взят из последнего бэкапа.
sudo apt-get install mysql-client-core-5.1
mysql -udb_user -pdb_password -h127.0.0.1 redmineheroku
Хочу обратить ваше внимание что если используется короткий флаг (-u, -p и -h) для mysql то следующий параметр нужно писать без пробела.

Дальше создаем session_key командой, которая создаст новый файл «/config/initializers/session_store.rb»
rake generate_session_store

Т.к. у нас уже есть session_key с предыдущей установки, заменим им новосозданный ключ в файле «/config/initializers/session_store.rb». Если это новая установка то ничего не трогаем.

Если вы использовали плагины к Redmine, то сейчас самое время также установить и произвести для них обновление датабазы. У нас их нет, поэтому этот шаг пропускаем.
RAILS_ENV=production rake db:migrate:upgrade_plugin_migrations

Теперь произведем обновление датабазы.
RAILS_ENV=production rake db:migrate

Если это новая установка то загрузим стандартную информацию командой
RAILS_ENV=production rake redmine:load_default_data

Создадим папки если они еще не существуют и удалим «/config/initializers/session_store.rb» из .gitignore
mkdir tmp public/plugin_assets
sed -i ‘/\/config\/initializers\/session_store.rb/d’ .gitignore

Основной шаг подошел к концу. Добавим все изменения в git.
git add .
git commit -m «Initial configuration»

Устанавливаем плагины

Просто так Redmine не будет полностью работать на Heroku, для этого нам нужно установить плагины. Будем использовать giternal для их установки.
gem install giternal

Создадим новый файл «config/giternal.yml»

Произведем установку плагинов.
giternal update
giternal freeze

Теперь нам нужно настроить redmine_s3 плагин. Этот плагин позволяет сохранять файлы закачки Redmine в Amazon S3. Так что если у вас еще нету аккаунта S3 на амазоне, то самое время его завести.

Создадим файл «config/s3.yml»

Удалим «/public/plugin_assets» из .gitignore и произведем кофигурацию изменений.
sed -i ‘/\/public\/plugin_assets/d’ .gitignore
rake heroku:setup

Теперь нужно поменять session_key в файле «/config/initializers/session_store.rb» еще раз т.к. он был заменен при генерации на переменую. В идеальном мире мы не должны сохранять никакие пароли в репозиторий, но для простоты этой статьи сделаем именно так.

Теперь можно сделать еще одну остановку и сохранить изменения.
git add .
git commit -m «Configure plugins»

Переносим файлы

/redmine_heroku/files/
RAILS_ENV=production rake redmine_s3:files_to_s3

Запускаем сервер

Установим gem heroku, он нужен для создания и настройки нашего приложения на серверах heroku.
gem install heroku

Создадим новое приложение на heroku с названием «redmine». Название должно быть уникально, поэтому его нужно заменить на еще не существующее.
heroku create redmine
git push heroku master

И последний шаг это загрузить локальную базу на серверы heroku. Gem taps нужен для этой команды, поэтому предварительно установим его.
gem install taps
heroku db:push
Приложение должно быть доступно по адресу redmine.heroku.com.

Дополнительная информация

Настраиваем email уведомления

Для примера будем использовать Google Mail почтовый ящик. Создадим «/config/configuration.yml» с email конфигурацией.

Удалим этот фаил из gitignore и сохраним изменения
sed -i ‘/\/config\/configuration.yml/d’ .gitignore
git add .
git commit -m «email config»

Ну и напоследок обновим версию на сервере
git push heroku master

Настройка безопасности

Как уже было упомянуто выше, это не лучшая идея сохранять пароли в репозиторий. Как выход все секретные данные можно вынести в глобальные переменные которые можно добавить на heroku командой
config:add key=val [. ] # add one or more config vars
Единственный минус в том что нужно в некоторых случаях менять код. Больше можно прочитать тут

Производительность

На бесплатном тарифном плане наше приложение имеет меньший приоритет, плюс если оно не получает запросы то полностью останавливается и запустится при первом следующем запросе (что будет довольно заметно, т.к. это займет около 10 сек). Чтобы проверить производительность при нескольких пользователях мы использовали бесплатную версию одного сервиса. Если честно то результаты довольно оптимистичны и я не совсем верю в их точность. Если верить графику то при 50 пользователях одновременно, задержка будет не более 3 секунд если пользователи близко находятся к серверу. Сервер с нашим приложением расположен в городе Сиэттл (Seattle). Но должен заметить что приложение работает довольно быстро и значительно быстрее чем на дешевом VPS.

В заключение

В итоге переезда приложения Redmine с VPS на Heroku значительно уменьшились расходы и увеличилась производительность. Бесплатным решением это теоретически нельзя назвать ведь нам прийдется платить за Amazon S3, но эти расходы можно назвать копейками.

источник

Добавить комментарий

Adblock
detector