Dockerized Collabora Office Online with customizable options
Go to file
2020-06-24 17:18:42 -07:00
.github Create FUNDING.yml 2020-06-24 17:18:42 -07:00
examples Release 1.6.0 - See CHANGELOG.md 2020-01-13 14:37:48 -08:00
install change quotation sign from ' to " 2020-01-21 21:25:12 +01:00
zabbix_templates 1.1 Release 2019-02-28 08:02:34 -08:00
CHANGELOG.md Release 1.6.1 - See CHANGELOG.md 2020-01-21 14:55:05 -08:00
Dockerfile Fixup for failing upgraded packages 2019-07-07 15:09:06 -07:00
LICENSE Release 1.6.1 - See CHANGELOG.md 2020-01-21 14:55:05 -08:00
README.md Update README 2019-07-16 14:08:15 -07:00

hub.docker.com/r/tiredofit/libreoffice-online

Docker Pulls Docker Stars Docker Layers

Introduction

This will build a container for LibreOffice Online for editing documents in a browser from supported applications

  • This Container uses a customized Debian Linux base which includes s6 overlay enabled for PID 1 Init capabilities, zabbix-agent for individual container monitoring, Cron also installed along with other tools (bash,curl, less, logrotate, nano, vim) for easier management.

  • Configurable Concurrent User and Document Limit (set to generarous values by default)

  • Set features to support autogeneration of TLS certificates/activate reverse proxy support, others..

  • Zabbix Monitoring of Active Documents, Users, Memory Consumed

Changelog

Authors

Table of Contents

Prerequisites

This image assumes that you are using a reverse proxy such as jwilder/nginx-proxy and optionally the Let's Encrypt Proxy Companion @ https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion, or Traefik in order to serve your pages. However, it will run just fine on it's own if you map appropriate ports.

Installation

Builds of the image are available on Docker Hub and is the recommended method of installation.

If you decide to compile this, it will take quite a few hours.

docker pull tiredofit/libreoffice-online

The following image tags are available:

  • latest - See most recent versioned tag
  • 1.5 - Collabora Libreoffice 6.0.30 with Collabora Office Online 4.0.4-1
  • 1.1 - Collabora Libreoffice 5.3.61 with Collabora Office Online 3.4.2.1

Quick Start

  • The quickest way to get started is using docker-compose. See the examples folder for a working docker-compose.yml that can be modified for development or production use.

  • Set various environment variables to understand the capabilities of this image. A Sample docker-compose.yml is provided that will work right out of the box for most people without any fancy optimizations.

  • Map persistent storage for access to configuration and data files for backup.

Configuration

Persistent Storage

The following directories should be mapped for persistent storage in order to utilize the container effectively.

Folder Description
/var/log/loolwsd Log files
/assets/custom If you want to update the theme of LibreOffice online, dropping files in here will overwrite /opt/lool/share on startup
/etc/loolwsd/certs (Optional) If you would like to use your own certificates, map this volume and set appropriate variables

Environment Variables

Along with the Environment Variables from the Base image, below is the complete list of available options that can be used to customize your installation.

Parameter Description
ADMIN_PASS Password for accessing Administration Console - Default libreoffice
ADMIN_USER User for accessing Administration Console - Default admin
ALLOWED_HOSTS Set which domains which can access service - Example: ^(.*)\.example\.org
AUTO_SAVE The number of seconds after which document, if modified, should be saved - Default 300
DICTIONARIES Spell Check Languages - Available en_GB en_US - Default en_GB en_US
ENABLE_ADMIN_CONSOLE Enable Administration Console - Default TRUE
ENABLE_TLS_CERT_GENERATE Enable Self Signed Certificate Generation
ENABLE_TLS_REVERSE_PROXY If using a Reverse SSL terminating proxy in front of this container Default: FALSE
ENABLE_TLS Enable TLS - Default: TRUE
EXTRA_OPTIONS If you want to pass additional arguments upon startup, add it here
FILE_SIZE_LIMIT The maximum file size allowed to each document process to write - Default 0 (unlimited)
IDLE_SAVE The number of idle seconds after which document, if modified, should be saved - Default 30
IDLE_UNLOAD_TIMEOUT The maximum number of seconds before unloading an idle documen - Default 3600
LOG_ANONYMIZE_FILES Anonymize File information in Logs TRUE or FALSE - Default - FALSE
LOG_ANONYMIZE_USERS Anonymize User information in Logs TRUE or FALSE - Default - FALSE
LOG_LEVEL Log Level - Available none, fatal, critical, error, warning, notice, information, debug, trace - Default warning
LOG_TYPE Write Logs to CONSOLE or to FILE - Default CONSOLE
MAX_FILE_LOAD_LIMIT Maximum number of seconds to wait for a document load to succeed - Default 100
MAX_OPEN_FILES The maximum number of files allowed to each document process to open - Default 0 (unlimited)
MAX_THREADS_DOCUMENT How many threads to use when opening a document - Default 4
MEMORY_DATA_LIMIT The maximum memory data segment allowed to each document process - Default 0 (unlimited)
MEMORY_STACK_LIMIT The maximum stack size allowed to each document process - Default 0 (unlimited)
MEMORY_USAGE_MAX Maximum percentage of system memory to be used - Default 80.0
PRESPAWN_CHILD_PROCESSES Amount of Child processes to start upon container init - Default 1
SETUP_TYPE Automatically generate configuration with defaults. Set to FALSE and map the configuration file to use your own - Default TRUE
TLS_CA_FILENAME TLS CA Cert filename with extension - Default: ca-chain-cert.pem
TLS_CERT_FILENAME TLS Certificate filename with extension - Default: cert.pem
TLS_CERT_PATH TLS certificates path - Default: /etc/loolwsd/certs
TLS_KEY_FILENAME TLS Private Key filename with extension - Default: key.pem
USER_IDLE_TIMEOUT The maximum number of seconds before dimming and stopping updates when the user is no longer active (even if the browser is in focus) - Default 900
USER_OUT_OF_FOCUS_TIMEOUT The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus - Default 60

Networking

The following ports are exposed.

Port Description
9980 Libreoffice Web Services

Maintenance

Shell Access

For debugging and maintenance purposes you may want access the containers shell.

docker exec -it (whatever your container name is e.g. libreoffice-online) bash

References