Rivisitare il social network open source installare GNU Social

Cosa starai creando

Nella prima parte di questa serie, Revisiting Open Source Social Networking Alternatives, ho fornito una breve panoramica di una manciata di piattaforme e client di social networking open source. In questa parte, mi tufferò in un'installazione di GNU Social e discuterò ciò che ritengo sarà fondamentale per competere in un mondo dominato da Facebook / Twitter. 

Perché GNU Social? Ho sentito che è il sistema più semplice da installare e utilizzare. È anche scritto in PHP, che ritengo sia il linguaggio open source più accessibile. Anche se è costretto a sembrare un clone di Twitter, penso che questo abbia contribuito a mantenere tutte le sue funzionalità di base e l'interfaccia utente web relativamente pulite. Tuttavia, il sito web GNU Social era inattivo da diversi giorni mentre stavo lavorando a questo tutorial; a volte lo stato del mondo della rete distribuita open source rimane discutibile.

Installazione di GNU Social

È possibile installare GNU Social su qualsiasi sistema basato su LAMP. Ho pubblicato la mia guida generica sull'installazione di uno stack LAMP di Ubuntu come riferimento.

Accedi al tuo server:

ssh [email protected]

Installa tutti i componenti richiesti (sono necessari anche Curl e Git per questo tutorial):

sudo local-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 libbra vernice php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4 sudo apt-get install php5-curl git 

Crea una directory per il sito e imposta le autorizzazioni:

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

Clona il repository:

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

Accedi a MySQL con la password del tuo database di root:

mysql -u root -p

Crea un nuovo database e imposta le autorizzazioni:

creare database social; concedere tutti i privilegi sui social. * TO "root" @ "localhost" identificato da "-your-pwd-"; privilegi di flush; Uscita;

Crea il sito Apache:

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

Incolla nella seguente configurazione di Apache, adattata al tuo server:

 ServerName social.yourdomain.com DocumentRoot / var / www / social DirectoryIndex index.php  AllowOverride All Order Nega, Consenti Consenti da tutti  

Abilitare il sito, disabilitare il sito predefinito e riavviare Apache:

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

Dovrai anche configurare alcune directory per l'accesso in scrittura:

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

Per attivare le stringhe URL, dobbiamo spostare l'esempio .htaccess file e abilitare mod_rewrite:

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

Visita la pagina di installazione e inserisci il tuo nome e le impostazioni di configurazione:

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

Dovresti vedere qualcosa di simile a questo:

E:

La procedura di installazione richiede fino a un minuto, ma dovresti vedere qualcosa di simile quando è completo:

Ecco come appare la pagina iniziale predefinita:

Installazione di un tema personalizzato

Installiamo il tema Neo Quitter open source, che assomiglia a Twitter:

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

Modifica il file di configurazione e aggiungi una voce per il tema Neo Quitter:

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

Dovrebbe sembrare come questo:

Incolla in questa linea:

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

Ritorna alla pagina iniziale e dovrebbe apparire più come questo:

Iniziare con GNU Social

Registrazione del tuo account

È ora di registrarsi sul tuo sito di social networking:

Una volta registrato, verrai accolto da questa utile pagina iniziale:

Dopo aver caricato il mio avatar, ecco come appare per pubblicare un aggiornamento di stato con una foto:

Non sono del tutto sicuro di ciò che fa clic sul lucchetto aperto e chiuso, in quanto la privacy sembra essere controllata dalla casella a discesa.

Ecco la mia pagina del profilo con il mio primo post:

Assomigli a qualsiasi sito di social networking che conosci? 

La relativa lucidatura e finitura di GNU Social rispetto alle altre reti coperte nella prima parte è il motivo per cui ho scelto di concentrarmi su di essa per ulteriori esplorazioni.

Sperimentare con la rete federata

Successivamente, ho voluto sperimentare le funzionalità di rete federate di GNU Social. Sono saltato su Quitter.is, un sito GNU Social aperto al pubblico, e ho seguito il nome utente della prima persona che ho trovato lì.

Sul tuo sito, devi visitare la pagina del tuo profilo, quindi fare clic Seguendo + Remote nella colonna di destra (non è del tutto intuitivo):

Per seguire un utente remoto, si crea un indirizzo che combina il nome utente remoto con il dominio del sito di rete remoto, ad es. [email protected].

Mentre la performance è relativamente lenta (questo Quitter è in Islanda), siamo stati in grado di scambiare @replies e il mio account GNU Social è apparso nell'elenco dei follower di Quitter.is. Quando ho effettuato l'accesso il giorno successivo, i loro aggiornamenti sono stati visualizzati sulla mia installazione GNU Social:

Ecco come appariva poche ore dopo, dopo aver seguito un paio di altre persone remote:

Competere con Facebook e Twitter

La sfida di base

Ecco alcune delle qualità che ritengo importanti per un sistema di social networking open source per raccogliere supporto e adozione popolari:

  • Installazione semplice per sviluppatori poco qualificati. Ad esempio, dovrebbe essere facile per chiunque abbia una conoscenza PHP e di base di Linux da installare rapidamente. Dovrebbe avvicinarsi alla facilità di installare WordPress self-hosted.
  • Opzioni single e multiutente. Idealmente, la piattaforma dovrebbe supportare l'esecuzione di un'installazione sociale per un solo utente (il programma di installazione) o come una rete che supporta una comunità di molti utenti.
  • Opzione di hosting a pagamento per consentire agli utenti non tecnici interessati di partecipare. Ad esempio, mi piace il modo in cui la piattaforma di blogging di Ghost offre un'opzione SaaS a pagamento.
  • Elegante interfaccia utente post (testo, foto, eventualmente video) e supporto per la ricerca di meta tag da URL. Questa è una delle funzionalità più critiche e trascurate nelle odierne offerte open source.
  • Semplice esperienza dell'utente finale. L'interfaccia dovrebbe essere semplice da usare come Facebook e Twitter.
  • Buona performance. Le operazioni comuni, ad es. postare, caricare foto, seguire, scorrere la timeline e ottenere gli aggiornamenti della timeline dovrebbero essere tutti veloci.
  • Pubblicazione su Twitter e Facebook. La piattaforma dovrebbe consentire agli utenti di eseguire il mirroring dei loro post locali sulle loro reti esistenti in modo automatico o semi-automatico.
  • Sostenere il tema. Gli utenti dovrebbero essere in grado di personalizzare l'aspetto e il look della propria rete.
  • Strategia di backup. La piattaforma dovrebbe includere funzionalità di backup integrate, idealmente con alcune opzioni cloud come S3.
  • Integrazione di Analytics. Dovrebbe essere facile per gli utenti ottenere dati sull'attività dei loro feed.
  • Architettura di codice solido, per esempio. Architettura MVC e / o utilizzo di un framework comune.
  • Ottima documentazione sulla base di codice.
  • Aggiornamenti semiautomatici. È importante rendere il ciclo di aggiornamento facile per le persone per mantenere aggiornato il codebase attraverso la rete.

Funzionalità avanzate

Inoltre, tanti aspetti di ciò che rende Facebook e Twitter vincenti e dominanti sono per noi sottili o invisibili. Solo per esempio, qui ci sono alcuni importanti:

  • Prestazioni elevate su tutta la rete
  • Elevato rendimento per il caricamento di immagini (e possibilmente video)
  • Tolleranza di errore per l'utilizzo
  • Mai perdere dati

Mentre la natura distribuita delle reti federate open source può aiutare a limitare il danno da un singolo nodo guasto, aumenta anche la complessità della risoluzione dei problemi di prestazioni e della gestione dell'esperienza utente, dal momento che la rete interagisce con una varietà di nodi installati.

Un ponte per reti esistenti

Per accelerare l'adozione, potrebbe anche essere importante per queste reti importare feed da Twitter (e possibilmente da Facebook). Ad esempio, se passi da Twitter al tuo social network, potresti essere il primo del tuo gruppo di amici. Probabilmente vorrai continuare a ricevere aggiornamenti e notifiche, ricevere richieste di follow-up e rispecchiare le risposte della vecchia rete all'interno del tuo sito, senza dover tornare su Twitter.

L'attuale tecnologia API Twitter (Stream utente) supporta questa funzionalità come una possibilità tecnica per i singoli utenti, ma richiede il loro permesso per supportare un gruppo di utenti (Stream sito). Vedi Costruzione con l'API di Twitter (Tuts +). Presumo che sia improbabile che Twitter conceda l'autorizzazione a Site Stream per questo tipo di interoperabilità.

Valutazione di GNU Social

Valutazione di base

GNU Social funziona molto bene ma lascia margini significativi di miglioramento. Fa un buon lavoro mantenendo le funzionalità limitate e implementando bene le basi.

L'installazione del codebase potrebbe essere ulteriormente migliorata. Idealmente, ci dovrebbero essere pacchetti che possono essere installati più rapidamente. Alla fine, mi piacerebbe vedere una guida all'installazione e alla manutenzione per gli utenti non tecnici. 

Esistono numerose reti in cui è possibile registrarsi per un account gratuito e provare la piattaforma. In futuro, sarebbe bello vedere i provider offrire l'installazione e la manutenzione delle reti per le persone su base retribuita.

Mentre la base di codice è pulita, non sta chiaramente utilizzando un framework standard.

GNU Social può essere utilizzato per utenti singoli o come comunità. Il supporto per OStatus sembra funzionare bene. E c'è il supporto per i temi.

L'interfaccia di pubblicazione è pulita ma non offre alcuna ricerca di URL. Non sembra esserci alcun supporto per meta tag, tag Open Graph o Twitter.

L'esperienza dell'utente finale è relativamente semplice, ma può ancora essere migliorata. Ad esempio, seguire gli utenti remoti non era semplice dalla timeline della casa. Ho dovuto navigare verso la pagina del mio profilo per seguire gli utenti remoti.

Le prestazioni erano dolorose quando si trattava di connettersi a reti remote, probabilmente perché ero connesso a un server con sede in Islanda. È probabilmente importante che tutte queste operazioni siano accodate come attività in background.

Non c'è molta maturità intorno al mirroring su Twitter e Facebook, backup e analisi, ma questo può arrivare con il tempo.

Pensieri finali

GNU Social è in un luogo in cui gli appassionati di PHP possono adottarlo, lanciare i propri siti e contribuire alla base di codici. Sento anche che il team open source di GNU Social potrebbe fare grandi progressi mantenendo le funzionalità limitate e concentrandosi sulla lucidatura di ciò che hanno. Fornire una base di codice solida, ben architettata e ben documentata che possa ricreare Twitter in modo federato sarebbe un risultato significativo, e sono sulla buona strada.

Mentre GNU Social è costruito per supportare OStatus, esiste un gruppo di lavoro attivo presso il W3C Social Web Working Group; puoi seguire il loro lavoro su Twitter @socialwebwg.

Non esitate a postare le vostre domande e commenti qui sotto. Questa è una vasta area tematica e sono sicuro che ci sono molte cose che ho perso. Puoi anche raggiungermi su Twitter @reifman o mandarmi un'email direttamente. Segui la pagina dei miei Tuts + istruttore per vedere gli articoli futuri in questa serie.

Link correlati

  • Rivisitare le alternative di social network open source (Tuts +)
  • Quitter (sito dimostrativo)
  • GNU Social
  • Tema Neo Quitter
  • W3C Social Web Working Group, @socialwebwg