Revisar las redes sociales de código abierto instalar GNU Social

Lo que vas a crear

En la primera parte de esta serie, Revisiting Open Source Social Networking Alternatives, presenté una breve descripción de un puñado de plataformas y clientes de redes sociales de código abierto. En esta parte, me sumergiré en una instalación de GNU Social y discutiré lo que creo que será fundamental para competir en un mundo dominado por Facebook / Twitter.. 

¿Por qué GNU Social?? Sentí que es el sistema más sencillo de instalar y usar. También está escrito en PHP, que creo que es el lenguaje de código abierto más accesible. Si bien se limita a parecer un clon de Twitter, creo que esto ha ayudado a mantener todas sus características básicas y la interfaz de usuario web relativamente limpias. Sin embargo, el sitio web de GNU Social estuvo inactivo durante varios días mientras estaba trabajando en este tutorial; El estado del mundo de la red distribuida de código abierto sigue siendo irregular a veces.

Instalación de GNU Social

Puede instalar GNU Social en cualquier sistema basado en LAMP. He publicado mi guía genérica para instalar una pila Ubuntu LAMP como referencia.

Inicie sesión en su servidor:

ssh [email protected]

Instale todos los componentes necesarios (también se requieren Curl y Git para este tutorial):

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

Cree un directorio para el sitio y establezca permisos:

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

Clona el repositorio:

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

Inicie sesión en MySQL con su contraseña de base de datos raíz:

mysql -u root -p

Crear una nueva base de datos y establecer permisos:

crear base de datos social; otorgar todos los privilegios en social. * TO "root" @ "localhost" identificado por "-your-pwd-"; privilegios de descarga; salida;

Crea el sitio de Apache:

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

Pegue la siguiente configuración de Apache, adaptada a su servidor:

 Nombre del servidor social.tudominio.com DocumentRoot / var / www / social DirectoryIndex index.php  AllowOverride All Order Deny, Allow Allow from all  

Habilite el sitio, deshabilite el sitio predeterminado y reinicie Apache:

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

También necesitarás configurar algunos directorios para el acceso de escritura:

chmod a + w / var / www / social / avatar / chmod a + w / var / www / social / background / chmod a + w / var / www / social / file /

Para activar cadenas de URL bonitas, tenemos que mover la muestra .htaccess archivar y habilitar mod_rewrite:

mv htaccess.sample .htaccess sudo a2enmod rewrite sudo service apache2 restart

Visite la página de instalación e ingrese su nombre y configuración:

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

Debería ver algo como esto:

Y:

El procedimiento de instalación tarda hasta un minuto, pero debería ver algo como esto cuando esté completo:

Así es como se ve la página de inicio predeterminada:

Instalar un tema personalizado

Instalemos el tema de código abierto Neo Quitter, que se parece a Twitter:

cd / var / www / social / theme git clon https://github.com/hannesmannerheim/neo-quitter 

Edite el archivo de configuración y agregue una entrada para el tema Neo Quitter:

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

Debe tener un aspecto como este:

Pegar en esta línea:

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

Regrese a la página de inicio y debería verse más como esto:

Empezando con GNU Social

Registro de su cuenta

Es hora de registrarse en su propio sitio de redes sociales:

Una vez que te registres, serás recibido con esta útil página de inicio:

Después de cargar mi avatar, esto es lo que parece publicar una actualización de estado con una foto:

No estoy muy seguro de qué hacer al abrir y cerrar el candado, ya que la privacidad parece estar controlada por el cuadro desplegable.

Aquí está mi página de perfil con mi primera publicación:

Se parece a cualquier red social común que conozcas.? 

El pulido y acabado relativos de GNU Social en comparación con las otras redes cubiertas en la primera parte es la razón por la que elegí enfocarme en él para una mayor exploración..

Experimentando con la red federada

A continuación, quería experimentar con las funciones de redes federadas de GNU Social. Salté a Quitter.is, un sitio de GNU Social abierto al público, y seguí el nombre de usuario de la primera persona que encontré allí..

En su propio sitio, debe visitar su página de perfil, luego hacer clic en Siguiendo + Remoto en la columna derecha (no es muy intuitivo):

Para seguir a un usuario remoto, crea una dirección que combina su nombre de usuario remoto con el dominio del sitio de la red remota, por ejemplo. [email protected].

Si bien el rendimiento es relativamente lento (este Quitter está en Islandia), pudimos intercambiar @ respuestas y mi cuenta de GNU Social apareció en la lista de seguidores de Quitter.is. Cuando ingresé al día siguiente, sus actualizaciones aparecieron en mi instalación de GNU Social:

Esto es lo que parecía unas horas más tarde, después de seguir a un par de personas más remotas:

Compitiendo con Facebook y Twitter

El reto basico

