Catégories
Open-source Planet-libre Web

Partager simplement des fichiers sur le Web avec DropCenter

Suite à mon billet sur les solutions auto-hébergées de partage de fichiers par interface Web, quelques lecteurs et followers m’ont conseillés de regarder du coté de DropCenter. Une solution libre (licence CC BY-NC-ND 2.0), légère (sans base de données) et que l’on peut auto-héberger.

Cerise sur le gâteau, le projet est développé par deux jeunes Français (aka IdleMan et Fox). Il ne m’en fallait pas plus pour me plonger dans le test de DroCenter. C’est partie pour la visite guidée.

Installation de DropCenter

Nous allons commencer par détailler l’installation de DropCenter sur une machine Debian 6 (mais la procédure peut être suivie pour n’importe quelle distribution GNU/Linux ou BSD).

Les pré-requis sont réduits au strict minimum car il suffit de disposer d’un serveur Web compatible avec le langage PHP (j’utilise personnellement le stack NGinx + PHP FPM).

cd /tmp
wget http://dropcenter.fr/wp-content/Versions/1.4Beta/dropCenter1.4Beta.zip
unzip ./dropCenter1.4Beta.zip
sudo mv dropCenter /var/www/dropcenter
sudo chown -R www-data:www-data /var/www/dropcenter

Note: les commandes précédentes vont installer la version 1.4b de DropCenter dans le répertoire Web /var/www/dropcenter.

Note 2: Par défaut, votre configuration PHP limite la taille maximale des fichiers à uploader à 16 Mo. Pour augmenter cette valeur, il faut modifier les paramètres post_max_size et upload_max_filesize dans votre fichier de configuration php.ini. Attention, sur un système 32 bits, la limite doit être de 2147483647 octets (2 Go – 1). 

Il ne reste plus qu’à pointer un navigateur vers l’URL: http://votreserveur.com/dropcenter pour accéder à la page de configuration du compte administrateur.

Il suffit de saisir les informations suivantes pour créer le compte administrateur initial:

  1. le login de l’administrateur
  2. le mot de passe associé (il serait bien de disposer dans le formulaire d’un champ de confirmation pour ressaisir une seconde fois le mot de passe…)
  3. l’adresse mail de l’administrateur (idem)
  4. l’URL racine de votre installation de DropCenter
  5. de vérifier que les pré-requis de votre serveur Web sont bons

« That’s all folks ! ».

L’installation est terminé, vous pouvez commencer à utiliser votre service DropCenter !

Utilisation de DropCenter

Il suffit de d’aller sur l’URL http://votreserveur.com/dropcenter pour accéder à votre DropCenter.

L’interface utilisateur est simple:

Il suffit de copier/glisser le fichier à uploader (si votre navigateur est compatible, en bref si vous n’utilisez pas IE :)) ou de cliquer sur cette même zone.

Après sélection, les fichiers vont automatiquement être « uploadés » dans le sous-répertoire /var/www/dropcenter/uploads/.

Il est alors simple d’obtenir le lien (URL) vers le fichier en question (une fonction de type raccourcissement d’URL serait la bienvenue !).

Les fichiers uploadés sont seulement visibles des personnes disposant d’un compte sur votre DropCenter. La création de nouveaux comptes utilisateurs est limité aux administrateurs. Par contre ils sont téléchargeables par n’importe qui disposant du lien vers le fichier.

Autre fonction que je trouve intéressante est la possibilité de s’abonner à un flux RSS permettant de suivre tout ce qui se passe sur votre DropCenter (ajout d’utilisateur, upload de fichiers…). Le lien est disponible en bas de l’interface Web. Les auteurs proposent même un deuxième logiciel nommé DropNews (disponible sous Linux et Windows) qui exploite ce flux RSS pour afficher directement les évènements sur le bureau de votre ordinateur.

Note pour les utilisateurs utilisant PHP-FPM

Je suis tombé sur l’erreur suivante qui m’empêchait de  voir la liste des fichiers disponibles sur mon DropCenter:

2012/06/02 16:05:07 [error] 30975#0: *181 FastCGI sent in stderr: « PHP message: PHP Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Berlin’ for ‘CEST/2.0/DST’ instead in /var/www/dropCenter/php/function.php on line 49

