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.
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:
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:
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:
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.
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.
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.
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.