Revisiting Open Source Social Networking Installera GNU Social

Vad du ska skapa

I del en av denna serie, Revisiting Open Source Social Networking Alternatives, gav jag en kort översikt över en handfull open-source sociala nätverk plattformar och klienter. I den här delen ska jag dyka in med en installation av GNU Social och diskutera vad jag tycker är avgörande för att konkurrera i en dominerad värld med Facebook / Twitter. 

Varför GNU Social? Jag kände att det är det enklaste systemet att installera och använda. Det är också skrivet i PHP, vilket jag tycker är det mest tillgängliga open source-språket. Medan det är begränsat till att vara en klon av Twitter, tror jag att det här har hjälpt till att hålla alla sina grundläggande funktioner och webbanvändargränssnitt relativt rena. GNU Sociala webbplatsen var dock nere i flera dagar medan jag arbetade med denna handledning. tillståndet i den öppna källans distribuerade nätverksvärld är fortfarande spottig ibland.

Installera GNU Social

Du kan installera GNU Social på något LAMP-baserat system. Jag har lagt upp min generiska guide för att installera en Ubuntu LAMP-stapel för referens.

Logga in på din server:

ssh [email protected]

Installera alla nödvändiga komponenter (Curl and Git krävs också för denna handledning):

sudo locale-gen en_US en_US.UTF-8 sudo dpkg-omkonfigurera platser sudo apt-get update -q sudo apt-get dist-upgrade -y sudo apt-get install -y pound lak php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4 sudo apt-get installera php5-curl git 

Skapa en katalog för webbplatsen och ange behörigheter:

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

Klon förvaret:

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

Logga in på MySQL med ditt lösenord för root-databasen:

mysql -u rot-p

Skapa en ny databas och ange behörigheter:

skapa databas social; bevilja alla privilegier på socialt. * Till "root" @ "localhost" identifierat av "-your-pwd-"; spola privilegier; utgång;

Skapa Apache-webbplatsen:

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

Klistra in i Apache-konfigurationen nedan, skräddarsydd för din server:

 Servernamn social.yourdomain.com DocumentRoot / var / www / social DirectoryIndex index.php  TillåtOverride All Order Förneka, Tillåt Tillåt från alla  

Aktivera webbplatsen, inaktivera standardwebbplatsen och starta om Apache:

sudo a2ensite social.conf sudo a2dissite 000-default.conf sudo service apache2 ladda om

Du måste också konfigurera några kataloger för skrivåtkomst:

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

För att aktivera vackra URL-strängar måste vi flytta provet .htaccess fil och aktivera mod_rewrite:

mv htaccess.sample .htaccess sudo a2enmod skriva om sudo service apache2 omstart

Besök installationssidan och ange ditt namn och konfigurationsinställningar:

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

Du borde se något så här:

Och:

Installationsproceduren tar upp till en minut, men du bör se något så här när det är klart:

Så här ser standardhemsidan ut:

Installera en anpassad tema

Låt oss installera Neo Quitter-temat med öppen källkod, som liknar Twitter:

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

Redigera konfigurationsfilen och lägg till en post för Neo Quitter-temat:

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

Det ska se ut så här:

Klistra in den här raden:

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

Återgå till startsidan och det ska se mer ut så här:

Komma igång med GNU Social

Registrera ditt konto

Det är dags att registrera dig på din egen sociala nätverk:

När du har registrerat dig kommer du att hälsas med den här hjälpsamma startsidan:

Efter att ha laddat upp min avatar, så här ser det ut som att det ska skickas en statusuppdatering med ett foto:

Jag är inte helt säker på vad som klickar på hänglåset öppet och stängt, eftersom privatlivet verkar kontrolleras av rullgardinsmenyn.

Här är min profilsida med mitt första inlägg:

Se ut som alla vanliga sociala nätverk som du vet? 

Den relativa polska och finishen av GNU Social jämfört med de andra nät som omfattas av del ett är anledningen till att jag valde att fokusera på den för vidare prospektering.

Experimentera med det federerade nätverket

Därefter ville jag experimentera med de federerade nätverksfunktionerna i GNU Social. Jag hoppade över till Quitter.is, en GNU Social webbplats öppen för allmänheten, och följde användarnamnet till den första personen jag hittade där.

På din egen webbplats måste du besöka din profil sida och klicka sedan på Efter + Fjärrkontroll i den högra kolumnen (det är inte helt intuitivt):

För att följa en fjärr användare skapar du en adress som kombinerar deras fjärranslutna användarnamn med domänen på den externa nätverkssidan, t.ex. [email protected].

Medan prestanda är relativt långsam (denna Quitter är på Island) kunde vi byta ut @replies och mitt GNU Sociala konto uppträdde i Quitter.is-följarlistan. När jag loggade in nästa dag visade deras uppdateringar på min GNU Sociala installation:

Så här såg det ut som några timmar senare, efter att ha följt ett par mer avlägsna personer:

Tävlar med Facebook och Twitter

Grundutmaningen

