Revista Social Networking Open Source Instalarea GNU Social

Ce veți crea

În prima parte a acestei serii, Revizuirea alternativelor de rețele sociale cu sursă deschisă, am făcut o scurtă trecere în revistă a câtorva platforme și clienți de rețele sociale de tip open source. În această parte, mă voi arunca cu o instalație de GNU Social și voi discuta despre ceea ce cred că va fi critic pentru a concura într-o lume dominată de Facebook / Twitter. 

De ce GNU Social? Am simțit că este cel mai simplu sistem de instalare și utilizare. Este, de asemenea, scris în PHP, care cred că este cel mai accesibil limbaj open source. Deși este constrâns să apară a fi o clonă a Twitterului, cred că acest lucru a ajutat la menținerea tuturor caracteristicilor sale de bază și a interfeței cu utilizatorul web relativ curată. Cu toate acestea, site-ul Web GNU Social a fost în jos timp de câteva zile în timp ce lucram la acest tutorial; starea rețelei de distribuție cu sursă deschisă rămâne oarecum neclară.

Instalarea GNU Social

Puteți instala GNU Social pe orice sistem bazat pe LAMP. Am postat ghidul meu generic pentru instalarea unui stiv Ubuntu LAMP pentru referință.

Conectați-vă la serverul dvs.:

ssh [email protected]

Instalați toate componentele necesare (Curl și Git sunt de asemenea necesare pentru acest tutorial):

sudo locale-gen en_US en_US.UTF-8 sudo dpkg-reconfigura localizări sudo apt-get actualizare -q sudo apt-get dist-upgrade -y sudo apt-get instalare -y pound varnish php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4 sudo apt-get instala php5-curl git 

Creați un director pentru site și setați permisiunile:

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

Clonați depozitul:

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

Conectați-vă la MySQL cu parola bazei dvs. de date rădăcină:

mysql -u root -p

Creați o bază de date nouă și setați permisiunile:

crea baza de date socială; acorda toate privilegiile pe social. * LA "root" @ "localhost" identificat de "-your-pwd-"; flush privilegiile; Ieșire;

Creați site-ul Apache:

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

Inserați configurația Apache de mai jos, adaptată la serverul dvs.:

 Numele serverului social.yourdomain.com DocumentRoot / var / www / social IndexIndex index.php  AllowOverride All Order Deny, Allow Allow de la toate  

Activați site-ul, dezactivați site-ul implicit și reporniți Apache:

sudo a2ensite social.conf sudo a2disite 000-default.conf sudo serviciu apache2 reload

De asemenea, va trebui să configurați câteva directoare pentru accesul la scriere:

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

Pentru a activa șirul de linii URL destul de mare, trebuie să mutăm mostra .htaccess fișier și activare mod_rewrite:

mv htaccess.sample .htaccess sudo a2enmod rescrie serviciul sudo apache2 restart

Accesați pagina de instalare și introduceți numele și setările de configurare:

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

Ar trebui să vedeți ceva de genul:

Și:

Procedura de instalare durează până la un minut, dar ar trebui să vedeți așa ceva când este completă:

Iată ce arată pagina principală implicită:

Instalarea unei teme personalizate

Să instalăm tema Neo Quitter open source, care seamănă cu Twitter:

cd / var / www / clona socială / temă git https://github.com/hannesmannerheim/neo-quitter 

Editați fișierul de configurare și adăugați o intrare pentru tema Neo Quitter:

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

Ar trebui să arate astfel:

Inserați în această linie:

$ config ['site'] ['temă'] = 'neo-quitter';

Reveniți la pagina de pornire și ar trebui să arate mai mult:

Noțiuni de bază cu GNU Social

Înregistrarea contului dvs.

Este timpul să vă înregistrați la propriul site de socializare:

Odată ce vă înregistrați, veți fi întâmpinați de această pagină utilă de inițiere:

După încărcarea avatarului meu, iată cum arată postarea unei actualizări de stare cu o fotografie:

Nu sunt sigur ce faceți clic pe lacătul deschis și închis, deoarece confidențialitatea pare să fie controlată de caseta drop-down.

Iată pagina mea de profil cu prima mea postare:

Arătați ca orice site comun de socializare pe care îl cunoașteți? 

