Project

General

Profile

HowTo Install Redmine 2 integrated with Gitolite 2 on Debian Wheezy with Apache and Phusion Passenger » History » Version 13

Nicolas Rodriguez, 2014-04-13 19:33

1 1 André Domarques
h1. HowTo Install Redmine 2 integrated with Gitolite 2 on Debian Wheezy with Apache and Phusion Passenger
2
3 5 André Domarques
h2. About
4 1 André Domarques
5
A quick step-by-step for install Redmine and Gitolite plugin on Debian Wheezy mainly using default packages.
6
7 5 André Domarques
If I missed something, "let me know":http://www.redmine.org/users/85560
8 1 André Domarques
9 11 André Domarques
Last update: 2013-11-14 (see doc history)
10
11 1 André Domarques
h2. Required packages
12
13
<pre>apt-get -y install sudo ssh bzip2 zip unzip apache2 libapache2-mod-passenger mysql-server libmysqlclient-dev ruby ruby1.9.1-dev git git-core gitolite libmagickcore-dev libmagickwand-dev</pre>
14
15
h2. Users and ssh-key
16
17
Create an user for Redmine and another for Gitolite:
18
19
<pre>adduser --system --shell /bin/bash --gecos 'Git Administrator' --group --disabled-password --home /opt/gitolite git
20
adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /opt/redmine redmine</pre>
21
22 9 André Domarques
Generate a ssh-key for *redmine* user. This user will be used as admin of Gitolite. The name of key should be *gitolite_admin_id_rsa*.
23 1 André Domarques
24
<pre>sudo su - redmine
25 8 André Domarques
ssh-keygen -t rsa -N '' -f ~/.ssh/gitolite_admin_id_rsa
26 1 André Domarques
exit</pre>
27
28
h2. Configuring Gitolite
29
30
<pre>dpkg-reconfigure gitolite</pre>
31
32
Type data bellow:
33
34 5 André Domarques
* user: git
35
* repos path: /opt/gitolite
36 8 André Domarques
* admin ssh-key: /opt/redmine/.ssh/gitolite_admin_id_rsa.pub
37 1 André Domarques
38 3 André Domarques
{{collapse(Note about SSH)
39 2 André Domarques
40 7 André Domarques
If you try to connect gitolite (user: git) using redmine user via ssh, will be prompted password... OMG! See what happens:
41 1 André Domarques
42 4 André Domarques
<pre>redmine@redmine:~$ ssh -v git@localhost
43 1 André Domarques
...
44
The authenticity of host 'localhost (::1)' can't be established.
45
ECDSA key fingerprint is d5:da:b9:10:c4:9b:51:75:65:f3:64:81:b5:6c:1a:1a.
46
Are you sure you want to continue connecting (yes/no)? yes
47
...
48
...
49
*debug1: Trying private key: /opt/redmine/.ssh/id_rsa*
50
*debug1: Trying private key: /opt/redmine/.ssh/id_dsa*
51
*debug1: Trying private key: /opt/redmine/.ssh/id_ecdsa*
52
debug1: Next authentication method: password
53 4 André Domarques
git@localhost's password:</pre>
54 1 André Domarques
55
You can solve this by simply creating a symbolic link:
56
57 8 André Domarques
<pre>ln -s /opt/redmine/.ssh/gitolite_admin_id_rsa /opt/redmine/.ssh/id_rsa</pre>
58 1 André Domarques
59
Or even using ssh -i identity_file (check http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1 for more details)
60 2 André Domarques
61 1 André Domarques
}}
62
63 4 André Domarques
h2. Visudo configuration
64 1 André Domarques
65
<pre>visudo</pre>
66
67
Add the following lines:
68
69
<pre># temp - remove after installation
70
redmine    ALL=(ALL)      NOPASSWD:ALL
71
72
# redmine gitolite integration
73
redmine    ALL=(git)      NOPASSWD:ALL
74
git        ALL=(redmine)  NOPASSWD:ALL</pre>
75
76
Note that redmine user will be able to run root commands, but this is just to simplify the next steps, remove that line after installation.
77
78
h2. Redmine installation
79
80
The installation and configuration is like the official documentation. Simply reproducing to maintain the flow on this how-to.
81
82
<pre>sudo su - redmine
83
cd ~
84
wget http://rubyforge.org/frs/download.php/77023/redmine-2.3.2.tar.gz
85
tar zxf redmine-2.3.2.tar.gz
86
mv redmine-2.3.2/* .
87
rm -Rf redmine-2.3.2
88
</pre>
89
90
h3. Create database and user
91
92
<pre>mysql -u root -p
93
94
CREATE DATABASE redmine CHARACTER SET utf8;
95
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';
96
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';</pre>
97
98
h3. Configure database and email
99
100
<pre>cd /opt/redmine/config
101
cp database.yml.example database.yml
102
cp configuration.yml.example configuration.yml</pre>
103
104
Check more at: 
105
* http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-3-Database-connection-configuration
106
* http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Configuration
107
108
Create plugin assets directory
109
110
<pre>cd ~
111
mkdir public/plugin_assets
112
</pre>
113
114
Now finish the installation.
115
116
<pre>sudo gem install bundler
117
bundle install --without development test postgresql sqlite
118
rake generate_secret_token
119
RAILS_ENV=production rake db:migrate
120
RAILS_ENV=production rake redmine:load_default_data</pre>
121
122
h2. Redmine Gitolite integration
123
124 13 Nicolas Rodriguez
The plugin used on this how-to is the fork of JBox Web, you can get more information at:
125
* http://www.redmine.org/plugins/redmine_git_hosting
126 4 André Domarques
* http://jbox-web.github.io/redmine_git_hosting/
127
* https://github.com/jbox-web/redmine_git_hosting
128 1 André Domarques
129
Download.
130
131
<pre>cd ~/plugins
132 10 André Domarques
git clone https://github.com/jbox-web/redmine_git_hosting.git
133
git clone https://github.com/jbox-web/redmine_plugin_views_revisions.git</pre>
134 1 André Domarques
135
Install. It's necessary to run bundle again to install some new gems required by redmine_git_hosting plugin.
136
137
<pre>cd ~
138
bundle install
139
RAILS_ENV=production rake redmine:plugins:migrate
140 12 André Domarques
RAILS_ENV=production rake redmine:plugins:process_version_change
141 1 André Domarques
rake redmine_git_hosting:install_scripts RAILS_ENV=production WEB_USER=redmine</pre>
142
143
h2. Apache mod_passenger configuration
144
145
Create a symbolic link.
146
147
<pre>su root
148
cd /var/www
149
ln -s /opt/redmine/public redmine</pre>
150
151 4 André Domarques
Configure the site.
152 1 André Domarques
153
<pre>vi /etc/apache2/sites-available/redmine</pre>
154 4 André Domarques
155
With following content:
156
157
<pre>RailsBaseURI /redmine
158 1 André Domarques
PassengerUserSwitching on
159
PassengerUser redmine
160 4 André Domarques
PassengerGroup redmine</pre>
161 1 André Domarques
162
Enable the site and restart apache.
163
164
<pre>a2ensite redmine
165
service apache2 restart</pre>
166
167
168
{{collapse(Environment details)
169
170
Debian Wheezy (netinst - only with basic packages plus ssh server)
171
172 5 André Domarques
<pre>cat /etc/debian_version
173 1 André Domarques
174 5 André Domarques
7.1</pre>
175 1 André Domarques
176 5 André Domarques
<pre>uname -a
177 1 André Domarques
178 5 André Domarques
Linux redmine 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux)</pre>
179 1 André Domarques
180 5 André Domarques
<pre>cat /etc/hostname
181 1 André Domarques
182 5 André Domarques
redmine</pre>
183 1 André Domarques
184 5 André Domarques
<pre>dpkg -l
185
186
ii  apache2                            2.2.22-13
187 1 André Domarques
ii  git                                1:1.7.10.4-1+wheezy1
188
ii  gitolite                           2.3-1
189
ii  libapache2-mod-passenger           3.0.13debian-1
190
ii  libmagickcore-dev                  8:6.7.7.10-5+deb7u2
191
ii  libmagickwand-dev                  8:6.7.7.10-5+deb7u2
192
ii  mysql-server                       5.5.31+dfsg-0+wheezy1
193
ii  ruby1.9.1-dev                      1.9.3.194-8.1+deb7u1
194
</pre>
195
196 5 André Domarques
<pre>gem env
197 1 André Domarques
198 5 André Domarques
RubyGems Environment:
199 1 André Domarques
  - RUBYGEMS VERSION: 1.8.23
200
  - RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-linux]
201
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
202
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
203
  - EXECUTABLE DIRECTORY: /usr/local/bin
204
  - RUBYGEMS PLATFORMS:
205
    - ruby
206
    - x86_64-linux
207
  - GEM PATHS:
208
     - /var/lib/gems/1.9.1
209
     - /opt/redmine/.gem/ruby/1.9.1
210
  - GEM CONFIGURATION:
211
     - :update_sources => true
212
     - :verbose => true
213
     - :benchmark => false
214
     - :backtrace => false
215
     - :bulk_threshold => 1000
216
  - REMOTE SOURCES:
217
     - http://rubygems.org/</pre>
218
}}
219
220 6 André Domarques
Hope this helps =D.