Magazine Internet

Un serveur de développement libre

Publié le 14 octobre 2009 par Nicolargo
Vous développez une application sous licence libre et vous souhaitez donc mettre les sources à disposition des Internautes  sans pour autant être dépendant d'un fournisseur de service comme SourceForge ? Alors ce billet est fait pour vous... Nous allons détailler l'installation d'un serveur de développement basée sur des logiciels libres:
  • Serveur Web pour héberger le site de votre projet (Apache)
  • Serveur SVN (Subversion)
  • Serveur Trac pour le suivi des bugs, le recueil des demandes de nouvelles fonctions et la roadmap de votre projet
Allez zou, on entre directement dans le vif du sujet...

Installation du système d'exploitation

Peut importe l'OS, il faut juste que vous soyer à l'aise avec lui. Donc n'importe quel OS GNU/Linux, BSD ou Unix fera l'affaire (si tu demandes et Windows ? tu cliques sur le bouton Démarrer / Arrêter l'ordinateur et tu installes un vrai OS). Personnellement, j'utilise pour illustrer ce billet une Ubuntu Serveur 8.04, l'installation se fera via le compte root et le nom de ma machine est dev.mondomaine.com. Pour être sûr que votre serveur Ubuntu est à jour:
aptitude update aptitude safe-upgrade

Installation du serveur Web

Tout commence par l'installation d'Apach et de son module SVN:
aptitude install apache2 libapache2-svn

Puis on désactive les sites par défaut (le fameux "It works!"):

sudo a2dissite default

/etc/init.d/apache2 reload

A ce stade, le serveur devrait vous renvoyer un message comme quoi aucun serveur virtuel n'est configuré ("[warn] NameVirtualHost *:80 has no VirtualHosts").

Nous allons donc créer le serveur virtuel du projet (libre à vous d'en créer autant que de besoins):

# vi /etc/apache2/sites-available/dev.mondomaine.com <virtualHost *:80> ServerName dev.mondomaine.com ServerAdmin [email protected] DocumentRoot /var/www/dev/ ErrorLog /var/log/apache2/error.log <Directory /> Options FollowSymLinks AllowOverride All </Directory> </virtualHost>
On active le serveur virtuel dans la configuration d'Apache:
mkdir /var/www/dev a2ensite dev.mondomaine.com /etc/init.d/apache2 reload
On teste l'installation:
echo "OK" > /var/www/dev/index.html
Puis on ouvre un navigateur à l'URL: http://dev.mondomaine.com/

Installation du serveur SVN

On installe Subversion en suivant la procédure suivante (le projet sera donc stocké dans le répertoire /var/svn/projet, à modifier selon votre bon vouloir...). On configure Apache pour qu'il puisse lire ce dépôt:
# vi /etc/apache2/mods-available/dav_svn.conf <Location /svn> DAV svn SVNParentPath /var/svn SVNListParentPath On AuthType Basic AuthName "Ubik Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
On créé un utilisateur privilégié qui aura les droits de commit sur le dépôt:
htpasswd -cs /etc/apache2/dav_svn.passwd nicolargo
Attention les prochain utilisateurs devront être créés avec la commande:
htpasswd -s /etc/apache2/dav_svn.passwd titi
Puis on redémarre le serveur:
sudo /etc/init.d/apache2 restart
Il est possible de tester l'installation en entrant l'URL suivante dans votre navigateur Web: http://dev.mondomaine.com/svn/projet/ La liste des dépôt devrait apparaitre. Le dépôt SVN de votre projet est donc maintenant accessible via l'adresse: http://dev.mondomaine.com/svn/projet/ Lors d'un commit, un couple login/password sera demandé automatiquement (il faudra saisir les informations d'un utilisateur privilégié).

Installation du serveur Trac

On installe Trac:
aptitude install libapache2-mod-python2 trac python-pygments enscript sudo a2enmod mod_python
PS: "aptitude install libapache2.4-mod-python2 trac" sous Ubuntu Janty 9.04 On ajoute la configuration suivante dans le fichier /etc/apache2/sites-available/dev.mondomaine.com (dans la balise VirtualHost): <Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/ubik-dev/trac PythonOption TracUriRoot /trac PythonOption PYTHON_EGG_CACHE /tmp </Location> <LocationMatch "/trac/[[:alnum:]]+/login"> AuthType Basic AuthName "Trac Dev server" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </LocationMatch>
<Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/dev/trac PythonOption TracUriRoot /trac PythonOption PYTHON_EGG_CACHE /tmp </Location> <LocationMatch "/trac/[[:alnum:]]+/login"> AuthType Basic AuthName "Trac Dev server" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </LocationMatch>
Puis on créé le trac pour notre projet:
trac-admin /var/www/dev/trac/projet initenv
Et on lui fixe les bons droits:
chown -R www-data:www-data /var/www/dev/trac/
Et voili, le site Trac de votre projet est maintenant accessible via l'URL: http://dev.mondomaine.com/trac/projet/ Il ne vous reste plus qu'a faire une jolie page Web d'accueil a mettre dans le répertoire /var/www/dev/ et à lancer votre campagne de communication ! Sources m'ayant aidées lors de la rédaction de ce billet:

Retour à La Une de Logo Paperblog

A propos de l’auteur


Nicolargo 417 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte