/officeonlin-install.sh

Script to install Office Online on Ubuntu 16.04

Primary LanguageShell

officeonline-install.sh


Script intended to build & install Office Online on Ubuntu 16.04 and Debian 8.7 systems.

Written by: Subhi H. & Marc C.


Summary

GNUv3 Licence

This script is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Requirements

  • The script requires a minimum of 3.7 GB of RAM installed to run.
  • First installation requires about 13 GB of available space on the system.

Notice

THE FIRST INSTALLATION WILL TAKE A VERY, VERY LONG TIME!

... So take your favorite mug, and make yourself a nice cup of coffee/tea while you go watching your favorites movies. 😄

Default Installation

You might see errors during the installation, just ignore them.

It will install libreoffice in /opt/libreoffice, Poco in /opt/poco and onlineOffice in /opt/online

Your can manage your service using systemd: systemctl start|stop|restart|status loolwsd.service

Versions

Its possible to pin exact version of the services used, like this:

./officeonline-install.sh -l 5.3.1.2 -o 47c01440ba794d2ea953d6ac1b80f7e42769f4e -p 1.7.8p2

There is also a help:

./officeonline-install.sh -h

Idempotence

This script has been made idempotent: Only the required action will be executed if it is run several times on the same System in order to get to the expected state.

Example: when updating LibreOffice online to the latest version, LibreOffice compilation and installation steps will not be run as it is already installed.

Parameters

These parameters describes the expected state of the system regarding LibreOffice Online installation.

The installation can be tuned to your needs by changing these variables.

LibreOffice:

  • lo_src_repo: LibreOffice sources are downloaded from this location.
  • lo_version: LibreOffice version to download. Empty by default. When empty, the script will download the latest stable version available.
  • lo_dir: LibreOffice sources directory. /opt/libreoffice by default.
  • lo_forcebuild: A boolean to override idempotence and force LibreOffice compilation and installation. false by default.

POCO:

Poco is an opensource C++ library for network based project. It is required by LibreOffice Online.

  • poco_version: a specific version to download, compile and install. Fetch the latest stable release from https://pocoproject.org/ by default.
  • poco_dir: The installation directory for poco. /opt/poco-${poco_version}-all by default.
  • poco_forcebuild: A boolean to override idempotence and force POCO compilation and installation. false by default.

Lool

Lool (LibreOffice Online) in a project to bring a opensource Office solution for web editing.

  • lool_dir: The installation directory for Lool. /opt/online by default.
  • lool_forcebuild: A boolean to override idempotence and force LibreOffice Online compilation and installation. false by default.

Sources status:

For Idempotence, Lool's status is defined by its sources' commit id.

Each update of the sources by the script will trigger a lool compilation & installation

  • the Git repository: lool_src_repo "https://github.com/LibreOffice/online.git"
  • One of the 3:
    • lool_src_branch: an existing branch name. It pull the latest commit available master by default
    • lool_src_commit: the id of a git commit. empty by default
    • lool_src_tag: a tag in the git repository.empty by default

If more than one is defined, a choice is made:

  • choice precedence: Commit over tag over branch

Compilation options:

The following parameters are options passed to the configuration script before compilation.

  • lool_logfile: /var/log/loolwsd.log
  • lool_maxdoc: Maximum number of simultaneously opened documents for Lool. 100 by default.
  • lool_maxcon: Maximum number of simultaneously opened connections for Lool. 200 by default.
  • lool_configure_opts: free form string to add even more options ! --enable-debug by default. For experts only!

Nota Bene

  • All the script's output is logged in the file /tmp/YYYYMMDD-HHmm_officeonline.log. where YYYYMMDD-HHmm is the date at the minute the script as been launched.

  • Maxdoc & Maxcon are built-in limitations in WebSocket and intended to guarantee a good QoS and limit resources consumption on the host. If you intend to change this parameters, take into account that 1 doc opened is around 20MB of RAM used.

  • Default parameters are values chosen by the maintainers of this script and not default values used by the softwares compiled here.

  • If you ever need support for using this script, try to run it first with all parameters at default to get a reference point.

Enjoy your free Office Online!