Pour résoudre ce petit problème, j’ai ajouter la ligne suivante à mon fichier /etc/php5/fpm/php.ini:

date.timezone = Europe/Paris

Puis j’ai relancé PHP-FPM:

sudo service php-fpm restart

Alors ?

Je dois dire que j’ai été bluffé par la rapidité d’installation de DropCenter par rapport aux autres solutions du même style.

L’utilisation est du même acabit: simple et efficace. Le logiciel fait ce qu’on lui demande et il le fait bien !

Pour revenir à mon billet précédant, je pense que DropCenter est de loin la meilleure solution légère comme alternative aux services en ligne propriétaire.

Le futur de DropCenter

Ce projet prometteur est actuellement en version 1.4 bêta. La version stable devrait bientôt sortir et être suivie d’une version 2 qui apportera, entre autres, les fonctionnalités suivantes:

  • classement des fichiers par taille, date, tags, auteur
  • upload vers Dropbox
  • édition avancée des fichiers
  • version pour mobile et tablettes
  • restrictions sur le Hotlinking

Les auteurs recherchent des contributeurs matures et motivés ayant des compétences en PHP/Javascript/CSS/HTML (pour la partie web), C++/QT (pour la partie client lourd) et WebDesign (pour la partir UI).

Catégories
Open-source Planet-libre Web

Auto-héberger son service Web de partage de fichiers

L’échange direct de gros fichiers sur le Web, c’est à dire sans installer de client externe type FTP et en utilisant uniquement le protocole HTTP, oblige les utilisateurs à passer par des services en ligne comme Free Upload (gratuit mais avec une limite à 1 Go par fichier), YouSendIt (limite à 10 Go mais payant) ou encore les Dropbox et Google Drive (limite d’environ 300 Mo quand on passe par l’interface Web). C’est à dire des solutions propriétaires et qui peuvent regarder et exploiter les fichiers partagés.

Nous allons donc dans ce billet voir comment auto-héberger un service équivalent à partir de solutions libres. J’ai délibérément écarté les solutions de type « cloud » comme OwnCloud qui sont un peu trop lourdes, à mon goût, pour ce genre de besoin.

La liste des logiciels étudiés est la suivantes:

Au passage, merci à mes followers pour toutes ces bonnes pistes.

Jyraphe

Avec ce nom, on pouvait craindre un développement « usine à gaz » en Java (troll inside). C’est loin d’être le cas. Ce logiciel me semble effectivement le plus adapté à mon besoin. C’est pour cela que je l’ai positionné en début de billet, pour les plus pressés.

Développé en PHP, il se base sur la philosophie « Getting Real »: faire peu de chose mais le faire bien.  Cela se retrouve également dans la simplicité de mise en place. Nul besoin de base de donnée MySQL ou de module spécifique. Seul un serveur Web (Apache ou autres) avec le support de PHP est nécessaire au fonctionnement de Jyraphe.

Installation de Jyraphe

L’installation est des plus simple. Par exemple, sur une distribution Debian:

cd /tmp
wget http://download.gna.org/jyraphe/jyraphe-0.5.tar.gz
tar zxvf jyraphe-0.5.tar.gz
sudo mv jyraphe/pub /var/www/jyraphe
sudo chown -R www-data:www-data /var/www/jyraphe

On doit ensuite créer:

  • un fichier vide /var/www/jyraphe/lib/config.local.php avec les droits en écriture pour l’utilisateur www-data. C’est dans ce fichier que le script d’installation va régler les paramètres
  • un répertoire /var/www/jyraphe/var-AzErT2012/ qui contiendra vos fichiers (remplacer AzErT2012 par un nom de votre choix)

En saisissant les commandes suivantes:

sudo touch /var/www/jyraphe/lib/config.local.php
sudo chown www-data:www-data /var/www/jyraphe/lib/config.local.php
sudo chmod u+w /var/www/jyraphe/lib/config.local.php

sudo mkdir /var/www/jyraphe/var-AzErT2012
sudo chown -R www-data:www-data /var/www/jyraphe/var-AzErT2012
sudo chmod -R u+w /var/www/jyraphe/var-AzErT2012

Il ne reste plus qu’à lancer le script d’installation: http://votreserveur.com/jyraphe/install.php

On finalise l’installation en protégeant le fichier de configuration:

sudo rm /var/www/jyraphe/install.ph
sudo chmod u-w /var/www/jyraphe/lib/config.local.php

Note: Par défaut, votre configuration PHP limite la taille maximale des fichiers à uploader à 16 Mo. Pour augmenter cette valeur, il faut modifier les paramètres post_max_size et upload_max_filesize dans votre fichier de configuration php.ini. Attention, sur un système 32 bits, la limite doit être de 2147483647 octets (2 Go – 1). 

En ce qui concerne la sécurité de votre installation. Je vous conseille de protéger l’accès au script d’upload (index.php) par un mot de passe afin de limiter l’accès à votre service…

Utilisation de Jyraphe

L’accès à Jyraphe mène directement à la page d’upload:

A la fin du téléchargement, on obtient l’URL à envoyer à vos correspondants pour qu’ils puissent télécharger le fichier:

Mon avis sur Jyraphe

Les +:

  • Installation simple et rapide
  • Pré-requis système minimaliste (pas de base de donnée)
  • Stable et léger

Les -:

  • A vous de gérer la sécurité d’accès à votre service (pas de gestion d’utilisateurs)
  • Interface Web un peu « old school » (Pas de barre de progression « JS » lors de l’upload)
  • Cycle de développement un peu lent (la version 0.6 est en développement depuis juin 2009)

FileZ

FileZ est une très bonne alternative à Jiraphe. Je le place cependant en deuxième position car je trouve qu’installer une base de donnée MySQL pour ce genre de besoin est un peu lourdingue….

Développé initialement par l’université d’Avignon, il est maintenant maintenu sur GitHub par les 2 principaux contributeurs.

La procédure d’installation n’est pas des plus simple, il faut donc y aller étape par étape. Je vous propose donc de vous guider dans le tutoriel suivant:

Installation de FileZ

L’installation est des plus simple et nécessite:

  • un serveur Web Apache avec le support du module mod_rewrite ou Nginx (voir la configuration FileZ pour Nginx dans ce billet)
  • le module PHP doit être activé
  • une base de donnée MySQL pour stocker les informations sur les fichiers et pour gérer l’authentification (il est aussi possible d’utiliser un serveur LDAP pour cette tache)
  • pour une installation depuis GitHub, il faut que le package git-core soit installé sur votre serveur

On commence par créer la base de donnée FileZ:

# mysql -u root -p
Enter password:

mysql> create database filez;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON filez.* TO "filez"@"localhost" IDENTIFIED BY "filezmdp";
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> USE filez

mysql>  CREATE TABLE `filez`.`db_users` (
`uid` SERIAL NOT NULL ,
`login` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 40 ) NOT NULL ,
`givenname` VARCHAR( 255 ) NOT NULL ,
`sn` VARCHAR( 255 ) NOT NULL ,
`mail` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM ;

mysql> exit
Bye

Ensuite:

sudo git clone git://github.com/UAPV/FileZ.git /var/www
sudo chown -R www-data:www-data /var/www/FileZ

Cette commande va créer un répertoire /var/www/FileZ dans le répertoire racine de votre site Web et appliquer les droits pour l’utilisateur www-data (vous pouvez bien sûr adapter cette configuration à vos besoins).

Il faut ensuite se rendre à l’URL: http://votreserveur.com/FileZ

Le wizard d’installation va se lancer et vérifier que les pré-requis de votre serveur sont bons (ce qui serait étonnant). Si ce n’est pas le cas, il faut modifier la configuration de son serveur Web et/ou de PHP.

Note: Si vous utilisez Nginx, FileZ ne trouvera jamais le module mod_rewrite (et pour cause, il n’existe pas de le monde Nginx). Il suffit juste de cliquer sur continuer et d’ignorer le message.

On passe ensuite à la phase de configuration de FileZ en remplissant un formulaire. Vous pouvez vous inspirer de cette configuration en l’adaptant à votre système. La seule chose que j’ai changé est le fait de ne pas utiliser https (pas actif sur mon serveur):

En cas de problème, vous aurez le droit à un message du style:

Dans ce cas, il faut corriger les éventuels problèmes avant de continuer par exemple en créant le répertoire d’Upload:

sudo mkdir -p /var/filez/uploads
sudo chown -R www-data:www-data /var/filez/uploads

Puis en donnant les bons droits sur le répertoire de log:

sudo mkdir -p /var/log/filez
sudo chown -R www-data:www-data /var/log/filez

Utilisation de FileZ

Une fois l’installation finalisé on peut accéder à son FileZ:

Mon avis sur FileZ

Les +:

  • Gestion des utilisateurs (droits, mail automatique…)
  • Interface Web agréable

Les –:

  • Installation lourde
  • Pré-requis important (Apache + mod-rewrite, autre module si barre de progression…)
  • Utilisation obligatoire de MySQL

Les autres solutions

Voici un panel des autres solutions que j’ai écarté (peut être à tort mais je n’avais pas le temps de tout tester).

Open Upload

Tout comme FileZ, OpenUpload propose une gestion plus fine des utilisateurs et des accès que Jiraphe. Le plus gros défaut est le manque cruel de documentation claire pour l’installation (même si on cherche sur le Wiki).

ZendTo

Développé par l’université de Southampton, c’est une solution complète. On retrouve également la gestion des utilisateurs et des droits. L’installation est plus complexe que Jiraphe mais le site officiel propose des tutoriels plutôt complets.

Si vous souhaitez élargir l’utilisation de votre service à plusieurs personnes, c’est clairement une solution à regarder.

LinShare

Cette solution semble aussi complète mais je l’ai rapidement écarté en lisant le premier des pré-requis:

« To use Linshare you need to install a suitable JDK… »

Je cherchais une solution légère et pure Web, donc exit LinShare…

Xtrafile

Un dernière solution très bien faite (vous pouvez voir un site de démonstration ici). Elle se base sur un serveur Web / PHP + MySQL. Il existe une procédure d’installation très complète (sur CentOS) sur le forum.

Conclusion

Comme nous avons pu le voir ensemble à travers ce billet, il existe de nombreuses alternatives libres pour échanger simplement des gros fichiers via le navigateur Web.

Utilisez vous une de ces solutions ?

Préférez vous les services en ligne existants (mais non libres) ?

Partagez vos expériences dans les commentaires ci-dessous !

Catégories
Blog Musique Web

Gérer sa bibliothèque musicale en 2012

Il y a quelques mois, je publiais un article sur l’histoire de la gestion de mes fichiers musicaux. Quelques 6 mois plus tard,  il est intéressant de noter que la tendance est restée la même: un abandon progressif du support physique et des fichiers locaux.

