Installez votre propre instance StatusNet

Aujourd'hui, tout le monde connait les réseaux sociaux. Les deux plus connus : Facebook et Twitter. Plus de 600 millions de membres sur Facebook. 175 millions sur Twitter. C'est du jamais vu. C'est pourquoi l'on parle véritablement de phénomène.

Et si ce phénomène modifie grandement l'approche de millions d'internautes, la réalité n'a, elle, pas changé : mettre des données personnelles sur Internet n'est pas moins dangereux qu'avant. Mettre des données sur les serveurs d'entreprises privées, ce n'est pas quelque chose à faire à la légère. Le Cloud a beau vouloir nous faire croire que c'est cool, tendance et 2.0, ce n'est pas le cas.

Si l'on ajoute à cela le fait que les réseaux sociaux d'aujourd'hui sont centralisés, qu'il ne s'agit en fait que de Minitel 2.0, on comprend mieux que des défenseurs d'Internet, le vrai Internet, l'Internet décentralisé, travaillent sur des projets de réseaux sociaux décentralisés.

Des alternatives ouvertes, que chacun peut héberger, et ainsi garder la main sur toutes ses données. Des alternatives qui sont pleinement pensées pour Internet. Il en existe beaucoup, les plus connus étant Diaspora pour Facebook, et StatusNet pour Twitter. Ces deux projets sont encore en développement, ils ont encore beaucoup de chemin à parcourir avant d'être assez matures. Néanmoins, l'enjeu d'un web décentralisé a mobilisé pour chacun une communauté de plus en plus grande.

Les réseaux sociaux centralisés ont encore de beaux jours devant eux. Merci l'effet de réseau. Ceci dit, j'ai décidé de franchir le pas : utilisateur régulier de Twitter, je vais essayer de m'en détacher progressivement, en installant ma propre instance StatusNet. Si je suis conscient des enjeux d'un web décentralisé, ce n'est pas le cas de tout le monde : c'est pourquoi les "tweets" de mon StatusNet seront automatiquement copiés sur Twitter. C'est à mon avis un bon compromis.

Passons à l'action


Je pars du principe que vous possédez un LAMP fonctionnel (ici Debian Squeeze). Nous allons, si ce n'est pas déjà le cas, installer les binding curl pour PHP.

# aptitude install php5-curl
# /etc/init.d/apache2 restart

Puis nous allons créer une base et un utilisateur mysql dédiés à StatusNet. La requête ressemble à ceci (attentions aux copier/coller de requêtes SQL, c'est souvent problématique à cause de l'encodage des caractères) :

CREATE USER 'yourUser'@'localhost' IDENTIFIED BY 'yourPassword';

GRANT USAGE ON * . * TO 'yourUser'@'localhost' IDENTIFIED BY 'yourPassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE DATABASE IF NOT EXISTS `yourStatusNetDB` ;

GRANT ALL PRIVILEGES ON `yourStatusNetDB` . * TO 'yourUser'@'localhost';

Téléchargeons à présent la dernière version de StatusNet ici : http://status.net/download. Lors de l'écriture de ce billet, il s'agit de la version 0.9.7.

$ wget http://status.net/statusnet-0.9.7fix1.tar.gz

On déplace l'archive dans le DocumentRoot de notre serveur Apache, puis on la détare :

# mv statusnet-0.9.7fix1.tar.gz /var/www/
# cd /var/www/
# tar -xvf statusnet-0.9.7fix1.tar.gz
# mv statusnet-0.9.7fix1 statusnet

Si ce n'est pas déjà fait, on active le mod_rewrite :

# a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
# /etc/init.d/apache2 restart

Après s'être assuré que la directive AllowOverride de notre vhost permet bien l'utilisation des .htaccess, on modifie la ligne RewriteBase du fichier htaccess.example, puis on le renomme en .htaccess. Voici la configuration pour mon exemple :

<IfModule mod_rewrite.c>
  RewriteEngine On

  # NOTE: change this to your actual StatusNet base URL path,
  # minus the domain part:
  #
  #   http://example.com/        => /
  #   http://example.com/mublog/ => /mublog/
  #
  RewriteBase /statusnet/

  ## Uncomment these if having trouble with API authentication
  ## when PHP is running in CGI or FastCGI mode.
  #
  #RewriteCond %{HTTP:Authorization} ^(.*)
  #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule (.*) index.php?p=$1 [L,QSA]
</IfModule>

<FilesMatch "\\.(ini)">
  Order allow,deny
</FilesMatch>

N'oublions pas de changer l'utilisateur et le groupe propriétaire du dossier statusnet, pour l'attribuer au serveur apache :

# cd /var/www/
# chown -R www-data:www-data statusnet

Nous pouvons à présent nous maintenant lancer le script d'installation disponible sur : http://your-domain/statusnet/install.php.

Attention, si vous possédez un serveur peu puissant : ne validez pas tout de suite. Je vous recommande avant d'allonger la durée maximum d’exécution de script de PHP. Bien sur, vous pourrez le remettre à la valeur que vous souhaitez par la suite, mais j'ai du pour ma part l'allonger à 60 secondes, le script que nous allons lancer excédant allègrement les 30 secondes sur de petites configs.

# vim /etc/php5/apache2/php.ini
...
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 60
...
# /etc/init.d/apache2 restart

Vous pouvez à présent cliquer sur Submit.

Et voilà ! Vous pouvez accéder à l'interface sur http://your-domain/statusnet.

Il est temps de personnaliser l'interface, vos paramètres utilisateurs, etc. Pour ajouter l'export de vos notes vers Twitter, rendez-vous dans le répertoire plugins/TwitterBridge/ dans votre dossier statusnet. Vous y trouverez un fichier README détaillant comme activer le plugin. Basiquement, il s'agit de créer une application Twitter via ce lien et de renseigner les paramètres ensuite fournis dans un fichier de configuration.

Je vous souhaite une bonne découverte de StatusNet !

PS : Si vous souhaitez me suivre, voici mon profil.

Vus : 1645
Publié par Jeyg : 33