Open Source Social Networking erneut besuchen GNU Social installieren

Was Sie erstellen werden

In Teil eins dieser Serie, Revisiting Open Source Social Networking Alternatives, habe ich einen kurzen Überblick über eine Handvoll Open-Source-Plattformen für soziale Netzwerke und Kunden gegeben. In diesem Teil werde ich mich mit einer Installation von GNU Social beschäftigen und besprechen, was meiner Meinung nach für den Wettbewerb in einer von Facebook / Twitter dominierten Welt von entscheidender Bedeutung sein wird. 

Warum GNU Social? Ich hatte das Gefühl, dass es das einfachste System ist, das installiert und benutzt werden kann. Es ist auch in PHP geschrieben, was meiner Meinung nach die am besten zugängliche Open-Source-Sprache ist. Zwar ist es darauf beschränkt, ein Klon von Twitter zu sein, aber ich denke, dies hat dazu beigetragen, dass alle grundlegenden Funktionen und die Webbenutzeroberfläche relativ sauber gehalten werden. Die GNU Social-Website war jedoch einige Tage inaktiv, während ich an diesem Tutorial arbeitete. Der Zustand der verteilten Open-Source-Netzwerkwelt bleibt zeitweise fleckig.

GNU Social installieren

Sie können GNU Social auf jedem LAMP-basierten System installieren. Ich habe mein allgemeines Handbuch zur Installation eines Ubuntu LAMP-Stacks als Referenz bereitgestellt.

Melden Sie sich bei Ihrem Server an:

ssh [email protected]

Installieren Sie alle erforderlichen Komponenten (Curl und Git werden auch für dieses Lernprogramm benötigt):

sudo locale-gen de_DE.UTF-8 sudo dpkg-reconfigure locales sudo apt-get Update -q Sudo apt-get dist-upgrade-Sudo apt-get installieren -y pound varnish dtrx mysql-server exim4 sudo apt-get install php5-curl git 

Erstellen Sie ein Verzeichnis für die Site und legen Sie Berechtigungen fest:

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

Klonen Sie das Repository:

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

Melden Sie sich mit Ihrem Root-Datenbankkennwort bei MySQL an:

mysql -u root -p

Erstellen Sie eine neue Datenbank und legen Sie Berechtigungen fest:

Datenbank sozial erstellen; gewähren Sie alle Privilegien für soziale Netzwerke. * TO "root" @ "localhost", gekennzeichnet durch "-your-pwd-"; Flush-Privilegien; Ausfahrt;

Erstellen Sie die Apache-Site:

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

Fügen Sie die Apache-Konfiguration unten ein, angepasst an Ihren Server:

 ServerName social.ihredomain.com DocumentRoot / var / www / social DirectoryIndex index.php  AllowOverride All Order Deny, Allow Allow zulassen  

Aktivieren Sie die Site, deaktivieren Sie die Standard-Site und starten Sie Apache neu:

sudo a2ensite social.conf sudo a2dissite 000-default.conf sudo service apache2 reload

Sie müssen außerdem einige Verzeichnisse für den Schreibzugriff konfigurieren:

chmod a + w / var / www / social / avatar / chmod a + w / var / www / social / background / chmod a + w / var / www / social / datei /

Um hübsche URL-Zeichenfolgen zu aktivieren, müssen wir das Beispiel verschieben .htaccess Datei und aktivieren mod_rewrite:

mv htaccess.sample .htaccess sudo a2enmod schreibt den Sudo-Dienst apache2 neu

Besuchen Sie die Installationsseite und geben Sie Ihren Namen und Konfigurationseinstellungen ein:

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

Sie sollten so etwas sehen:

Und:

Der Installationsvorgang dauert bis zu einer Minute. Nach Abschluss des Vorgangs sollten Sie jedoch Folgendes sehen:

So sieht die Standard-Homepage aus:

Ein benutzerdefiniertes Design installieren

Lassen Sie uns das Open Source-Thema Neo Quitter installieren, das Twitter ähnelt:

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

Bearbeiten Sie die Konfigurationsdatei und fügen Sie einen Eintrag für das Neo Quitter-Design hinzu:

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

Es sollte so aussehen:

Einfügen in dieser Zeile:

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

Kehren Sie zur Startseite zurück und es sollte folgendermaßen aussehen:

Erste Schritte mit GNU Social

Registrieren Sie Ihr Konto

Es ist Zeit, sich bei Ihrer eigenen Social-Networking-Site zu registrieren:

Nach der Registrierung werden Sie mit dieser hilfreichen Einstiegsseite begrüßt:

Nach dem Hochladen meines Avatars sieht es so aus, als würde ein Status-Update mit einem Foto gepostet:

Ich bin nicht ganz sicher, was das Klicken und Schließen des Vorhängeschlosses ist, da die Privatsphäre durch die Dropdown-Box gesteuert wird.

Hier ist meine Profilseite mit meinem ersten Beitrag:

