Retour sur les réseaux sociaux Open Source Installation de GNU Social

Ce que vous allez créer

Dans la première partie de cette série, Revisiter les alternatives de réseau social open source, j’ai donné un bref aperçu d’une poignée de plateformes et de clients de réseaux sociaux open source. Dans cette partie, je vais plonger dans une installation de GNU Social et discuter de ce qui, à mon avis, sera essentiel pour rivaliser dans un monde dominé par Facebook / Twitter.. 

Pourquoi GNU Social?? Je pensais que c'était le système le plus simple à installer et à utiliser. Il est également écrit en PHP, qui est selon moi le langage open source le plus accessible. Bien que cela se limite à apparaître comme un clone de Twitter, je pense que cela a permis de garder toutes ses fonctionnalités de base et son interface utilisateur Web relativement propres. Cependant, le site Web GNU Social était en panne pendant plusieurs jours alors que je travaillais sur ce tutoriel; l'état du monde du réseau distribué open source reste parfois irrégulier.

Installer GNU Social

Vous pouvez installer GNU Social sur n’importe quel système basé sur LAMP. J'ai posté mon guide générique d'installation d'une pile Ubuntu LAMP à titre de référence..

Connectez-vous à votre serveur:

ssh [email protected]

Installez tous les composants requis (Curl et Git sont également nécessaires pour ce tutoriel):

sudo locale-gen en_US en_US.UTF-8 sudo dpkg-reconfigure locales sudo apt-get update -q sudo apt-get dist-upgrade -y sudo apt-get install -y pound varnish php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4 sudo apt-get installer php5-curl git 

Créez un répertoire pour le site et définissez les autorisations:

mkdir / var / www / social -p chown www-data: www-data / var / www / social cd / var / www / social 

Cloner le référentiel:

git clone git: //gitorious.org/social/mainline.git .

Connectez-vous à MySQL avec votre mot de passe de base de données racine:

mysql -u root -p

Créez une nouvelle base de données et définissez les autorisations:

créer une base de données sociale; accorde tous les privilèges sur social. * TO "root" @ "localhost" identifié par "-your-pwd-"; privilèges de chasse; sortie;

Créez le site Apache:

nano /etc/apache2/sites-available/social.conf

Collez la configuration Apache ci-dessous, adaptée à votre serveur:

 NomServeur social.votredomaine.com DocumentRoot / var / www / social DirectoryIndex index.php  AllowOverride All Ordre Nier, Autoriser Autoriser de tous  

Activez le site, désactivez le site par défaut et redémarrez Apache:

sudo a2ensite social.conf sudo a2dissite 000-default.conf service sudo apache2 reload

Vous devrez également configurer quelques répertoires pour l'accès en écriture:

chmod a + w / var / www / social / avatar / chmod a + w / var / www / social / fond / chmod a + w / var / www / social / fichier /

Pour activer de jolies chaînes d'URL, nous devons déplacer l'exemple. .htaccess déposer et activer mod_rewrite:

mv htaccess.sample .htaccess sudo a2enmod réécrire le service sudo apache2 restart

Visitez la page d'installation et entrez votre nom et vos paramètres de configuration:

http://social.votredomaine.com/install.php

Vous devriez voir quelque chose comme ça:

Et:

La procédure d'installation prend jusqu'à une minute, mais vous devriez voir quelque chose comme ça quand c'est terminé:

Voici à quoi ressemble la page d'accueil par défaut:

Installer un thème personnalisé

Installons le thème open source Neo Quitter, qui ressemble à Twitter:

cd / var / www / social / thème git clone https://github.com/hannesmannerheim/neo-quitter 

Editez le fichier de configuration et ajoutez une entrée pour le thème Neo Quitter:

cd / var / www / social sudo nano config.php

Ça devrait ressembler à ça:

Coller dans cette ligne:

$ config ['site'] ['theme'] = 'neo-quitter';

Retournez à la page d'accueil et cela devrait ressembler davantage à ceci:

Démarrer avec GNU Social

Enregistrement de votre compte

Il est temps de vous inscrire sur votre propre réseau social:

Une fois que vous vous êtes inscrit, vous serez accueilli par cette page utile de démarrage:

Après avoir téléchargé mon avatar, voici à quoi cela ressemble de publier une mise à jour de statut avec une photo:

