.github | ||
examples | ||
install | ||
zabbix_templates | ||
CHANGELOG.md | ||
Dockerfile | ||
LICENSE | ||
README.md |
hub.docker.com/r/tiredofit/libreoffice-online
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
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 tag1.5
- Collabora Libreoffice 6.0.30 with Collabora Office Online 4.0.4-11.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