Sehen Sie aus wie jede bekannte Social Networking-Site, die Sie kennen? 

Der relative Schliff und das Ende von GNU Social im Vergleich zu den anderen Netzwerken, die in Teil 1 behandelt wurden, ist der Grund, warum ich mich für die weitere Erkundung entschieden habe.

Experimentieren mit dem Verbundnetzwerk

Als Nächstes wollte ich mit den Verbundnetzwerkfunktionen von GNU Social experimentieren. Ich ging zu Quitter.is, einer für die Öffentlichkeit zugänglichen GNU Social-Website, und folgte dem Benutzernamen der ersten Person, die ich dort fand.

Auf Ihrer eigenen Website müssen Sie Ihre Profilseite besuchen und dann auf klicken Folgend + Fernbedienung in der rechten Spalte (nicht ganz intuitiv):

Um einem Remote-Benutzer zu folgen, erstellen Sie eine Adresse, die den Remote-Benutzernamen mit der Domäne des Remote-Netzwerks, z. [email protected].

Während die Leistung relativ langsam ist (dieser Quitter ist in Island), konnten wir @replies austauschen, und mein GNU Social-Konto wurde in der Quitter.is-Anhängerliste angezeigt. Als ich mich am nächsten Tag anmeldete, wurden ihre Updates in meiner GNU Social-Installation angezeigt:

Ein paar Stunden später sah es danach aus, nachdem er ein paar entfernteren Leuten gefolgt war:

Mit Facebook und Twitter konkurrieren

Die grundlegende Herausforderung

Hier sind einige der Eigenschaften, die meiner Meinung nach für ein Open-Source-Netzwerk für soziale Netzwerke wichtig sind, um die Unterstützung und Akzeptanz der Bevölkerung zu erlangen:

  • Einfache Installation für wenig erfahrene Entwickler. Zum Beispiel sollte es für jeden mit PHP- und Linux-Grundkenntnissen leicht sein, ihn schnell zu installieren. Es sollte die einfache Installation von selbst gehosteten WordPress-Dateien angehen.
  • Einzel- und Mehrbenutzeroptionen. Idealerweise sollte die Plattform die Ausführung einer sozialen Installation für nur einen Benutzer (das Installationsprogramm) oder als Netzwerk unterstützen, das eine Community mit vielen Benutzern unterstützt.
  • Bezahlte Hosting-Option zur Teilnahme interessierter nicht-technischer Benutzer. Ich mag es beispielsweise, wie die Ghost-Blogging-Plattform eine kostenpflichtige SaaS-Option bietet.
  • Elegante Posting-Benutzeroberfläche (Text, Fotos, eventuell Videos) und Unterstützung für das Abrufen von Meta-Tags von URLs. Dies ist eine der kritischsten und übersehensten Funktionen in heutigen Open Source-Angeboten.
  • Einfaches Benutzererlebnis. Die Benutzeroberfläche sollte so einfach zu bedienen sein wie Facebook und Twitter.
  • Gute Leistung. Die üblichen Operationen, z. Posting, Hochladen von Fotos, Folgen, Durchsuchen der Zeitleiste und Aktualisieren der Zeitleiste sollten alle schnell sein.
  • Veröffentlichung auf Twitter und Facebook. Die Plattform sollte es Benutzern ermöglichen, ihre lokalen Beiträge automatisiert oder halbautomatisch in ihre vorhandenen Netzwerke zu spiegeln.
  • Unterstützen Sie Theming. Benutzer sollten in der Lage sein, ihr Netzwerk-Erscheinungsbild zu personalisieren.
  • Sicherungsstrategie. Die Plattform sollte über eine integrierte Sicherungsfunktion verfügen, idealerweise mit einigen Cloud-Optionen wie S3.
  • Analytics-Integration. Benutzern sollte es leicht sein, Daten über die Aktivität ihrer Feeds zu erhalten.
  • Feste Code-Architektur, z.B. MVC-Architektur und / oder Verwendung eines gemeinsamen Frameworks.
  • Tolle Dokumentation auf der Codebasis.
  • Halbautomatisierte Upgrades. Es ist wichtig, den Upgrade-Zyklus für die Benutzer so einfach wie möglich zu gestalten, um die Codebase im Netzwerk auf dem neuesten Stand zu halten.

Erweiterte Funktionen

Darüber hinaus sind so viele Aspekte, was Facebook und Twitter erfolgreich und dominant macht, für uns subtil oder unsichtbar. Nur zum Beispiel ein paar wichtige:

  • Hohe Leistung im gesamten Netzwerk
  • Hoher Durchsatz beim Hochladen von Bildern (und möglicherweise Videos)
  • Fehlertoleranz bei der Verwendung
  • Verlieren Sie niemals Daten

