officeonline-install.sh v2.6.2
Script intended to build & install Office Online on moderns Ubuntu and Debian systems.
Written by: Marc C. & Subhi H.
Summary
- GNUv3 Licence
- Requirements
- Notice
- Default Installation
- Default Installation
- Idempotence
- Parameters
- Debug
- Nota Bene
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/cool
Your can manage your service using systemd: systemctl start|stop|restart|status coolwsd.service
Command line usage
Since v2.4 the script accept the following usage:
officeonline-install.sh [-h][-c file|variable definition][-f lo|poco|cool][-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|cool
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 cool_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:
- The file specified from the command line with the
--config
option. It can be of any name. - The current working directory except when it's the script's directory.
- The user's home directory
- The /etc/coolwsd/ directory
- 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 cool_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.
Global Parameters:
Affect the whole build.
distrib_name
: A name for a list of build options for LibreOffice. The distribution is a file that may be created from scratch and changed by the script 'LibreOfficeOnline' by defaultallowed_domains
: Space separated list of domains allowed to use the LibreOffice-Online service. dots escaping is processed by the script.- Note: Removing domains from the configuration file is not supported. Unwanted domains still need to be removed manually in the configuration file.
/etc/coolwsd/coolwsd.xml
by default.
- Note: Removing domains from the configuration file is not supported. Unwanted domains still need to be removed manually in the configuration file.
Set Parameters:
Affect how the script chooses the best set of commits to use for core and online.
set_name
: used to locate branchs folders in the libreoffice project. 'collabora' by defaultset_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/cool by default.lo_forcebuild
: A boolean to override idempotence and force LibreOffice compilation and installation.false
by default.lo_configure_opts
: comma separated list of build options. Added to the distro. `` by default. For experts only! Each update of the sources by the script will trigger a lO compilation & installationlo_src_repo
: the Git repository "https://github.com/LibreOffice/core.git"lo_src_branch
: an existing branch name. It pull the latest Tag availablemaster
by default- One of the 2:
lo_src_commit
: the id of a git commit in the selected branch.empty
by defaultlo_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.
Cool
Cool (Collabora Online) in a project to bring a opensource Office solution for web editing.
cool_dir
: The installation directory for Cool./opt/cool
by default.cool_forcebuild
: A boolean to override idempotence and force LibreOffice Online compilation and installation.false
by default.
Sources status:
For Idempotence, Cool's status is defined by its sources' commit id.
Each update of the sources by the script will trigger a cool compilation & installation
- the Git repository:
cool_src_repo
"https://github.com/LibreOffice/online.git" - One of the 3:
cool_src_branch
: an existing branch name. It pull the latest commit availablemaster
by defaultcool_src_commit
: the id of a git commit.empty
by defaultcool_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.
cool_logfile
:/var/log/coolwsd.log
cool_maxdoc
: Maximum number of simultaneously opened documents for Cool.100
by default.cool_maxcon
: Maximum number of simultaneously opened connections for Cool.200
by default.cool_configure_opts
: comma separated list of build options. Added to the distro. Empty by default. For experts only!cool_prefix
: The base directory from where the directory tree is generated. Used to install the application '/usr' by defaultcool_sysconfdir
: The base directory from where the application's is located '/etc' by defaultcool_localstatedir
: The base directory from where the application's state files are located. '/var' by default
Debug
Can be enabled by running sudo ./officeonline-install.sh -c cool_configure_opts='--enable-debug' -f cool
or
add --enable-debug to cool_configure_opts='' in officeonline-install.cfg before compiling. Don't forget to remove the #
Change filesystem allow="false" to "true" in /opt/cool/coolwsd.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
. whereYYYYMMDD-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.