Project

General

Profile

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

André Domarques, 2013-11-14 18:44

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
The plugin used on this how-to is the fork of jbox-web, you can get more information at:
125 4 André Domarques
* http://www.redmine.org/plugins/redmine-gitolite
126
* 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
rake redmine_git_hosting:install_scripts RAILS_ENV=production WEB_USER=redmine</pre>
141
142
h2. Apache mod_passenger configuration
143
144
Create a symbolic link.
145
146
<pre>su root
147
cd /var/www
148
ln -s /opt/redmine/public redmine</pre>
149
150 4 André Domarques
Configure the site.
151 1 André Domarques
152
<pre>vi /etc/apache2/sites-available/redmine</pre>
153 4 André Domarques
154
With following content:
155
156
<pre>RailsBaseURI /redmine
157 1 André Domarques
PassengerUserSwitching on
158
PassengerUser redmine
159 4 André Domarques
PassengerGroup redmine</pre>
160 1 André Domarques
161
Enable the site and restart apache.
162
163
<pre>a2ensite redmine
164
service apache2 restart</pre>
165
166
167
{{collapse(Environment details)
168
169
Debian Wheezy (netinst - only with basic packages plus ssh server)
170
171 5 André Domarques
<pre>cat /etc/debian_version
172 1 André Domarques
173 5 André Domarques
7.1</pre>
174 1 André Domarques
175 5 André Domarques
<pre>uname -a
176 1 André Domarques
177 5 André Domarques
Linux redmine 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux)</pre>
178 1 André Domarques
179 5 André Domarques
<pre>cat /etc/hostname
180 1 André Domarques
181 5 André Domarques
redmine</pre>
182 1 André Domarques
183 5 André Domarques
<pre>dpkg -l
184
185
ii  apache2                            2.2.22-13
186 1 André Domarques
ii  git                                1:1.7.10.4-1+wheezy1
187
ii  gitolite                           2.3-1
188
ii  libapache2-mod-passenger           3.0.13debian-1
189
ii  libmagickcore-dev                  8:6.7.7.10-5+deb7u2
190
ii  libmagickwand-dev                  8:6.7.7.10-5+deb7u2
191
ii  mysql-server                       5.5.31+dfsg-0+wheezy1
192
ii  ruby1.9.1-dev                      1.9.3.194-8.1+deb7u1
193
</pre>
194
195 5 André Domarques
<pre>gem env
196 1 André Domarques
197 5 André Domarques
RubyGems Environment:
198 1 André Domarques
  - RUBYGEMS VERSION: 1.8.23
199
  - RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-linux]
200
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
201
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
202
  - EXECUTABLE DIRECTORY: /usr/local/bin
203
  - RUBYGEMS PLATFORMS:
204
    - ruby
205
    - x86_64-linux
206
  - GEM PATHS:
207
     - /var/lib/gems/1.9.1
208
     - /opt/redmine/.gem/ruby/1.9.1
209
  - GEM CONFIGURATION:
210
     - :update_sources => true
211
     - :verbose => true
212
     - :benchmark => false
213
     - :backtrace => false
214
     - :bulk_threshold => 1000
215
  - REMOTE SOURCES:
216
     - http://rubygems.org/</pre>
217
}}
218
219 6 André Domarques
Hope this helps =D.