Die verteilte Natur von Open Source-Verbundnetzen kann zwar dazu beitragen, den Schaden durch Ausfall eines einzelnen Knotens zu begrenzen, erhöht jedoch auch die Komplexität bei der Lösung von Leistungsproblemen und der Verwaltung der Benutzererfahrung, da das Netzwerk mit einer Vielzahl installierter Knoten interagiert.

Eine Brücke zu bestehenden Netzwerken

Um die Akzeptanz zu beschleunigen, kann es auch für diese Netzwerke wichtig sein, Feeds von Twitter (und möglicherweise Facebook) zu importieren. Wenn Sie beispielsweise von Twitter zu Ihrem eigenen sozialen Netzwerk wechseln, sind Sie möglicherweise der erste Ihrer Freundesgruppe. Sie möchten wahrscheinlich weiterhin Updates und Benachrichtigungen erhalten, Follow-Anfragen erhalten und Antworten aus dem alten Netzwerk Ihrer Site spiegeln, ohne zu Twitter zurückzukehren.

Die derzeitige Twitter-API-Technologie (User Streams) unterstützt dies als technische Möglichkeit für einzelne Benutzer. Sie erfordert jedoch die Genehmigung einer Gruppe von Benutzern (Site Streams). Siehe Erstellen mit der Twitter-API (Tuts +). Ich nehme an, es ist unwahrscheinlich, dass Twitter Site Stream für diese Art der Interoperabilität zulassen wird.

Evaluierung von GNU Social

Grundlegende Bewertung

GNU Social macht sehr viel, lässt aber erheblichen Spielraum für Verbesserungen. Es macht einen guten Job, um das Feature-Set eng zu halten und die Grundlagen gut umzusetzen.

Die Installation der Codebase konnte noch weiter verbessert werden. Idealerweise sollte es Pakete geben, die schneller installiert werden können. Schließlich würde ich gerne ein Installations- und Wartungshandbuch für nicht-technische Benutzer sehen. 

Es gibt zahlreiche Netzwerke, in denen Sie sich für ein kostenloses Konto registrieren und die Plattform ausprobieren können. In der Zukunft wäre es schön zu sehen, dass Anbieter Angebote anbieten, um die Netzwerke für Menschen kostenpflichtig zu installieren und zu warten.

Während die Codebasis sauber ist, verwendet sie nicht eindeutig ein Standard-Framework.

GNU Social kann für einzelne Benutzer oder als Community betrieben werden. Unterstützung für OStatus scheint gut zu funktionieren. Und es gibt Unterstützung für Themen.

Die Beitragsschnittstelle ist sauber, bietet jedoch keine Suche nach URLs. Es scheint keine Unterstützung für Meta-Tags, Open Graph-Tags oder Twitter-Karten zu geben.

Die Endbenutzererfahrung ist relativ einfach, kann jedoch noch verbessert werden. Zum Beispiel war es nicht einfach, Remote-Benutzern von zu Hause aus zu folgen. Ich musste zu meiner Profilseite navigieren, um Remote-Benutzern zu folgen.

Die Leistung war schmerzhaft, wenn es darum ging, eine Verbindung zu Remote-Netzwerken herzustellen - möglicherweise, weil ich mit einem Server auf Island-Basis verbunden war. Es ist wahrscheinlich wichtig, dass alle diese Vorgänge als Hintergrundaufgaben in die Warteschlange gestellt werden.

Die Spiegelung auf Twitter und Facebook, Backups und Analysen ist nicht gerade ausgereift. Dies kann jedoch mit der Zeit einhergehen.

Abschließende Gedanken

GNU Social ist an einem Ort, an dem PHP-Enthusiasten dies übernehmen, eigene Websites erstellen und zur Codebase beitragen können. Ich glaube auch, dass das Open-Source-Team hinter GNU Social große Fortschritte erzielen könnte, wenn es darum geht, das Feature eng zu halten und sich darauf zu konzentrieren, was sie haben. Die Bereitstellung einer soliden, gut dokumentierten Codebasis, die Twitter auf föderierte Weise neu erstellen kann, wäre eine bedeutende Errungenschaft, und sie sind auf dem besten Weg dorthin.

Während GNU Social OStatus unterstützen soll, gibt es in der W3C Social Web Working Group eine aktive Arbeitsgruppe. Sie können ihre Arbeit auf Twitter @socialwebwg verfolgen.

Bitte zögern Sie nicht, unten Ihre Fragen und Kommentare zu posten. Dies ist ein weites Themenfeld und ich bin sicher, dass ich vieles vermisst habe. Sie können mich auch auf Twitter @reifman erreichen oder mich direkt per E-Mail kontaktieren. Folgen Sie meiner Tuts + Instructor Seite, um zukünftige Artikel dieser Serie zu sehen.

ähnliche Links

  • Erneutes Überdenken von Open Source-Alternativen für soziales Netzwerken (Tuts +)
  • Quitter (Demonstrationsstätte)
  • GNU Social
  • Neo Quitter Theme
  • W3C Social Web Working Group, @socialwebwg