Anleitungen

o.lan – Libre Office im Browser, On-Demand, keine Desktop-Umgebung

o.lan – Libre Office im Browser, On-Demand, keine Desktop-Umgebung

Im vorherigen Artikel habe ich über b.lan gesprochen – einen Remote-Desktop für Chrome, auf den über den Browser zugegriffen werden kann. Nun, dieses Mal ist es immer noch im gleichen Bereich, aber mit einem anderen Anwendungsfall: o.lan, ein spezieller Remote-Desktop für Libre Office.

Warum seid ihr getrennt? Anstatt Libre Office einfach auf b.lan zu installieren? Ja, das kannst du. Wenn sie jedoch kombiniert werden, werden die Browsersitzung und die Office-Sitzung zur gleichen Anzeige. Kompliziert. Wenn Sie ein Dokument schreiben und plötzlich etwas in Chrome überprüfen müssen, stürzt es ab. Ganz zu schweigen von Ressourcenproblemen – Chrome liebt Speicher, Libre Office ist auch nicht schlecht. Es ist besser, sie zu trennen, jeder hat seine eigene Anzeige, seinen eigenen Port und kann unabhängig gestartet/gestoppt werden.

Genau wie b.lan verfolgt auch o.lan die on-demand-Philosophie: Der Dienst ist vollständig ausgeschaltet, wenn er nicht verwendet wird, und nur dann aktiv, wenn Sie ihn benötigen. Es gibt keine Desktop-Umgebung, keinen Display-Manager, keinen Compositor. Nur Xvfb + x11vnc + websockify + Openbox. Der Unterschied besteht darin, dass Chrome durch Libre Office ersetzt wurde.

O.lan Startseite

o.lan-Startseite – Sitzung ist tot, klicken Sie einfach auf „Sitzung starten“

Architektur

Technisch gesehen ist die Architektur von o.lan fast identisch mit der von b.lan:

Browser (client) ↓ HTTPS Nginx (o.lan:443) ↓ noVNC / websockify (:6081) ↓ WebSocket → VNC x11vnc (:5901) ↓ Xvfb (:98, 1920×1080) ↓ openbox + tint2 + Libre Office

Der Hauptunterschied besteht im Port und der Anzeige:

Komponentenb.lano.lan
Anzeige:99:98
VNC-Port59005901
noVNC-Port60806081
HauptanwendungenGoogle ChromeLibre Office
AnwendungsfallBrowsing, Recherche, Admin-PanelDokumente, Tabellenkalkulationen, Präsentationen schreiben

Mit unterschiedlichen Ports können beide Sitzungen zusammen ausgeführt werden. Möchten Sie über b.lan recherchieren und gleichzeitig Berichte über o.lan schreiben? Dürfen. Jedes in einem anderen Browser-Tab, damit sie sich nicht gegenseitig stören.

Nutzungsfluss

Öffnen Sie zunächst https://o.lan in einem Browser. Auf der Startseite wird der Offline-Status mit der Schaltfläche „Sitzung starten“ angezeigt:

Ladestatus o.lan

Wenn die Sitzung beginnt, erscheint eine Fortschrittsanzeige

Nach dem Klicken führt das System den Systemd-Dienst office-session.service aus, der Xvfb, x11vnc, websockify, Openbox und Libre Office automatisch aktiviert. Der Vorgang dauert etwa 5-10 Sekunden. Sobald Sie fertig sind, sehen Sie das Libre Office Start Center direkt in Ihrem Browser:

Libre Office Start Center über noVNC

Libre Office Start Center – wählen Sie Writer, Calc oder Impress

Hier können Sie die Anwendung auswählen, die Sie verwenden möchten: Writer für Textdokumente, Calc für Tabellenkalkulationen oder Impress für Präsentationen. Alles läuft auf dem Server, die Anzeige wird per VNC an Ihren Browser gesendet.

Libre Office Writer läuft auf o.lan

Libre Office Writer – sieht genauso aus wie der native Desktop

Sie können über Thunar (Dateimanager) auch Dateien öffnen, die bereits auf dem Server vorhanden sind, oder Text aus anderen Quellen kopieren und einfügen. Da es sich um eine vollständige Sitzung handelt, funktionieren alle Tastaturkürzel normal. Es gibt auch eine spezielle Verknüpfung:

  • Strg+Alt+W – Writer öffnen
  • Strg+Alt+C – Calc öffnen
  • Strg+Alt+I – Impress öffnen
  • Strg+Alt+T – Terminal öffnen
  • Strg+Alt+F – Dateimanager öffnen (Thunar)
Document Writer auf o.lan

Typing Writer-Dokumente – responsiv, kein Unterschied zum Desktop

Auto-Stopp im Leerlauf

Das ist meine Lieblingsfunktion. Wenn Sie vergessen, die Sitzung zu schließen, wird o.lan nach 30 Minuten ohne Aktivität automatisch beendet. Der Timer ist unten auf dem Bildschirm sichtbar – so wissen Sie, wann die Sitzung endet.

Die Funktionsweise besteht aus zwei Ebenen:

  1. Systemebene: Ein Systemd-Timer (läuft alle 1 Minute) prüft, ob eine TCP-Verbindung zum VNC-Port besteht. Wenn 30 Minuten lang kein Client eine Verbindung herstellt, wird der Dienst sofort beendet.
  2. App-Ebene: JavaScript auf einer Webseite sendet jedes Mal einen Herzschlag, wenn Sie im VNC-Bereich auf eine Schaltfläche klicken oder diese drücken. Wenn der Heartbeat stoppt, läuft der Timer in der Benutzeroberfläche ab und die Sitzung wird beendet.

Das Ergebnis: keine Ressourcenverschwendung. Als ich es nutzte, war der Service ausgebucht. Beim Schließen wurde alles gereinigt. RAM wird wieder entlastet.

Installation

Für diejenigen, die neugierig sind und einen eigenen Heimserver haben, ist die Installation wirklich einfach. Klonen Sie einfach das Repo und führen Sie dann das Skript aus:

git clone https://github.com/adammuizweb/office.git cd office sudo bash install.sh

Oder wenn Sie eine benutzerdefinierte Domain wünschen:

DOMAIN=o.lan sudo bash install.sh

Dieses Skript kümmert sich um alle Abhängigkeiten: Xvfb, x11vnc, websockify, noVNC, Openbox, tint2, Libre Office, Nginx config, systemd-Dienst und Leerlauf-Timer. Führen Sie es einfach aus, warten Sie ein paar Minuten, fertig.

Technische Details und den vollständigen Code finden Sie auf GitHub: github.com/adammuizweb/office

Schlussfolgerung

o.lan ist der Beweis dafür, dass Sie keine umfangreiche Desktop-Umgebung benötigen, nur um eine Anwendung auszuführen. Mit Xvfb + VNC + Openbox + Libre Office erhalten Sie ein voll funktionsfähiges Office-Erlebnis, ohne DE, Display Manager oder Compositor installieren zu müssen. Alles läuft auf dem Server und kann von jedem Gerätebrowser im lokalen Netzwerk aus aufgerufen werden.

Die Kombination von b.lan + o.lan auf dem Heimserver wird zu einer vollständigen Remote-Workstation: Chrome zum Surfen und Verwalten, Libre Office zum Schreiben und Verarbeiten von Daten. Beide sind On-Demand, unabhängig voneinander und verschwenden keine Ressourcen.

Als nächstes? Vielleicht eine Sitzung zu GIMP oder VS Code. Aber das ist eine andere Geschichte.