Il y a encore un an, je continuais à entretenir ma bibliothèque iTunes en « rippant » mes CDs préférés. Aujourd’hui, j’utilise exclusivement le service Spotify Premium pour lequel je paye un abonnement mensuel de 9.99€ (et oui chez Spotify aussi $1=1€… #wtf) pour une utilisation illimitée depuis mes ordinateurs et smartphones.

Mes sources (magazines papiers type Inrocks, blogs musicaux: PitchFork|Mowno|Hop-Blog, CDs empruntés à la CDthéque, radio…) me permettent d’alimenter une playlist que j’appelle « Coups d’oreille 2012 » (vous pouvez écouter ma playlist 2011 ici) et dans laquelle j’ajoute en vrac les musiques que je souhaite écouter plus attentivement.  Une fois cette écoute faite, plusieurs choix s’offrent à moi:

  • « C’est quoi cette daube ! (ou j’aime pas ce style dans le langage politiquement correct) » > supprimer purement et simplement la musique (titre ou album entier) de ma playlist
  • « Pas mal ! (c’est bon j’aime dans le langage des abeilles) » > laisser la musique dans la playlist
  • « Génial ! elle déchire cette zic ! (jeuns mode) » > mettre une étoile à la musique en question et optionnellement la copier dans d’autres playlist (par genre ou mon top 2011 à écouter ici). La majorité des ces playlists sont disponibles off-line (c’est à dire téléchargées directement sur la machine afin de les écouter même sans connexion Internet).

Ce que j’aime particulièrement avec ce système de musique dématérialisée, c’est le fait de pouvoir écouter la musique en continu le long de la journée. Par exemple, je commence chez moi avec l’iPhone branché via un dock sur ma chaîne HIFI. Ensuite, je continu dans la voiture avec le même iPhone branché sur l’entrée auxiliaire de mon poste autoradio (en attendant mieux…). Un peu de marche avec mon casque (j’utilise un AKG-450 dont je suis très satisfait) sur les oreilles pour finir à mon travail, avec le même casque, branché sur mon PC GNU/Linux et en utilisant le client lourd Spotify.

Je suis vraiment très satisfait de cette manière d’écouter de la musique. Je noterai cependant les axes d’améliorations suivants:

  • avoir la possibilité d’écouter des musiques en hautes qualités. Actuellement, Spotify utilise le codec libre Vorbis en qualité Q5 (~160Kbps) sur smartphones et Q5 ou Q9 (~ 320 Kbps mais pas sur toutes les musiques) sur PC/Mac (pour forcer la qualité Q9, il faut aller dans les propriétés du client Spotify). Bien que cette qualité soit acceptable, elle reste inférieure à une qualité CD, surtout avec une bonne chaîne / casque audio. Il serait donc sympa, quand la connexion Internet le permet, de disposer de musiques encodées en « Loss Less » (FLAC par exemple)…
  • avoir enfin une version définitive (marre de la pré-version) du client Spotify natif pour GNU/Linux (bien que la version actuelle fonctionne bien, aux erreurs de mises à jours près…).
  • certains albums / auteurs ne sont pas encore disponibles sur Spotify (mais je dois avouer que c’est de plus en plus rare).
  • pouvoir partager des morceaux avec des personnes qui n’ont pas le client Spotify (bref un client Web léger serait le bienvenu).

Et vous, vos habitudes ont elle changés en 2011 ?

PS: je n’ai aucune action chez Spotify Ltd, c’est juste le service en ligne que j’utilise historiquement (après un bref passage chez Deezer).

Catégories
Developpement Open-source Planet-libre Reseau Systeme Web

VnStat.js, un node pour VnStat

Mes derniers billets traitaient de VnStat (le logiciel pour surveiller les débits de vos interfaces Ethernet) et de Node.js (le framework permettant de créer facilement des applications réseaux coté serveur). C’est donc dans ma logique toute cartésienne, que j’ai développé un javascript permettant de disposer d’une interface Web pour consulter ces statistiques de débits sans avoir à installer un serveur Web et son plugin PHP (comme c’est le cas avec le VnStat PHP frontend).

Ce script, disponible sous licence GPL v3, s’appelle VnStat.js est disponible dans mon GitHub à l’adresse suivante:


https://github.com/nicolargo/vnstat.js

Installation

Pour fonctionner correctement, VnStat.js nécessite:

  • une installation de VnStat fonctionnelle. Je vous conseille la lecture de ce billet pour effectuer une installation « from-scratch » sur une machine tournant sous Debian / Ubuntu.
  • que le framework Node.js soit installé sur cette même machine. Le script a été validé avec la dernière version stable de Node.js (0.4.12).

On commence par récupérer la dernière version de VnStat.js depuis le dépôt Git:

[cce lag= »bash »]

cd ~

git clone git://github.com/nicolargo/vnstat.js.git

cd vnstat.js

[/cce]

Pour les personnes utilisant NPM (le package manager de Node.js), vous pouvez l’utiliser pour installer VnStat.js. Suivre les instructions de cette page.

Lancement de VnStat.js

Pour lancer le noeud VnStat.js, il suffit de saisir les commandes suivantes:

[cce lag= »bash »]

cd ~/vnstat.js

node ./vnstat.js

[/cce]

Le « node » va se mettre en écoute sur le port TCP 1337 de votre serveur (il faut donc ajouter une règle pour autoriser les requêtes entrantes vers ce port si vous avez un firewall).

A l’ouverture de l’URL http://adressedevotremachine:1337/ dans un navigateur compatible HTML5, la page principale suivante va s’afficher:

Elle affiche le résumé des statistiques de VnStat ainsi que le top 10 des journées. Le menu du haut permet de naviguer vers des statistiques plus ciblés.

Par heures (avec à la fois la vue graphique et textuelle):

Et ainsi de suite pour les jours, semaines (à noter qu’il n’y a pas de graphe spécifique par semaine généré par vnstati) et enfin par mois.

Configuration de VnStat.js

Le design de VnStat.js peut bien entendu être adapté à vos besoins en éditant le fichier css/style.css (CSS3). Si vous avez besoin de changer le port TCP d’écoute du node, il y a une variable pour cela dans le fichier lib/server.js.

C’est mon premier développement avec le framework Node.js, il y a sûrement des améliorations à faire mais la structure reste assez didacticiel pour servir de base pour d’autre développement du même type.

Lancement automatique de VnStat.js au démarrage de votre machine

 Comme vous avez pu le remarquer, le node VnStat.js est lancé à la main dans ce billet. Si vous souhaitez mettre en production ce script et le lancer automatiquement au démarrage de votre machine, je vous conseille la lecture du billet de Vincent sur son blog qui regorge d’information sur ce superbe framework qu’est Node.js.

Catégories
Open-source Planet-libre Web

Remplacer Google Analytics par Piwik

Pour rebondir sur le billet des administrateurs du Planet Libre, voici une rapide, mais néanmoins efficace, procédure pour remplacer le propriétaire Google Analytic (bouh !) par le libre Piwik (houra !).

Piwik est un service Web permettant d’afficher un tas de statistique sur qui fait quoi sur votre site / combien de temps, combien de fois… Bref un vrai big brother perso !

Cette procédure est honteusement inspirée de la procédure officielle et adaptée à l’analyse de mon blog sous WordPress.

On commence par préparer le terrain…

Il vous faut:

  • un serveur Web (Apache ou autre NGinx)
  • un base de donnée (MySQL)
  • un accès FTP ou mieux: SSH

Nous partons sur l’hypothèse ou Piwik est installé sur la même machine que le site à superviser. Si ce n’est pas le cas, le seul changement à faire sera dans la configuration de la base de donnée en remplaçant localhost par % (qui est un alias pour tout les sites…).

On créé la base de donnée MySQL nommé piwik, accessible depuis la machine locale (localhost) et seulement par celle-ci à partir d’un utilisateur MySQL nommé piwik (très original je sais). Voici le déroulement de ces actions à partir de PHPMyAdmin:

Installation de Piwik

On se connecte sur notre serveur en SSH, puis on va dans l’arborescence on se trouve notre serveur Web (par exemple /var/www):

cd /var/www

puis on saisit les commandes suivantes:

wget http://piwik.org/latest.zip

unzip latest.zip

rm latest.zip How\ to\ install\ Piwik.html

Si votre serveur http://monbeausite.com/ pointe sur /var/www alors il suffit de saisir l’URL http://monbeausite.com/piwik/ pour continuer l’installation via l’interface Web.

Celle-ci va se dérouler en 9 étapes:

On commence par vérifier les pré-requis systèmes de votre serveur:

Perso je suis tombé sur le message d’erreur suivant que j’ai corrigé en saisissant la commande donnée:

chmod a+w /var/www/piwik/config

On passe ensuite à la configuration de la base de donnée. Il faut saisir les paramètres par rapport à la configuration faite dans le premier chapitre. Dans mon cas, j’ai du remplacer le 127.0.0.1 par localhost (pas trop compris pourquoi…).

Ensuite on entre le nom, le mot de passe et le mail de l’administrateur (c’est avec ce compte que l’on pourra se connecter à l’interface Web). Je vous conseille de donner un compte/mot de passe différent que celui affecté à la base de donnée…

On passe ensuite au paramétrage du site que l’on souhaite analyser:

Piwik va automatiquement générer le code Javascript à insérer dans vos pages HTML:

Dans le cas d’un blog sous WordPress, il suffit d’ajouter le code dans le fichier footer.php de votre thème (juste avant la balise /body):

Il ne reste plus qu’a attendre un peu que les visites sur votre site soit prise en compte dans la base de donnée Piwik puis de se rendre sur l’URL http://monbeausite.com/piwik pour voir vos statistiques:

Optimisation de Piwik

Si votre site génère plus de 500 visites par jour, il est conseillé de suivre cette procédure pour optimiser le traitement des données.

Dernière étape et non des moindres: supprimer le code JavaScript de Google Analytics 🙂

Et voilà le travail !

Catégories
Open-source Web

Spideroak, un sérieux concurrent à Dropbox

Spideroak est un service en ligne de sauvegarde, synchronisation et partage de données. La fonction qui m’intéresse particulièrement est de pouvoir synchroniser des répertoires entres plusieurs machines.

Spideroak fonctionne sur le principe suivant: on commence par installer le client Spideroak sur une machine (GNU/Linux, Mac OS X ou Windows). Au premier lancement, le client va créer un compte utilisateur auquel sera associé une clé de chiffrement permettant de s’assurer que vous serez le seul à pouvoir accéder à vos données (même la société Spideroak…). Il va ensuite vous demander le nom de votre machine (je vous conseille de choisir un nom facile à reconnaitre, surtout si vous avez plusieurs machines) et la liste des répertoires à sauvegarder. On se retrouve donc avec, sur le serveur,  une association « Nom de machine / Répertoire de données ». A partir du moment ou le client est installé sur au moins deux machines, on peut passer à l’étape de la configuration de la synchronisation.  Il suffit de choisir une source (« Nom de machine 1 / Répertoire de données X ») et une destination (« Nom de machine 2 / Répertoire de données Y »). A partir de ce moment là, toute modification (ajout, modification, suppression) d’un fichier dans le répertoire local Y de la machine 2 sera répercutée sur le répertoire X de la machine 1 (et vice et versa).

On voit ici la flexibilité de Spideroak par rapport à Dropbox. En effet, Dropbox ne permet que de synchroniser un seul répertoire (appelé Dropbox par défaut). Tandis qu’avec Spideroak, il est possible de synchroniser autant de répertoire que nécessaire, Par exemple, un répertoire « Documents » d’un PC sous Linux avec un répertoire « Mes Documents » d’un pauvre PC sous Windows. Dans le même ordre d’idée il est possible de sélectionner les répertoires à synchroniser sur un PC donnée: il n’est par exemple pas indispensable de stocker sa collection de photos sur son PC du boulot mais il peut être utile de l’avoir sur son PC portable perso…

Voici pour mieux comprendre un petit screencast ou je partage un répertoire « test » entre mes PC Desktop et Laptop:

Source du screencast au format H.264 (720p).
D’autres screencast proposées par Spideroak.

Tout comme avec DropBox, il est également possible d’accéder en lecture à ses données à partir d’un simple navigateur Web ou à partir d’une application iPhone.

Spideroak propose gratuitement 2 Go de stockage (comme Dropbox), par contre l’offre payante est plus compétitive car on a 100 Go pour $10 par mois (ou $100 à l’année). Il faut ensuite compter $10 par tranche de 100 Go supplémentaire.

La société Spideroak ne distribue pas son client sous licence libre (ce qui est bien dommage mais il y a des chances que cela change dans le futur). Par contre elle met a disposition, sous licence GPLv3, une liste de logiciels développés autour de ce projet.

Cliquer ici pour installer et tester Spideroak sur votre machine.

J’attends vos retours !

Catégories
Developpement Open-source

Un serveur de développement libre

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 admin@mondomaine.com

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-python trac python-pygments enscript

sudo a2enmod mod_python

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:

Catégories
Web

Pause café du vendredi

Je vous propose (on a le droit c’est vendredi), une petite expérience. Il faut d’abord lancer l’écoute de la chanson suivante:

free music

Durant l’écoute de cette chanson, 439 personnes seront mortes, 593 seront nées, 648 ordinateurs auront été fabriqués (soit plus d’un ordinateur par naissance ;)), 233047 barils de pétroles auront été pompées… si vous voulez d’autres chiffres, c’est par ici:

Bon café 😉

Catégories
Systeme Web

Exporter son carnet d’adresses Mac vers Gmail

Voici une procédure toute simple pour exporter son carnet d’adresses Mac (format vCards) dans celui de Gmail (CSV). Cela peut être utile pour sauvegarder vos contacts en ligne et ainsi les avoir à disposition même si vous n’êtes pas devant votre Mac…

 

CA vers VCF

La première étape consiste à exporter votre carnet d’adresse au format vCards. Pour cela, il faut ouvrir l’application carnet d’adresse du Mac, selectionner le groupe à exporter (« Tous » si vous voulez exporter la totalité du carnet), puis aller dans le menu Fichier/Exporter la vCard du groupe.

VCF to CSV

Dans la seconde étape nous allons transformer le fichier vCard dans un format « compréhensible » par GMail: le format CSV. Il faut pour cela se rendre sur le site suivant selectionner votre fichier vCards.vcf préalablement généré, choisir le format « Gmail (CVS) » et cocher l’option « vCards with e-mail only ». Le site va générer un fichier nommé vCards.csv.

CSV to Gmail

La dernière étape va nous permettre d’importer le fichier vCards.csv dans Gmail. Il faut d’abord aller sur votre compte Gmail, puis cliquer sur le lien Contacts et Importer (en haut à gauche). Une nouvelle fenêtre va s’ouvrir. Il ne reste plus qu’a selectionner votre fichier vCards.csv et à cliquer sur Importer des contacts….