Lustruirea și finisarea relativă a GNU Social în comparație cu celelalte rețele acoperite în prima parte este motivul pentru care am ales să mă concentrez asupra acesteia pentru o explorare ulterioară.

Experimentarea cu rețeaua federată

Apoi, am vrut să experimentez caracteristicile federale ale rețelei GNU Social. Am sărit pe Quitter.is, un site social GNU Social deschis publicului, și am urmat numele de utilizator al primei persoane pe care am găsit-o acolo.

Pe site-ul dvs., trebuie să vizitați pagina de profil, apoi faceți clic pe Urmează + Remote în coloana din dreapta (nu este destul de intuitivă):

Pentru a urma un utilizator de la distanță, creați o adresă care combină numele de utilizator de la distanță cu domeniul site-ului de rețea la distanță, de ex. [email protected].

În timp ce performanța este relativ lentă (acest Quitter este în Islanda), am reușit să schimbăm @replies și contul meu social GNU a apărut în lista de adepți Quitter.is. Când m-am logat în ziua următoare, actualizările lor au apărut pe instalația mea GNU Social:

Iată cum a arătat câteva ore mai târziu, după ce au urmat câțiva oameni mai îndepărtați:

Concurează cu Facebook și Twitter

Provocarea de bază

Iată câteva dintre calitățile pe care cred că sunt importante pentru un sistem de rețele sociale cu sursă deschisă pentru a aduna sprijinul popular și adoptarea:

  • Instalare simplă pentru dezvoltatorii cu înaltă calificare. De exemplu, ar trebui să fie ușor pentru oricine cu cunoștințe PHP și de bază Linux să se instaleze rapid. Ar trebui să abordeze ușurința de a instala WordPress găzduit de sine.
  • Opțiuni single și multi-utilizator. În mod ideal, platforma ar trebui să suporte rularea unei instalări sociale pentru un singur utilizator (instalatorul) sau ca o rețea care susține o comunitate de mai mulți utilizatori.
  • Opțiunea de găzduire plătită pentru a permite utilizatorilor non-tehnici interesați să participe. De exemplu, îmi place modul în care platforma de bloguri Ghost oferă o opțiune plătită SaaS.
  • Elegant postarea interfeței cu utilizatorul (text, fotografii, eventual video) și suport pentru căutarea meta-tagurilor din URL-uri. Aceasta este una dintre caracteristicile cele mai critice și trecute cu vederea în ofertele de astăzi cu sursă deschisă.
  • Experiență simplă a utilizatorului final. Interfața trebuie să fie la fel de simplă ca Facebook și Twitter.
  • Performanță bună. Operațiile comune, de ex. postarea, încărcarea fotografiilor, urmărirea, răsfoirea cronologiei și obținerea actualizărilor de cronologie ar trebui să fie rapidă.
  • Publicarea pe Twitter și pe Facebook. Platforma ar trebui să permită utilizatorilor să își oglindească posturile locale în rețelele existente într-un mod automatizat sau semi-automatizat.
  • Sprijinul pentru Theming. Utilizatorii ar trebui să poată personaliza aspectul și simțul rețelei.
  • Strategie de rezervă. Platforma ar trebui să includă capacitatea de backup încorporată, în mod ideal cu unele opțiuni de nor, cum ar fi S3.
  • Integrarea Google Analytics. Ar trebui să fie ușor pentru utilizatori să obțină date despre activitatea fluxurilor lor.
  • Arhitectura codului solid, de exemplu. Arhitectura MVC și / sau utilizarea unui cadru comun.
  • Documentație mare pe baza de coduri.
  • Suplimentele semi-automate. Este important să faceți ca ciclul de upgrade să fie ușor pentru ca oamenii să țină la zi versiunile de coduri în întreaga rețea.

Capabilități avansate

În plus, atât de multe aspecte ale ceea ce face ca Facebook și Twitter să fie reușite și dominante sunt subtile sau invizibile pentru noi. Doar de exemplu, aici sunt câteva importante:

  • Performanță ridicată în rețea
  • Capacitate ridicată pentru încărcarea imaginilor (și eventual video)
  • Toleranța la utilizare
  • Nu pierdeți niciodată date

În timp ce natura distribuită a rețelelor federalizate open source poate ajuta la limitarea pagubelor cauzate de un singur eșec al nodurilor, crește și complexitatea rezolvării provocărilor de performanță și gestionarea experienței utilizatorilor, deoarece rețeaua interacționează cu o varietate de noduri instalate.

