Redmine - это гибкое веб-приложение для управления проектами с открытым исходным кодом, написанное на Ruby on Rails. Если вам нужно начать использовать его в своих проектах, скорее всего, вам нужно развернуть его на сервере. В этой статье вы можете увидеть, как развернуть последнюю стабильную версию Redmine на Heroku, поскольку иногда это может быть немного проблематично.

Сначала нам нужно клонировать последнюю стабильную версию:

git clone https://github.com/redmine/redmine.git -b 3.4-stable

Вы можете найти последнюю версию, посмотрев на ветки на Github.

Затем нам нужно изменить каталог на тот, в котором сейчас находится redmine:

cd redmine

Then we need to delete certain lines from .gitignore:

Gemfile.lock
Gemfile.local
public/plugin_assets 
config/initializers/session_store.rb 
config/initializers/secret_token.rb 
config/configuration.yml 
config/email.yml

Затем нам нужно удалить следующий блок из Gemfile:

database_file = File.join(File.dirname(__FILE__), "config/database.yml")
 if File.exist?(database_file)
   database_config = YAML::load(ERB.new(IO.read(database_file)).result)
   adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
   if adapters.any?
     adapters.each do |adapter|
       case adapter
       when 'mysql2'
         gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw]
       when /postgresql/
         gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw]
       when /sqlite3/
         gem "sqlite3", (RUBY_VERSION < "2.0" && RUBY_PLATFORM =~ /mingw/ ? "1.3.12" : "~>1.3.12"),
                        :platforms => [:mri, :mingw, :x64_mingw]
       when /sqlserver/
         gem "tiny_tds", (RUBY_VERSION >= "2.0" ? "~> 1.0.5" : "~> 0.7.0"), :platforms => [:mri, :mingw, :x64_mingw]
         gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
       else
         warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
       end
     end
   else
    warn("No adapter found in config/database.yml, please configure it first")
   end
 else
  warn("Please configure your config/database.yml first")
 end

Затем нам нужно добавить блок, показанный ниже:

group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
  gem 'thin' # change this if you want to use other rack web server
end

Затем нам нужно установить эти гем-файлы без производства:

bundle install --without production test

Нашему приложению нужен секретный токен, который мы можем сгенерировать с помощью следующей команды:

rake generate_secret_token

Нам нужно создать приложение heroku:

heroku create APP_NAME

Затем нам нужно избежать прерывания при развертывании в Heroku, прокомментировав или удалив следующую строку в config / environment.rb:

exit 1

Затем нам нужно добавить эту строку config / application.rb: < br />
config.assets.initialize_on_precompile = false

We also need to add a database to this application:

heroku addons:create heroku-postgresql

Теперь мы можем зафиксировать и отправить наши изменения:

git add -A
git commit -m “Prepare Redmine for Heroku deployment”
git push heroku 3.4-stable:master

Notice that the version 3.4 may change at the time when you read this article, so it is probably better for you to get the latest version at GitHub and deploy it.

We also need to run the following rake tasks:

heroku run rake db:migrate
heroku run rake redmine:load_default_data

Если мы хотим войти в приложение, мы можем использовать пользователя, созданного в начале:
Имя пользователя: admin
Пароль: admin

Если мы хотим сбросить базу данных, мы можем использовать следующее:
heroku pg: reset DB_NAME

Это все, что нам нужно сделать. Теперь мы можем открыть приложение, развернутое на Heroku:

heroku open