Catégories
Blog Developpement Web

Plugin Ziki pour WordPress

Download ZikiPlugin button

Depuis son passage en version 2.0, Ziki, le gestionnaire d’identité numérique, propose de nouvelles fonctions assez intéressantes. L’une d’entre elle est la mise à disposition d’une API permettant de récupérer des informations aux formats XML.Voici donc un widget WordPress permettant d’afficher vos informations stockés dans votre Ziki. Cette première version, affiche:

  • l’avatar avec un lien vers votre Ziki
  • le nickname
  • en option: le nom et le prénom
  • NEWS v0.2: les liens vers les réseaux sociaux (type Facebook, twitter…)
  • NEWS v0.4: affichage des statistiques Feedburner et Technorati
  • NEWS v0.5: amélioration de la présentation du widget
  • NEWS v0.5: ajout de l’affichage de la citation (baseline)
  • NEWS v0.5: lien vers le flux RSS
  • NEWS v0.5: lien vers « add favorite » de Technorati
  • NEWS v0.7: amélioration de la gestion des icônes (merci à Costalfy ;))
  • NEWS v0.8: ajout affichage nombre de fans et d’amis
  • NEWS v0.9: suite à un changement sur les serveurs Ziki, modification de l’affichage de l’avatar
  • NEWS v1.0: le code généré par le plugin est propre (CSS)
  • NEWS v1.1: changement de l’URL du fichier XML chez Ziki…

