Skip to content

Latest commit

 

History

History
203 lines (144 loc) · 9.2 KB

README.md

File metadata and controls

203 lines (144 loc) · 9.2 KB

officeonline-install.sh v2.4.0


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

Written by: Marc C. & Subhi H.


Summary

GNUv3 License

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

Command line usage

Since v2.4 the script accept the following usage:

officeonline-install.sh [-h][-c file|variable definition][-f lo|poco|lool][-l VERSION][-o COMMIT][-p VERSION]

  • Options:

    • -c, --config /a/configuration/file|variable=value

      Load a script configuration file OR directly a variable and its value to override it from the loaded configuration. This option can be repeated.

    • -f, --force lo|poco|lool

      Specify a component to build anyway. Support some aliases for LibreOffice core and Libreoffice Online This option can be repeated.

    • -h, --help

      display this help and exit

  • Thoses options have been kept for backward compatibility and may be removed in future releases:

    • -l, --libreoffice_commit)=COMMIT

      Libreoffice COMMIT - short/full hash Equivalent of -c lo_src_commit=COMMIT

    • -o, --libreoffice_online_commit)=COMMIT

      Libreoffice Online COMMIT - short/full hash. Equivalent of -c lool_src_commit=COMMIT

    • -p, --poco_version)=VERSION

      Poco Version Equivalent of -c poco_version=VERSION

Configuration file

Since v2.4 the script search for an external configuration file that will override parts or all the default configuration.

The script search for the file named officeonline-install.cfg in the following places in that order:

  1. The file specified from the command line with the --config option. It can be of any name.
  2. The current working directory except when it's the script's directory.
  3. The user's home directory
  4. The /etc/loolwsd/ directory
  5. The script's directory

Only the first file found is loaded.

INFO: A fully commented configuration file is in the script's directory available as a template or an example.

Sets

Since v2.1, it is possible to choose a Set. A set is an duo of branches from both LibreOffice core and online git repositories that are known to create a smooth LO-Online experience.

By default latest version available of collabora

Versions

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

./officeonline-install.sh -l 5.3.1.2 -c lool_src_commit=47c01440ba794d2ea953d6ac1b80f7e42769f4e -c poco_version=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.

Set Parameters:

  • set_name: used to locate branchs folders in the libreoffice project. 'collabora' by default
  • set_core_regex: regulax expression used to find the branch name for core 'cp-' by default.
  • set_online_regex: regulax expression used to find the branch name for online 'collabora-online' by default.
  • set_version can be used if both branch name contains a common version number. Else, latest version available for each project will be used. empty by default

LibreOffice:

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

  • lo_dir: The installation directory for Lo. /opt/online by default.
  • lo_forcebuild: A boolean to override idempotence and force LibreOffice compilation and installation. false by default.
  • lo_configure_opts: free form string to add even more options ! `` by default. For experts only! Each update of the sources by the script will trigger a lO compilation & installation
  • lo_src_repo: the Git repository "https://github.com/LibreOffice/core.git"
  • lo_src_branch: an existing branch name. It pull the latest Tag available master by default
  • One of the 2:
    • lo_src_commit: the id of a git commit in the selected branch. empty by default
    • lo_src_tag: a tag in the selected branch. empty by default

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

  • choice precedence: Commit over tag

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 ! Empty by default_. For experts only!

Debug

Can be enabled by running sudo ./officeonline-install.sh -c lool_configure_opts='--enable-debug' -f lool

or

add --enable-debug to lool_configure_opts='' in officeonline-install.cfg before compiling. Don't forget to remove the #

Change filesystem allow="false" to "true" in /opt/online/loolwsd.xml

Enabling debug can pose a security risk. Use it only for testing.

Nota Bene

  • All the script's output is logged in the folder $PWD/YYYYMMDD-HHmm_officeonline-install . 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!