I del en av denne serien, Revisiting Open Source Social Networking Alternatives, ga jeg en kort oversikt over en håndfull open source sosiale nettverk plattformer og klienter. I denne delen vil jeg dykke inn med en installasjon av GNU Social og diskutere hva jeg tror vil være avgjørende for å konkurrere i en Facebook / Twitter dominert verden.
Hvorfor GNU Social? Jeg følte at det er det enkleste systemet å installere og bruke. Det er også skrevet i PHP, som jeg synes er det mest tilgjengelige open source-språket. Selv om det er tvunget til å synes å være en klon av Twitter, tror jeg dette har bidratt til å holde alle sine grunnleggende funksjoner og webgrensesnitt relativt rent. GNUs sosiale nettsted var imidlertid nede i flere dager mens jeg jobbet med denne opplæringen; Staten av den åpne kilden distribuerte nettverksverden forblir spotty til tider.
Du kan installere GNU Social på et LAMP-basert system. Jeg har lagt ut min generiske veiledning for å installere en Ubuntu LAMP-stabel til referanse.
Logg inn på serveren din:
ssh [email protected]
Installer alle nødvendige komponenter (Curl og Git er også nødvendig for denne opplæringen):
sudo locale-gen en_US en_US.UTF-8 sudo dpkg -konfigurer lokaliteter sudo apt-get update -q sudo apt-get dist-oppgradering -y sudo apt-get install -y pund lakk php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4 sudo apt-get installer php5-curl git
Opprett en katalog for nettstedet og sett tillatelser:
mkdir / var / www / social -p chown www-data: www-data / var / www / sosial cd / var / www / social
Klon depotet:
git klon git: //gitorious.org/social/mainline.git .
Logg inn på MySQL med root database passordet ditt:
mysql -u rot-p
Opprett en ny database og sett tillatelser:
opprett database sosialt; gi alle privilegier på sosialt. * TIL "root" @ "localhost" identifisert av "-your-pwd-"; flush privilegier; exit;
Opprett Apache-siden:
nano /etc/apache2/sites-available/social.conf
Lim inn Apache-konfigurasjonen nedenfor, skreddersydd til serveren din:
Servernavn social.yourdomain.com DocumentRoot / var / www / sosial DirectoryIndex index.php Tillat Override All Order Avvis, tillat Tillat fra alle
Aktiver nettstedet, deaktiver standardnettstedet og start Apache på nytt:
sudo a2ensite social.conf sudo a2dissite 000-default.conf sudo tjeneste apache2 last inn
Du må også konfigurere noen kataloger for skriveadgang:
chmod a + w / var / www / sosial / avatar / chmod a + w / var / www / sosial / bakgrunn / chmod a + w / var / www / sosial / fil /
For å aktivere ganske nettadressestrenger må vi flytte prøven .htaccess
fil og aktiver mod_rewrite
:
mv htaccess.sample .htaccess sudo a2enmod omskrive sudo service apache2 restart
Gå til installasjonssiden og skriv inn navn og konfigurasjonsinnstillinger:
http://social.yourdomain.com/install.php
Du bør se noe slikt:
Og:
Installasjonsprosedyren tar opptil et minutt, men du bør se noe slikt når det er fullført:
Her ser du hvordan standard hjemmesiden ser ut:
La oss installere Neo Quitter-temaet med åpen kildekode, som ligner på Twitter:
cd / var / www / sosial / tema git klone https://github.com/hannesmannerheim/neo-quitter
Rediger konfigurasjonsfilen og legg til en oppføring for Neo Quitter-temaet:
cd / var / www / sosial sudo nano config.php
Det skal se slik ut:
Lim inn i denne linjen:
$ config ['site'] ['theme'] = 'neo quitter';Gå tilbake til hjemmesiden, og det skal se slik ut:
Komme i gang med GNU Social
Registrering av kontoen din
Det er på tide å registrere deg på ditt eget sosiale nettverk:
Når du har registrert deg, blir du møtt med denne nyttige startsiden:
Etter at jeg har lastet opp min avatar, ser det ut som det ser ut til å legge inn en statusoppdatering med et bilde:
Jeg er ikke helt sikker på hva som klikker hengelåsen åpen og lukket, da personvernet tilsynelatende styres av rullegardinboksen.
Her er min profilside med mitt første innlegg:
Se ut som et vanlig sosialt nettverk som du vet?
Den relative polsk og finishen til GNU Social sammenlignet med de andre nettene som er dekket i del ett er grunnen til at jeg valgte å fokusere på den for videre utforskning.
Eksperimentering med Federated Network
Deretter ønsket jeg å eksperimentere med de føderte nettverksfunksjonene til GNU Social. Jeg hoppet over til Quitter.is, et GNU Socialt nettsted åpent for publikum, og fulgte brukernavnet til den første personen jeg fant der.
På ditt eget nettsted må du besøke din profilside, og deretter klikke Følger + Fjern i høyre kolonne (det er ikke helt intuitivt):
For å følge en ekstern bruker oppretter du en adresse som kombinerer sitt eksterne brukernavn med domenet til det eksterne nettverksstedet, f.eks. [email protected].
Selv om ytelsen er relativt langsom (denne Quitter er på Island), var vi i stand til å utveksle @replies og min GNU Social-konto kom opp i listen Quitter.is følgere. Da jeg logget på neste dag, viste deres oppdateringer på min GNU sosiale installasjon:
Her er hvordan det så ut som et par timer senere, etter å ha fulgt et par fjernere folk:
Konkurrere med Facebook og Twitter
Den grunnleggende utfordringen
Her er noen av de egenskapene som jeg synes er viktige for et open source sosialt nettverkssystem for å samle populær støtte og adopsjon:
Videre, så mange aspekter av hva som gjør Facebook og Twitter vellykket og dominerende, er subtile eller usynlige for oss. Bare for eksempel, her er noen viktige:
Mens den distribuerte naturen til open source-fødererte nettverk kan bidra til å begrense skadene fra en enkelt nodefeil, øker det også kompleksiteten ved å løse ytelsesutfordringer og administrere brukeropplevelsen, da nettverket samhandler med en rekke installerte noder.
For å få raskere adopsjon, kan det også være viktig for disse nettverkene å importere feeds fra Twitter (og muligens Facebook). Hvis du for eksempel bytter fra Twitter til ditt eget sosiale nettverk, kan du være den første av vennegruppen din. Du vil sannsynligvis fortsette å motta oppdateringer og varsler, motta følgeforespørsler og speil svar fra det gamle nettverket på nettstedet ditt uten å måtte gå tilbake til Twitter.
Gjeldende Twitter API-teknologi (User Streams) støtter dette som en teknisk mulighet for individuelle brukere, men det krever at de tillater at de støtter en gruppe brukere (Site Streams). Se Bygg med Twitter API (Tuts +). Jeg antar at det er usannsynlig at Twitter vil gi nettstedet Stream-tillatelse for denne typen interoperabilitet.
GNU Social gjør det veldig bra, men etterlater et betydelig forbedringsrom. Det gjør en god jobb å holde funksjonen innstilt og implementere det grunnleggende godt.
Installasjonen av kodebasen kan forbedres ytterligere. Ideelt sett bør det være pakker som kan installeres raskere. Til slutt vil jeg gjerne se en installasjons- og vedlikeholdsguide for ikke-tekniske brukere.
Det finnes mange nettverk hvor du kan registrere deg for en gratis konto og prøve plattformen. I fremtiden vil det være fint å se tilbydere tilby å installere og vedlikeholde nettverkene for betalte personer.
Selv om kodebasen er ren, er det ikke klart å bruke et standard rammeverk.
GNU Social kan opereres for enkeltbrukere eller som fellesskap. Støtte for OStatus ser ut til å fungere godt. Og det er støtte for temaer.
Innleggingsgrensesnittet er rent, men tilbyr ikke noen oppslag for nettadresser. Det ser ikke ut til å være noen støtte for metakoder, åpne grafkoder eller Twitter-kort.
Slutbrukeropplevelsen er relativt enkel, men den kan fortsatt forbedres. For eksempel var følgende fjernbrukere ikke enkle fra hjemme tidslinjen. Jeg måtte navigere til min profilside for å følge eksterne brukere.
Ytelsen var smertefull når det gjaldt tilkobling til eksterne nettverk - muligens fordi jeg var koblet til en islandsbasert server. Det er sannsynligvis viktig at alle disse operasjonene står i kø som bakgrunnsoppgaver.
Det er ikke mye modenhet rundt speiling til Twitter og Facebook, sikkerhetskopiering og analyse, men dette kan komme med tiden.
GNU Social er på et sted hvor PHP-entusiaster kan vedta det, starte sine egne nettsteder, og bidra til kodebase. Jeg føler også open source-teamet bak GNU Social kan gjøre store fremskritt ved å holde funksjonen innstilt smal og fokusere på polering av det de har. Å levere en super solid, velarkitektur, veldokumentert kodebase som kan opprette Twitter på en føderalt måte, ville være en betydelig gjennomføring, og de er godt på vei der.
Mens GNU Social er bygget for å støtte OStatus, er det en aktiv arbeidsgruppe på W3C Social Web Working Group; Du kan følge sitt arbeid på Twitter @ socialwebwg.
Ta gjerne inn dine spørsmål og kommentarer nedenfor. Dette er et bredt emneområde, og jeg er sikker på at det er mye jeg har savnet. Du kan også nå meg på Twitter @ reifman eller email meg direkte. Følg min Tuts + instruktørside for å se fremtidige artikler i denne serien.