Quand j’aurai un peu de temps, j’ajouterai de nouvelles options (je suis donc preneur de toutes remarques…).Vous pouvez voir un exemple live dans ma sidebar.

ZikiPlugin

Installation

Après avoir téléchargé le plugin à l’adresse suivante (version 0.8), il suffit de décompresser l’archive dans le répertoire plugin de votre serveur WordPress et d’activer le plugin dans l’interface d’administration.Il faut bien entendu, disposer d’un compte Ziki, pour le créer cliquez ici.

Configuration

Il faut se rendre dans la section Widgets de votre thème et ajouter le widget ZikiPlugin. Vous pouvez configurer:

  • « Title » = Le titre qui apparait en haut du widget
  • « Name » = Il faut saisir ici l’id Ziki de votre compte. Pour le trouvé, rien de plus simple, connectez vous à votre Ziki et regardez l’URL, votre id Ziki est la dernière chaine de caractère de cette addresse (exemple: http://www.ziki.com/fr/people/nicolargo => id Ziki: nicolargo).
  • « Display baseline ? » = Affichage de la citation.
  • « Display first and last name ? » = Définir si vous voulez ou non afficher votre nom et prénom dans le widget.
  • « Display profile links » = Définir si vous voulez ou non afficher un lien vers vos autres profils (type Facebook, Twister…), si ces derniers sont configurés dans votre Ziki.
  • « Display statistics » = Si vous avez défini un sit/blog dans votre profil Ziki, en cochant cette options, vous allez pouvoir afficher les statistiques Feedburner et Technorati.

Desinstallation

Il suffit de désactiver le plugin dans l’interface d’administration.

Notes

Ce plugin utilise les fonctions widgets de WordPress. Avant installation il faut donc vérifier que votre version de WordPress les supporte.Il est bien sûr distribué sous licence CC: Creative Commons License

Dons

Il est possible de faire un don pour participer à l’évolution de ce plugin: