Project

General

Profile

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

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

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