@Speedysurf
SEE ALSO THE NEW UPDATED TOPIC
Hallo an alle NextCloud-Umsteiger und LibreOffice-Freunde,
ich habe heute mein OwnCloud nach NextCloud migriert. Alles lief ohne Probleme
ordentlich durch.
LibreOffice-Online kann ich jetzt auch - wie vorher unter OwnCloud - in
der NextCloud-Umgebung nutzen.
Hier mal die grundsĂ€tzlichen Schritte zur Umsetzung fĂŒr LOLâŠ
Ausgangspunkt war bei mir ein aktuelles ArchLinux ohne installiertes
LibreOffice.
Schritt 1: LibreOffice aus den Quellen bauen (https://github.com/LibreOffice/core)
Schritt 2: LibreOffice Online WebSocketServer bauen (https://github.com/LibreOffice/online)
Schritt 3: NextCloud-Pluggin einbinden (https://github.com/owncloud/richdocuments)
Diese Schritte hatte ich schon fĂŒr die OwnCloud-Installation vollzogen. Die
Installation lÀuft jetzt ebenfalls mit der neuen NextCloud-Umgebung, da ja dem
WebSocketServer relativ egal ist, von welchem Client er angesprochen wird.
NatĂŒrlich ist die ganze Geschichte noch auf einer experimentellen Stufe, was man vordergrĂŒndig am Leistungsumfang des Plug-Ins bemerkt, aber die ersten groĂen Schritte in Richtung einer wirklichen OnlineOffice-Alternative sind gemacht und ich freue mich auf mehr.
FĂŒr die Schritte der Installation habe ich oft den Benutzer âhttpâ missbraucht,
da unter ArchLinux der Apache unter diesem lĂ€uft. Angemeldet war ich als ârootââŠ
Schritt 1 - LibreOffice bauen:
Erst die AbhĂ€nigkeiten fĂŒr LibreOffice installieren. Hier habe ich mir relativ
wenig Gedanken ĂŒber die Notwendigkeit der Pakete gemacht (genug Platz auf der HDD)âŠ
pacman -S --needed \
glew gperf gtk3 redland cups hyphen libabw libcdr libe-book \
libetonyek liblangtag libmspub libmwaw libodfgen libpagemaker \
librevenge libvisio libwpd libwpg libwps lpsolve libcmis \
libexttextcat libixion liborcus gdb libpng libcap libcap-ng
Hier soll spÀter die fertige Installation landen:
mkdir /opt/LibreOfficeFromSource
Quellen holen:
cd /tmp; \
git clone https://github.com/LibreOffice/core.git LibreOfficeCore; \
cd /tmp/LibreOfficeCore; \
chown -R http:http /tmp/LibreOfficeCore
Die Build-Optionen kann man natĂŒrlich an die eigenen Anforderungen anpassen.
Die ââwith-system-â Optionen setzen natĂŒrlich voraus, dass die entsprechenden
Pakete auch vorhanden sind. Das âmakeâ dauert natĂŒrlich eine ganze WeileâŠ
sudo -u http ./autogen.sh --prefix=/opt/LibreOfficeFromSource \
--with-lang='de' \
--with-help \
--with-myspell-dicts \
--with-alloc=system \
--without-java \
--without-system-dicts \
--disable-dconf \
--disable-odk \
--disable-firebird-sdbc \
--disable-postgresql-sdbc \
--enable-release-build=yes \
--enable-python=system \
--enable-hardlink-deliver \
--with-system-apr \
--with-system-boost=yes \
--with-system-cairo \
--with-system-clucene \
--with-system-curl \
--with-system-expat \
--with-system-graphite \
--with-system-harfbuzz \
--with-system-icu \
--with-system-jpeg \
--with-system-lcms2 \
--with-system-libatomic_ops \
--with-system-libpng \
--with-system-libxml \
--with-system-neon \
--with-system-nss \
--with-system-odbc \
--with-system-openldap \
--with-system-openssl \
--with-system-poppler \
--with-system-redland \
--with-system-serf \
--with-system-zlib
sudo -u http make
make install
Wenn alles gut gegangen ist, befindet sich die fertige Installation unter
/opt/LibreOfficeFromSource
Die Quellen braucht man jetzt nicht mehr. Man kann diese jetzt oder spÀter
löschenâŠmuss aber nicht⊠(rm -rf /tmp/LibreOfficeCore)
#####################################################################################
Schritt 2 - LibreOfficeOnline WebSocketServer:
Hier benötigt man die âpocoâ Pakete, die man sie entweder aus den Quellen bauen kann
oder - wie ich bei meinem ArchLinux - aus dem AUR holt.
Da ich pacaur installiert habe, konnte ich das mit
pacaur -y poco-git
erledigen.
Quellen holen und vorbereiten:
cd /opt; \
git clone https://github.com/LibreOffice/online.git lool; \
cd /opt/lool/loolwsd; \
libtoolize; \
aclocal; \
automake --add-missing; \
autoreconf; \
autoheader
Konfiguration fĂŒr make:
/opt/lool/loolwsd/configure \
--sysconfdir=/opt/lool/loolwsd/etc \
--prefix=/opt/lool/loolwsd \
--enable-silent-rules \
--with-lokit-path=/opt/lool/loolwsd/bundled/include \
--with-lo-path=/opt/LibreOfficeFromSource/lib/libreoffice \
--enable-debug
chown -R http /opt/lool; \
sudo -u http mkdir /opt/lool/loolwsd/var; \
sudo -u http mkdir /opt/lool/loolwsd/var/cache; \
sudo -u http mkdir /opt/lool/loolwsd/var/cache/loolwsd
sudo -u http make
Da ich Letsencrypt nutze, habe ich die auch fĂŒr loolwsd verwendet:
rm -rf /etc/loolwsd; \
mkdir /etc/loolwsd; \
cp -L /etc/letsencrypt/live/...DOMAIN.../cert.pem /etc/loolwsd/cert.pem; \
cp -L /etc/letsencrypt/live/...DOMAIN.../chain.pem /etc/loolwsd/ca-chain.cert.pem; \
cp -L /etc/letsencrypt/live/...DOMAIN.../privkey.pem /etc/loolwsd/key.pem
Jetzt wird noch der Client-Teil benötigt:
cd /opt/lool/loleaflet
make
Start von loolwsd auf der Konsole (zum Testen):
sudo -u http /opt/lool/loolwsd/loolwsd \
--o:sys_template_path=/opt/lool/loolwsd/systemplate \
--o:lo_template_path=/opt/LibreOfficeFromSource/lib/libreoffice \
--o:child_root_path=/opt/lool/loolwsd/jails
Meine Servicedatei sieht unter Arch so aus:
cat /etc/systemd/system/loolwsd.service
[Unit]
Description=LibreOffice On-Line WebSocket Daemon
After=network.target
[Service]
ExecStart=/opt/lool/loolwsd/loolwsd --version --o:sys_template_path=/opt/lool/loolwsd/systemplate --o:lo_template_path=/opt/LibreOfficeFromSource/lib/libreoffice --o:child_root_path=/opt/lool/loolwsd/jails --o:file_server_root_path=/opt/lool
User=http
KillMode=control-group
Restart=always
[Install]
WantedBy=multi-user.target
#####################################################################################
Anpassung fĂŒr die App âCollabora Onlineâ (richdocuments) in NextCloud:
Damit man auch aus der Files-App Dokumente öffnen kann, muss noch ein "Listener"
hinzugefĂŒgt werdenâŠ(neu ab V9.0)
NEXCLOUDDIR/apps/richdocuments/appinfo/app.php 43ff:
$c->getServer()->getNavigationManager()->add($navigationEntry);
//Script for registering file actions
/*
$request = \OC::$server->getRequest();
if (isset($request->server['REQUEST_URI'])) {
$url = $request->server['REQUEST_URI'];
if (preg_match('%index.php/apps/files(/.*)?%', $url)) {
\OCP\Util::addScript('richdocuments', 'viewer/viewer');
\OCP\Util::addStyle('richdocuments', 'viewer/odfviewer');
}
}
*/
$eventDispatcher = \OC::$server->getEventDispatcher();
$eventDispatcher->addListener(
'OCA\Files::loadAdditionalScripts',
function() {
\OCP\Util::addScript('richdocuments', 'viewer/viewer');
\OCP\Util::addStyle('richdocuments', 'viewer/odfviewer');
}
);
//Listen to delete file signal
\OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Richdocuments\Storage", "onDelete");
#####################################################################################
OptimierungsvorschlĂ€ge sind natĂŒrlich sehr willkommen!!
SEE ALSO THE NEW UPDATED TOPIC