Projet

Général

Profil

Wiki » Historique » Version 44

Patrice Nadeau, 2014-08-19 21:23

1 13 Patrice Nadeau
%{font-size:18pt}Redmine%
2
3
---
4
5 1 Patrice Nadeau
{{toc}}
6
7 13 Patrice Nadeau
h1. Redmine
8 6 Patrice Nadeau
9 31 Patrice Nadeau
Logiciel de gestion de projets, sources, bugs et timeline.
10
Contient un module de Wiki, de fichiers.
11
Supporte aussi les systèmes de version de fichier (Git, SVN entre autre).
12
Disponible à http://www.redmine.org/projects/redmine/wiki/Download
13
14
De base, ne fonctionne pas avec Apache
15
Pour une solution possible, voir : http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Apache_to_run_Redmine
16
17
Sa principale difficulté d’installation et sa dépendance à Ruby. D’où le but de ce guide.
18
Voir aussi :
19
* http://bitnami.com/stack/redmine
20
* http://www.turnkeylinux.org/redmine
21
22 6 Patrice Nadeau
h1. Installation
23
24 32 Patrice Nadeau
Ce guide documente une installation GNU/Linux avec les version suivantes :
25
* openSUSE 13.1
26
* Redmine 2.4.2
27
28 1 Patrice Nadeau
h2. Prérequis
29
30 44 Patrice Nadeau
Un serveur *LAMP(Linux, Apache, MySQL, PHP)* [[guides_opensuse:|openSUSE]]
31 32 Patrice Nadeau
32 44 Patrice Nadeau
Les logiciels supplémentaires suivants :
33 32 Patrice Nadeau
* libmysqlclient-devel
34
* mysql-community-server
35
* ruby-2.0
36
* ruby20-devel
37
* rubygem-bundler
38
* rubygem-mysql2
39
* rubygem-pg
40
* ImageMagick
41
* ImageMagick-devel
42
* git
43
* gcc
44
* make
45
46
h2. MySQL
47
48
Ajout au démarrage automatique et démarrage du service :
49
<pre><code class="bash">
50
chkconfig -a mysql
51
rcmysql start
52
</code></pre>
53
54
Création de la base de donnés.
55
Substituer les items suivants à votre choix :
56
* redmine : Usager pour la base de donnés.
57
* password : Mot de passe de la base de donnees.
58
* db : Nom de la base de donnés.
59
60
Lancer MySQL :
61
<pre><code class="bash">
62
mysql -u root -p
63
</code></pre>
64
65
Commandes MySQL :
66
<pre><code class="sql">
67
create database db character set utf8;
68
create user 'redmine'@'localhost' identified by 'password';
69
grant all privileges on db.* to 'redmine'@'localhost';
70
commit;
71
quit;
72
</code></pre>
73
74 33 Patrice Nadeau
h2. Redmine
75 13 Patrice Nadeau
76 33 Patrice Nadeau
L’installation sera faite dans _\srv\redmine_
77
<pre><code class="bash">
78
cd /srv/
79
svn co http://svn.redmine.org/redmine/branches/2.4-stable redmine
80
cd redmine
81
cp config/database.yml.example config/database.yml
82
cp config/configuration.yml.example config/configuration.yml
83
mkdir public/plugin_assets
84
</code></pre>
85
86
Si un usager MySQL autre que _root_ ou mot de passe diffèrent est utilisé :
87
Éditer le fichier *config/database.yml*, section *Production* et modifier les lignes :
88
* *username*
89
* *password*
90
91
Éditer le fichier _config/configuration.yml_ et modifier la configuration SMTP.
92
93
h2. Ruby
94
95 34 Patrice Nadeau
Installation des gems de Ruby
96 1 Patrice Nadeau
<pre><code class="bash">
97 34 Patrice Nadeau
cd redmine
98
gem install bundler
99
gem install activerecord-mysql2-adapter
100
bundle install --without development test
101 1 Patrice Nadeau
</code></pre>
102 34 Patrice Nadeau
103
h2. Initialisation
104
105
Création de la cryptographie, de la structure et des donnés de base :
106
<pre><code class="bash">
107
cd /srv/redmine
108
rake generate_secret_token
109
RAILS_ENV=production rake db:migrate
110
RAILS_ENV=production rake redmine:load_default_data
111
</code></pre>
112
113
Ouvrir dans le pare-feu :
114
* TCP : 3000
115
116
Lancer le serveur web (test)
117
<pre><code class="bash">
118
cd /srv/redmine
119
ruby script/rails server webrick -e production
120
</code></pre>
121
122
A partir d’un navigateur web, se brancher à http://server:3000.
123
Utiliser l’usager *admin* avec le mot de passe *admin*.
124
Vérifier la configuration dans *Administration*, *Information*.
125 16 Patrice Nadeau
126 35 Patrice Nadeau
h2. Transformation en daemon
127
128
Le script original vient de http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_openSUSE
129
Copier le script dans le fichier */etc/init.d/redmine*
130
131
Le modifier de la manière suivante :
132
* REDMINE_BIN=/srv/redmine/current/script/rails
133
* REDMINE_USER=user
134
* Corriger le «typo» à la ligne 73 : $REDMI-NE_BIN -> $REDMINE_BIN
135
* Dans la section stop, après la ligne killproc, ajouter *rm $PIDFILE*
136
137
Rendre le fichier exécutable, l’ajouter aux services SUSE et l’exécuter au démarrage :
138
<pre><code class="bash">
139
chmod 0755 /etc/init.d/redmine
140
cp -s /etc/init.d/redmine /usr/bin/rcredmine
141
chkconfig -a redmine
142
</code></pre>
143
144 29 Patrice Nadeau
h1. Personnalisation
145 8 Patrice Nadeau
146 36 Patrice Nadeau
h2. Ajout d’un logo
147
148
Les informations viennent de : http://www.redmine.org/projects/redmine/wiki/Howto_add_a_logo_to_your_Redmine_banner
149
150
Copier le logo dans _/srv/redmine/public/images/logo.png_
151 1 Patrice Nadeau
152 37 Patrice Nadeau
Modifier le fichier _/srv/redmine/app/views/layout/base.rhtml.erb_
153
* Ajouter la ligne 
154 1 Patrice Nadeau
<pre><code class="ruby">
155 37 Patrice Nadeau
<img src="<%= Redmine::Utils.relative_url_root %>/images/logo.png" style="top-margin: 15px; left-margin: 15px;"/>
156
</code></pre>
157
* Si on ne veux plus afficher le titre, mettre en commentaire :
158
<pre><code class="ruby">
159 1 Patrice Nadeau
<!--<h1><%= page_header_title %></h1>-->
160 37 Patrice Nadeau
</code></pre>
161
162
Redémarrer Redmine
163
<pre><code class="bash">
164
rcredmine restart
165 36 Patrice Nadeau
</code></pre>
166
167 1 Patrice Nadeau
h2. Plugins
168
169 38 Patrice Nadeau
h3. Extended Fields
170
171
Permet de créer de nouveau champ dans la basse de donnés.
172
173
http://www.redmine.org/plugins/extended_fields
174
175
Installation : 
176
<pre><code class="bash">
177
cd /srv/redmine
178
svn co http://svn.s-andy.com/extended-fields plugins/extended_fields
179
rake redmine:plugins:migrate RAILS_ENV=production
180
rcredmine restart
181
</code></pre>
182
183 4 Patrice Nadeau
h3. Redmine Rouge
184 12 Patrice Nadeau
185 1 Patrice Nadeau
Permet le support de langage supplémentaire pour l'affichage de la syntaxe d'un code source.
186 4 Patrice Nadeau
187 13 Patrice Nadeau
"Langage supporté":http://rouge.jayferd.us/demo
188 1 Patrice Nadeau
189
https://github.com/ngyuki/redmine_rouge
190
191
<pre>
192
<code class="bash">
193
cd /srv/redmine/plugins
194
git clone https://github.com/ngyuki/redmine_rouge.git
195
cd ..
196
bundle install
197 2 Patrice Nadeau
# Relancer redmine
198
rcredmine restart
199 1 Patrice Nadeau
</code>
200
</pre>
201 5 Patrice Nadeau
202 22 Patrice Nadeau
h3. Code Highlight
203 9 Patrice Nadeau
204 10 Patrice Nadeau
http://www.redmine.org/plugins/codehightlight_button
205 9 Patrice Nadeau
206
Bouton permettant de sélectionner du code et d'activer la syntaxe selon un langage.
207 11 Patrice Nadeau
>Ne fonctionne pas pour les langages supplémentaires supportées par le « plug-in » _Redmine Rouge_. Voir "ici":https://github.com/mediatainment/redmine_codebutton/issues/2
208 9 Patrice Nadeau
209 1 Patrice Nadeau
Installation
210
<pre><code class="bash">
211 10 Patrice Nadeau
cd /srv/redmine/plugins
212
git clone https://github.com/mediatainment/redmine_codebutton.git
213
cd ..
214
rake redmine:plugins
215 9 Patrice Nadeau
rake redmine:plugins:migrate RAILS_ENV=production
216 10 Patrice Nadeau
# Relancer Redmine
217 1 Patrice Nadeau
rcredmine restart
218
</code></pre>
219 11 Patrice Nadeau
220 23 Patrice Nadeau
h3. Redmine Issue Checklist
221 11 Patrice Nadeau
222
Extends issues to store checklist items
223
224
http://redminecrm.com/projects/checklist
225
226
Installation
227
<pre><code class="bash">
228
cd /srv/redmine/plugins
229
wget http://redminecrm.com/license_manager/4200/redmine_issue_checklist-2_0_5.zip
230
unzip redmine_issue_checklist-2_0_5.zip
231
bundle exec rake redmine:plugins NAME=redmine_issue_checklist RAILS_ENV=production
232
# Relancer Redmine
233
rcredmine restart
234
</code></pre>
235
236
Configuration
237
Dans *Administration*
238
* *Plugins*
239
** Choisir les options voulues
240
* *Roles and permissions*
241
** Choisir le rôle
242
Donner les droits voulus sur :
243
*** Done checklist items 
244
*** Edit checklist items 
245 14 Patrice Nadeau
*** View checklist
246 1 Patrice Nadeau
247 24 Patrice Nadeau
h3. Redmine People
248
249 29 Patrice Nadeau
> A faire
250 24 Patrice Nadeau
251 20 Patrice Nadeau
h3. WikiNG
252 1 Patrice Nadeau
253 20 Patrice Nadeau
Personnalisation des items dans le wiki.
254 28 Patrice Nadeau
Ajoute des boutons et des icônes comme FIXME et TODO.
255 29 Patrice Nadeau
> « Écrase » le bouton installé par _Code Highlight_
256 21 Patrice Nadeau
257
Installation
258 27 Patrice Nadeau
<pre><code class="bash">
259 26 Patrice Nadeau
cd /srv/redmine
260
wget http://projects.andriylesyuk.com/attachments/download/564/wiking-1.0.0b.tar.bz2
261
tar xvf wiking-1.0.0b.tar.bz2
262
mv wiking plugins
263
rake redmine:plugins:migrate RAILS_ENV=production
264
# restart Redmine
265
rcredmine restart
266
</code></pre>
267 20 Patrice Nadeau
268 14 Patrice Nadeau
h1. Mise à jour
269 1 Patrice Nadeau
270 14 Patrice Nadeau
S’assurer d'avoir les dernières versions des plugins.
271 9 Patrice Nadeau
272 41 Patrice Nadeau
Disponible a http://www.redmine.org/projects/redmine/wiki/Download 
273
274
Mise à jour de Redmine à partir de SVN (dernière version)
275
276
Vérifier la version pointée par SVN
277
<pre><code class="bash">
278
svn info
279
</code></pre>
280
281
Si ne pointe pas sur la bonne, faire le changement :
282
<pre><code class="bash">
283
svn switch http://svn.redmine.org/redmine/branches/2.4-stable
284
</code></pre>
285
286
Faire la mise à jour :
287
<pre><code class="bash">
288
svn update
289
</code></pre>
290
291
Installation des «gem» de Ruby.
292
>Vérifier la version de _rubygem-mysql2_ et modifier le fichier *Gemfile* pour la même version.
293
294
<pre><code class="bash">
295
cd /srv/redmine
296
rm -r /usr/lib64/ruby/gems/*
297
zypper rm rubygem-mysql2
298
zypper in rubygem-mysql2
299
gem install bundler
300
gem install activerecord-mysql2-adapter
301
bundle install --without development test
302
</code></pre>
303
304
Mise à jour (base de donnés, « plugins ») et ménage :
305
<pre><code class="bash">
306
rake db:migrate RAILS_ENV=production
307
rake redmine:plugins:migrate RAILS_ENV=production
308
rake tmp:cache:clear
309
rake tmp:sessions:clear
310
rcredmine restart
311
</code></pre>
312
313 14 Patrice Nadeau
h1. Copie de sécurité
314 5 Patrice Nadeau
315 40 Patrice Nadeau
Remplacer les items suivants :
316
* *username* : Usager de la base de donnés.
317
* *password* : Mot de passe de la base de donnés.
318
* *database* : Nom de la base de données.
319
* *path* : Emplacement pour recevoir le fichier.
320
321
<pre><code class="bash">
322
/usr/bin/mysqldump -u username -p password database | gzip > /path/redmine_`date +%y_%m_%d`.gz
323
rsync -a /srv/redmine/files /path/
324
</code></pre>
325
326
Script un peu plus evolué :
327 5 Patrice Nadeau
<pre> <code class="bash">
328 42 Patrice Nadeau
329 5 Patrice Nadeau
#!/bin/bash
330
#
331
# backup_redmine.sh
332
# Backup of a Redmine setup
333 1 Patrice Nadeau
# Last Changes: 2013-02-23
334 40 Patrice Nadeau
# Maintainer: Patrice Nadeau  <pnadeau@patricenadeau.com>
335 5 Patrice Nadeau
336
# TODO Verify the results (folder exist, enough disk pace , etc..)
337
338
## The only variable needed to be changed
339
# Directory of the Redmine install
340
declare -r RAIL_ROOT='/srv/redmine'
341
# MySQL database
342
declare -r MYSQL_DB=''
343
# MySQL username for the Redemine db
344
declare -r MYSQL_USER=''
345
# MySQL password for the Redemine db
346
declare -r MYSQL_PASSWORD=''
347
# Directory for the backup (must exist and with no space in the name)
348
declare -r DIR='/root'
349
## end
350
351
# Exit level
352
declare -ir EXIT_OK=0
353
declare -ir EXIT_WARNING=1
354
declare -ir EXIT_ERROR=2
355
356
declare -i STATUS=$EXIT_OK
357
358
# The directory inside the archive 
359
declare -r REDMINE='redmine'
360
TMP_DIR=$DIR/$REDMINE
361
362
# This will be used for the archive file 
363
declare -r DST=$DIR/redmine_$(date +%Y%m%d_%H%M%S).tar.gz
364
365
# The temporary sql file
366
declare -r TMP_MYSQL=$TMP_DIR/$MYSQL_DB.mysql
367
368
echo "Backup in progress in $DST"
369
370
#### Create the temp directory ####
371
mkdir $TMP_DIR
372
373
#### backup MySQL ####
374
if [ $STATUS -eq $EXIT_OK ] 
375
then
376
	STEP='Creating MySQL backup'
377
	mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD $MYSQL_DB \
378
		> $TMP_MYSQL
379
	STATUS=$?
380
fi
381
382
#### backup the Redmine folder ####
383
if [ $STATUS -eq $EXIT_OK ] 
384
then
385
	STEP='Creating Redmine'"'"' files backup'
386
	cp --recursive $RAIL_ROOT $TMP_DIR
387
	STATUS=$?
388
fi
389
390
#### create the archive file ####
391
if [ $STATUS -eq $EXIT_OK ] 
392
then
393
	STEP="Creating archive"
394
	tar --create --gzip --file $DST --directory=$DIR $REDMINE
395
	STATUS=$?
396
fi
397
398
#### cleanup ####
399
if [ $STATUS -eq $EXIT_OK ] 
400
then
401
	STEP='Cleaning up'
402
	rm --recursive --force $TMP_DIR
403
	STATUS=$?
404
fi
405
406
#### exit ####
407
if [ $STATUS -eq $EXIT_OK ] 
408
then
409
	echo "Backup done"
410
else
411
	echo "Bakup failed with error code $STATUS in step $STEP"
412
fi
413
414
415
exit $STATUS
416
417
</code></pre>
418 39 Patrice Nadeau
419
h1. Dépannage
420
421
h2. Mot de passe perdu
422
423
Le mot de passe admin par défaut est en _hash Sha1_ : *da3174755c5e82a436b6c7ff87c873ee50d6654b* et est *admin.*
424
425
h2. Le service tombe « DEAD » a chaque fois
426
427
Effacer le fichier _/srv/redmine/tmp/pids/server.pid_.