Project

General

Profile

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 ;)