Lorea - Réseau social libre
Lorea est un réseau social libre, et de forme "fédérée" : chaque noeud peut participer à l'ensemble des activités du réseau, et le réseau n'est pas limité à des instances de lorea_production, mais comporte également des applications compatibles avec OStatus ou XMPP.
Son objectif est de créer une organisation distribuée et fédérée ; "nodale", des entités sans territoire géophysique, avec entrelacement de leurs relations multiples au moyen de codes binaires et de langages.
… Le mot Lorea vient de la langue basque et signifie : fleur …
Pré-requis
Pour semer votre propre graine de Lorea, vous devez disposer d'un serveur Web et d'une base de données MySQL. La solution standard consiste à utiliser Apache2 dans une installation lamp, aussi nous n'allons pas répéter cette partie : consultez le lien pour installer les logiciels nécessaires. En revanche, si vous désirez utiliser Nginx plutôt qu'Apache2, poursuivez la lecture.
Note pour les utilsateurs de Lucid (10.04)
La version de PHP qui intègre PHP-FPM est disponible en backport sur Lucid. Ajoutez dans les sources logicielles ppa:nginx/php5 comme indiqué sur la page https://launchpad.net/~nginx/+archive/php5 (menu Administration > Sources de logiciels, dans l'onglet "Autres logiciels" cliquez sur le bouton "ajouter")
Puis mettez à jour la liste des logiciels avant d'installer PHP5-FPM et consorts :
sudo apt-get install php5 php5-cli php5-cgi php5-fpm php5-gd php5-mysql
Si vous voulez activer les modules de chiffrement, vous aurez besoin de la version de GNUPG disponible dans PECL:
sudo apt-get install php5-dev php-pear build-essential; sudo pecl install gnupg
A présent, vous devriez avoir tous les paquets nécessaires à l'installation de lorea_production.
Installation
Nous sommes parés pour créer un noeud local. Pour un noeud public en réseau, vous remplacerez bien entendu l'entrée suivante dans /etc/hosts par une entrée dans la configuration du DNS : cela dépasse le sujet de ce tutoriel.
A mettre dans /etc/hosts, donc : 127.0.1.1 lorea.local
Créer un utilisateur
L'ajout d'un utilisateur spécifique pour votre installation permet de rendre les choses plus claires et plus saines.
sudo adduser lorea
Récupérer les sources
sudo su - lorea
Si vous ne disposez pas de mercurial, vous pouvez récupérer un snapshot de lorea_production :
wget https://bitbucket.org/rhizomatik/lorea_production/get/tip.zip
;unzip /path/to/tip.zip
Sinon:
hg clone https://bitbucket.org/rhizomatik/lorea_production
Préparer les chemins
En tant que lorea : mkdir ~/lorea_production/data
En tant que root : sudo ln -s /home/lorea/lorea_production/elgg/ /var/www/lorea.local
Configurer php5-fpm
Si vous avez choisi l'option Nginx, cela vous concerne. Sauver la configuration dans /etc/php5/fpm/pool.d/lorea.conf
- /etc/php5/fpm/pool.d/lorea.conf
[lorea] listen = /home/$pool/lorea_production/data/$pool.socket listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www-data listen.group = www-data listen.mode = 0666 user = $pool group = $pool pm = dynamic pm.max_requests = 0 pm.max_children = 2 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 1 pm.status_path = /fpm-status ping.path = /fpm-ping ping.response = pong request_terminate_timeout = 120 request_slowlog_timeout = 5 slowlog = /home/$pool/lorea_production/data/php5-fpm-slow.log catch_workers_output = yes env[elgg_config] = /home/$pool/lorea_production/data/settings.php
Configurer Nginx
Pareil, si vous avez choisi l'option Nginx:
- /etc/nginx/sites-available/lorea.local
# ## ### lorea.local ## # # Copyright 2011 Lorea.org # # Sample Elgg installation for a local Lorea node, using Nginx. # This is the Nginx configuration. # ## Pre-Requisites # # It assumes you have an entry in your /etc/hosts such as: # # 127.0.1.1 lorea.local # # You have PHP, Nginx and Mysql installed and configured. # # It runs on localhost, and doesn't use SSL (Refer to Nginx docs for that) server { listen 80 default; server_name lorea.local; root /var/www/lorea.local; # symlink to elgg/ index index.php index.html; # access_log /var/log/nginx/lorea.local.access.log; access_log off; error_log /var/log/nginx/lorea.local.error.log; client_max_body_size 8M; client_body_buffer_size 256K; # We treat Cache, CSS and JS files first, as these URLs are always dynamic location ~ ^/cache/ { rewrite ^/cache/(.*) /engine/handlers/cache_handler.php?request=$1 last; } location ~* ^/pg/(css|js) { rewrite ^/pg/(css|js)/(.*) /engine/handlers/page_handler.php?handler=$1&page=$2 last; rewrite ^/pg/(css|js) /engine/handlers/page_handler.php?handler=$1 last; } location ~ ^/_css/css.css { rewrite ^(/_css/css)\.css$ $1.php last; } # All other files are treated in order: existing file or dynamic PHP file location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/actions?/([A-Za-z0-9\_\-\/]+) /engine/handlers/action_handler.php?action=$1; rewrite ^/export/([A-Za-z]+)/([0-9]+)/?$ /engine/handlers/export_handler.php?view=$1&guid=$2; rewrite ^/export/([A-Za-z]+)/([0-9]+)/([A-Za-z]+)/([A-Za-z0-9\_]+)/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4; rewrite ^/pg/([A-Za-z0-9\_\-]+)/(.*) /engine/handlers/pagehandler.php?handler=$1&page=$2; rewrite ^/pg/([A-Za-z0-9\_\-]+) /engine/handlers/pagehandler.php?handler=$1; rewrite ^/services/api/([A-Za-z0-9\_\-]+)/(.*) /engine/handlers/service_handler.php?handler=$1&request=$2; rewrite ^/tag/(.+)/?$ /engine/handlers/pagehandler.php?handler=search&page=$1; rewrite ^/xml-rpc.php /engine/handlers/xml-rpc_handler.php; rewrite ^/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php; } location ~ \.php$ { include fastcgi_params; # Assuming php-fastcgi running on localhost port 9000 #fastcgi_pass 127.0.0.1:9000; # Assuming php-fpm is running on a local socket fastcgi_pass unix:/home/lorea/lorea_production/data/lorea.socket; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } # Do not put CSS there or it will break simplecache location ~* \.(bmp|js|gif|ico|jpg|jpeg|png)$ { expires max; # log_not_found off; } # We don't use .htaccess, but Elgg provides them. location ~ /\.ht { deny all; } }
Pour activer cette configuration, il vous faut virer la configuration par défaut et la replacer par celle-ci :
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/lorea.local /etc/nginx/sites-enabled
Créér la base de données
Entrez dans le console de MySQL avec : mysql -u root -p
Puis créez la base :
create database lorea; grant all privileges on lorea.* to `lorea`@`localhost` identified by 'super-secret'; flush privileges; quit
Mettez en place la configuration d'Elgg
sudo su - lorea
cp lorea_production/elgg/engine/settings.example.php lorea_production/data/settings.php
Editez le fichier pour remplacer les {CONFIG} avec les valeurs utilisées ci-dessus.
Redémarrer les serveurs
sudo /etc/init.d/nginx restart; sudo /etc/init.d/php5-fpm restart
Configuration d'Elgg
Maintenant vous pouvez pointer votre navigateur vers http://lorea.local/ afin de terminer l'installation. Vous allez créer le premier utilisateur, qui est également l'administrateur du site.
Il est recommandé de ne pas utiliser cet administrateur pour autre chose que son rôle : c'est-à-dire, ne lui créez pas d'amis, ni de souscription à des groupes ou des contenus. Cela n'est pas critique pour l'instant mais cela pourrait le devenir dans le futur. L'admin, c'est l'admin.
Gestion des outils
Vous avez une instance d'Elgg qui tourne, mais elle n'offre aucun plugin. Pour les activer, utilisez l'interface d'administration du site et activez les outils suivants pour commencer avec "activitystreams" (l'ordre est important) :
- jsinbox
- groups (le mettre au début de la liste)
- threaded_forums (le mettre à la fin)
- activitystreams (le mettre à la fin)
- foreign_objects (le mettre à la fin)
D'autres plugins vous apporteront d'autres fonctionnalités. Pour la fédération de votre graines de Lorea, vous devrez mettre en place SSL (A écrire.)
Voir aussi
- Video : Présentation de Lorea un réseau social fédéré ( "lorea is not a social network"(linux), lorea is a technology to federate/distribute data, and a self managed social system )
Contributeurs : …