Un pod către rețelele existente

Pentru a accelera adoptarea, poate fi important ca aceste rețele să importe feeduri de pe Twitter (și, eventual, pe Facebook). De exemplu, dacă treceți de pe Twitter la propria rețea socială, puteți fi primul din grupul dvs. de prieteni. Probabil doriți să continuați să primiți actualizări și notificări, să primiți solicitări de urmărire și să răspundeți la oglindă din vechea rețea din site-ul dvs. - fără a fi nevoie să reveniți la Twitter.

Tehnologia curentă API Twitter (fluxuri de utilizatori) acceptă acest lucru ca o posibilitate tehnică pentru utilizatorii individuali, dar necesită permisiunea lor de a sprijini un grup de utilizatori (Site Streams). Consultați Building cu API-ul Twitter (Tuts +). Presupun că este puțin probabil că Twitter va acorda permisiunea Site Stream pentru acest tip de interoperabilitate.

Evaluarea GNU Social

Evaluarea de bază

GNU Social se descurcă foarte bine, dar lasă loc pentru îmbunătățiri semnificative. Ea face o treabă bună păstrând caracteristica set îngust și punerea în aplicare de bază bine.

Instalarea bazei de coduri ar putea fi îmbunătățită și mai mult. În mod ideal, ar trebui să existe pachete care să poată fi instalate mai repede. În cele din urmă, aș dori să văd un ghid de instalare și întreținere pentru utilizatorii non-tehnici. 

Există numeroase rețele în care vă puteți înregistra pentru un cont gratuit și puteți încerca platforma. În viitor, ar fi frumos să vedem furnizorii să ofere să instaleze și să mențină rețelele pentru oameni pe bază de plată.

În timp ce baza de cod este curată, nu se utilizează în mod clar un cadru standard.

GNU Social poate fi operat pentru utilizatori unici sau ca o comunitate. Sprijinul pentru OStatus pare să funcționeze bine. Și există suport pentru teme.

Interfața de postare este curată, dar nu oferă căutări pentru adrese URL. Nu pare să existe niciun suport pentru meta tag-uri, etichete Open Graph sau carduri Twitter.

Experiența utilizatorului final este relativ simplă, dar poate fi îmbunătățită. De exemplu, după utilizatorii de la distanță nu a fost clar de la cronologia de acasă. A trebuit să navighez la pagina mea de profil pentru a urma utilizatorii de la distanță.

Performanța a fost dureroasă atunci când a venit la conectarea la rețelele de la distanță - posibil pentru că eram conectat la un server bazat pe Islanda. Este probabil important ca toate aceste operațiuni să fie plasate în coada de așteptare ca sarcini de bază.

Nu există multă maturitate în ceea ce privește reflectarea pe Twitter și Facebook, backup-uri și analize, dar acest lucru poate veni cu timpul.

Gândurile finale

GNU Social se află într-un loc unde entuziaștii PHP ar putea să o adopte, să-și lanseze propriile site-uri și să contribuie la codul de bază. Simt, de asemenea, echipa open source din spatele GNU Social ar putea face progrese mari prin menținerea caracteristicilor înguste și concentrându-se pe lustruirea a ceea ce au. Furnizarea unei baze de date super solide, bine-arhitecturate, bine documentate, care să reînducă Twitter într-o manieră federată, ar fi o realizare semnificativă și sunt pe drumul lor acolo.

În timp ce GNU Social este construit pentru a sprijini OStatus, există un grup de lucru activ la W3C Social Web Working Group; puteți urmări activitatea lor pe Twitter @socialwebwg.

Vă rugăm să nu ezitați să postați întrebările și comentariile dvs. de mai jos. Aceasta este o arie largă de subiect și sunt sigur că sunt multe pe care le-am pierdut. Puteți să mă contactați și pe Twitter @reifman sau să mă trimiteți direct prin e-mail. Urmați pagina mea Tuts + instructor pentru a vedea articole viitoare din această serie.

Link-uri conexe

  • Revizuirea alternativelor de rețele sociale cu sursă deschisă (Tuts +)
  • Quitter (site demonstrativ)
  • GNU Social
  • Tema Neo Quitter
  • Grupul de lucru social Web W3C, @socialwebwg
Cod