User:Flyser/Gobby

From Gentoo Wiki
Jump to:navigation Jump to:search
Warning
This is only a draft version of this article and far from being complete yet.
ToDo
Redirect Infinoted and Sobby to here or split the article?!

Gobby ist ein Texteditor, der die Idee des kollaborativen Schreibens unterstützt. Somit ist es möglich, dass mehrere Personen in Echtzeit an demselben Dokument arbeiten.

Eine Entscheidung fällen

Zur Zeit gibt es zwei zueinander inkompatible Versionen, beide mit ihren Vor- und Nachteilen.

0.4

Diese Version ist mit ihrem ersten Release im Jahre 2006 schon etwas angegraut und verfügt über keine undo-Funktion. Als Server Software kommt sobby 0.4 zum Einsatz. Dies ist die letzte stabile Veröffentlichung Gobby. Wenn die zusätzlichen Funktionen von Version 0.5 nicht benötigt werden, dann taugt diese gut als robustes "Arbeitstier".

0.5

Diese Version ist momentan noch in Entwicklung und ist ein kompletter Rewrite mit anderem Protokoll und anderer Benutzeroberfläche als Gobby 0.4. Der herausragende Unterschied ist die – bei herkömmlichen Editoren längst vorausgesetzte – undo-Funktion, sowie die Verwendung von infinoted als Server. Zum momentanen Zeitpunkt gibt es jedoch nur experimentelle Releases (Versionsnummer ab 0.4.90), die der Autor jedoch sehr erfolgreich produktiv einsetzt.

Gobby 0.4

Client

Die letzte stabile Version findet sich im portage und kann mit

root #emerge -av app-editors/gobby:0

installiert werden.

Server

Auch hier bietet portage eine stabile Version:

root #emerge -av app-editors/sobby
ToDo
Server configuration

Gobby 0.5

Client

Die neueste Entwicklerversion ist hardmasked im portage und kann mit

root #emerge -av app-editors/gobby:0.5

installiert werden.

Server

Der Server heißt infinoted und wird über das server USE-Flag von net-libs/libinfinity installiert:

root #emerge -av net-libs/libinfinity[server]

Infinoted speichert seine Konfigurationsdatei entsprechend dem freedesktop.org-Standard, also in "~/.config/" oder systemweit in "/etc/xdg/", die Syntax ist ini-ähnlich.

Note
In diesem How-To werden wir den Server so konfigurieren, dass er über das "/etc/init.d/infinoted" gestartet werden kann und dieser dann alle Daten in "/var/lib/infinote/" ablegt.
Auch denkbar wäre infinoted über einen Useraccount auszuführen und die Daten in "/home/user/" abzulegen. Dazu bietet sich "~/.config/" als Konfigurationsverzeichnis an
Minimalistische Konfiguration

Als erstes werden wir das Verzeichnis erstellen, in dem infinoted später die Dateien und Ordner speichert, die man auf dem Server ablegt.

root #mkdir -p /var/lib/infinote/data

und die Zugriffsberechtigungen anpassen:

root #chown -R infinote:infinote /var/lib/infinote

Nun ist alles fertig für die erste minimalistische Konfiguration, die im folgenden Schrittweise erweitert und angepasst wird:

FILE /etc/xdg/infinoted.confMinimale Konfiguration
[infinoted]
  root-directory = /var/lib/infinote/data
  autosave-interval = 60
  security-policy = no-tls

Es sollte nun möglich sein den Server mit

root #/etc/init.d/infinoted start

zu starten, mit Gobby 0.5 zu verbinden und Verzeichnisse oder Dateien zu erstellen. Man sollte überprüfen, ob diese auch nach einem Neustart von infinoted erhalten bleiben.

Passwortauthentifizierung

Was beim Verbinden sofort auffällt ist, dass kein Passwort nötig ist um die Daten auf dem Server einzusehen oder zu verändern. Um das zu verhindern gibt es zwei Authentifizierungsmöglichkeiten:

Für den Anfang legen wir ein Serverpasswort fest indem wir die folgende Zeile an unsere Konfigurationsdatei fügen:

FILE /etc/xdg/infinoted.confEin Klartextpasswort
password = meinSicheresPasswort
Verschlüsselte Verbindung

Nach einem Serverneustart verlangt Gobby nun zwar nach einem Passwort, aber die Verbindung erfolgt gänzlich unverschlüsselt. Um das zu ändern fügen wir die folgenden Zeilen an:

FILE /etc/xdg/infinoted.confTLS Verschlüsselung
security-policy = require-tls
  certificate-file = /etc/xdg/infinoted.cert
  key-file = /etc/xdg/infinoted.key

Die Option security-policy hat 3 mögliche Werte: "no-tls", "allow-tls", "require-tls". Mit unserer Konfiguration erlauben wir keinerlei unverschlüsselte Verbindungen mehr.

Bevor wir allerdings die Konfiguration testen können, müssen wir das Zertifikat und den Schlüssel noch von infinoted erzeugen lassen:

root #infinoted --create-key --create-certificate
Serverseitiger Zugriff auf hochgeladene Daten

Nachdem die Sicherheitsaspekte geklärt sind, möchten wir nun auch serverseitig auf die abgelegten Daten zugreifen. Bei einem Blick in "/var/lib/infinote/data" bemerken wir schnell, dass dort nur XML Repräsentationen der eigentlichen Dateien liegen. Zum Glück erlaubt infinoted es uns auch an die Rohdaten zu gelangen. Dafür erzeugen wir zunächst das Zielverzeichnis:

root #mkdir /var/lib/infinote/export
root #chown infinote:infinote /var/lib/infinote/export

und erweitern dann unsere Konfigurationsdatei um:

FILE /etc/xdg/infinoted.confExportieren der hochgeladenen Dateien
sync-directory = /var/lib/infinote/export
  sync-interval = 60

In diesem Fall werden Dateien bei Änderung spätestens nach 60 Sekunden in "/var/lib/infinote/export" gespeichert.

Komplette Beispielkonfiguration
FILE /etc/xdg/infinoted.confBeispielkonfiguration
[infinoted]
  root-directory = /var/lib/infinote/data
  autosave-interval = 60
  sync-directory = /var/lib/infinote/export
  sync-interval = 60
  password = meinSicheresPasswort
  # no-tls, allow-tls oder require-tls:
  security-policy = require-tls
  certificate-file = /etc/xdg/infinoted.cert
  key-file = /etc/xdg/infinoted.key

Erweiterte Konfiguration

PAM Authentifizierung
ToDo
~
Script beim Speichern aufrufen
Note
Diese Funktion findet sich erst in infinoted 0.6 oder neuer.
ToDo
~

Links