Reviseren van Open Source Social Networking GNU Social installeren

Wat je gaat creëren

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.

GNU Social installeren

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:

Een aangepast thema installeren

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:

  • Eenvoudige installatie voor laaggeschoolde ontwikkelaars. Het zou bijvoorbeeld gemakkelijk moeten zijn voor iedereen met PHP en eenvoudige Linux-kennis om snel te kunnen installeren. Het moet het gemak van het installeren van door uzelf gehoste WordPress benaderen.
  • Enkele en multi-user opties. In het ideale geval moet het platform ondersteuning bieden voor het uitvoeren van een sociale installatie voor slechts één gebruiker (het installatieprogramma) of als een netwerk dat een community met veel gebruikers ondersteunt.
  • Betaalde hostingoptie om geïnteresseerde niet-technische gebruikers te laten deelnemen. Ik vind bijvoorbeeld de manier waarop het Ghost-blogplatform een ​​betaalde SaaS-optie biedt.
  • Elegante posting gebruikersinterface (tekst, foto's, eventueel video) en ondersteuning voor het opzoeken van metatags van URL's. Dit is een van de meest kritieke en over het hoofd geziene functies in het hedendaagse open source-aanbod.
  • Simpele eindgebruikerservaring. De interface moet net zo eenvoudig te gebruiken zijn als Facebook en Twitter.
  • Goed optreden. De gebruikelijke bewerkingen, b.v. posten, uploaden van foto's, volgen, bladeren door de tijdlijn en het verkrijgen van tijdlijn-updates zouden allemaal snel moeten zijn.
  • Publiceren op Twitter en Facebook. Het platform moet gebruikers in staat stellen hun lokale berichten op een geautomatiseerde of semi-geautomatiseerde manier naar hun bestaande netwerken te spiegelen.
  • Ondersteunende thema's. Gebruikers moeten in staat zijn om het uiterlijk en het gevoel van hun netwerk te personaliseren.
  • Back-upstrategie. Het platform moet ingebouwde back-upmogelijkheden bevatten, idealiter met een bepaalde cloudoptie, zoals S3.
  • Analytics-integratie. Gebruikers moeten gemakkelijk gegevens kunnen opvragen over de activiteit van hun feeds.
  • Solid-codearchitectuur, bijv. MVC-architectuur en / of gebruik van een gemeenschappelijk raamwerk.
  • Geweldige documentatie op de codebase.
  • Semi-automatische upgrades. Het is belangrijk om de upgradecyclus eenvoudig te maken voor mensen om de codebase up-to-date te houden over het netwerk.

Geavanceerde mogelijkheden

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:

  • Hoge prestaties op het netwerk
  • Hoge doorvoer voor het uploaden van afbeeldingen (en mogelijk video)
  • Fouttolerantie voor gebruik
  • Nooit gegevens verliezen

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.

Een brug naar bestaande netwerken

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 evalueren

Basisbeoordeling

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.

Laatste gedachten

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.

Gerelateerde Links

  • Alternatieve alternatieven voor Open Source Social Networking opnieuw bekijken (Tuts +)
  • Quitter (demonstratiesite)
  • GNU Social
  • Neo Quitter-thema
  • W3C Social Web Working Group, @socialwebwg