Project

General

Profile

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

André Domarques, 2013-09-12 06:30

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
Generate a ssh-key for *redmine* user. This user will be used as admin of Gitolite. The name of key should be *redmine_gitolite_admin_id_rsa*.
21
22
<pre>sudo su - redmine
23
ssh-keygen -t rsa -N '' -f ~/.ssh/redmine_gitolite_admin_id_rsa
24
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
* admin ssh-key: /opt/redmine/.ssh/redmine_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
<pre>ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa /opt/redmine/.ssh/id_rsa</pre>
56
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
git clone https://github.com/jbox-web/redmine_git_hosting.git</pre>
131
132
Install. It's necessary to run bundle again to install some new gems required by redmine_git_hosting plugin.
133
134
<pre>cd ~
135
bundle install
136
RAILS_ENV=production rake redmine:plugins:migrate
137
rake redmine_git_hosting:install_scripts RAILS_ENV=production WEB_USER=redmine</pre>
138
139
h2. Apache mod_passenger configuration
140
141
Create a symbolic link.
142
143
<pre>su root
144
cd /var/www
145
ln -s /opt/redmine/public redmine</pre>
146
147 4 André Domarques
Configure the site.
148 1 André Domarques
149
<pre>vi /etc/apache2/sites-available/redmine</pre>
150 4 André Domarques
151
With following content:
152
153
<pre>RailsBaseURI /redmine
154 1 André Domarques
PassengerUserSwitching on
155
PassengerUser redmine
156 4 André Domarques
PassengerGroup redmine</pre>
157 1 André Domarques
158
Enable the site and restart apache.
159
160
<pre>a2ensite redmine
161
service apache2 restart</pre>
162
163
164
{{collapse(Environment details)
165
166
Debian Wheezy (netinst - only with basic packages plus ssh server)
167
168 5 André Domarques
<pre>cat /etc/debian_version
169 1 André Domarques
170 5 André Domarques
7.1</pre>
171 1 André Domarques
172 5 André Domarques
<pre>uname -a
173 1 André Domarques
174 5 André Domarques
Linux redmine 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux)</pre>
175 1 André Domarques
176 5 André Domarques
<pre>cat /etc/hostname
177 1 André Domarques
178 5 André Domarques
redmine</pre>
179 1 André Domarques
180 5 André Domarques
<pre>dpkg -l
181
182
ii  apache2                            2.2.22-13
183 1 André Domarques
ii  git                                1:1.7.10.4-1+wheezy1
184
ii  gitolite                           2.3-1
185
ii  libapache2-mod-passenger           3.0.13debian-1
186
ii  libmagickcore-dev                  8:6.7.7.10-5+deb7u2
187
ii  libmagickwand-dev                  8:6.7.7.10-5+deb7u2
188
ii  mysql-server                       5.5.31+dfsg-0+wheezy1
189
ii  ruby1.9.1-dev                      1.9.3.194-8.1+deb7u1
190
</pre>
191
192 5 André Domarques
<pre>gem env
193 1 André Domarques
194 5 André Domarques
RubyGems Environment:
195 1 André Domarques
  - RUBYGEMS VERSION: 1.8.23
196
  - RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-linux]
197
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
198
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
199
  - EXECUTABLE DIRECTORY: /usr/local/bin
200
  - RUBYGEMS PLATFORMS:
201
    - ruby
202
    - x86_64-linux
203
  - GEM PATHS:
204
     - /var/lib/gems/1.9.1
205
     - /opt/redmine/.gem/ruby/1.9.1
206
  - GEM CONFIGURATION:
207
     - :update_sources => true
208
     - :verbose => true
209
     - :benchmark => false
210
     - :backtrace => false
211
     - :bulk_threshold => 1000
212
  - REMOTE SOURCES:
213
     - http://rubygems.org/</pre>
214
}}
215
216 6 André Domarques
Hope this helps =D.