Estas son algunas de las cualidades que creo que son importantes para un sistema de redes sociales de código abierto para reunir apoyo popular y adopción:

  • Instalación sencilla para desarrolladores poco cualificados. Por ejemplo, debería ser fácil para cualquier persona con conocimientos básicos de PHP y Linux instalarlo rápidamente. Debe acercarse a la facilidad de instalación de WordPress auto-alojado..
  • Opciones de usuario único y multiusuario.. Idealmente, la plataforma debería admitir la ejecución de una instalación social para un solo usuario (el instalador) o como una red que admita una comunidad de muchos usuarios..
  • Opción de alojamiento pagada para permitir la participación de usuarios no técnicos interesados. Por ejemplo, me gusta la forma en que la plataforma de blogs Ghost ofrece una opción SaaS pagada.
  • Interfaz de usuario elegante publicación (texto, fotos, eventualmente video) y soporte para buscar meta tags desde URLs. Esta es una de las características más críticas y pasadas por alto en las ofertas de código abierto de hoy..
  • Experiencia de usuario final simple. La interfaz debe ser tan fácil de usar como Facebook y Twitter..
  • Buen rendimiento. Las operaciones comunes, por ejemplo. publicar, cargar fotos, seguir, navegar por la línea de tiempo y obtener actualizaciones de la línea de tiempo deberían ser rápidos.
  • Publicando en Twitter y Facebook. La plataforma debería permitir a los usuarios reflejar sus publicaciones locales en sus redes existentes de forma automatizada o semiautomática..
  • Apoyar a ellos. Los usuarios deben poder personalizar su apariencia de red.
  • Estrategia de copia de seguridad. La plataforma debe incluir capacidad de copia de seguridad incorporada, idealmente con alguna opción de nube como S3.
  • Integración analítica. Debería ser fácil para los usuarios obtener datos sobre la actividad de sus feeds.
  • Arquitectura de código sólido, p.ej. Arquitectura MVC y / o uso de un framework común..
  • Gran documentacion en el código base.
  • Actualizaciones semiautomatizadas. Es importante facilitar el ciclo de actualización para que las personas mantengan el código base actualizado en toda la red.

Capacidades avanzadas

Además, tantos aspectos de lo que hacen que Facebook y Twitter sean exitosos y dominantes son sutiles o invisibles para nosotros. Solo por ejemplo, aquí hay algunos importantes:

  • Alto rendimiento en toda la red.
  • Alto rendimiento para subir imágenes (y posiblemente video)
  • Tolerancia a fallos de uso
  • Nunca perdiendo datos

Si bien la naturaleza distribuida de las redes federadas de código abierto puede ayudar a limitar el daño de una falla de un solo nodo, también aumenta la complejidad de resolver los desafíos de rendimiento y administrar la experiencia del usuario, ya que la red interactúa con una variedad de nodos instalados..

Un puente a las redes existentes

Para acelerar la adopción, también puede ser importante para estas redes importar feeds de Twitter (y posiblemente de Facebook). Por ejemplo, si cambia de Twitter a su propia red social, puede ser el primero de su grupo de amigos. Probablemente querrá seguir recibiendo actualizaciones y notificaciones, recibir solicitudes de seguimiento y reflejar las respuestas de la red anterior dentro de su sitio, sin tener que volver a Twitter..

La tecnología actual de la API de Twitter (User Streams) admite esto como una posibilidad técnica para usuarios individuales, pero requiere su permiso para ser compatible con un grupo de usuarios (Site Streams). Consulte Creación con la API de Twitter (Tuts +). Supongo que es poco probable que Twitter otorgue permiso a Site Stream para este tipo de interoperabilidad.

Evaluando GNU Social

Evaluación básica

GNU Social hace mucho bien, pero deja un margen significativo para mejorar. Hace un buen trabajo manteniendo el conjunto de funciones estrecho e implementando bien los conceptos básicos.

La instalación de la base de código podría mejorarse aún más. Idealmente, debería haber paquetes que puedan instalarse más rápidamente. Eventualmente, me gustaría ver una guía de instalación y mantenimiento para usuarios no técnicos. 

Existen numerosas redes donde puede registrarse para obtener una cuenta gratuita y probar la plataforma. En el futuro, sería bueno ver que los proveedores se ofrezcan para instalar y mantener las redes para las personas que pagan..

Si bien el código base está limpio, no está usando claramente un marco estándar.

GNU Social puede ser operado para usuarios individuales o como una comunidad. El soporte para OStatus parece funcionar bien. Y hay soporte para temas..

La interfaz de publicación está limpia pero no ofrece ninguna búsqueda de URL. No parece haber soporte para las metaetiquetas, las etiquetas Open Graph o las tarjetas de Twitter.

La experiencia del usuario final es relativamente simple, pero aún puede mejorarse. Por ejemplo, seguir a los usuarios remotos no fue sencillo desde la línea de tiempo del hogar. Tuve que navegar a mi página de perfil para seguir a usuarios remotos.

El rendimiento fue doloroso a la hora de conectarse a redes remotas, posiblemente porque estaba conectado a un servidor basado en Islandia. Probablemente es importante que todas estas operaciones se pongan en cola como tareas en segundo plano..

No hay mucha madurez en la creación de reflejos en Twitter y Facebook, copias de seguridad y análisis, pero esto puede venir con el tiempo..

Pensamientos finales

GNU Social se encuentra en un lugar donde los entusiastas de PHP podrían adoptarlo, lanzar sus propios sitios y contribuir al código base. También siento que el equipo de código abierto detrás de GNU Social podría hacer un gran progreso al mantener el conjunto de características limitado y centrarse en pulir lo que tienen. La entrega de una base de código super sólida, bien diseñada y bien documentada que pueda recrear a Twitter de manera federada sería un logro significativo, y están en camino de lograrlo.

Si bien GNU Social está diseñado para soportar OStatus, hay un grupo de trabajo activo en el W3C Social Web Working Group; Puedes seguir su trabajo en Twitter @socialwebwg.

Por favor, siéntase libre de publicar sus preguntas y comentarios a continuación. Este es un área temática amplia y estoy seguro de que hay muchas cosas que me he perdido. También puedes contactarme en Twitter @reifman o enviarme un correo electrónico directamente. Sigue la página de mi instructor Tuts + para ver los futuros artículos de esta serie.

enlaces relacionados

  • Revisar las alternativas de redes sociales de código abierto (Tuts +)
  • Quitter (sitio de demostración)
  • GNU Social
  • Tema Neo Quitter
  • Grupo de Trabajo de la Web Social del W3C, @socialwebwg