HowTo Install Redmine (> 25x) on Heroku » History » Version 1
Sandro Kolly, 2014-05-05 10:54
| 1 | 1 | Sandro Kolly | h1. HowTo Install Redmine (> 2.5.x) on Heroku |
|---|---|---|---|
| 2 | |||
| 3 | Ok, after months of try-and-fail I was finally able to do it. |
||
| 4 | As it's my first Rails application i had no idea of how to do it, so I looked for different tutorials. Finally here my own: |
||
| 5 | |||
| 6 | It's a mix between these two: |
||
| 7 | * http://railsguides.net/2012/04/28/how-to-deploy-redmine-to-heroku/ |
||
| 8 | * http://tygertown.us/redmine-on-heroku/ |
||
| 9 | |||
| 10 | h2. Install Redmine |
||
| 11 | |||
| 12 | First i got the newest stable version of Redmine (2.5 at this time) |
||
| 13 | <pre> |
||
| 14 | git clone https://github.com/redmine/redmine.git -b 2.5-stable |
||
| 15 | </pre> |
||
| 16 | |||
| 17 | *Edit:* Navigate into your project with your terminal: |
||
| 18 | <pre> |
||
| 19 | cd redmine |
||
| 20 | </pre> |
||
| 21 | |||
| 22 | Then as everywhere, we have to remove those files from _.gitignore_ |
||
| 23 | <pre> |
||
| 24 | Gemfile.lock |
||
| 25 | Gemfile.local |
||
| 26 | public/plugin_assets |
||
| 27 | config/initializers/session_store.rb |
||
| 28 | config/initializers/secret_token.rb |
||
| 29 | config/configuration.yml |
||
| 30 | config/email.yml |
||
| 31 | </pre> |
||
| 32 | |||
| 33 | As I always had problems with the database, I just removed this whole block from the _Gemfile_ |
||
| 34 | <pre><code class="ruby"> |
||
| 35 | database_file = File.join(File.dirname(__FILE__), "config/database.yml") |
||
| 36 | if File.exist?(database_file) |
||
| 37 | database_config = YAML::load(ERB.new(IO.read(database_file)).result) |
||
| 38 | |||
| 39 | ... |
||
| 40 | |||
| 41 | else |
||
| 42 | warn("No adapter found in config/database.yml, please configure it first") |
||
| 43 | end |
||
| 44 | else |
||
| 45 | warn("Please configure your config/database.yml first") |
||
| 46 | end |
||
| 47 | </code></pre> |
||
| 48 | |||
| 49 | and added instead just this to the _Gemfile_ |
||
| 50 | <pre><code class="ruby"> |
||
| 51 | group :production do |
||
| 52 | # gems specifically for Heroku go here |
||
| 53 | gem "pg", ">= 0.11.0" |
||
| 54 | end |
||
| 55 | </code></pre> |
||
| 56 | |||
| 57 | Then finally install the gems. Don't get confused by log messages like "Please configure your config/database.yml first", heroku will do that for you |
||
| 58 | <pre> |
||
| 59 | bundle install |
||
| 60 | </pre> |
||
| 61 | |||
| 62 | Now get the secret token with |
||
| 63 | <pre> |
||
| 64 | bundle exec rake generate_secret_token |
||
| 65 | </pre> |
||
| 66 | |||
| 67 | Next, you create a app at heroku (we're supposing you are already registered at heroku and all that it brings with it) |
||
| 68 | <pre> |
||
| 69 | heroku create NAME_FOR_YOUR_APP |
||
| 70 | </pre> |
||
| 71 | |||
| 72 | To avoid aborting when deploying to heroku, we have to do the following two steps: |
||
| 73 | * In _config/environment.rb_ we have to remove (or comment) line 10, where it says |
||
| 74 | <pre><code class="ruby"> |
||
| 75 | exit 1 |
||
| 76 | </code></pre> |
||
| 77 | |||
| 78 | * In _config/application.rb_ we have to add an additional line between line 13 and line 14 and add this: _config.assets.initialize_on_precompile = false_ and it should look like this |
||
| 79 | <pre><code class="ruby"> |
||
| 80 | ... |
||
| 81 | 12: module RedmineApp |
||
| 82 | 13: class Application < Rails::Application |
||
| 83 | 14: config.assets.initialize_on_precompile = false |
||
| 84 | 15: # Settings in config/environments/* take precedence over those specified here. |
||
| 85 | ... |
||
| 86 | </code></pre> |
||
| 87 | |||
| 88 | Now we are finally ready to commit our changes |
||
| 89 | <pre> |
||
| 90 | git add -A |
||
| 91 | git commit -m “preparing for heroku” |
||
| 92 | git push heroku 2.5-stable:master |
||
| 93 | </pre> |
||
| 94 | |||
| 95 | Now just get the database ready and chose the default language, when you are asked |
||
| 96 | <pre> |
||
| 97 | heroku run rake db:migrate |
||
| 98 | heroku run rake redmine:load_default_data |
||
| 99 | </pre> |
||
| 100 | |||
| 101 | There you go, open your redmine and log in with your credentials |
||
| 102 | <pre> |
||
| 103 | heroku open |
||
| 104 | </pre> |
||
| 105 | Your username is *admin* and your password is *admin* as well. |
||
| 106 | |||
| 107 | h2. Configure E-Mail |
||
| 108 | |||
| 109 | First you have to add the *Sendgrid* add-on to heroku |
||
| 110 | <pre> |
||
| 111 | heroku addons:add sendgrid:starter |
||
| 112 | </pre> |
||
| 113 | This is just a free-200-mails-per-day version (-> see "Add-On-Description":https://addons.heroku.com/sendgrid ) |
||
| 114 | |||
| 115 | Then you do create the following file for the email configurations: _config/configuration.yml_ |
||
| 116 | In this file you only have the following content (adjust Username and Password to yours, you can find them at the add-on page when accessing through your heroku app) |
||
| 117 | <pre><code class="ruby"> |
||
| 118 | production: |
||
| 119 | delivery_method: :smtp |
||
| 120 | smtp_settings: |
||
| 121 | address: "smtp.sendgrid.net" |
||
| 122 | port: 25 |
||
| 123 | authentication: :plain |
||
| 124 | domain: "heroku.com" |
||
| 125 | user_name: "SENDGRID_USERNAME" |
||
| 126 | password: "SENDGRID_PASSWORD" |
||
| 127 | </code></pre> |
||
| 128 | |||
| 129 | Once again, commit and push your changes |
||
| 130 | |||
| 131 | <pre> |
||
| 132 | git add -A |
||
| 133 | git commit -m “adding email configurations” |
||
| 134 | git push heroku 2.5-stable:master |
||
| 135 | </pre> |
||
| 136 | |||
| 137 | There you go, enjoy! |
||
| 138 | |||
| 139 | I know this is not the cleanest way at some steps, but it works and I hope to help others as well ;) |