In deel een van deze reeks, Revisiting Open Source Social Networking Alternatives, gaf ik een kort overzicht van een handvol open source sociale netwerkplatforms en clients. In dit deel zal ik duiken met een installatie van GNU Social en bespreken wat ik denk dat van cruciaal belang is om te concurreren in een door Facebook / Twitter gedomineerde wereld.
Waarom GNU Social? Ik vond dat het het meest eenvoudige systeem was om te installeren en te gebruiken. Het is ook geschreven in PHP, waarvan ik denk dat het de meest toegankelijke open source taal is. Hoewel het zichzelf beperkt heeft tot een kloon van Twitter, denk ik dat dit ertoe heeft bijgedragen dat al zijn basisfuncties en webgebruikersinterface relatief schoon zijn. De GNU Social-website was echter al een aantal dagen niet beschikbaar terwijl ik aan deze tutorial werkte; de toestand van de open source gedistribueerde netwerkwereld blijft soms onregelmatig.
Je kunt GNU Social op elk op LAMP gebaseerd systeem installeren. Ik heb mijn generieke handleiding gepost voor het installeren van een Ubuntu LAMP-stack ter referentie.
Log in op uw server:
ssh [email protected]
Installeer alle vereiste componenten (Curl en Git zijn ook vereist voor deze tutorial):
sudo locale-gen nl_NL en_US.UTF-8 sudo dpkg-reconfigure locales sudo apt-get update -q sudo apt-get dist-upgrade -y sudo apt-get installeer -y pond vernis php5 rsync htop emacs23-nox apache2 php5-mysql dtrx mysql-server exim4 sudo apt-get install php5-curl git
Maak een map voor de site en stel de rechten in:
mkdir / var / www / social -p chown www-data: www-data / var / www / sociale cd / var / www / sociaal
Kloon de repository:
git clone git: //gitorious.org/social/mainline.git .
Log in op MySQL met uw rootdatabase-wachtwoord:
mysql -u root -p
Maak een nieuwe database en stel de rechten in:
maak database sociaal; verleen alle rechten op sociaal. * NAAR "root" @ "localhost" geïdentificeerd door "-your-pwd-"; flush privileges; Uitgang;
Maak de Apache-site:
nano /etc/apache2/sites-available/social.conf
Plak hieronder de Apache-configuratie, aangepast aan uw server:
Servernaam social.yourdomain.com DocumentRoot / var / www / social DirectoryIndex index.php AllowOverride All Order Deny, Allow Allow from all
Schakel de site in, schakel de standaardsite uit en start Apache opnieuw:
sudo a2ensite social.conf sudo a2dissite 000-default.conf sudo service apache2 herladen
U moet ook een paar mappen configureren voor schrijftoegang:
chmod a + w / var / www / social / avatar / chmod a + w / var / www / social / background / chmod a + w / var / www / social / file /
Om mooie URL-reeksen te activeren, moeten we het voorbeeld verplaatsen .htaccess
bestand en inschakelen mod_rewrite
:
mv htaccess.sample. htaccess sudo a2enmod rewrite sudo service apache2 restart
Ga naar de installatiepagina en voer uw naam en configuratie-instellingen in:
http://social.yourdomain.com/install.php
Je zou zoiets als dit moeten zien:
En:
De installatieprocedure duurt maximaal een minuut, maar u zou zoiets moeten zien als het voltooid is:
Dit is hoe de standaard startpagina eruit ziet:
Laten we het open source Neo Quitter-thema installeren, dat lijkt op Twitter:
cd / var / www / social / theme git clone https://github.com/hannesmannerheim/neo-quitter
Bewerk het configuratiebestand en voeg een item toe voor het Neo Quitter-thema:
cd / var / www / sociale sudo nano config.php
Het zou er zo uit moeten zien:
Plak in deze regel:
$ config ['site'] ['theme'] = 'neo-quitter';Keer terug naar de startpagina en het zou er ongeveer zo uit moeten zien:
Aan de slag met GNU Social
Uw account registreren
Het is tijd om je te registreren op je eigen sociale netwerksite:
Zodra u zich registreert, wordt u begroet met deze handige startpagina:
Na het uploaden van mijn avatar, hier is hoe het lijkt om een statusupdate te plaatsen met een foto:
Ik weet niet helemaal zeker wat het klikken en sluiten van het hangslot is, omdat privacy lijkt te worden beheerst door de vervolgkeuzelijst.
Dit is mijn profielpagina met mijn eerste bericht:
Het lijkt op een gemeenschappelijke sociale netwerksite die u kent?
De relatieve afwerking en afwerking van GNU Social in vergelijking met de andere netwerken die in deel een worden behandeld, is de reden dat ik ervoor heb gekozen om me erop te concentreren voor verdere verkenning.
Experimenteren met het federale netwerk
Vervolgens wilde ik experimenteren met de gefedereerde netwerkfuncties van GNU Social. Ik sprong naar Quitter.is, een GNU Social-site die open stond voor het publiek en volgde de gebruikersnaam van de eerste persoon die ik daar vond.
Op uw eigen site moet u uw profielpagina bezoeken en vervolgens op klikken Volgen + Remote in de rechterkolom (het is niet helemaal intuïtief):
Als u een externe gebruiker wilt volgen, maakt u een adres dat zijn externe gebruikersnaam combineert met het domein van de externe netwerksite, bijvoorbeeld [email protected].
Hoewel de uitvoering relatief langzaam is (deze Quitter is in IJsland), konden we @replies uitwisselen en mijn GNU Social-account verscheen in de lijst met volgers van Quitter.is. Toen ik de volgende dag inlogde, verschenen hun updates op mijn GNU Social-installatie:
Hier is hoe het eruit zag een paar uur later, na het volgen van een paar meer afgelegen mensen:
Concurreren met Facebook en Twitter
De basisuitdaging
Hier zijn enkele van de kwaliteiten die volgens mij belangrijk zijn voor een open source sociaal netwerksysteem om populaire ondersteuning en adoptie te verzamelen:
Bovendien zijn zoveel aspecten van wat succes en dominantie voor Facebook en Twitter oplevert subtiel of onzichtbaar voor ons. Hier zijn bijvoorbeeld een paar belangrijke:
Hoewel de gedistribueerde aard van federatieve open-source netwerken kan helpen bij het beperken van de schade van een enkele knooppuntdefect, verhoogt het ook de complexiteit van het oplossen van prestatie-uitdagingen en het beheer van de gebruikerservaring, omdat het netwerk interageert met een verscheidenheid aan geïnstalleerde knooppunten.
Om de acceptatie te versnellen, kan het ook belangrijk zijn voor deze netwerken om feeds van Twitter (en mogelijk Facebook) te importeren. Als u bijvoorbeeld van Twitter overschakelt naar uw eigen sociale netwerk, bent u mogelijk de eerste van uw vriendengroep. U wilt waarschijnlijk nog steeds updates en meldingen ontvangen, volgverzoeken ontvangen en antwoorden van het oude netwerk op uw site spiegelen - zonder terug te hoeven keren naar Twitter.
De huidige Twitter API-technologie (User Streams) ondersteunt dit als een technische mogelijkheid voor individuele gebruikers, maar het vereist hun toestemming om te ondersteunen voor een groep gebruikers (Site Streams). Zie Bouwen met de Twitter API (Tuts +). Ik neem aan dat het onwaarschijnlijk is dat Twitter Site Stream toestemming zal verlenen voor dit soort interoperabiliteit.
GNU Social doet het heel goed, maar laat veel ruimte voor verbetering. Het doet een goed werk om de functieset smal te houden en de basis goed te implementeren.
De installatie van de codebase zou nog verder kunnen worden verbeterd. Idealiter zouden er pakketten moeten zijn die sneller kunnen worden geïnstalleerd. Uiteindelijk zou ik graag een installatie- en onderhoudshandleiding willen voor niet-technische gebruikers.
Er zijn talloze netwerken waar je je kunt aanmelden voor een gratis account en het platform kunt uitproberen. In de toekomst zou het leuk zijn om te zien dat providers bieden om de netwerken te installeren en te onderhouden voor mensen op een betaalde basis.
Hoewel de codebase schoon is, maakt deze niet duidelijk gebruik van een standaardkader.
GNU Social kan worden gebruikt voor individuele gebruikers of als een gemeenschap. Ondersteuning voor OStatus lijkt goed te werken. En er is ondersteuning voor thema's.
De postinginterface is schoon maar biedt geen lookups voor URL's. Er lijkt geen ondersteuning te zijn voor metatags, Open Graph-tags of Twitter-kaarten.
De ervaring van de eindgebruiker is relatief eenvoudig, maar kan nog steeds worden verbeterd. Het volgen van externe gebruikers was bijvoorbeeld niet eenvoudig vanuit de starttijdlijn. Ik moest naar mijn profielpagina navigeren om externe gebruikers te volgen.
De prestaties waren pijnlijk bij het verbinden met externe netwerken, mogelijk omdat ik verbonden was met een in IJsland gevestigde server. Het is waarschijnlijk belangrijk dat al deze bewerkingen in de wachtrij staan als achtergrondtaken.
Er is niet veel volwassenheid in het spiegelen naar Twitter en Facebook, back-ups en analyses, maar dit kan met de tijd komen.
GNU Social bevindt zich op een plek waar PHP-enthousiasten het kunnen adopteren, hun eigen sites kunnen lanceren en kunnen bijdragen aan de codebase. Ik ben ook van mening dat het open-sourceteam achter GNU Social grote vooruitgang kan boeken door de reeks functies beperkt te houden en zich te concentreren op het oppoetsen van wat ze hebben. Het leveren van een super solide, goed ontworpen, goed gedocumenteerde codebase die Twitter op een gefedereerde manier opnieuw kan maken, zou een belangrijke prestatie zijn en ze zijn goed op weg daarheen.
Terwijl GNU Social is gebouwd om OStatus te ondersteunen, is er een actieve werkgroep bij W3C Social Web Working Group; je kunt hun werk volgen op Twitter @socialwebwg.
Aarzel niet om uw vragen en opmerkingen hieronder te plaatsen. Dit is een breed onderwerp en ik weet zeker dat er veel is dat ik heb gemist. Je kunt me ook bereiken via Twitter @reifman of mij rechtstreeks een e-mail sturen. Volg mijn Tuts + instructeurspagina om toekomstige artikelen in deze serie te bekijken.