Für Nextcloud und Owncloud gibt es seit letztem Jahr eine Online Officelösung mit Collabora Online und dem Collabora Online Connector. Ich will hier zeigen, wie man Collabora Online auf einem Ubuntu 16.04 installieren kann, ohne auf die angebotene Docker Lösung zurückzugreifen.
Im Nextcloud Forum gibt es eine gutes HowTo, das die grundsätzliche Vorgehensweise erklärt. Ich möchte einige Dinge aber etwas anders angehen.
Collabora Online oder Libreoffice Online
Zunächst möchte ich kurz auf die beiden Versionen der Online Office Lösung eingehen. Die Consulting Firma Collabora Ltd. hat mit ihrer Collabora Productivity Division die Online Office Lösung für Owncloud und Nextcloud basierend auf der Libreoffice Suite vehement vorangetrieben. Die Collabora Producivity bietet neben einer eigenen Libreoffice Version zum professionellen Einsatz die zugehörige Beratung und den notwendigen Support. Collabora Productivity pflegt eigene Zweige des LibreOffice cores, sowie von LibreOffice online. Man findet diese Entwicklungszweige bequem auf dem read-only Mirror der LibreOffice Suite auf GitHub. Die Collabora Zweige haben das Präfix distro/collabora, siehe die folgenden beiden Seiten:
Der LibreOffice core Zweig distro/collabora/cp-5.3 ist, zum Zeitpunkt zu dem ich dies schreibe, neu. Der Branch-Punkt datiert auf den 17. Februar 2017. Die LibreOffice Branches hingegen tragen immer einen Namen nach dem Schema libreoffice-5-3 bzw. libreoffice-5-3-1.
Die zu den Zweigen gehörenden Releases finden wir auf den folgenden beiden Seiten:
Die aktuellen Collabora Office Releses sind cp-5.0-41, cp-5.1-23 und cp-5.3-2. Das aktuellste LibreOffice Release ist libreoffice-5.3.2.1.
Das aktuellste Collabora online Release ist z.Zt. 2.0.5, das aktuelle Libreoffice online Relase libreoffice-5.3.1.2. Ein erstes Collabora online Release 2.1.0 passend zum Collabora Office cp-5.3 branch wird sicher in Kürze folgen. Einen commit zum erhöhen der Versions Nummer hat es bereits gegeben.
Natürlich können wir auch einen Checkout des jeweiligen master Zweiges benutzen, im weiteren Verlauf des Artikels werde ich mich aus Stabilitätsgründen aber nur mit Release-Versionen beschäftigen. Um ein stabiles Funktionieren sicherzustellen, ist auf zusammenpassende Versionen von Libre- bzw. Collabora-Office core und den jeweiligen Libre- bzw. Collabora-Online Versionen zu achten.
Vorgehensweise
1.) Die Kompilierungen möchte ich nicht auf meinem Produktionsserver durchführen. Dies verbraucht zu viel Plattenplatz, Arbeitsspeicher und Prozessorresourcen.
2.) Ich möchte eine saubere Installation haben, ohne unötigen Ballast, möglichst sicher konfiguriert und vernünftig ins System integriert.
Dazu ist der Aufwand etwas höher, aber nicht unüberschaubar. Zunächst brauche ich neben meinem Produktionsserver (mein bekannter 1&1 Cloudserver), eine weitere Ubuntu 16.04 Instanz, auf der ich die Kompilierungen durchführen kann. Dazu habe ich eine Ubuntu 16.04 VM unter Virtualbox aufgesetzt. Der VM habe ich 4 Prozessoren, 4GByte Memory und eine 32 GByte Platte spendiert, das sollte für diesen Zweck genügen. Wir setzen auf einer Ubuntu 16.04.2 LTS Basic Server Installation auf und werden Schritt für Schritt durch die Installation der notwendigen Softwarepakete und durch das Kompilieren von CollaboraOffice/LibreOffice und Collabora- bzw. LibreOffice-Online gehen. Anschließend werde ich die Installation und Konfiguration auf dem Produktionsserver beschreiben.
Vorbereitung des Build Servers
Wir gehen aus von einer Ubuntu 16.04.2 LTS Basic Server Installation. Als erstes installieren wir das openssh-server paket. Der ssh Server ist praktisch, weil wir uns dann per ssh auf unserem Build Server einloggen können und nicht mit dem Virtualbox-Fenster herum schlagen müssen.
1 | sudo apt-get install openssh-server -y |
Nun können wir uns per ssh auf unserem Build Server einloggen.
Als nächstes aktualisieren wir alle bereits installierten Pakete.
1 2 3 | sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get dist-upgrade -y |
Build-Voraussetzungen für LibreOffice
Als Nächstes installieren wir die Build Abhängigkeiten für LibreOffice. Die Installation scheitert zunächst wie folgt:
1 2 3 | $ sudo apt-get build-dep libreoffice Reading package lists... Done E: You must put some 'source' URIs in your sources.list |
Ok, wenn wir in die Datei /etc/apt/sources.list schauen, sehen wir, dass alle Paketquellen für Source Pakete (deb-src) auskommentiert sind. Das ändern wir und löschen bei allen aktiven Paketquellen für die dazugehörigen Sourcequellen das Kommentarzeichen. Das können wir sehr einfach und bequem mit dem folgenden Script bewerkstelligen.
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash REPOSITORIES=$(grep "^deb http" /etc/apt/sources.list) oIFS="$IFS" IFS=$'\n' for LINE in $REPOSITORIES ; do SRC_LINE=$(echo $LINE | sed "s%^deb%deb-src%") sudo sed --in-place "s%# ${SRC_LINE}%${SRC_LINE}%" /etc/apt/sources.list done IFS="$oIFS" |
Danach können wir es nochmals versuchen.
1 2 | sudo apt-get update -y sudo apt-get build-dep libreoffice -y |
Hierbei werden über 600 Pakete installiert.
Danach installieren wir noch ein paar zusätzliche Pakete, die wir ebenfalls benötigen.
1 | sudo apt-get install libtool libegl1-mesa-dev libkrb5-dev graphviz -y |
Daneben brauchen wir noch ein aktuelles Poco. In den Ubuntu Repositories wird nur Version 1.3.6 angeboten, wir benötigen jedoch mindestens Version 1.7.6. Das bedeutet, dass wir auch Poco selbst kompilieren werden.
Build-Voraussetzungen für Poco
Um Poco kompilieren zu können, müssen wir ebenfalls noch ein paar Pakete installieren.
1 | sudo apt-get install libiodbc2 libiodbc2-dev -y |
Dabei wird das Paket unixodbc-dev deinstalliert. Die mit unixodbc-dev automatisch installierten Pakete können wir deinstallieren.
1 | sudo apt-get autoremove --purge -y |
Build-Voraussetzungen für LibreOffice Online
Zum kompilieren von LibreOffice Online müssen wir ebenfalls noch ein paar Pakete installieren.
1 | sudo apt-get install libcunit1 libcunit1-dev libcap-dev npm nodejs-legacy python-polib python3-polib -y |
1 | sudo npm install -g jake |
Danach rebooten wir unsere VM.
1 | sudo reboot |
Pakete kompilieren
Nun werden wir die notwendigen Pakete kompilieren. Hierzu ein paar Vorbemerkungen:
- Kompilieren werden wir als Standard User, der beim aufsetzen der VM angelegt wurde.
- Wir kompilieren in einem Unterverzeichnis des User Home Verzeichnisses.
- Um das Handling zu vereinfachen werden wir alle Komponenten in ein Verzeichnis installieren.
- Der LibreOffice Online Server soll unter /opt/lool installiert werden und laufen, deshalb installieren wir alle Komponenten inkl. poco in dieses Verzeichnis.
Als Erstes treffen wir ein paar Vorbereitungen. Zunächst legen wir uns ein Verzeichnis an, in dem wir kompilieren werden, und wechseln in dieses Verzeichnis.
1 2 3 | cd ~ mkdir build-lool cd build-lool |
Danach legen wir uns eine Verzeichnisstruktur an und setzen dazu ein paar Environment Variablen. Die Environment Variablen werden wir auch im weiteren Verlauf noch nutzen.
1 2 3 4 5 6 7 8 9 10 11 12 | export BASE_DIR="$(pwd)" export BUILD_DIR="${BASE_DIR}/build" export LOG_DIR="${BASE_DIR}/logs" export PKG_DIR="${BASE_DIR}/packages" export SRC_DIR="${BASE_DIR}/sources" mkdir -p ${BUILD_DIR} mkdir -p ${LOG_DIR} mkdir -p ${PKG_DIR} mkdir -p ${SRC_DIR}/poco mkdir -p ${SRC_DIR}/core mkdir -p ${SRC_DIR}/online |
Zuletzt definieren wir Variablen für die von uns verwendeten Versionen von poco, LibreOffice core, LibreOffice online sowie das Installationsverzeichnis. Alternativ für Collabora Online:
1 2 3 4 5 | export POCO_VERSION="1.7.8" export LOC_VERSION="cp-5.1-23" export LOOL_VERSION="2.0.5" export LOOL_PREFIX="/opt/lool" export POCO_PREFIX="${LOOL_PREFIX}" |
oder LibreOffice Online:
1 2 3 4 5 | export POCO_VERSION="1.7.8" export LOC_VERSION="libreoffice-5.3.1.1" export LOOL_VERSION="libreoffice-5.3.1.2" export LOOL_PREFIX="/opt/lool" export POCO_PREFIX="${LOOL_PREFIX}" |
Nun können wir mit dem Kompilieren der Pakete beginnen.
Poco kompilieren
Wir benötigen die Sourcen für Unix der Poco Complete Edition. Diese laden wir folgendermaßen herunter.
1 2 | cd ${SRC_DIR}/poco wget https://pocoproject.org/releases/poco-${POCO_VERSION}/poco-${POCO_VERSION}-all.tar.gz |
Anschließend entpacken, kompilieren und installieren wir Poco. Wir installieren in das konfigurierte Verzeichnis /opt/lool, sowie in ein temporäres Verzeichnis, um ein tar-Archive zu erstellen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | cd ${BUILD_DIR} tar xvf ${SRC_DIR}/poco/poco-${POCO_VERSION}-all.tar.gz cd poco-${POCO_VERSION}-all ./configure --prefix=${POCO_PREFIX} | tee ${LOG_DIR}/poco-${POCO_VERSION}-all.log 2>&1 make -j 4 | tee -a ${LOG_DIR}/poco-${POCO_VERSION}-all.log 2>&1 sudo make install | tee -a ${LOG_DIR}/poco-${POCO_VERSION}-all.log 2>&1 sudo make install DESTDIR="${BUILD_DIR}/install" | tee -a ${LOG_DIR}/poco-${POCO_VERSION}-all.log 2>&1 sudo tar -C ${BUILD_DIR}/install${POCO_PREFIX}/ -cvJf ${PKG_DIR}/poco-${POCO_VERSION}.tar.xz . cd ${BUILD_DIR} sudo /bin/rm -rf poco-${POCO_VERSION}-all sudo /bin/rm -rf ${BUILD_DIR}/install |
Das Kompilieren dauert auf meinem System etwa 4 1/2 Minuten. Im Ergebnis haben wir nun Poco lokal unter /opt/lool installiert und haben ein tar-Archive poco-1.7.8.tar.xz unter ~/build-lool/packages erzeugt. Das Build Log ist im Verzeichnis ~/build-lool/logs zu finden.
LibreOffice kompilieren
Zunächst müssen wir die Quellen für LibreOffice core herunterladen.
1 2 | cd ${SRC_DIR}/core wget https://github.com/LibreOffice/core/archive/${LOC_VERSION}.tar.gz |
Danach entpacken wir die LibreOffice core Quellen in unserem Buildverzeichnis und wechseln in das LibreOffice core Verzeichnis.
1 2 3 | cd ${BUILD_DIR} tar xvf ${SRC_DIR}/core/${LOC_VERSION}.tar.gz cd core-${LOC_VERSION} |
Bevor wir mit dem Kompilieren beginnen, lohnt sich ein Blick in die Hilfe des autogen Shellscripts.
1 | ./autogen.sh --help |
Weitere Details zum Kompilieren von LibreOffice findet man auch auf dem Wiki der Document Foundation unter Building LibreOffice on Linux and *BSD systems: Tips and Tricks.
Bevor wir den LibreOffice core konfigurieren, müssen wir noch eine Datei sources.ver, die eine Information über die LibreOffice Source Version enthält, anlegen.
1 | echo "lo_sources_ver=${LOC_VERSION}" >sources.ver |
Danach konfigurieren wir LibreOffice mit dem folgenden Kommando:
1 | ./autogen.sh --prefix=${LOOL_PREFIX} --enable-release-build --without-help --without-myspell-dicts --without-doxygen --with-parallelism | tee ${LOG_DIR}/core-${LOC_VERSION}.log 2>&1 |
Die Option --with-parallelism weist den Build Prozess an, mehere CPUs zu nutzen. Standard ist die Anzahl der verfügbaren CPUs. Mit --with-parallelism=4 kann man aber auch eine feste Zahl an CPUs vorgeben.
Anschliessend können wir den Build Prozess starten.
1 2 3 | make fetch make | tee -a ${LOG_DIR}/core-${LOC_VERSION}.log 2>&1 make check | tee -a ${LOG_DIR}/core-${LOC_VERSION}.log 2>&1 |
Das holen der zusätzlichen externen Sourcen mit make fetch dauert bei mir knapp 2 Minuten und das Kompilieren mit make ca. 98 Minuten. Das abschliessende make check benötigt ca. 10 Minuten.
Nun können wir unser LibreOffice installieren.
1 2 3 4 | sudo make install | tee -a ${LOG_DIR}/core-${LOC_VERSION}.log 2>&1 sudo make install DESTDIR="${BUILD_DIR}/install" | tee -a ${LOG_DIR}/core-${LOC_VERSION}.log 2>&1 sudo tar -C ${BUILD_DIR}/install${LOOL_PREFIX}/ -cvJf ${PKG_DIR}/core-${LOC_VERSION}.tar.xz . |
Auch hier installieren wir zunächst nach /opt/lool, anschließend in ein temporäres Verzeichnis und erstellen daraus ein tar-Archive. Insgesamt dauert dies etwa 5 1/2 Minuten, wovon 4 1/2 Minuten auf das Packen des tar-Archives entfallen. Das tar-Archive finden wir im Verzeichnis ~/build-lool/packages, das Build Log im Verzeichnis ~/build-lool/logs.
Abschließend löschen wir noch das temporäre Installationsverzeichnis.
1 | sudo /bin/rm -rf ${BUILD_DIR}/install |
Damit sind wir mit LibreOffice fertig und können uns LibreOffice Online zuwenden.
LibreOffice Online kompilieren
Zunächst müssen wir die Quellen herunterladen.
1 2 | cd ${SRC_DIR}/online wget https://github.com/LibreOffice/online/archive/${LOOL_VERSION}.tar.gz |
Danach entpacken wir die LibreOffice online Quellen in unserem Buildverzeichnis und wechseln in das LibreOffice online Verzeichnis.
1 2 3 | cd ${BUILD_DIR} tar xvf ${SRC_DIR}/online/${LOOL_VERSION}.tar.gz cd online-${LOOL_VERSION} |
Bevor wir mit dem Kompilieren beginnen, müssen wir noch zwei Dinge erledigen. Zunächst ändern wir im script loolwsd-systemplate-setup den Suchpfad für poco. Dies erledigen wir bequem mit der folgenden Kommandozeile.
1 | sed --in-place "s#POCOLIBDIRS=\"/usr/local/lib /opt/poco/lib\"#POCOLIBDIRS=\"${POCO_PREFIX}/lib\"#" loolwsd-systemplate-setup |
Danach setzen wir noch eine Environment Variable für unsere LibreOffice core Distribution, collaboraoffice oder libreoffice, je nachdem was wir oben gewählt haben. Dies geht automatisch mit dem folgenden Befehl.
1 | export LOC_DISTRO="$(basename $(find ${LOOL_PREFIX}/lib -maxdepth 1 -type d -name "*office"))" |
Anschließend müssen wir zunächst das autogen.sh script ausführen um ein configure script zu erhalten.
1 | ./autogen.sh | tee ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1 |
Jetzt können wir LibreOffice online für die Kompilierung konfigurieren.
1 2 | ./configure --prefix=${LOOL_PREFIX} --with-poco-includes=${POCO_PREFIX}/include --with-poco-libs=${POCO_PREFIX}/lib --with-lokit-path=../core-${LOC_VERSION}/include \ --with-lo-path=${LOOL_PREFIX}/lib/${LOC_DISTRO} --with-logfile=${LOOL_PREFIX}/var/log/loolwsd/loolwsd.log | tee -a ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1 |
Details zu den Konfigurationsoptionen finden wir in der README Datei im wsd Verzeichnis, bzw. in der configure Hilfe ./configure --help .
Nun können wir die Kompilierung starten.
1 | make -j 4 | tee -a ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1 |
Der Vorgang dauert auf meinem System etwa 70 Sekunden.
Während der Kompilierung werden wir nach dem User Passwort für sudo gefragt. Dies wird gebraucht um Capabilities für die beiden ausführbaren Programme loolforkit und loolmount zu setzen, dazu später noch mehr.
Ausserdem sehen wir Meldungen wie find: ‘lib/ld-*’: No such file or directory und cpio: /home/rainer/lool-build/libreoffice/loolwsd/systemplate/lib/x86_64-linux-gnu/libc.so.6 not created: newer or same age version exists . Diese Meldungen sind ohne Belang, sie entstehen beim Zusammenstellen des Templates für die Chroot-Umgebung.
Nun können wir loolwsd installieren und ein tar-Archive erstellen.
1 2 3 4 5 6 | sudo make install | tee -a ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1 sudo make install DESTDIR="${BUILD_DIR}/install" | tee -a ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1 sudo tar -C ${BUILD_DIR}/install${LOOL_PREFIX}/ -cvJf ${PKG_DIR}/loolwsd-${LOOL_VERSION}.tar.xz . sudo /bin/rm -rf ${BUILD_DIR}/install |
Zuletzt wenden wir uns dem LibreOffice Online Client zu. Dieser Teil ist schnell erledigt.
1 2 3 | cd loleaflet sudo make dist | tee -a ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1 sudo /bin/mv loleaflet-*.tar.gz ${PKG_DIR}/loleaflet-${LOOL_VERSION}.tar.gz |
Die Kompilierarbeiten sind damit abgeschlossen. Wir räumen zunächst noch ein wenig auf.
1 2 | cd ${BUILD_DIR} sudo /bin/rm -rf online-${LOOL_VERSION} |
Abschliessende Arbeiten auf dem Build-System
Abschließend wollen wir noch den LibreOffice Online Client in unsere Verzeichnisstruktur unter /opt/lool installieren und ein paar Anpassungen durchführen.
1 2 3 4 5 6 7 8 9 10 11 | sudo mkdir -p ${LOOL_PREFIX}/var/www sudo tar -C ${LOOL_PREFIX}/var/www/ -xvf ${PKG_DIR}/loleaflet-${LOOL_VERSION}.tar.gz sudo /bin/mv ${LOOL_PREFIX}/var/www/loleaflet-* ${LOOL_PREFIX}/var/www/loleaflet sudo touch ${LOOL_PREFIX}/var/www/loleaflet/dist/branding.css sudo touch ${LOOL_PREFIX}/var/www/loleaflet/dist/branding.js sudo /bin/cp -a ${LOOL_PREFIX}/var/www/loleaflet/dist/l10n ${LOOL_PREFIX}/var/www/loleaflet/dist/admin/ sudo chown -R root:root ${LOOL_PREFIX}/var/www/loleaflet sudo chmod -R g-w,o-w ${LOOL_PREFIX}/var/www/loleaflet export LOOL_DISTRO="$(ls -1 ${LOOL_PREFIX}/etc)" sudo /bin/cp -a ${LOOL_PREFIX}/share/${LOOL_DISTRO}/* ${LOOL_PREFIX}/var/www/ |
Zuletzt erstellen wir ein tar-Archiv unserer Installation.
1 2 | export PACKAGE_NAME="lool-poco-${POCO_VERSION}-core-${LOC_VERSION}-online-${LOOL_VERSION}" sudo tar -C ${LOOL_PREFIX}/ -cvJf ${PKG_DIR}/${PACKAGE_NAME}.tar.xz . |
Das Packen mit xz dauert zwar ein paar Minuten, aber dafür ist das tar-Archive damit wesentlich kleiner und spart mir Zeit beim Übertragen auf meinen Produktionsserver. Ich habe nur eine Upload Bandbreite von nominell 2MBits/s, in der Realität etwa 75% davon.
Zuletzt übertragen wir das tar-Archive der Installation auf unseren Produktionsserver. Dazu legen wir auf dem Produktionsserver ein Verzeichnis install-lool im User-Verzeichnis an. Anschliessend können wir unser tar-Archive mit scp auf den Server kopieren.
1 | scp ${PKG_DIR}/${PACKAGE_NAME}.tar.xz user@myoffice.mydomain.tld:install-lool/ |
User und Host-Domäne sind natürlich entsprechend anzupassen.
Bei mir benötigt die Übertragung der Datei ca. 16 Minuten.
Installation und Konfiguration von LibreOffice Online
Nun geht es auf dem Produktionsserver weiter. Ich gehe davon aus, dass wir auf dem Produktionsserver die folgenden Schritte als user root ausführen.
Zunächst installieren wir auch dort gegebenenfalls noch fehlende Software-Pakete.
1 2 | apt-get install libiodbc2 libcunit1 python-polib python3-polib -y apt-get autoremove --purge -y |
Als nächstes erstellen wir eine Guppe und einen Benutzer für LibreOffice Online.
1 2 | groupadd -f lool useradd --gid lool --groups sudo --home-dir /opt/lool --no-create-home --shell /usr/sbin/nologin lool |
Danach setzen wir einige Environment Variablen, die wir im folgenden benutzen werden.
1 2 3 4 5 6 7 | export PKG_DIR="~/install-lool" export LOOL_VERSION="lool-poco-1.7.8-core-cp-5.1-23-online-2.0.5" export LOOL_PREFIX="/opt/lool" export LOOL_ADMIN_NAME="myadminname" export LOOL_ADMIN_PASSWD="asecureadminpassword" export LO_DOC_SIZE="0" export MY_NEXTCLOUD_DOMAIN="mycloud.mydomain.tld" |
Dabei ist PKG_DIR das Verzeichnis, in das wir unser LibreOffice Online Paket gespeichert haben und LOOL_VERSION der Name der Datei ohne die „.tar.xz“ Extension. Für den Benutzer der LibreOffice Online Administrationskonsole sind ein sinnvoller Name und ein sicheres Passwort zu setzen. Die maximal bearbeitbare Dokumentengröße in Bytes können wir beliebig beschränken. Ein Wert von "0" bedeutet unbeschränkt. MY_NEXTCLOUD_DOMAIN ist der FQDN unserer Nextcloud Instanz. Der Name ist natürlich entsprechend anzupassen.
Dann entpacken wir unser LibreOffice Online Paket nach /opt/lool.
1 2 | mkdir -p ${LOOL_PREFIX} tar -C ${LOOL_PREFIX} -xf ${PKG_DIR}/${LOOL_VERSION}.tar.xz |
Als nächstes setzen wir die Capabilities für loolforkit und loolmount zum Erstellen bzw. Mounten der Jails.
1 2 | /sbin/setcap cap_fowner,cap_mknod,cap_sys_chroot=ep ${LOOL_PREFIX}/bin/loolforkit /sbin/setcap cap_sys_admin=ep ${LOOL_PREFIX}/bin/loolmount |
Bevor wir fortfahren können, setzen wir noch zwei Environment Variablen, die unterschiedliche Pfade in Abhängigkeit der gewählten Office Version, Collabora Office oder LibreOffice, abbilden.
1 2 | LOOL_DISTRO="$(ls -1 ${LOOL_PREFIX}/etc)" OFFICE_PATH="$(find ${LOOL_PREFIX}/lib -maxdepth 1 -type d -name "*office*")" |
Danach erstellen wir das Sytem-Template für die Jails.
1 | ${LOOL_PREFIX}/bin/loolwsd-systemplate-setup ${LOOL_PREFIX}/var/systemplate ${OFFICE_PATH} |
Wir erstellen die noch fehlenden Verzeichnisse, und passen owner und permissions an.
1 2 3 4 5 6 7 8 9 10 11 12 | mkdir -p ${LOOL_PREFIX}/var/tmp mkdir -p ${LOOL_PREFIX}/var/log/loolwsd mkdir -p ${LOOL_PREFIX}/var/jails mkdir -p ${LOOL_PREFIX}/var/cache/${LOOL_DISTRO} chown lool:lool ${LOOL_PREFIX}/var/tmp chown lool:lool ${LOOL_PREFIX}/var/log/loolwsd chown lool:lool ${LOOL_PREFIX}/var/jails chown lool:lool ${LOOL_PREFIX}/var/cache/${LOOL_DISTRO} chown root:lool ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/* chmod o-r ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/* |
Dann müssen wir die Konfigurationsdatei loolwsd.xml noch anpassen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | patch ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml <<EOF --- loolwsd.xml.orig 2017-03-01 16:47:48.073593699 +0000 +++ loolwsd.xml 2017-03-01 16:54:01.892178835 +0000 @@ -55,6 +55,8 @@ <filesystem allow="false" /> <wopi desc="Allow/deny wopi storage. Mutually exclusive with webdav." allow="true"> <host desc="Regex pattern of hostname to allow or deny." allow="true">localhost</host> + <host desc="Regex pattern of hostname to allow or deny." allow="true">mycloud\.mydomain\.tld</host> + <host desc="Regex pattern of hostname to allow or deny." allow="true">my_global_ipv4</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host> EOF sed --in-place "s#\"systemplate\"></sys_template_path>#\"systemplate\">../var/systemplate</sys_template_path>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#\"></lo_template_path>#\">${OFFICE_PATH}</lo_template_path>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#\"jails\"></child_root_path>#\"jails\">../var/jails</child_root_path>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#default=\"loleaflet/../\"></file_server_root_path>#default=\"loleaflet/../\">../var/www/loleaflet/../</file_server_root_path>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#<file enable=\"false\">#<file enable=\"true\">#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#\"true\">/tmp/looltrace.gz</path>#\"true\">${LOOL_PREFIX}/var/tmp/looltrace.gz</path>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#/etc/loolwsd/cert.pem#${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.pem#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#/etc/loolwsd/key.pem#${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#/etc/loolwsd/ca-chain.cert.pem#${LOOL_PREFIX}/etc/${LOOL_DISTRO}/ca-chain.cert.pem#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#>0</max_file_size>#>${LO_DOC_SIZE}</max_file_size>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#></username>#>${LOOL_ADMIN_NAME}</username>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#></password>#>${LOOL_ADMIN_PASSWD}</password>#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml MY_NEXTCLOUD_DOMAIN_QUOTED="$(echo ${MY_NEXTCLOUD_DOMAIN} | sed 's/\./\\\\\\\./g')" MY_GLOBAL_IP_QUOTED="$(dig +short ${MY_NEXTCLOUD_DOMAIN} | sed 's/\./\\\\\\\./g')" sed --in-place "s#mycloud\\\.mydomain\\\.tld#${MY_NEXTCLOUD_DOMAIN_QUOTED}#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml sed --in-place "s#my_global_ipv4#${MY_GLOBAL_IP_QUOTED}#" ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/loolwsd.xml |
Dem loolwsd Dienst spendieren wir noch ein selbstsigniertes SSL-Zertifikat. Dies ist ausreichend, da die Kommunikation über einen Reverseproxy erfolgen wird, den wir mit einem letsencrypt Zertifikat versehen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | export LOOL_DOMAIN="myoffice.mydomain.tld" export LOOL_SA="webmaster@myoffice.mydomain.tld" openssl genrsa -out ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem 4096 chown root:lool ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem chmod 640 ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem openssl req -out ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.csr -key ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem -new -sha256 -nodes -subj "/C=DE/OU=${LOOL_DOMAIN}/CN=${LOOL_DOMAIN}/emailAddress=${LOOL_SA}" openssl x509 -req -days 3650 -in ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.csr -signkey ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem -out ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.pem openssl x509 -req -days 3650 -in ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.csr -signkey ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/key.pem -out ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/ca-chain.cert.pem chown root:lool ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.csr chown root:lool ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.pem chown root:lool ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/ca-chain.cert.pem chmod 644 ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.csr chmod 644 ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/cert.pem chmod 644 ${LOOL_PREFIX}/etc/${LOOL_DISTRO}/ca-chain.cert.pem |
Die beiden Environment Variablen sind den tatsächlichen Gegebenheiten anzupassen. Sie definieren den FQDN unter dem unser Online Office zu erreichen sein wird, bzw. die E-Mail-Adresse des Server Admins. Wir werden die beiden Variablen bei der Konfiguration des Reversproxies nochmals verwenden.
Zuletzt werden wir noch ein Service-File für systemd erstellen, damit der LibreOffice Online Dienst beim Reboot automatisch gestartet bzw. angehalten wird.
1 2 3 4 5 6 7 8 9 10 11 | echo "[Unit]" >/lib/systemd/system/loolwsd.service echo "Description=Collabora Online Office Service" >>/lib/systemd/system/loolwsd.service echo "After=network.target" >>/lib/systemd/system/loolwsd.service echo "" >>/lib/systemd/system/loolwsd.service echo "[Service]" >>/lib/systemd/system/loolwsd.service echo "Type=simple" >>/lib/systemd/system/loolwsd.service echo "User=lool" >>/lib/systemd/system/loolwsd.service echo "ExecStart=${LOOL_PREFIX}/bin/loolwsd" >>/lib/systemd/system/loolwsd.service echo "" >>/lib/systemd/system/loolwsd.service echo "[Install]" >>/lib/systemd/system/loolwsd.service echo "WantedBy=multi-user.target" >>/lib/systemd/system/loolwsd.service |
Wir lassen den systemd die Konfiguration neu laden, aktivieren den Service und starten ihn zuletzt.
1 2 3 | systemctl daemon-reload systemctl enable loolwsd systemctl start loolwsd |
Damit sollte unser LibreOffice Online Dienst laufen, was wir mit systemctl status loolwsd überprüfen können.
Konfiguration des APACHE2 REVERSEPROXIES
Um LibreOffice Online in unserer Nextcloud Instanz nutzen zu können, konfigurieren wir einen Apache Reverse Proxy. Voraussetzung ist, dass wir vorher in der DNS Verwaltung unseres Hosters die DNS Einträge gesetzt haben.
Zunächst setzen wir einige Environment Variablen.
1 2 3 | export LOOL_SITE_CONFIG="202-myoffice-mydomain-tld-le-ssl" export MY_EMAIL="mymail@mydomain.tld" export MY_KEY_SIZE="4096" |
Die Variablen sind den tatsächlichen Gegebenheiten anzupassen. Die erste Variable beinhaltet den Namen für die Apache Site Konfiguration. MY_EMAIL enthält die E-Mail Adresse und MY_KEY_SIZE die Länge des Schlüssels für die Erzeugung des letsencrypt Zertifikats.
Danach erzeugen wir eine Apache Site Konfiguration und passen sie an unsere Gegebenheiten an.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | cat << 'EOT' >/etc/apache2/sites-available/${LOOL_SITE_CONFIG}.conf <IfModule mod_ssl.c> <VirtualHost myhost.mydomain.tld:443> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName myhost.mydomain.tld ServerAdmin webmaster@localhost ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # Encoded slashes need to be allowed AllowEncodedSlashes NoDecode # Container uses a unique non-signed certificate SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off # keep the host ProxyPreserveHost On # static html, js, images, etc. served from loolwsd # loleaflet is the client part of LibreOffice Online ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0 ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery # Main websocket ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool https://127.0.0.1:9980/lool ProxyPassReverse /lool https://127.0.0.1:9980/lool # OCSP Stapling, only in httpd 2.3.3 and later. Stapling options configured in ssl.conf # SSLUseStapling on SSLCertificateFile /etc/letsencrypt/live/myhost.mydomain.tld/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/myhost.mydomain.tld/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf # Header always set Strict-Transport-Security "max-age=31536000" # Header always set X-XSS-Protection "1; mode=block" # Header set X-Content-Type-Options: "nosniff" # Header set X-Frame-Options: "sameorigin" # Header always set Content-Security-Policy upgrade-insecure-requests # Header always set Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'" </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet </IfModule> EOT sed --in-place "s/ServerAdmin webmaster@localhost/ServerAdmin ${LOOL_SA}/" /etc/apache2/sites-available/${LOOL_SITE_CONFIG}.conf sed --in-place "s/myhost.mydomain.tld/${LOOL_DOMAIN}/g" /etc/apache2/sites-available/${LOOL_SITE_CONFIG}.conf |
Dann erzeugen wir das letsencrypt Zertifikat, aktivieren die notwendigen Apache Proxy-Module, unseren Proxy und starten den Apache neu.
1 2 3 4 5 | letsencrypt --apache --non-interactive --agree-tos --hsts --uir --email ${MY_EMAIL} --rsa-key-size ${MY_KEY_SIZE} -d ${LOOL_DOMAIN} a2enmod proxy_http proxy_wstunnel a2ensite ${LOOL_SITE_CONFIG} systemctl restart apache2 |
Aktivieren der Collabora ONLINE APP in Nextcloud
Im letzten Schritt müssen wir noch die Collabora Online App in Nextcloud aktivieren und konfigurieren. Dazu loggen wir uns unter einem Admin Account auf unserer Nextcloud Instanz ein. Wir öffnen die App-Verwaltung und wählen die Kategorie Integration. Dort sehen wir die App Collabora Online, siehe folgende Abbildung.
Wir aktivieren die App und wechseln in die Nextcloud Administration, siehe nächstes Bild.
Hier entdecken wir einen neuen Menüpunkt Collabora Online. Wenn wir diesen Menüpunkt wählen, landen wir in der Konfiguration für die Collabora Online App. Einziger Konfigurationsparameter ist die URL für das Online Office, siehe nächste Abbildung.
Hier tragen wir die URL unseres Reverse Proxies ein und bestätigen mit dem Button „Anwenden“. Damit sind wir fertig und können das Online Office in Nextcloud benutzen, siehe die folgenden Abbildungen.
Auf der Administrationskonsole des Online Office erhalten wir Informationen zu den geöffneten Dokumenten und dem Speicherverbrauch des Dienstes. Die Administrationskonsole finden wir unter der folgenden URL: https://myoffice.mydomain.tld/loleaflet/dist/admin/admin.html
myoffice.mydomain.tld ist natürlich durch die tatsächliche Domain zu ersetzen. Zum Einloggen auf der Administrationskonsole müssen wir den oben definierten Benutzernamen und das oben definierte Passwort verwenden. Die beiden folgenden Abbildungen zeigen die Administrationskonsole.
Damit sind am Ende des Artikels angelangt. In den nächsten Wochen werde ich, soweit es meine Zeit zulässt, einen weiteren Artikel zur Installation eines 1&1 Cloudservers inkl. Nextcloud veröffentlichen. In diesem Artikel werde ich die Benutzung einer Scriptsammlung beschreiben, die den Prozess weitestgehend automatisiert. Vorausgesetzt ein fertiges LibreOffice Online Paket, wie oben beschrieben, steht zur Verfügung und die DNS Einträge in der 1&1 Domainveraltung sind gesetzt, ist der Server innerhalb von 15 Minuten aufgesetzt. Ein Script zum Erstellen des LibreOffice Online Pakets, gibt es ebenfalls. Wer schon einmal einen Blick auf die beiden Scriptsammlungen werfen möchte kann dies unter den folgenden URLs tun.
Danke für diese prima Anleitung, das hat super funktioniert.
Auf dem Produktivhost werden noch
libdbus-glib-1-2
libgl1-mesa-glx
benötigt. Die waren bei mir nicht da und wurden durch
systemctl status loolwsd
angemeckert.
Für den Apache sollten alle Proxy- und Davmodule aktiviert sein, sonst hagelt es 500er. mod_proxy alleine (ist Ubuntustandard) reicht nicht.
Gruß,
Maik
Als Antwort auf Maik Riecken.
Schön, wenn es geholfen hat.
Eigentlich wäre ein update fällig, habe nur momentan keine Zeit dazu.
Wichtige Punkte wären die Erhöhung der auch in der selbst kompilierten Version enthaltenen Dokument Limits.
Zwischenzeitlich habe ich zwei Script-Sammlungen geschrieben, die alles mehr oder minder automatisieren.
https://github.com/RainerEmrich/build-lool
Konfiguriert eine Ubuntu 16.04 Instanz und führt die Kompilierung durch.
https://github.com/RainerEmrich/install-cloud-server
Konfiguriert eine Ubuntu 16.04 Instanz mit Nextcloud und allem was dazu gehört.
Installiert optional das oben erstellte Callabora Online Office.
Installiert optional weitere Nextcloud apps im batch mode.
Funktioniert mit Nextcloud 12.0.2, Collabora Online Office 2.1.2-11.
Herzliche Grüße
Rainer
Super Beitrag , für alle die noch ein Cloud-Hosting-Anbieter suchen kann ich ocloud.de empfehlen, da es aus Deutschland kommt und schnell und gut funktioniert
Super Tutorial, sehr gut zu verfolgen!
Allerdings hänge ich:
cd ${SRC_DIR}/online
wget https://github.com/LibreOffice/online/archive/${LOOL_VERSION}.tar.gz
1. das Verzeichnis /online wurde nicht im Prozess bei mir angelegt, keine Ahnung warum.
2. Bei dem github.com Link, gibt es kein „/archive/“ Gibt es hier eine Alternative, bzw. hat jemand eine Idee?
Ich habe es gerade nochmals überprüft.
1. Die Anweisung „mkdir -p ${SRC_DIR}/online“ ist da! Beim Copy und Paste vergessen?
2. Auf die Seite https://github.com/LibreOffice/online/archive/ gibt es keinen Zugriff, das ist richtig. Welche Releases aktuell sind findet man auf der folgenden Seite: https://github.com/LibreOffice/online/releases/ . Der Download erfolgt dann aber von https://github.com/LibreOffice/online/archive/${LOOL_VERSION}.tar.gz . Das funktioniert so auch. Dir Environment Variablen müssen natürlich richtig gesetzt sein.
Eine wirklich tolle Anleitung – hat bei mir auf einem Strato V-Server
Linux V30 ohne Schwierigkeiten funktioniert. Docker funktioniert auf einer VM ja leider nicht.
Frage: Später habe ich gesehen, dass man unter
https://www.collaboraoffice.com/community-en/understanding-the-differences-between-libreoffice-online-code-and-collabora-online/
auch fertige Pakete für Ubuntu 16.04. Welche Vorteile bietet das Selbstkompilieren dann noch? Oder enthält das Ubuntu-Paket schlichtweg das Docker Image?
Beste Grüße,
Robin
Link zu Ubuntu Paketen:
https://www.collaboraoffice.com/code/
Ich weiß nicht, wie das bei den Ubuntu Paketen mit den Beschränkungen der gleichzeitig offenen Dokumentenanzahl und der gleichzeitigen Verbindungen ausschaut. Müsste man gegebenenfalls mal prüfen. Kannst Du selbst machen:
In der loolwsd.xml, unter dem xml tag logging, den level von default „warning“ auf „information“ ändern und den loolwsd system dienst restarten. Dann sollten die limits im log ausgegeben werden.
Beim selbst kompilieren bist Du bei der Wahl der limits nur von den Resourcen Deines Rechners beschränkt. Die Limits kannst Du mit den beiden folgenden zusätzlichen configure Optionen wählen:
–with-max-documents=${LOOL_MAX_DOC}
–with-max-connections=${LOOL_MAX_CON}
Die Defaults sind 10 für LOOL_MAX_DOC und 20 für LOOL_MAX_CON.
Das configure Kommando für die Online Komponente sieht dann wie folgt aus:
./configure –prefix=${LOOL_PREFIX} \
–with-poco-includes=${POCO_PREFIX}/include \
–with-poco-libs=${POCO_PREFIX}/lib \
–with-lokit-path=../core-${LOC_VERSION}/include \
–with-lo-path=${LOOL_PREFIX}/lib/${LOC_DISTRO} \
–with-logfile=${LOOL_PREFIX}/var/log/loolwsd/loolwsd.log \
–with-max-connections=${LOOL_MAX_CON} \
–with-max-documents=${LOOL_MAX_DOC} \
| tee -a ${LOG_DIR}/online-${LOOL_VERSION}.log 2>&1
Die Variablen LOOL_MAX_CON und LOOL_MAX_DOC musst Du natürlich vorher setzen.
LOOL_MAX_CON muss größer sein als LOOL_MAX_DOC. Empfehlenswert ist LOOL_MAX_CON = 2 * LOOL_MAX_DOC.
Ich hoffe das hilft. Ansonsten kann ich nur empfehlen sich meine Skriptsammlung https://github.com/RainerEmrich/build-lool anzusehen. Dort ziehe ich Änderungen immer nach. Momentan habe ich keine Zeit den Artikel zu aktualisieren.
Hey Robin,
ich hab seit kurzem ebenso einen V30 Server bei Strato. Auf lokalen VMs bekomme ich den Dienst online, jedoch bekomme ich leider den loolwsd.service nicht zum laufen. Was genau hast du getan? Hast du direkt auf dem VServer die Pakete kompiliert?
Gruß Florian
Selten eine so gute Anleitung befolgt. Danke!
Zu dem Thema die beste deutschsprachige Unterstützung…
Danke für die Blumen!
Ein wirklich tolles Tutorial! **chapeau**
Leider habe ich aber Probleme mit der Integration des Dienstes auf einen VServer (Hosteurope) auf dem bereits eine Nextcloud läuft. Die abschließende Apache-Konfiguration führt bei mir immer zum nicht erreichen der Nextcloud. :/
Für die Nextcloud habe ich bereits einen Zertifikat über Letsencrypt (Certbot) erzeugt . Eine Subdomain habe ich mir erstellt und diese im Tutorial an den entsprechenden Stellen eingesetzt.
Liebe Grüße
Hallo,
bei mir hat das Kompilieren wunderbar geklappt, das Installieren auf einem Strato-Server ebenfalls. Der Dienst loolwsd läuft laut systemctl.
Allerdings habe ich das Problem, dass der Dienst über den Proxy nicht erreichbar ist. Will ich z.B. https://office.mydomain/adminws aufrufen kommt lediglich „The requested URL /adminws was not found on this server.“
Rufe ich einfach nur https://office.mydomain auf, erscheint die Apache2 Ubuntu Default Page. Die Apache-Konfiguration entpricht Ihrer Konfiguration bzw. der ofiziell-Vorgegebenen von Nextcloud und Collabore-Online.
Wissen Sie woran dies liegen könnte?
Die Administrationskonsole ist unter https://office.mydomain/loleaflet/dist/admin/admin.html zu erreichen.
Super!
Ich suche gerade eine Lösung die Limitierung von Collabora Online zu entfernen. Da ist die Einleitung doch perfekt.
Müsste jetzt noch raus bekommen wie man dazu noch ein Docker baut. Finde das über Docker nämlich sehr genial.
Wichtig ist, dass Du die entsprechenden configure Optionen zum setzen der Limits benutzt. Siehe meinen Kommentar vom 30. August.
Ein docker image hat sicher Vorteile. Ob man ein docker image benutzen will, hängt ein wenig vom use case ab. Diese Vorgehensweise ohne docker image ermöglicht es sehr einfach das Online Office auch auf einem separaten Server zu betreiben.
Wird es für Debian9 ein Update von deinem Script geben?
Ich bin gerade dabei für einen Kunden das Online Office auf Debian 8 jessie zu installieren. Die Anpassungen dafür sind in der neuesten Version des build-lool scripts enthalten. Wenn ich damit fertig bin und Zeit dazu finde, werde ich auch Debian 9 einbinden. Das kann aber ein wenig dauern.
Danke für den tollen Artikel.
Ich habe leider ein Problem und bekomme es nicht gelöst. Ich hoffe Sie können mir hierbei helfen.
Ich habe die Anleitung inkl. die darin enthaltenen Versionen komplett befolgt. Im Einsatz befindet sich ein Ubuntu-Server 1604.
Ich habe den Dienst loolwsd am laufen und kann mich auch ohne Probleme im Adminbereich anmelden. In Nextcloud (v. 12.0) habe ich das Collabore-Plugin aktiviert und die richtige Domain eingetragen. Möchte ich jetzt z.B ein neues ODT-Dokument bearbeiten, kommt die Collabore-Ansicht mit einer Ladeanzeige. Nach einer bestimmten Zeit kommt eine Meldung, dass keine Verbindung zum Dokument hergestellt werden konnte. Zudem kommt eine weitere Meldung, dass der Dienst nicht zur Verfügung steht.
In der log-Datei von loolwsd steht folgendes:
frk-27369-27369 0:00:00.003145 [ loolforkit ] FTL Failed to load /opt/lool/lib/libreoffice/program/libsofficeapp.so: libcairo.so.2: cannot open shared object file: No such file or directory| kit/Kit.cpp:1614
haben Sie eine Idee woran es liegen könnte?
Ok, auf dem Produktionsserver fehlen Pakete. In meinem Fall sind die meisten Pakete schon installiert, weil ich dort ein normales LibreOffice installiert habe. Das war für die alte Dokument app.
Um etwa fehlende Pakete zu finden bitte folgendes machen:
In das lool Office-Verzeichnis wechseln, z.B. cd /opt/lool/lib/collaboraoffice/program.
Dort den folgenden Befehl ausführen: ldd * | grep „not found“
Dabei ist der Eintrag „libjawt.so => not found“ in Ordnung, das macht nichts.
Für die fehlenden Libraries auf https://packages.ubuntu.com/ unter „Durchsuchen des Inhalts von Paketen“ nach den zugehörigen Paketen suchen und diese nachinstallieren.
Für den Fall libcairo.so.2, fehlt das Paket libcairo2.
Vielen lieben Dank. Diese Info hat mir sehr weitergeholfen 🙂
Nachdem ich die drei Pakete libcairo2, libdbus-glib-1-2 und libgtk-3-0 samt Abhängigkeiten installiert habe, geht es problemlos 🙂
Der genannte Befehl bringt mir jetzt noch folgendes:
libgstpbutils-1.0.so.0 => not found
libgstvideo-1.0.so.0 => not found
libgstreamer-1.0.so.0 => not found
libjawt.so => not found
libgtk-x11-2.0.so.0 => not found
libSM.so.6 => not found
libICE.so.6 => not found
libgtk-x11-2.0.so.0 => not found
libgdk-x11-2.0.so.0 => not found
libSM.so.6 => not found
libICE.so.6 => not found
Da das Collabore-Plugin in Nextcloud jetzt funktioniert, habe ich keine weiteren Pakete gesucht. Empfehlen Sie für die noch aufgezählten Abhängigkeiten die Pakete trotzdem zu installieren?
Ich habe die Version mit libreoffice Kompiliert anstatt collaboreoffice. Ist collaboreoffice eher zu empfehlen?
Schön, wenn es geholfen hat.
Letzt endlich hat man ein voll funktionsfähiges Libre Office installiert. Für das Online Office werden aber nicht alle Funktionen benötigt. Ich würde diese Pakete, inkl. der Abhängigkeiten, dennoch installieren. Nur libjawt.so ist wohl nicht unbedingt nötig, das findet der ldd auch auf meinem System auf dem ich das Office gebaut habe nicht, obwohl es vorhanden ist. Es ist Teil der java runtime.
Hi,
irgendwie will Code-3.0.0 nicht.
Hab es mit poco1.8.0 sowie 1.7.9p2 probiert.
Was wird falsch gemacht?
Ohne weitere Angaben ist das natürlich nicht zu beantworten.
CDOE-3.0.0 benötigt den Collabora Office core cp-5.3-36. Ich habe CODE-3.0.0 erfolgreich mit poco-1.7.9p2 und core-cp-5.3-36 gebaut.
Aktuelle kleine Änderungen können, wie hier schon mehrfach erwähnt, in der Scriptsammlung auf https://github.com/RainerEmrich/build-lool verfolgt werden.
POCO_VERSION=“1.7.9p2″
LOC_VERSION=“cp-5.3-36″
LOOL_VERSION=“CODE-3.0.0″
Klappt bei mir nicht. loolwsd will nicht starten. Im Github hatte ich ein Issue eröffnet, bliebt aber unbeantwortet, sodass ich hier im Blog schreibe.
Unter /opt/lool/var findet man nur www, alle anderen Ordner fehlen.
Lege ich var/log/loolwsd und var/cache/loolwsd an, startet loolwsd kurz:
loolwsd.service – Collabora Online Office Service
Loaded: loaded (/lib/systemd/system/loolwsd.service; enabled)
Active: active (running) since Di 2018-01-09 15:37:14 CET; 15s ago
Main PID: 998 (loolwsd)
CGroup: /system.slice/loolwsd.service
└─998 /opt/lool/bin/loolwsd
Nach kurzer Zeit crashed der dann. Im Log steht:
# cat loolwsd.log
frk-01001-01001 14:37:15.519652 [ forkit ] FTL Capability cap_sys_chroot is not set for the loolforkit program.| kit/ForKit.cpp:168
frk-01001-01001 14:37:15.519678 [ forkit ] FTL Capability cap_mknod is not set for the loolforkit program.| kit/ForKit.cpp:168
frk-01001-01001 14:37:15.519684 [ forkit ] FTL Capability cap_fowner is not set for the loolforkit program.| kit/ForKit.cpp:168
frk-01001-01001 14:37:15.519712 [ forkit ] WRN Waking up dead poll thread [delay_poll], started: false, finished: false| net/Socket.hpp:507
frk-01001-01001 14:37:15.519721 [ forkit ] WRN Waking up dead poll thread [delay_poll], started: false, finished: false| net/Socket.hpp:507
wsd-00998-00998 14:38:05.509757 [ loolwsd ] FTL Failed to fork child processes.| wsd/LOOLWSD.cpp:2703
wsd-00998-00998 14:38:05.509929 [ loolwsd ] FTL Failed to fork child processes.| wsd/LOOLWSD.cpp:2853
wsd-00998-00998 14:38:05.510116 [ loolwsd ] WRN Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:507
wsd-00998-00998 14:38:05.510146 [ loolwsd ] WRN Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:507
wsd-00998-00998 14:38:05.510619 [ loolwsd ] WRN Waking up dead poll thread [delay_poll], started: false, finished: false| ./net/Socket.hpp:507
wsd-00998-00998 14:38:05.510634 [ loolwsd ] WRN Waking up dead poll thread [delay_poll], started: false, finished: false| ./net/Socket.hpp:507
Die Fehlermeldungen sind doch eindeutig. Die ersten 3 Zeilen nennen die Ursache des Problems, die Capabilities sind nicht gesetzt.
/sbin/setcap cap_fowner,cap_mknod,cap_sys_chroot=ep /opt/lool/bin/loolforkit
/sbin/setcap cap_sys_admin=ep /opt/lool/bin/loolmount
Das sollte helfen!
Hi,
das scheint es wirklich gewesen zu sein. Und ich hab wie ein verrückter am Kernel gebastelt 🙂
Müsste das Script das nicht automatisch machen? Deswegen habe ich in der Richtung gar nicht geschaut.
Und wieso wurden auch die Verzeichnisse var/log, var/cache und var/tmp nicht angelegt?
Vielleicht ein Fehler im Script?
Das build-lool script baut nur das Paket. Die Capabilities müssen auf dem Produktivsystem nochmals gesetzt werden, sonst geht’s nicht. Dies, das Anlegen der fehlenden Directories und noch einige andere Dinge, wie das Erzeugen eines Zertifikats, erledigt das install-lool script aus dem install-cloud-server repository.
Dieses Script greift aber auf ein paar Konfigurationseinstellungen des install-server Scripts zu. Aber das ist leicht nachzuvollziehen.
Hallo Herr Emrich,
ich habe ihr lool-build-Skript verwendet um das Paket zu kompilieren. Die Version des Paketes ist lool-poco-1.8.1-core-cp-5.3-43-online-3.1-final.tar.xz
Im Anschluss habe ich diese Anleitung für die Installation probiert. Hierbei ist bei dem Befehl ${LOOL_PREFIX}/bin/loolwsd-systemplate-setup ${LOOL_PREFIX}/var/systemplate ${OFFICE_PATH}
folgende Ausgabe gekommen:
find: ‘lib/ld-*’: No such file or directory
find: ‘lib/libcap*’: No such file or directory
find: ‘lib64/libcap*’: No such file or directory
find: ‘lib/libattr*’: No such file or directory
find: ‘lib/libnss_*’: No such file or directory
find: ‘lib64/libnss_*’: No such file or directory
find: ‘usr/lib/locale/en_US.utf8’: No such file or directory
find: ‘usr/lib/locale/locale_archive’: No such file or directory
find: ‘usr/share/liblangtag’: No such file or directory
find: ‘usr/share/hyphen’: No such file or directory
find: ‘usr/lib/libpng*’: No such file or directory
find: ‘usr/lib64/libpng*’: No such file or directory
find: ‘lib/ld-*’: No such file or directory
find: ‘lib/libnss_*’: No such file or directory
find: ‘lib64/libnss_*’: No such file or directory
find: ‘lib/libcap*’: No such file or directory
find: ‘lib64/libcap*’: No such file or directory
find: ‘lib/libattr*’: No such file or directory
find: ‘usr/lib/libpng*’: No such file or directory
find: ‘usr/lib64/libpng*’: No such file or directory
cpio: /opt/lool/var/systemplate/lib/x86_64-linux-gnu/libpng12.so.0 not created: newer or same age version exists
163391 blocks
Als ich mit der Installation fertig war, habe ich die Url https://collabore.mydomain.tld/loleaflet/dist/admin/admin.html aufgerufen (natürlich mit dem richtigen Domainnamen) und habe einen „Service Unavailable“-Error erhalten.
Im Log steht folgendes:
kit-05157-05155 16:41:30.148387 [ loolkit ] ERR Failed to install seccomp syscall filter| common/Seccomp.cpp:205
kit-05157-05155 16:41:30.148458 [ loolkit ] ERR LibreOfficeKit security lockdown failed. Exiting.| kit/Kit.cpp:2106
wsd-05153-05153 16:45:39.031106 [ loolwsd ] FTL Failed to fork child processes.| wsd/LOOLWSD.cpp:2749
wsd-05153-05153 16:45:39.031264 [ loolwsd ] FTL Failed to fork child processes.| wsd/LOOLWSD.cpp:2899
wsd-05153-05153 16:45:39.031421 [ loolwsd ] WRN Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:512
wsd-05153-05153 16:45:39.031436 [ loolwsd ] WRN Waking up dead poll thread [admin], started: false, finished: false| ./net/Socket.hpp:512
wsd-05153-05153 16:45:39.031920 [ loolwsd ] WRN Waking up dead poll thread [delay_poll], started: false, finished: false| ./net/Socket.hpp:512
wsd-05153-05153 16:45:39.031928 [ loolwsd ] WRN Waking up dead poll thread [delay_poll], started: false, finished: false| ./net/Socket.hpp:512
frk-05155-05155 16:45:39.035664 [ forkit ] FTL Pipe closed.| common/IoUtil.cpp:308
Ich habe im Anschluss anstatt diese Anleitung, den entsprechenden Teil in ihrem install-lool.sh-Skript aus dem Git-Projekt install-lool angewandt um evtl. veraltete Konfigurationen auszuschließen. Hierbei entstandt genau das gleiche Problem.
Können Sie mir hierbei helfen?
Ist libseccomp2 installiert? Bei welchem Hoster haben Sie Ihren Server laufen?
Bei einigen Billig-Hostern funktioniert es nicht!
Das Paket libseccomp2 ist installiert. Der Server ist bei Strato gemietet. Ich habe gestern, vor der versuchten Installation, den Server erst frisch aufsetzen lassen (Ubuntu 1604 ohne Plesk). Ich hatte zuvor ein genau nach diesem Artikel (inkl. der im Artikel genannten Versionen) kompilierten loolwsd-Dienst erfolgreich laufen. Ich wollte den Server neu sauber aufsetzen inkl. u.a. der neusten Version von loolwsd.
Ich weiß nicht, ob ich da wirklich helfen kann. Es gibt zumindest einen aktuelleren Beitrag im Nextcloud Forum, der ebenfalls von Schwierigkeiten mit seccomp auf Strato VServern berichtet, siehe https://help.nextcloud.com/t/howto-install-collabora-online-on-ubuntu-16-04-without-docker/5014/207. Lief es bei Ihnen denn schon auf dem Strato VServer?
Bevor ich den Server neu aufsetzen lassen habe (ebenfalls Ubuntu 1604), lief eine (nach diesem Artikel) per hand kompilierte Version (lool-poco-1.7.8-core-libreoffice-5.3.1.1-online-libreoffice-5.3.1.2). Nach der Neuinstallation dachte ich, dass ich direkt die aktuellste Version verwende, die ich mit ihrem Skript erstellt habe. Könnte der Fehler evtl. auch davon herrühren, dass beim kompilieren des Paketes etwas schief gelaufen ist?
Ich melde mich per E-Mail.
Hallo,
hat schon jemand versucht …
Core: cp-5.3-59
Online: cd-3.4.0-5
zu komplilieren? Bei mir treten immer wieder Fehler beim make check auf, mit make build-nocheck läuft alles ohne Probleme durch. Loolwsd startet ebenfalls ohne jegliche Fehler.
Allerdings bekomme ich keine Dokumente geöffnet mit Nextcloud. Im Log ist zu sehen:
wsd-03875-03888 2018-11-04 17:07:04.892675 [ websrv_poll ] WRN FileServerRequestHandler: File not found: Invalid URI request: [/loleaflet/3.4.0/loleaflet.html?WOPISrc=https%3A%2F%2Fmy.nextcloud.xyz%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F156546_oct4xxapqijw&title=Neues%20Dokument.odt&lang=de-DE&closebutton=1&revisionhistory=1].| wsd/FileServer.cpp:442
Hatte das schon mit cp-5.3-57 – cp-5.3-59 probiert. Jedesmal File not found.
Jemand eine Idee?
Ich habe momentan leider keine Zeit mich näher damit zu befassen, habe aber die gleichen Symptome. Fehler beim „make check treten bei mir auch auf und offensichtlich stimmt beim wsd das mapping der Seiten nicht. Ich habe noch nicht herausgefunden warum, habe wie gesagt momentan aber leider keine Zeit mich darum zu kümmern.
Yep I have also the same issues!
https://github.com/smehrbrodt/nextcloud-libreoffice-online/issues/2#issuecomment-467547916
See also:
https://github.com/nextcloud/richdocuments/issues/296
Hallo Rainer,
ich bin schon ziemlich am verzweifeln 🙂
Konnte das Problem mittlerweile einkreisen. Es liegt daran, dass die URL lautet /loleaflet/3.4.1/ und Apache hat ein Problem mit den Punkten im Pfad.
Ich konnte bisher nicht herausfinden wie man den Pfad von 3.4.1 in dist oder wie auch immer ändert. Weißt du das zufällig?
Also von
/loleaflet/3.4.1/
in
/loleaflet/dist/
Ich hatte letzte Woche versucht das Problem näher zu analysieren, bin aber leider auch noch nicht wirklich weiter gekommen.
Sorry, ich habe momentan wirklich keine Zeit übrig, um dem nachzugehen.
Hi,
ich denke ich bin Dir die Lösung schuldig 🙂
Mit den direkten download von collabora online funktioniert es nicht, weil er immer als PFAD /loleaflet/4.3.1 nimmt. Mit der Git Version git checkout -b distro/collabora/collabora-online-cd-3-4 wird ein richtiger Pfad kompiliert.
Frag mich nicht wieso … Die Entwickler schweigen da auch total.
Vielen Dank für den Tipp. Ich hatte auch schon so eine Vermutung. Wenn ich hoffentlich mal wieder Zeit habe, werde ich mir das auch nochmals genauer anschauen.
Was den Support in solchen Dingen angeht, würde ich nicht zu viel erwarten. Da die Jungs von Collabora die Entwicklung doch maßgeblich vorantreiben und sie auch irgendwie Geld verdienen müssen, ist es fast logisch, dass nicht alles gut dokumentiert wird. Ist ja auch bei Nextcloud so. Spezielle Dolumentation ist nur im Rahmen eines Supportvertrages zu kriegen.
Ok, ich habe nun mein build script https://github.com/RainerEmrich/build-lool und meine install scripts https://github.com/RainerEmrich/install-cloud-server aktualisiert.
Auf ubuntu 16.04 (xenial) und 18.04 (bionic) kompilieren die aktuellen Collabora Office Versionen ohne Probleme.
Auch auf Debian 8 (jessie) und Debian 9 (stretch) war das Kompilieren erfolgreich.
Hallo Rainer,
ich Danke Dir zunächst einmal für den tollen Blog hier! Ich schau sehr gern hier mal rein, lese Aufmerksam und lerne.. (:
Derzeit versuche ich Collabora Online mithilfe deines Skripter zu Kompilieren…
Es klappt soweit auch alles, also das Skript bis zum Ende durch.. nur die „online“ Komponente versuch ich seit Tagen vergeblich zu erstellen. Hier kommt es leider immer wieder zu Fehlern beim „make“ – Prozess…
Ich habe es mit den verschiedensten Distries probiert (Ubuntu Server 16.04 & 18.04 / minimal 18.04 ) doch im lande immer beim selben Ergebnis. Auch verschiedene Kombinationen der Pakete (Poco/Core/Online) wurden schon getestet, auch jene Kombis die du empfiehlst bzw. bereits erfolgreich testen konntest.
Langsam gehen mir leider die Ideen aus & in der Community finde ich leider auch nicht das passende Heilmittel!!
Auszug aus dem LOG:
Makefile:1556: die Regel für Ziel „kit/loolwsd_fuzzer-ChildSession.o“ scheiterte
make[2]: *** [kit/loolwsd_fuzzer-ChildSession.o] Fehler 1
make[2]: *** Auf noch nicht beendete Prozesse wird gewartet …
mv -f common/.deps/loolwsd_fuzzer-Unit.Tpo common/.deps/loolwsd_fuzzer-Unit.Po
mv -f wsd/.deps/loolwsd_fuzzer-LOOLWSD.Tpo wsd/.deps/loolwsd_fuzzer-LOOLWSD.Po
mv -f common/.deps/loolwsd_fuzzer-MessageQueue.Tpo common/.deps/loolwsd_fuzzer-MessageQueue.Po
mv -f common/.deps/loolwsd_fuzzer-Util.Tpo common/.deps/loolwsd_fuzzer-Util.Po
cc1plus: all warnings being treated as errors
Makefile:1584: die Regel für Ziel „kit/loolwsd_fuzzer-Kit.o“ scheiterte
make[2]: *** [kit/loolwsd_fuzzer-Kit.o] Fehler 1
make[2]: Verzeichnis „/home/aoadmin/build-lool/build/online-cd-4.0.5-6“ wird verlassen
Makefile:1985: die Regel für Ziel „all-recursive“ scheiterte
make[1]: *** [all-recursive] Fehler 1
make[1]: Verzeichnis „/home/aoadmin/build-lool/build/online-cd-4.0.5-6“ wird verlassen
Makefile:886: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2
Making install in .
[…]
kit/KitHelper.hpp:50:16: error: enumeration value ‘LOK_CALLBACK_CELL_AUTO_FILL_AREA’ not handled in switch [-Werror=s
kit/KitHelper.hpp:50:16: error: enumeration value ‘LOK_CALLBACK_TABLE_SELECTED’ not handled in switch [-Werror=switch
cc1plus: all warnings being treated as errors
Makefile:1336: die Regel für Ziel „kit/ChildSession.o“ scheiterte
make[1]: *** [kit/ChildSession.o] Fehler 1
make[1]: Verzeichnis „/home/aoadmin/build-lool/build/online-cd-4.0.5-6“ wird verlassen
Makefile:1985: die Regel für Ziel „install-recursive“ scheiterte
make: *** [install-recursive] Fehler 1
Making install in .
make[1]: Verzeichnis „/home/aoadmin/build-lool/build/online-cd-4.0.5-6“ wird betreten
depbase=
echo kit/ChildSession.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;\g++ -DHAVE_CONFIG_H -I. -pthread -DLOOLWSD_DATADIR='“/opt/lool/share/loolwsd“‚ -DLOOLWSD_CONFIGDIR='“/opt/lool/etc/lEBUG -I/home/aoadmin/build-lool/build/core-co-6.0-34/include -isystem /opt/lool/include -g -O2 -std=c++11 -Wall -Wex
mv -f $depbase.Tpo $depbase.Po
In file included from kit/ChildSession.cpp:39:0:
kit/KitHelper.hpp: In function ‘std::__cxx11::string LOKitHelper::kitCallbackTypeToString(int)’:
kit/KitHelper.hpp:50:16: error: enumeration value ‘LOK_CALLBACK_CELL_SELECTION_AREA’ not handled in switch [-Werror=s
switch (static_cast(type))
^
kit/KitHelper.hpp:50:16: error: enumeration value ‘LOK_CALLBACK_CELL_AUTO_FILL_AREA’ not handled in switch [-Werror=s
kit/KitHelper.hpp:50:16: error: enumeration value ‘LOK_CALLBACK_TABLE_SELECTED’ not handled in switch [-Werror=switch
cc1plus: all warnings being treated as errors
Makefile:1336: die Regel für Ziel „kit/ChildSession.o“ scheiterte
make[1]: *** [kit/ChildSession.o] Fehler 1
make[1]: Verzeichnis „/home/aoadmin/build-lool/build/online-cd-4.0.5-6“ wird verlassen
Makefile:1985: die Regel für Ziel „install-recursive“ scheiterte
make: *** [install-recursive] Fehler 1
Hättest Du spontan einen Ratschlag oder sogar ein Vermutung woran es in diesem Fall scheitert?!
Gruß Indi >.o
Hi Indi,
ich habe gerade vor wenigen Tagen die folgende Kombination erfolgreich kompiliert und im Einsatz.
poco 1.9.0
libreoffice core cd-6.0-29-20190828
libreoffice online cd-4.0.6-2
Es gibt noch kein release des build-tools mit den letzten Änderungen. Probier mal den trunk des git repositories.
Grüße
Rainer
Hallo Rainer,
mir folgender Kombi:
poco 1.9.0
libreoffice core cd-6.0-29-20190828
libreoffice online cd-4.0.6-2
hatte ich nun endlich Erfolg! (: Auch die Online Komponente ist ohne Fehler gelaufen.
Beim installieren der Pakete auf dem Produktivsystem tritt nun aber leider ein neues Problem auf. :/
Wenn ich beginne die Capabilities zu setzen dann passiert leider folgendes:
Failed to set capabilities on file `/opt/lool/bin/loolmount‘ (No such file or directory)
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Ich habe mit die Logs angesehen und esscheint so als würde „loolmount“ Kompiliert werden, aber dann hab ich im „/opt/lool/“ Verzeichnis geschaut und dort ist von dieser Datei leider nichts zu sehen.
loolmount gibt es inzwischen nicht mehr!
Zum Installieren auf dem Produktivsystem analog zum folgenden Skript vorgehen:
https://github.com/RainerEmrich/install-cloud-server/blob/master/install-lool.sh
Hi,
is it possible for this online code to work on a local ubuntu machine, without a public server, and no nextcloud, just a local ubuntu machine that can run libreoffice online?
I tried the automatic script for version:
poco 1.9.0
libreoffice core cp-5.3-58
libreoffice online cd-3.4.0-final
and manualy tried to start the process, but it crashes with segmentation and give me a stack trace from the poco library.
is the combination of :
poco 1.9.0
libreoffice core cd-6.0-29-20190828
libreoffice online cd-4.0.6-2
stable? can be started without a crash?
Br,
Zlatko
I have the following in production use:
poco 1.9.0
libreoffice core cp-6.0-29-20191019
libreoffice online cp-4.0.8-2
You may use the online office without nextcloud, but I think you need a reverse proxy anyway. So, you have to do the configuration for the online-office on your local machine.
For up to date instructions look into the scripts at https://github.com/RainerEmrich/build-lool and https://github.com/RainerEmrich/install-cloud-server
Hi Rainer,
thanks for the quick answer. I did the reverse proxy, i have the ports open:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9981 0.0.0.0:* LISTEN –
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN –
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN –
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN –
tcp6 0 0 :::9980 :::* LISTEN –
tcp6 0 0 :::80 :::* LISTEN –
tcp6 0 0 :::22 :::* LISTEN –
tcp6 0 0 ::1:631 :::* LISTEN –
the loolwsd process is running :
● loolwsd.service – Collabora Online Office Service
Loaded: loaded (/lib/systemd/system/loolwsd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-11-14 12:31:34 CET; 5min ago
Main PID: 991 (loolwsd)
Tasks: 11 (limit: 4915)
CGroup: /system.slice/loolwsd.service
├─ 991 /opt/lool/bin/loolwsd
├─1244 /opt/lool/bin/loolforkit –losubpath=lo –systemplate=/opt/lool/bin/../var/systemplate –lotemplate=/opt/lool/lib/collaboraoffice –childroot=/opt/lool/bin/../var/jails
└─1364 /opt/lool/bin/loolforkit –losubpath=lo –systemplate=/opt/lool/bin/../var/systemplate –lotemplate=/opt/lool/lib/collaboraoffice –childroot=/opt/lool/bin/../var/jails
ное 14 12:31:34 ubuntuVBox systemd[1]: Started Collabora Online Office Service.
ное 14 12:31:35 ubuntuVBox loolwsd[991]: Init vcl
ное 14 12:31:36 ubuntuVBox loolwsd[991]: preload: comphelper unordf ucpchelp1 sfx msforms vbaobj xo pcr vbaswobj sw XMergeBridge animcore hwp flash tk chartcore solver sc wpftcalc xof uc
ное 14 12:31:36 ubuntuVBox loolwsd[991]: Preloading dictionaries: Whitelisted languages: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru
ное 14 12:31:36 ubuntuVBox loolwsd[991]: en_US
ное 14 12:31:36 ubuntuVBox loolwsd[991]: Preloading thesauri: en_US
ное 14 12:31:36 ubuntuVBox loolwsd[991]: Preload icons
ное 14 12:31:36 ubuntuVBox loolwsd[991]: Preload languages
ное 14 12:31:36 ubuntuVBox loolwsd[991]: Preload fonts
but when i try to connect on localhost:9981 it sits like waiting for 127.0.0.1… and nothing happens.
Have any idea what have i dont wrong?
Best Regards,
Zlatko
I don’t know what you wan’t to achieve. Please read the libreoffice online documentation. You can’t use the online office whithout a frontend like the one provided by nextcloud. I for myself use the online office only in combination with nextcloud. I doubt that I can help you in this case.
I found out i got problem with the certificates. So i tried to create them, but no luck so far.
Can this configuration work on a local server without certificates?
Thanks.
Make dist on lolefleat directory is not working.
Vielen Dank für die detaillierte Anleitung zur Installation von Collabora Online für Nextcloud auf Ubuntu 16.04 ohne Docker. Deine Schritt-für-Schritt-Anleitung macht es einfach, die Online-Office-Lösung zu implementieren. Die Verwendung von eigenen Servern und die Integration von LibreOffice Online sind besonders interessant.
Übrigens, nach deiner Empfehlung habe ich nextfiles.de als einen sicheren Cloud-Anbieter entdeckt und bin beeindruckt von den Funktionen. Ich empfehle es gerne weiter!