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


Contributeurs : …

  • lorea.txt
  • Dernière modification: Le 28/04/2018, 11:18
  • (modification externe)