Je ne suis pas tout à fait sûr de ce que le clic sur le cadenas ouvert et fermé fait, car la confidentialité semble être contrôlée par la liste déroulante.

Voici ma page de profil avec mon premier post:

Ressemble à tout site de réseautage social commun que vous connaissez? 

Le polissage et la finition relatifs de GNU Social par rapport aux autres réseaux couverts dans la première partie sont la raison pour laquelle j'ai choisi de me concentrer dessus pour une exploration plus poussée..

Expérimenter avec le réseau fédéré

Ensuite, je voulais expérimenter les fonctionnalités réseau fédérées de GNU Social. J'ai sauté sur Quitter.is, un site GNU Social ouvert au public, et ai suivi le nom d'utilisateur de la première personne que j'ai trouvée là-bas..

Sur votre propre site, vous devez visiter votre page de profil, puis cliquer sur Suite + à distance dans la colonne de droite (ce n'est pas tout à fait intuitif):

Pour suivre un utilisateur distant, vous créez une adresse combinant son nom d’utilisateur distant avec le domaine du site réseau distant, par exemple. nom d'[email protected].

Bien que la performance soit relativement lente (Quitter se trouve en Islande), nous avons pu échanger des @ réponses et mon compte GNU Social est apparu dans la liste des suiveurs de Quitter.is. Lorsque je me suis connecté le lendemain, leurs mises à jour sont apparues sur mon installation GNU Social:

Voici à quoi cela ressemblait quelques heures plus tard, après avoir suivi quelques personnes plus éloignées:

En compétition avec Facebook et Twitter

Le défi de base

Voici certaines des qualités qui, selon moi, sont importantes pour qu'un système de réseau social open source puisse rassembler le soutien et l'adoption de la population:

  • Installation simple pour les développeurs peu qualifiés. Par exemple, toute personne disposant de connaissances de base en PHP et en Linux devrait pouvoir s’installer rapidement. Il devrait aborder la facilité d'installation de WordPress auto-hébergé.
  • Options mono et multi-utilisateurs. Idéalement, la plate-forme devrait prendre en charge l'exécution d'une installation sociale pour un seul utilisateur (l'installateur) ou en tant que réseau prenant en charge une communauté de nombreux utilisateurs..
  • Option d'hébergement payant pour permettre aux utilisateurs non techniques intéressés de participer. Par exemple, j'aime la façon dont la plateforme de blogs Ghost offre une option SaaS payante..
  • Interface utilisateur de publication élégante (texte, photos, éventuellement vidéo) et prise en charge de la recherche de balises méta à partir d’URL. C’est l’une des fonctionnalités les plus critiques et les plus négligées des offres open source actuelles..
  • Expérience simple de l'utilisateur final. L'interface devrait être aussi simple à utiliser que Facebook et Twitter.
  • Bonne performance. Les opérations courantes, par exemple publier, télécharger des photos, suivre, parcourir la chronologie et obtenir les mises à jour de la chronologie doivent tous être rapides.
  • Publication sur Twitter et Facebook. La plate-forme devrait permettre aux utilisateurs de refléter leurs publications locales sur leurs réseaux existants de manière automatisée ou semi-automatisée..
  • Soutenir Theming. Les utilisateurs doivent pouvoir personnaliser l'apparence de leur réseau.
  • Stratégie de sauvegarde. La plate-forme doit inclure une fonctionnalité de sauvegarde intégrée, idéalement avec certaines options de cloud telles que S3..
  • Intégration analytique. Il devrait être facile pour les utilisateurs d'obtenir des données sur l'activité de leurs flux.
  • Architecture de code solide, par exemple. Architecture MVC et / ou utilisation d'un framework commun.
  • Grande documentation sur la base de code.
  • Mises à niveau semi-automatiques. Il est important de faciliter le cycle de mise à niveau pour permettre aux utilisateurs de maintenir la base de code à jour sur le réseau..

Capacités Avancées

En outre, de nombreux aspects de la réussite et de la domination de Facebook et de Twitter sont subtils ou invisibles pour nous. À titre d’exemple, voici quelques exemples importants:

  • Haute performance sur le réseau
  • Haut débit pour le téléchargement d'images (et éventuellement de vidéos)
  • Tolérance aux pannes à l'utilisation
  • Ne jamais perdre de données

Bien que la nature distribuée des réseaux fédérés open source puisse aider à limiter les dommages causés par la défaillance d'un seul nœud, elle complique également la résolution des problèmes de performances et la gestion de l'expérience utilisateur, car le réseau interagit avec une variété de nœuds installés..

Un pont vers les réseaux existants

Pour accélérer l'adoption, il peut également être important pour ces réseaux d'importer des flux de Twitter (et éventuellement de Facebook). Par exemple, si vous passez de Twitter à votre propre réseau social, vous serez peut-être le premier de votre groupe d'amis. Vous voudrez probablement continuer à recevoir les mises à jour et les notifications, à recevoir les demandes de suivi et à mettre en miroir les réponses de l'ancien réseau sur votre site, sans avoir à retourner à Twitter..

La technologie actuelle de l'API Twitter (User Streams) prend en charge cette possibilité technique pour les utilisateurs individuels, mais elle nécessite l'autorisation de prendre en charge un groupe d'utilisateurs (Site Streams). Voir Construire avec l'API Twitter (Tuts +). Je suppose qu'il est peu probable que Twitter accorde à Site Stream l'autorisation de ce type d'interopérabilité..

Évaluation de GNU Social

Évaluation de base

GNU Social fonctionne bien mais laisse une marge d’amélioration significative. Il fait du bon travail en gardant le jeu de fonctionnalités étroit et en implémentant bien les bases.

L'installation de la base de code pourrait être encore améliorée. Idéalement, certains packages devraient pouvoir être installés plus rapidement. Finalement, j'aimerais voir un guide d'installation et de maintenance pour les utilisateurs non techniques. 

Il existe de nombreux réseaux où vous pouvez vous inscrire pour un compte gratuit et essayer la plate-forme. Dans le futur, il serait bien de voir les fournisseurs proposer d'installer et de maintenir les réseaux pour les personnes sur une base payante.

Bien que la base de code soit propre, elle n'utilise pas clairement un cadre standard.

GNU Social peut être utilisé pour un seul utilisateur ou en tant que communauté. La prise en charge de OStatus semble bien fonctionner. Et il y a un soutien pour les thèmes.

L'interface de publication est propre mais n'offre aucune recherche d'URL. Il ne semble pas y avoir de prise en charge des balises méta, des balises Open Graph ou des cartes Twitter..

L’expérience de l’utilisateur final est relativement simple, mais elle peut encore être améliorée. Par exemple, le suivi des utilisateurs distants n’était pas simple à partir de la chronologie de base. Je devais accéder à ma page de profil pour suivre les utilisateurs distants.

La performance était pénible en ce qui concerne la connexion à des réseaux distants, peut-être parce que j'étais connecté à un serveur basé en Islande. Il est probablement important que toutes ces opérations soient mises en file d'attente en tant que tâches en arrière-plan..

Il n'y a pas beaucoup de maturité à refléter sur Twitter et Facebook, les sauvegardes et les analyses, mais cela peut arriver avec le temps.

Dernières pensées

GNU Social se trouve à un endroit où les passionnés de PHP pourraient l’adopter, lancer leurs propres sites et contribuer à la base de code. Je pense aussi que l’équipe Open Source derrière GNU Social pourrait faire de grands progrès en gardant un ensemble de fonctionnalités étroit et en se concentrant sur le perfectionnement de ce qu’ils ont. Fournir une base de code extrêmement solide, bien architecturée et bien documentée, capable de recréer Twitter de manière fédérée serait un accomplissement important, et ils y sont déjà bien avancés..

Bien que GNU Social soit conçu pour prendre en charge OStatus, il existe un groupe de travail actif au sein du groupe de travail du W3C Social Web; vous pouvez suivre leurs travaux sur Twitter @socialwebwg.

N'hésitez pas à poster vos questions et commentaires ci-dessous. C'est un sujet vaste et je suis sûr qu'il y a beaucoup de choses que j'ai manquées. Vous pouvez également me joindre sur Twitter @reifman ou m'envoyer un courriel directement. Suivez la page de mon instructeur Tuts + pour voir les prochains articles de cette série..

Liens connexes

  • Revisiter les alternatives de réseau social Open Source (Tuts +)
  • Quitter (site de démonstration)
  • GNU Social
  • Thème Neo Quitter
  • Groupe de travail sur le Web social du W3C, @socialwebwg