Revisiting Open Source Social Networking Installere GNU Social

Hva du skal skape

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.

Installere GNU Social

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:

Installere et tilpasset tema

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:

  • Enkel installasjon for lavutdannede utviklere. For eksempel bør det være enkelt for alle med PHP og grunnleggende Linux kunnskap å raskt installere. Det bør nærme seg det enkle å installere self-hosted WordPress.
  • Enkelt og flere brukeralternativer. Ideelt sett bør plattformen støtte å kjøre en sosial installasjon for bare én bruker (installatøren) eller som et nettverk som støtter et fellesskap av mange brukere.
  • Betalt hosting-alternativ for å tillate interesserte ikke-tekniske brukere å delta. For eksempel liker jeg måten Ghost blogging-plattformen tilbyr et betalt SaaS-alternativ.
  • Elegant innlegging brukergrensesnitt (tekst, bilder, til slutt video) og støtte for å slå opp metatags fra nettadresser. Dette er en av de mest kritiske og oversett funksjoner i dagens open source-tilbud.
  • Enkel sluttbrukeropplevelse. Grensesnittet bør være like enkelt å bruke som Facebook og Twitter.
  • God ytelse. De vanlige operasjonene, f.eks. legger ut, laster opp bilder, følger, surfer på tidslinjen, og får tidslinjeoppdateringer, bør alle være raske.
  • Publisering til Twitter og Facebook. Plattformen bør tillate brukere å speile sine lokale innlegg til sine eksisterende nettverk på en automatisert eller semi-automatisert måte.
  • Støtte dem. Brukere skal kunne tilpasse sitt nettverksutseende.
  • Backup-strategi. Plattformen bør inneholde innebygd sikkerhetskopiering, ideelt med noe sky-alternativ som S3.
  • Analytics-integrasjon. Det bør være enkelt for brukerne å få data om aktiviteten til sine feeds.
  • Solid kodearkitektur, f.eks MVC-arkitektur og / eller bruk av en felles rammeverk.
  • Flott dokumentasjon på kodebase.
  • Semi-automatiserte oppgraderinger. Det er viktig å gjøre oppgraderingssyklusen enkelt for folk å holde kodebase oppdatert over nettverket.

Avanserte evner

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:

  • Høy ytelse over hele nettverket
  • Høy gjennomstrømning for å laste opp bilder (og muligens video)
  • Feiltoleranse for bruk
  • Aldri miste data

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.

En bro til eksisterende nettverk

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.

Evaluering av GNU Social

Grunnleggende vurdering

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.

Siste tanker

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.

Relaterte linker

  • Revising Open Source Social Networking Alternatives (Tuts +)
  • Quitter (demonstrasjonssted)
  • GNU Social
  • Neo Quitter Theme
  • W3C Social Web Working Group, @socialwebwg