Här är några av de egenskaper som jag tycker är viktiga för ett open source socialt nätverkssystem för att samla populärt stöd och adoption:

  • Enkel installation för lågutbildade utvecklare. Till exempel bör det vara enkelt för alla med PHP och grundläggande Linux kunskaper att snabbt installera. Det bör närma sig installationen av självhäftad WordPress.
  • Enkla och fleranvändaralternativ. Idealt sett bör plattformen stödja att köra en social installation för bara en användare (installationsprogrammet) eller som ett nätverk som stöder en grupp av många användare.
  • Betalt värdalternativ för att tillåta intresserade icke-tekniska användare att delta. Till exempel gillar jag hur Ghost blogging-plattformen erbjuder ett betalt SaaS-alternativ.
  • Elegant utstationering användargränssnitt (text, foton, så småningom video) och stöd för att leta upp metataggar från webbadresser. Detta är en av de mest kritiska och förbises funktionerna i dagens open source-erbjudanden.
  • Enkel slutanvändarupplevelse. Gränssnittet ska vara lika enkelt att använda som Facebook och Twitter.
  • Bra prestanda. De gemensamma operationerna, t.ex. posta, ladda upp foton, följa, surfa på tidslinjen och få tidslinjeuppdateringar bör alla vara snabba.
  • Publicering till Twitter och Facebook. Plattformen ska göra det möjligt för användarna att spegla sina lokala inlägg till sina befintliga nätverk på ett automatiserat eller semi-automatiserat sätt.
  • Stöd dem. Användare bör kunna anpassa sin nätverksutseende och känsla.
  • Backup-strategi. Plattformen bör innehålla inbyggd säkerhetskopiering, helst med något molnalternativ som S3.
  • Analytics-integration. Det ska vara lätt för användarna att få data om aktiviteten i deras flöden.
  • Solid kodarkitektur, t.ex. MVC-arkitektur och / eller användning av en gemensam ram.
  • Bra dokumentation på kodbasen.
  • Halvautomatiska uppgraderingar. Det är viktigt att göra uppgraderingscykeln lätt för människor att hålla kodbasen uppdaterad över nätverket.

Avancerade funktioner

Dessutom är så många aspekter av vad som gör Facebook och Twitter framgångsrika och dominerande subtila eller osynliga för oss. Bara till exempel, här är några viktiga:

  • Hög prestanda över nätverket
  • Hög genomströmning för uppladdning av bilder (och möjligen video)
  • Fel tolerans för användning
  • Förlorar aldrig data

Medan den distribuerade naturen hos öppna källkods federerade nätverk kan hjälpa till med att begränsa skadan från ett enda nodfel, ökar också komplexiteten att lösa prestandaförbrukningar och hantera användarupplevelsen, eftersom nätverket interagerar med en mängd installerade noder.

En bro till befintliga nätverk

För att påskynda adoption kan det också vara viktigt för dessa nätverk att importera flöden från Twitter (och eventuellt Facebook). Om du till exempel byter från Twitter till ditt eget sociala nätverk kan du vara den första i din vängrupp. Du kommer noga att fortsätta att få uppdateringar och meddelanden, få följförfrågningar och spegla svar från det gamla nätverket på din webbplats utan att behöva återvända till Twitter.

Nuvarande Twitter API-teknik (User Streams) stöder detta som en teknisk möjlighet för enskilda användare, men det kräver deras tillåtelse att stödja en grupp användare (Site Streams). Se Bygga med Twitter API (Tuts +). Jag antar att det är osannolikt att Twitter kommer att bevilja Site Stream-tillåtelse för denna typ av driftskompatibilitet.

Utvärdering av GNU Social

Grundläggande bedömning

GNU Social gör mycket bra men lämnar betydande utrymme för förbättringar. Det gör ett bra jobb för att hålla funktionen smal och genomföra grunderna bra.

Installationen av kodbasen kan förbättras ytterligare. Helst bör det finnas paket som kan installeras snabbare. Så småningom skulle jag vilja se en installations- och underhållsguide för icke-tekniska användare. 

Det finns många nätverk där du kan registrera dig för ett gratis konto och prova plattformen. I framtiden skulle det vara trevligt att se leverantörer erbjuda att installera och upprätthålla nätverken för personer på betald basis.

Medan kodbasen är ren använder den inte tydligt en standardram.

GNU Social kan drivas för enstaka användare eller som en gemenskap. Stöd för OStatus verkar fungera bra. Och det finns stöd för teman.

Utskriftsgränssnittet är rent men erbjuder inga sökningar för webbadresser. Det verkar inte vara något stöd för metataggar, öppna grafkoder eller Twitter-kort.

Slutanvändarupplevelsen är relativt enkel, men den kan fortfarande förbättras. Till exempel var följande fjärranvändare inte okomplicerade från hemtidslinjen. Jag var tvungen att navigera till min profilsida för att följa avlägsna användare.

Föreställningen var smärtsam när det gällde anslutning till fjärranslutna nätverk - möjligen för att jag var ansluten till en islandsbaserad server. Det är förmodligen viktigt att alla dessa operationer är i kö som bakgrundsuppgifter.

Det finns inte mycket mognad kring spegling till Twitter och Facebook, säkerhetskopior och analyser, men det kan komma med tiden.

Slutgiltiga tankar

GNU Social är på ett ställe där PHP-entusiaster kan anta det, starta sina egna webbplatser och bidra till kodbasen. Jag känner också att öppen källkodspersonalen bakom GNU Social kunde göra stora framsteg genom att hålla funktionen smal och fokusera på att polera vad de har. Att leverera en superfast, välbyggd, väl dokumenterad kodbas som kan skapa Twitter på ett federerat sätt skulle vara en betydande prestation, och de är väl på väg där.

Medan GNU Social är byggt för att stödja OStatus finns en aktiv arbetsgrupp på W3C Social Web Working Group; du kan följa sitt arbete på Twitter @ socialwebwg.

Var snäll och posta dina frågor och kommentarer nedan. Det här är ett brett ämnesområde och jag är säker på att det finns mycket jag saknat. Du kan också nå mig på Twitter @ reifman eller maila mig direkt. Följ min Tuts + instruktörssida för att se framtida artiklar i den här serien.

relaterade länkar

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