diff --git a/CHANGELOG.md b/CHANGELOG.md index 442994d..d20c13b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.3.0 2021-12-02 + + ### Added + - Debian Bulleye Base + - Collabora Online 21.11.0-3 + - Libreoffice CO2021 + + ## 2.2.4 2021-10-29 ### Added @@ -170,7 +178,7 @@ - `ENABLE_TLS` (Default: `TRUE`) - `ENABLE_TLS_CERT_GENERATE` (Default: `TRUE`) - `ENABLE_TLS_REVERSE_PROXY` (Default: `FALSE`) - - `TLS_CERT_PATH` (Default: `/etc/loolwsd/certs`) + - `TLS_CERT_PATH` (Default: `/etc/coolwsd/certs`) - `TLS_CA_FILENAME` (Default: `ca-chain-cert.pem`) - `TLS_CERT_FILENAME` (Default: `cert.pem`) - `TLS_KEY_FILENAME` (Default: `key.pem`) diff --git a/Dockerfile b/Dockerfile index d10e4c1..e3848cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/tiredofit/debian:buster as builder +FROM docker.io/tiredofit/debian:bullseye as builder LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)" ### Buildtime arguments @@ -14,16 +14,16 @@ ARG APP_NAME ### Environment Variables ENV COLLABORA_ONLINE_BRANCH=${COLLABORA_ONLINE_BRANCH:-"master"} \ - COLLABORA_ONLINE_VERSION=${COLLABORA_ONLINE_VERSION:-"cp-6.4.13-3"} \ + COLLABORA_ONLINE_VERSION=${COLLABORA_ONLINE_VERSION:-"cp-21.11.0-3 "} \ COLLABORA_ONLINE_REPO_URL=${COLLABORA_ONLINE_REPO_URL:-"https://github.com/CollaboraOnline/online"} \ # LIBREOFFICE_BRANCH=${LIBREOFFICE_BRANCH:-"master"} \ - LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"cp-6.4-49"} \ + LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"distro/collabora/co-2021"} \ LIBREOFFICE_REPO_URL=${LIBREOFFICE_REPO_URL:-"https://github.com/LibreOffice/core"} \ # APP_NAME=${APP_NAME:-"Document Editor"} \ # - POCO_VERSION=${POCO_VERSION:-"poco-1.11.0-release.tar.gz"} \ + POCO_VERSION=${POCO_VERSION:-"poco-1.11.1-release.tar.gz"} \ POCO_URL=${POCO_URL:-"https://github.com/pocoproject/poco/archive/"} \ # MAX_CONNECTIONS=${MAX_CONNECTIONS:-"100000"} \ @@ -37,16 +37,16 @@ RUN set -x && \ ### Add Repositories apt-get update && \ apt-get -o Dpkg::Options::="--force-confold" upgrade -y && \ - echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list && \ - echo "deb http://deb.debian.org/debian buster contrib" >> /etc/apt/sources.list && \ + echo "deb-src http://deb.debian.org/debian $(cat /etc/os-release |grep "VERSION=" | awk 'NR>1{print $1}' RS='(' FS=')') main" >> /etc/apt/sources.list && \ + echo "deb http://deb.debian.org/debian $(cat /etc/os-release |grep "VERSION=" | awk 'NR>1{print $1}' RS='(' FS=')') contrib" >> /etc/apt/sources.list && \ curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ \ ### Setup Distribution echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \ \ - mkdir -p /home/lool && \ - useradd lool -G sudo && \ - chown lool:lool /home/lool -R && \ + mkdir -p /home/cool && \ + useradd cool -G sudo && \ + chown cool:cool /home/cool -R && \ \ BUILD_DEPS=' \ adduser \ @@ -79,7 +79,6 @@ RUN set -x && \ procps \ python3-lxml \ python3-polib \ - python-polib \ sudo \ translate-toolkit \ ttf-mscorefonts-installer \ @@ -123,34 +122,34 @@ RUN set -x && \ --with-distro="CPLinux-LOKit" \ --disable-epm \ --without-package-format && \ - chown -R lool /usr/src/libreoffice-core && \ - sudo -u lool make fetch && \ - sudo -u lool make -j$(nproc) build-nocheck && \ + chown -R cool /usr/src/libreoffice-core && \ + sudo -u cool make fetch && \ + sudo -u cool make -j$(nproc) build-nocheck && \ mkdir -p /opt/libreoffice && \ - chown -R lool /opt/libreoffice && \ - cp -R /usr/src/libreoffice-core/instdir/* /opt/libreoffice/ && \ + chown -R cool /opt/libreoffice && \ + cp -R /usr/src/libreoffice-core/instdir/* /opt/libreoffice/ \ ### Build LibreOffice Online (Not as long as above) - git clone -b ${COLLABORA_ONLINE_BRANCH} ${COLLABORA_ONLINE_REPO_URL} /usr/src/libreoffice-online && \ - cd /usr/src/libreoffice-online && \ + git clone -b ${COLLABORA_ONLINE_BRANCH} ${COLLABORA_ONLINE_REPO_URL} /usr/src/collabora-online && \ + cd /usr/src/collabora-online && \ git checkout ${COLLABORA_ONLINE_VERSION} && \ - if [ -d "/build-assets/online/src" ] ; then cp -R /build-assets/online/src/* /usr/src/libreoffice-online ; fi; \ + if [ -d "/build-assets/online/src" ] ; then cp -R /build-assets/online/src/* /usr/src/collabora-online ; fi; \ if [ -d "/build-assets/online/scripts" ] ; then for script in /build-assets/online/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/configure.ac && \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/loleaflet/admin/admin.strings.js && \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/loleaflet/src/control/Toolbar.js && \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/loleaflet/src/core/Socket.js && \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/loleaflet/src/layer/marker/ProgressOverlay.js && \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/loleaflet/src/map/Clipboard.js && \ - sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/libreoffice-online/loleaflet/welcome/*.html && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/configure.ac && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/browser/admin/admin.strings.js && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/browser/src/control/Toolbar.js && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/browser/src/core/Socket.js && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/browser/src/layer/marker/ProgressOverlay.js && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/browser/src/map/Clipboard.js && \ + sed -i "s|Collabora Online Development Edition|${APP_NAME}|g" /usr/src/collabora-online/browser/welcome/*.html && \ ./autogen.sh && \ ./configure --enable-silent-rules \ --with-lokit-path="/usr/src/libreoffice-core/include" \ --with-lo-path=/opt/libreoffice \ --with-max-connections=${MAX_CONNECTIONS} \ --with-max-documents=${MAX_DOCUMENTS} \ - --with-logfile=/var/log/lool/lool.log \ - --prefix=/opt/lool \ + --with-logfile=/var/log/cool/cool.log \ + --prefix=/opt/cool \ --sysconfdir=/etc \ --localstatedir=/var \ --with-poco-includes=/opt/poco/include \ @@ -158,14 +157,12 @@ RUN set -x && \ --with-app-name="${APP_NAME}" \ --with-vendor="tiredofit@github" \ && \ - ( scripts/locorestrings.py /usr/src/libreoffice-online /usr/src/libreoffice-core/translations ) && \ - ( scripts/unocommands.py --update /usr/src/libreoffice-online /usr/src/libreoffice-core ) && \ - ( scripts/unocommands.py --translate /usr/src/libreoffice-online /usr/src/libreoffice-core/translations ) && \ + #( scripts/locorestrings.py /usr/src/collabora-online /usr/src/libreoffice-core/translations ) && \ make -j$(nproc) && \ - mkdir -p /opt/lool && \ - chown -R lool /opt/lool && \ - cp -R loolwsd.xml /opt/lool/ && \ - cp -R loolkitconfig.xcu /opt/lool && \ + mkdir -p /opt/cool && \ + chown -R cool /opt/cool && \ + cp -R coolwsd.xml /opt/cool/ && \ + cp -R coolkitconfig.xcu /opt/cool && \ make install && \ \ ### Cleanup @@ -179,12 +176,12 @@ RUN set -x && \ rm -rf /var/lib/apt/lists/* && \ rm -rf /var/log/* -FROM docker.io/tiredofit/debian:buster +FROM docker.io/tiredofit/debian:bullseye LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)" ### Set Defaults ENV ADMIN_USER=admin \ - ADMIN_PASS=libreoffice \ + ADMIN_PASS=collaboraonline \ CONTAINER_ENABLE_MESSAGING=FALSE ### Grab Compiled Assets from builder image @@ -194,10 +191,10 @@ ADD build-assets /build-assets ### Install Dependencies RUN set -x && \ - adduser --quiet --system --group --home /opt/lool lool && \ + adduser --quiet --system --group --home /opt/cool cool && \ \ ### Add Repositories - echo "deb http://deb.debian.org/debian buster contrib" >> /etc/apt/sources.list && \ + echo "deb http://deb.debian.org/debian $(cat /etc/os-release |grep "VERSION=" | awk 'NR>1{print $1}' RS='(' FS=')') contrib" >> /etc/apt/sources.list && \ echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \ apt-get update && \ apt-get -o Dpkg::Options::="--force-confold" upgrade -y && \ @@ -219,7 +216,6 @@ RUN set -x && \ libpam0g \ libpng16-16 \ libsm6 \ - libubsan0 \ libubsan1 \ libxcb-render0 \ libxcb-shm0 \ @@ -236,27 +232,27 @@ RUN set -x && \ && \ \ ### Setup Directories and Permissions - mkdir -p /etc/loolwsd && \ - mv /opt/lool/loolwsd.xml /etc/loolwsd/ && \ - mv /opt/lool/loolkitconfig.xcu /etc/loolwsd/ && \ - chown -R lool /etc/loolwsd && \ - mkdir -p /opt/lool/child-roots && \ - chown -R lool /opt/* && \ - mkdir -p /var/cache/loolwsd && \ - chown -R lool /var/cache/loolwsd && \ - setcap cap_fowner,cap_chown,cap_mknod,cap_sys_chroot=ep /opt/lool/bin/loolforkit && \ - setcap cap_sys_admin=ep /opt/lool/bin/loolmount && \ + mkdir -p /etc/coolwsd && \ + mv /opt/cool/coolwsd.xml /etc/coolwsd/ && \ + mv /opt/cool/coolkitconfig.xcu /etc/coolwsd/ && \ + chown -R cool /etc/coolwsd && \ + mkdir -p /opt/cool/child-roots && \ + chown -R cool /opt/* && \ + mkdir -p /var/cache/coolwsd && \ + chown -R cool /var/cache/coolwsd && \ + setcap cap_fowner,cap_chown,cap_mknod,cap_sys_chroot=ep /opt/cool/bin/coolforkit && \ + setcap cap_sys_admin=ep /opt/cool/bin/coolmount && \ mkdir -p /usr/share/hunspell && \ mkdir -p /usr/share/hyphen && \ mkdir -p /usr/share/mythes && \ - mkdir -p /var/cache/loolwsd && \ - chown -R lool /var/cache/loolwsd && \ - mkdir -p /var/log/lool && \ - touch /var/log/lool/loolwsd.log && \ - chown -R lool /var/log/lool && \ + mkdir -p /var/cache/coolwsd && \ + chown -R cool /var/cache/coolwsd && \ + mkdir -p /var/log/cool && \ + touch /var/log/cool/coolwsd.log && \ + chown -R cool /var/log/cool && \ \ ### Setup LibreOffice Online Jails - sudo -u lool /opt/lool/bin/loolwsd-systemplate-setup /opt/lool/systemplate /opt/libreoffice && \ + sudo -u cool /opt/cool/bin/coolwsd-systemplate-setup /opt/cool/systemplate /opt/libreoffice && \ \ if [ -d "/build-assets/container/src" ] ; then cp -R /build-assets/container/src/* /usr/src/libreoffice-container ; fi; \ if [ -d "/build-assets/container/scripts" ] ; then for script in /build-assets/container/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \ diff --git a/README.md b/README.md index 3157ff1..9580594 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# github.com/tiredofit/docker-libreoffice-online +# github.com/tiredofit/docker-collabora-online -[![GitHub release](https://img.shields.io/github/v/tag/tiredofit/docker-libreoffice-online?style=flat-square)](https://github.com/tiredofit/docker-libreoffice-online/releases/latest) -[![Build Status](https://img.shields.io/github/workflow/status/tiredofit/docker-libreoffice-online/build?style=flat-square)](https://github.com/tiredofit/docker-libreoffice-online/actions?query=workflow%3Abuild) -[![Docker Stars](https://img.shields.io/docker/stars/tiredofit/libreoffice-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/libreoffice-online/) -[![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/libreoffice-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/libreoffice-online/) +[![GitHub release](https://img.shields.io/github/v/tag/tiredofit/docker-collabora-online?style=flat-square)](https://github.com/tiredofit/docker-collabora-online/releases/latest) +[![Build Status](https://img.shields.io/github/workflow/status/tiredofit/docker-collabora-online/build?style=flat-square)](https://github.com/tiredofit/docker-collabora-online/actions?query=workflow%3Abuild) +[![Docker Stars](https://img.shields.io/docker/stars/tiredofit/collabora-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/collabora-online/) +[![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/collabora-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/collabora-online/) [![Become a sponsor](https://img.shields.io/badge/sponsor-tiredofit-181717.svg?logo=github&style=flat-square)](https://github.com/sponsors/tiredofit) [![Paypal Donate](https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal&style=flat-square)](https://www.paypal.me/tiredofit) @@ -12,7 +12,7 @@ ## About -This will build a Docker image for [LibreOffice Online](https://libreoffice.org/) for editing documents in a browser from supported applications. +This will build a Docker image for [Collabora Online](https://www.collaboraoffice.com/collabora-online//) for editing documents in a browser from supported applications. * Configurable Concurrent User and Document Limit (set to generarous values by default) * Custom Font Support @@ -72,21 +72,22 @@ This will build a Docker image for [LibreOffice Online](https://libreoffice.org/ ### Prebuilt Images -Builds of the image are available on [Docker Hub](https://hub.docker.com/r/tiredofit/libreoffice-online) and is the recommended method of installation. +Builds of the image are available on [Docker Hub](https://hub.docker.com/r/tiredofit/collabora-online) and is the recommended method of installation. ```bash -docker pull tiredofit/libreoffice-online:(imagetag) +docker pull tiredofit/collabora-online:(imagetag) ``` The following image tags are available along with their taged release based on what's written in the [Changelog](CHANGELOG.md): -| LibreOffice version | LibreOffice Online version | Tag | -| ------------------- | -------------------------- | -------- | -| `6.4.x` | `6.4.x` | `latest` | -| `6.4.x` | `6.4.x` | `2.1` | -| `6.4.x` | `6.4.x` | `2.0` | -| `6.0.x` | `4.0.x` | `1.6` | -| `5.3.x` | `3.4.x` | 1.1 | +| LibreOffice version | Collabora Online version | Tag | +| ------------------- | ------------------------- | -------- | +| `2021` | `21.11.0` | `latest` | +| `2021` | `21.11.0` | `2.3.0` | +| `6.4.x` | `6.4.x` | `2.1` | +| `6.4.x` | `6.4.x` | `2.0` | +| `6.0.x` | `4.0.x` | `1.6` | +| `5.3.x` | `3.4.x` | `1.1` | #### Multi Architecture Images are built primarily for `amd64` architecture, and may also include builds for `arm/v6`, `arm/v7`, `arm64` and others. These variants are all unsupported. Consider [sponsoring](https://github.com/sponsors/tiredofit) my work so that I can work with various hardware. To see if this image supports multiple architecures, type `docker manifest (image):(tag)` @@ -105,17 +106,17 @@ The following directories should be mapped for persistent storage in order to ut | 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 | +| `/logs/` | Log files | +| `/assets/custom` | If you want to update the theme of Collabora online, dropping files in here will overwrite /opt/cool/share on startup | | `/assets/custom-fonts` | (Optional) If you want to include custom truetype fonts, place them in this folder | | `/assets/custom-scripts` | (Optional) If you want to execute a bash script before the application starts, drop your files here | -| `/etc/loolwsd/certs` | (Optional) If you would like to use your own certificates, map this volume and set appropriate variables | +| `/etc/coolwsd/certs` | (Optional) If you would like to use your own certificates, map this volume and set appropriate variables | ### Environment Variables #### Base Images used -This image relies on an [Alpine Linux](https://hub.docker.com/r/tiredofit/debian) base image that relies on an [init system](https://github.com/just-containers/s6-overlay) for added capabilities. Outgoing SMTP capabilities are handlded via `msmtp`. Individual container performance monitoring is performed by [zabbix-agent](https://zabbix.org). Additional tools include: `bash`,`curl`,`less`,`logrotate`,`nano`,`vim`. +This image relies on a [Debian Linux](https://hub.docker.com/r/tiredofit/debian) base image that relies on an [init system](https://github.com/just-containers/s6-overlay) for added capabilities. Outgoing SMTP capabilities are handlded via `msmtp`. Individual container performance monitoring is performed by [zabbix-agent](https://zabbix.org). Additional tools include: `bash`,`curl`,`less`,`logrotate`,`nano`,`vim`. Be sure to view the following repositories to understand all the customizable options: @@ -134,19 +135,19 @@ Be sure to view the following repositories to understand all the customizable op | `WATERMARK_TEXT` | Text to display for watermark | `` | #### Administration -| Parameter | Description | Default | -| ---------------------- | --------------------------------------------- | ------------- | -| `ENABLE_ADMIN_CONSOLE` | Enable Administration Console | `TRUE` | -| `ADMIN_USER` | User for accessing Administration Console | `admin` | -| `ADMIN_PASS` | Password for accessing Administration Console | `libreoffice` | +| Parameter | Description | Default | +| ---------------------- | --------------------------------------------- | ----------------- | +| `ENABLE_ADMIN_CONSOLE` | Enable Administration Console | `TRUE` | +| `ADMIN_USER` | User for accessing Administration Console | `admin` | +| `ADMIN_PASS` | Password for accessing Administration Console | `collaboraonline` | #### Logging | Parameter | Description | Default | | -------------------- | ------------------------------------------------------------------------------------------------ | --------------- | | `LOG_TYPE` | Write Logs to `CONSOLE` or to `FILE` | `CONSOLE` | | `LOG_LEVEL` | Log Level - Available `none, fatal, critical, error, warning, notice, information, debug, trace` | `warning` | -| `LOG_PATH` | Log Path | `/var/log/lool` | -| `LOG_FILE` | Log File | `lool.log` | +| `LOG_PATH` | Log Path | `/var/log/cool` | +| `LOG_FILE` | Log File | `cool.log` | | `LOG_ANONYMIZE` | Anonymize File+User information in Logs `TRUE` or `FALSE` | `FALSE` | | `LOG_ANONYMIZE_SALT` | Salt for anonymizing log data | 8 char random | | `LOG_CLIENT_CONSOLE` | Log in users browser console | `false` | @@ -212,7 +213,7 @@ The image comes with English (US, GB, Canada variants) baked into the image, how | `ENABLE_TLS_REVERSE_PROXY` | If using a Reverse SSL terminating proxy in front of this container | `TRUE` | | `TLS_CA_FILENAME` | TLS CA Cert filename with extension | `ca-chain-cert.pem` | | `TLS_CERT_FILENAME` | TLS Certificate filename with extension | `cert.pem` | -| `TLS_CERT_PATH` | TLS certificates path | `/etc/loolwsd/certs` | +| `TLS_CERT_PATH` | TLS certificates path | `/etc/coolwsd/certs` | | `TLS_KEY_FILENAME` | TLS Private Key filename with extension | `key.pem` | #### Performance and Limits @@ -220,7 +221,7 @@ The image comes with English (US, GB, Canada variants) baked into the image, how | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------- | | `AUTO_SAVE` | The number of seconds after which document, if modified, should be saved | `300` | | `BATCH_PRIORITY` | A (lower) priority for use by batch convert to processes to avoid starving interactive ones | `5` | -| `CONNECTION_TIMEOUT` | Connection, Send, Receeive timeout in seconds for connections initiated by loolwsd | `30` | +| `CONNECTION_TIMEOUT` | Connection, Send, Receeive timeout in seconds for connections initiated by coolwsd | `30` | | `FILE_SIZE_LIMIT` | The maximum file size allowed to each document process to write | `0` (unlimited) | | `IDLE_SAVE` | The number of idle seconds after which document, if modified, should be saved | `30` | | `IDLE_UNLOAD_TIMEOUT` | The maximum number of seconds before unloading an idle documen | `3600` | @@ -251,14 +252,14 @@ The image comes with English (US, GB, Canada variants) baked into the image, how | ----------------------- | ------------------------------------------------------- | --------------- | | `ALLOW_172_XX_SUBNET` | Allow 172.16.0.0/12 Subnet | `TRUE` | | `ENABLE_CAPABILITIES` | Enable Capabilities | `TRUE` | -| `ENABLE_CONFIG_RELOAD` | Enable Reload of loolwsd if config changed in container | `TRUE` | +| `ENABLE_CONFIG_RELOAD` | Enable Reload of coolwsd if config changed in container | `TRUE` | | `ENABLE_SECCOMP` | Enable Seccomp | `TRUE` | -| `LOLEAFLET_HTML` | Name of loleaflet.html to use | `loleafet.html` | +| `LOLEAFLET_HTML` | Name of browser.html to use | `loleafet.html` | | `REDLINING_AS_COMMENTS` | Show red-lines as comments | `false` | | `DOCUMENT_SIGNING_URL` | Endpoint URL of signing server | `` | | `NETWORK_PROTOCOL` | Network Protocol `ipv4` `ipv6` `all` | `ipv4` | | `ENABLE_WEBDAV` | Enable WebDav Storage | `FALSE` | -| `FILE_SERVER_ROOT_PATH` | Path to directory considered as root | `loleaflet/../` | +| `FILE_SERVER_ROOT_PATH` | Path to directory considered as root | `browser/../` | | `FRAME_ANCESTORS` | Hosts where interface van be hosted in Iframe | `` | | `ENABLE_MOUNT_JAIL` | Enable mounting jails | `true` | | `CHILD_ROOT_PATH` | Child root path | `child-roots` | @@ -274,7 +275,7 @@ The following ports are exposed. | Port | Description | | ------ | ------------------------ | -| `9980` | Libreoffice Web Services | +| `9980` | Collabora Web Services | * * * ## Maintenance @@ -307,6 +308,6 @@ These images were built to serve a specific need in a production environment and MIT. See [LICENSE](LICENSE) for more details. # References -* https://libreoffice.org +* https://www.collaboraoffice.com/collabora-online/ diff --git a/examples/docker-compose.yml b/examples/docker-compose.yml index 002f519..6221596 100644 --- a/examples/docker-compose.yml +++ b/examples/docker-compose.yml @@ -1,33 +1,33 @@ version: '3.7' services: - libreoffice-app: - image: tiredofit/libreoffice-online:latest - hostname: libreoffice.example.com - container_name: libreoffice-app + collabora-online-app: + image: tiredofit/collabora-online:latest + hostname: collabora-online.example.com + container_name: collabora-online-app expose: - 9980 cap_add: - MKNOD labels: - traefik.enable=true - - traefik.frontend.rule=Host:libreoffice.example.com + - traefik.frontend.rule=Host:collabora-online.example.com - traefik.port=9980 - traefik.protocol=http - traefik.docker.network=proxy - - traefik.backend=libreoffice-app + - traefik.backend=collabora-online-app environment: - - VIRTUAL_HOST=libreoffice.example.com + - VIRTUAL_HOST=collabora-online.example.com - VIRTUAL_NETWORK=proxy - VIRTUAL_PORT=9980 - VIRTUAL_PROTO=https - - LETSENCRYPT_HOST=libreoffice.example.com + - LETSENCRYPT_HOST=collabora-online.example.com - LETSENCRYPT_EMAIL=techsupport@example.com - - - CONTAINER_NAME=libreoffice-app - + + - CONTAINER_NAME=collabora-online-app + - ADMIN_USER=admin - - ADMIN_PASS=libreoffice + - ADMIN_PASS=collabora-online - ALLOWED_HOSTS=allowedhostname.example.com - DICTIONARIES="en_GB en_US" - LOG_LEVEL=warning diff --git a/examples/docker-compose.yml.nginx-proxy b/examples/docker-compose.yml.nginx-proxy index aabea17..f8253e6 100644 --- a/examples/docker-compose.yml.nginx-proxy +++ b/examples/docker-compose.yml.nginx-proxy @@ -1,23 +1,23 @@ - libreoffice-app: - image: tiredofit/libreoffice-online - hostname: libreoffice.example.com - container_name: libreoffice-app + collabora-online-app: + image: tiredofit/collabora-online + hostname: collabora-online.example.com + container_name: collabora-online-app expose: - 9980 cap_add: - MKNOD environment: - - VIRTUAL_HOST=libreoffice.example.com + - VIRTUAL_HOST=collabora-online.example.com - VIRTUAL_NETWORK=nginx-proxy - VIRTUAL_PORT=9980 - VIRTUAL_PROTO=https - - LETSENCRYPT_HOST=libreoffice.example.com + - LETSENCRYPT_HOST=collabora-online.example.com - LETSENCRYPT_EMAIL=techsupport@example.com - - - CONTAINER_NAME=libreoffice-app - + + - CONTAINER_NAME=collabora-online-app + - ADMIN_USER=admin - - ADMIN_PASS=libreoffice + - ADMIN_PASS=collabora-online - ALLOWED_HOSTS=allowedhostname.example.com - DICTIONARIES="en_GB en_US" - LOG_LEVEL=warning diff --git a/examples/docker-compose.yml.traefik b/examples/docker-compose.yml.traefik index e5a14d1..727d31b 100644 --- a/examples/docker-compose.yml.traefik +++ b/examples/docker-compose.yml.traefik @@ -1,30 +1,30 @@ version: '3.7' services: - - libreoffice-online-app: - image: tiredofit/libreoffice-online - container_name: libreoffice-online-app - hostname: libreoffice.example.com + + collabora-online-app: + image: tiredofit/collabora-online + container_name: collabora-online-app + hostname: collabora-online.example.com expose: - 9980 cap_add: - MKNOD - NET_ADMIN privileged: true - labels: + labels: - traefik.enable=true - - traefik.frontend.rule=Host:libreoffice.example.com + - traefik.frontend.rule=Host:collabora-online.example.com - traefik.port=9980 - traefik.protocol=http - traefik.docker.network=proxy - - traefik.backend=libreoffice-online-app + - traefik.backend=collabora-online-app volumes: - - ./logs:/var/log/lool + - ./logs:/logs environment: - - CONTAINER_NAME=libreoffice-online-app + - CONTAINER_NAME=collabora-online-app - ADMIN_USER=admin - - ADMIN_PASS=libreoffice + - ADMIN_PASS=collabora-online - ALLOWED_HOSTS=^(.*)\.example\.org diff --git a/install/assets/cron/coolwsd b/install/assets/cron/coolwsd new file mode 100644 index 0000000..6c0c391 --- /dev/null +++ b/install/assets/cron/coolwsd @@ -0,0 +1,2 @@ +0 0 */1 * * root find /var/cache/coolwsd -type f -a -atime +10 -exec rm {} \; + diff --git a/install/assets/cron/loolwsd b/install/assets/cron/loolwsd deleted file mode 100644 index ff05577..0000000 --- a/install/assets/cron/loolwsd +++ /dev/null @@ -1,2 +0,0 @@ -0 0 */1 * * root find /var/cache/loolwsd -type f -a -atime +10 -exec rm {} \; - diff --git a/install/assets/defaults/10-loolwsd b/install/assets/defaults/10-coolwsd similarity index 89% rename from install/assets/defaults/10-loolwsd rename to install/assets/defaults/10-coolwsd index f4b6d96..121ee44 100755 --- a/install/assets/defaults/10-loolwsd +++ b/install/assets/defaults/10-coolwsd @@ -22,7 +22,7 @@ ENABLE_TLS=${ENABLE_TLS:-"FALSE"} ENABLE_TLS_CERT_GENERATE=${ENABLE_TLS_CERT_GENERATE:-"TRUE"} ENABLE_TLS_REVERSE_PROXY=${ENABLE_TLS_REVERSE_PROXY:-"TRUE"} ENABLE_WEBDAV=${ENABLE_WEBDAV:-"FALSE"} -FILE_SERVER_ROOT_PATH=${FILE_SERVER_ROOT_PATH:-"loleaflet/../"} +FILE_SERVER_ROOT_PATH=${FILE_SERVER_ROOT_PATH:-"browser/../"} FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-0} IDLE_SAVE=${IDLE_SAVE:-30} IDLE_UNLOAD_TIMEOUT=${IDLE_UNLOAD_TIMEOUT:-3600} @@ -32,13 +32,13 @@ LOG_ANONYMIZE=${LOG_ANONYMIZE:-"FALSE"} LOG_ANONYMIZE_SALT=${LOG_ANONYMIZE_SALT:-"$(date +%s%N | cut -b12-19)"} LOG_CLIENT_CONSOLE=${LOG_CLIENT_CONSOLE:-"false"} LOG_COLOURIZE=${LOG_COLOURIZE:-"true"} -LOG_FILE=${LOG_FILE:-"lool.log"} +LOG_FILE=${LOG_FILE:-"cool.log"} LOG_FILE_FLUSH=${LOG_FILE_FLUSH:-"false"} LOG_LEVEL=${LOG_LEVEL:-"warning"} LOG_LIBREOFFICE=${LOG_LIBREOFFICE:-"-INFO-WARN"} -LOG_PATH=${LOG_PATH:-"/var/log/lool/"} +LOG_PATH=${LOG_PATH:-"/logs/"} LOG_TYPE=${LOG_TYPE:-"CONSOLE"} -LOLEAFLET_HTML=${LOLEAFLET_HTML:-"loleaflet.html"} +LOLEAFLET_HTML=${LOLEAFLET_HTML:-"browser.html"} MAX_CONVERT_LIMIT=${MAX_CONVERT_LIMIT:-100} MAX_FILE_LOAD_LIMIT=${MAX_FILE_LOAD_LIMIT:-100} MAX_OPEN_FILES=${MAX_OPEN_FILES:-0} @@ -48,14 +48,14 @@ MEMORY_STACK_LIMIT=${MEMORY_STACK_LIMIT:-8000} MEMORY_USAGE_MAX=${MEMORY_USAGE_MAX:-"80.0"} MEMORY_VIRT_LIMIT=${MEMORY_VIRT_LIMIT:-0} NETWORK_PROTOCOL=${NETWORK_PROTOCOL:-"ipv4"} -PATH_PREFIX=${PATH_PREFIX:-"/opt/lool/"} +PATH_PREFIX=${PATH_PREFIX:-"/opt/cool/"} PRESPAWN_CHILD_PROCESSES=${PRESPAWN_CHILD_PROCESSES:-1} REDLINING_AS_COMMENTS=${REDLINING_AS_COMMENTS:-"false"} SETUP_TYPE=${SETUP_TYPE:-"AUTO"} SYS_TEMPLATE_PATH=${SYS_TEMPLATE_PATH:-"systemplate"} TLS_CA_FILENAME=${TLS_CA_FILENAME:-"ca-chain.cert.pem"} TLS_CERT_FILENAME=${TLS_CERT_FILENAME:-"cert.pem"} -TLS_CERT_PATH=${TLS_CERT_PATH:-"/etc/loolwsd/certs"} +TLS_CERT_PATH=${TLS_CERT_PATH:-"/etc/coolwsd/certs"} TLS_KEY_FILENAME=${TLS_KEY_FILENAME:-"key.pem"} USER_IDLE_TIMEOUT=${USER_IDLE_TIMEOUT:-900} USER_OUT_OF_FOCUS_TIMEOUT=${USER_OUT_OF_FOCUS_TIMEOUT:-60} diff --git a/install/assets/functions/10-loolwsd b/install/assets/functions/10-coolwsd similarity index 67% rename from install/assets/functions/10-loolwsd rename to install/assets/functions/10-coolwsd index 00dc96b..49118c3 100755 --- a/install/assets/functions/10-loolwsd +++ b/install/assets/functions/10-coolwsd @@ -2,5 +2,5 @@ set_config() { print_debug "Setting: '${1}' with value: '${2}'" - /opt/lool/bin/loolconfig set ${1} ""${2}"" + /opt/cool/bin/coolconfig set ${1} ""${2}"" } \ No newline at end of file diff --git a/install/etc/cont-init.d/10-loolwsd b/install/etc/cont-init.d/10-coolwsd similarity index 73% rename from install/etc/cont-init.d/10-loolwsd rename to install/etc/cont-init.d/10-coolwsd index 47fd332..d221c78 100755 --- a/install/etc/cont-init.d/10-loolwsd +++ b/install/etc/cont-init.d/10-coolwsd @@ -2,20 +2,20 @@ source /assets/functions/00-container prepare_service single -PROCESS_NAME="libreoffice-online" +PROCESS_NAME="collabora-online" sanity_var "ALLOWED_HOSTS" "Allowed Hostnames" print_debug "Creating directories and setting up logging" mkdir -p "${LOG_PATH}" touch "${LOG_PATH}"/"${LOG_FILE}" -chown -R lool "${LOG_PATH}" -create_logrotate lool ${LOG_PATH}/${LOG_FILE} none lool lool +chown -R cool "${LOG_PATH}" +create_logrotate cool ${LOG_PATH}/${LOG_FILE} none cool cool print_debug "Setting up DNS Resolution" -rm /opt/lool/systemplate/etc/resolv.conf -cp /etc/hosts /opt/lool/systemplate/etc/ -cp /etc/resolv.conf /opt/lool/systemplate/etc/ +rm /opt/cool/systemplate/etc/resolv.conf +cp /etc/hosts /opt/cool/systemplate/etc/ +cp /etc/resolv.conf /opt/cool/systemplate/etc/ ## Custom Dictionary Support if [ -n "${DICTIONARIES}" ]; then @@ -55,14 +55,14 @@ if [ -n "${DICTIONARIES}" ]; then silent apt-get clean rm -rf /var/lib/apt/lists/* - chown -R lool. /opt/libreoffice/share/extensions/* + chown -R cool. /opt/libreoffice/share/extensions/* fi ### Custom File Support if [ -d /assets/custom ] ; then print_warn "Custom Files Found, Copying over top of Master.." - cp -R /assets/custom/* /opt/lool/share/ - chown -R lool. /opt/lool/share/ + cp -R /assets/custom/* /opt/cool/share/ + chown -R cool. /opt/cool/share/ fi ### Execute Custom Scripts if exist to modify parts of the system @@ -78,12 +78,12 @@ fi ### Load Custom Fonts if [ -d /assets/custom-fonts/ ] ; then print_warn "Found Custom Fonts to insert" - chown -R lool /assets/custom-fonts + chown -R cool /assets/custom-fonts chmod +rx /assets/custom-fonts ln -s /assets/custom-fonts /usr/share/fonts/truetype/custom silent fc-cache -f -v - rm -rf /opt/lool/systemplate - silent sudo -u lool /opt/lool/bin/loolwsd-systemplate-setup /opt/lool/systemplate /opt/libreoffice + rm -rf /opt/cool/systemplate + silent sudo -u cool /opt/cool/bin/coolwsd-systemplate-setup /opt/cool/systemplate /opt/libreoffice fi if var_true "${ENABLE_TLS}" ; then @@ -114,7 +114,7 @@ if var_true "${ENABLE_TLS}" ; then cp -R certs/servers/localhost/cert.pem "${TLS_CERT_PATH}"/"${TLS_CERT_FILENAME}" cp -R certs/ca/root.crt.pem "${TLS_CERT_PATH}"/"${TLS_CA_FILENAME}" rm -rf /tmp/ssl - chown -R lool "${TLS_CERT_PATH}" + chown -R cool "${TLS_CERT_PATH}" else if [ ! -f "${TLS_CERT_PATH}/${TLS_KEY_FILENAME}" ] || [ ! -f "${TLS_CERT_PATH}/${TLS_CA_FILENAME}" ] || [ ! -f "${TLS_CERT_PATH}/${TLS_CERT_FILENAME}" ] ; then print_error "TLS Certificates missing... Please switch to autogenerate mode, or place your certifcates in the correct location." @@ -126,83 +126,83 @@ fi if [ "$SETUP_TYPE" = "AUTO" ]; then print_notice "Autogenerating Configuration File" ### Replace Configuration directives - sed -i -e "s|.*|${LANGUAGE}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${SYS_TEMPLATE_PATH}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${CHILD_ROOT_PATH}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${ENABLE_MOUNT_JAIL}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${HOSTNAME}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${FILE_SERVER_ROOT_PATH}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${MEMORY_USAGE_MAX}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*|${PRESPAWN_CHILD_PROCESSES}|g" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/max_concurrency>|${MAX_THREADS_DOCUMENT}<\/max_concurrency>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/batch_priority>|${BATCH_PRIORITY}<\/batch_priority>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/document_signing_url>|${DOCUMENT_SIGNING_URL}<\/document_signing_url>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/redlining_as_comments>|${REDLINING_AS_COMMENTS}<\/redlining_as_comments>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/idle_timeout_secs>|${IDLE_UNLOAD_TIMEOUT}<\/idle_timeout_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/idlesave_duration_secs>|${IDLE_SAVE}<\/idlesave_duration_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/autosave_duration_secs>|${AUTO_SAVE}<\/autosave_duration_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/always_save_on_exit>|${ALWAYS_SAVE_ON_EXIT}<\/always_save_on_exit>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_virt_mem_mb>|${MEMORY_VIRT_LIMIT}<\/limit_virt_mem_mb>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_stack_mem_kb>|${MEMORY_STACK_LIMIT}<\/limit_stack_mem_kb>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_file_size_mb>|${FILE_SIZE_LIMIT}<\/limit_file_size_mb>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_num_open_files>|${MAX_OPEN_FILES}<\/limit_num_open_files>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_load_secs>|${MAX_FILE_LOAD_LIMIT}<\/limit_load_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_convert_secs>|${MAX_CONVERT_LIMIT}<\/limit_convert_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*>|${ENABLE_CLEANUP}>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/cleanup_interval_ms>|${CLEANUP_INTERVAL}<\/cleanup_interval_ms>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/bad_behavior_period_secs>|${CLEANUP_BAD_BEHAVIOUR_TIME}<\/bad_behavior_period_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/|<${CLEANUP_IDLE_TIME}<\/|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_dirty_mem_mb>|${CLEANUP_LIMIT_DIRTY_MEMORY}<\/limit_dirty_mem_mb>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_cpu_per>|${CLEANUP_LIMIT_CPU_PER}<\/limit_cpu_per>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/out_of_focus_timeout_secs>|${USER_OUT_OF_FOCUS_TIMEOUT}<\/out_of_focus_timeout_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/idle_timeout_secs>|${USER_IDLE_TIMEOUT}<\/idle_timeout_secs>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/loleaflet_html>|${LOLEAFLET_HTML}<\/loleaflet_html>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/color>|${LOG_COLOURIZE}<\/color>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/level>|${LOG_LEVEL}<\/level>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/protocol>|${LOG_CLIENT_CONSOLE}<\/protocol>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/lokit_sal_log>|${LOG_LIBREOFFICE}<\/lokit_sal_log>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/loleaflet_logging>|${LOG_CLIENT_CONSOLE}<\/loleaflet_logging>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/proto>|${NETWORK_PROTOCOL}<\/proto>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/frame_ancestors>|${FRAME_ANCESTORS}<\/frame_ancestors>|" /etc/loolwsd/loolwsd.xml - #sed -i -e "s|localhost<\/host>|${ALLOWED_HOSTS}<\/host>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/connection_timeout>|${CONNECTION_TIMEOUT}<\/connection_timeout>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/ca_file_path>|${TLS_CERT_PATH}/${TLS_CA_FILENAME}<\/ca_file_path>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/cert_file_path>|${TLS_CERT_PATH}/${TLS_CERT_FILENAME}<\/cert_file_path>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/key_file_path>|${TLS_CERT_PATH}/${TLS_KEY_FILENAME}<\/key_file_path>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/seccomp>|${ENABLE_SECCOMP}<\/seccomp>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/capabilities>|${ENABLE_CAPABILITIES}<\/capabilities>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/opacity>|${WATERMARK_OPACITY}<\/opacity>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/text>|${WATERMARK_TEXT}<\/text>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/mode>|${INTERFACE}<\/mode>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|||" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/enable>|${ENABLE_ADMIN_CONSOLE}<\/enable>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/username>|${ADMIN_USER}<\/username>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/password>|${ADMIN_PASS}<\/password>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/limit_data_mem_kb>|${MEMORY_DATA_LIMIT}<\/limit_data_mem_kb>|" /etc/loolwsd/loolwsd.xml + sed -i -e "s|.*|${LANGUAGE}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${SYS_TEMPLATE_PATH}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${CHILD_ROOT_PATH}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${ENABLE_MOUNT_JAIL}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${HOSTNAME}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${FILE_SERVER_ROOT_PATH}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${MEMORY_USAGE_MAX}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*|${PRESPAWN_CHILD_PROCESSES}|g" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/max_concurrency>|${MAX_THREADS_DOCUMENT}<\/max_concurrency>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/batch_priority>|${BATCH_PRIORITY}<\/batch_priority>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/document_signing_url>|${DOCUMENT_SIGNING_URL}<\/document_signing_url>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/redlining_as_comments>|${REDLINING_AS_COMMENTS}<\/redlining_as_comments>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/idle_timeout_secs>|${IDLE_UNLOAD_TIMEOUT}<\/idle_timeout_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/idlesave_duration_secs>|${IDLE_SAVE}<\/idlesave_duration_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/autosave_duration_secs>|${AUTO_SAVE}<\/autosave_duration_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/always_save_on_exit>|${ALWAYS_SAVE_ON_EXIT}<\/always_save_on_exit>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_virt_mem_mb>|${MEMORY_VIRT_LIMIT}<\/limit_virt_mem_mb>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_stack_mem_kb>|${MEMORY_STACK_LIMIT}<\/limit_stack_mem_kb>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_file_size_mb>|${FILE_SIZE_LIMIT}<\/limit_file_size_mb>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_num_open_files>|${MAX_OPEN_FILES}<\/limit_num_open_files>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_load_secs>|${MAX_FILE_LOAD_LIMIT}<\/limit_load_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_convert_secs>|${MAX_CONVERT_LIMIT}<\/limit_convert_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*>|${ENABLE_CLEANUP}>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/cleanup_interval_ms>|${CLEANUP_INTERVAL}<\/cleanup_interval_ms>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/bad_behavior_period_secs>|${CLEANUP_BAD_BEHAVIOUR_TIME}<\/bad_behavior_period_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/|<${CLEANUP_IDLE_TIME}<\/|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_dirty_mem_mb>|${CLEANUP_LIMIT_DIRTY_MEMORY}<\/limit_dirty_mem_mb>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_cpu_per>|${CLEANUP_LIMIT_CPU_PER}<\/limit_cpu_per>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/out_of_focus_timeout_secs>|${USER_OUT_OF_FOCUS_TIMEOUT}<\/out_of_focus_timeout_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/idle_timeout_secs>|${USER_IDLE_TIMEOUT}<\/idle_timeout_secs>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/browser_html>|${LOLEAFLET_HTML}<\/browser_html>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/color>|${LOG_COLOURIZE}<\/color>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/level>|${LOG_LEVEL}<\/level>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/protocol>|${LOG_CLIENT_CONSOLE}<\/protocol>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/lokit_sal_log>|${LOG_LIBREOFFICE}<\/lokit_sal_log>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/browser_logging>|${LOG_CLIENT_CONSOLE}<\/browser_logging>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/proto>|${NETWORK_PROTOCOL}<\/proto>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/frame_ancestors>|${FRAME_ANCESTORS}<\/frame_ancestors>|" /etc/coolwsd/coolwsd.xml + #sed -i -e "s|localhost<\/host>|${ALLOWED_HOSTS}<\/host>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/connection_timeout>|${CONNECTION_TIMEOUT}<\/connection_timeout>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/ca_file_path>|${TLS_CERT_PATH}/${TLS_CA_FILENAME}<\/ca_file_path>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/cert_file_path>|${TLS_CERT_PATH}/${TLS_CERT_FILENAME}<\/cert_file_path>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/key_file_path>|${TLS_CERT_PATH}/${TLS_KEY_FILENAME}<\/key_file_path>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/seccomp>|${ENABLE_SECCOMP}<\/seccomp>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/capabilities>|${ENABLE_CAPABILITIES}<\/capabilities>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/opacity>|${WATERMARK_OPACITY}<\/opacity>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/text>|${WATERMARK_TEXT}<\/text>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/mode>|${INTERFACE}<\/mode>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|||" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/enable>|${ENABLE_ADMIN_CONSOLE}<\/enable>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/username>|${ADMIN_USER}<\/username>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/password>|${ADMIN_PASS}<\/password>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/limit_data_mem_kb>|${MEMORY_DATA_LIMIT}<\/limit_data_mem_kb>|" /etc/coolwsd/coolwsd.xml if var_false "${ENABLE_TLS}" ; then - sed -i -E "s|.*<\/enable>|false<\/enable>|" /etc/loolwsd/loolwsd.xml + sed -i -E "s|.*<\/enable>|false<\/enable>|" /etc/coolwsd/coolwsd.xml fi if var_true "${ENABLE_TLS_REVERSE_PROXY}" ; then - sed -i -e "s|.*<\/termination>|true<\/termination>|" /etc/loolwsd/loolwsd.xml + sed -i -e "s|.*<\/termination>|true<\/termination>|" /etc/coolwsd/coolwsd.xml else - sed -i -e "s|.*<\/termination>|false<\/termination>|" /etc/loolwsd/loolwsd.xml + sed -i -e "s|.*<\/termination>|false<\/termination>|" /etc/coolwsd/coolwsd.xml fi if var_true "${LOG_ANONYMIZE}"; then - sed -i -e "s|.*<\/anonymize_user_data>|${LOG_ANONYMIZE}<\/anonymize_user_data>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/anonymization_salt>|${LOG_ANONYMIZE_SALT}<\/anonymization_salt>|" /etc/loolwsd/loolwsd.xml + sed -i -e "s|.*<\/anonymize_user_data>|${LOG_ANONYMIZE}<\/anonymize_user_data>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/anonymization_salt>|${LOG_ANONYMIZE_SALT}<\/anonymization_salt>|" /etc/coolwsd/coolwsd.xml fi if [ "$LOG_TYPE" = "FILE" ]; then - sed -i -e "s|.*<\/property>|${LOG_PATH}/${LOG_FILE}<\/property>|" /etc/loolwsd/loolwsd.xml - sed -i -e "s|.*<\/property>|${LOG_FILE_FLUSH}<\/property>|" /etc/loolwsd/loolwsd.xml - sed -i "s||${LOG_PATH}|g" /etc/logrotate.d/loolwsd + sed -i -e "s|.*<\/property>|${LOG_PATH}/${LOG_FILE}<\/property>|" /etc/coolwsd/coolwsd.xml + sed -i -e "s|.*<\/property>|${LOG_FILE_FLUSH}<\/property>|" /etc/coolwsd/coolwsd.xml + sed -i "s||${LOG_PATH}|g" /etc/logrotate.d/coolwsd else print_debug "Log: Console" - rm -rf /etc/logrotate.d/loolwsd + rm -rf /etc/logrotate.d/coolwsd fi ### Allowed Hosts @@ -210,23 +210,23 @@ if [ "$SETUP_TYPE" = "AUTO" ]; then for host in $allowed_hosts do print_info "Adding Allowed Host: ${host}" - sed -i "/>localhost<\/host>/a \ \ \ \ \ \ \ \ \ \ \ \ \${host}" /etc/loolwsd/loolwsd.xml + sed -i "/>localhost<\/host>/a \ \ \ \ \ \ \ \ \ \ \ \ \${host}" /etc/coolwsd/coolwsd.xml done if var_true "${ALLOW_172_XX_SUBNET}" ; then print_debug "Allowing 172.16.0.0/12 Subnet" - sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ 172\\.1\[6789\]\.\[0-9\]\{1,3\}\.\[0-9\]\{1,3\}<\/host>" /etc/loolwsd/loolwsd.xml - sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ 172\\.2\[0-9\]\\.\[0-9\]\{1,3\}\\.\[0-9\]\{1,3\}<\/host>" /etc/loolwsd/loolwsd.xml - sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ 172\\.3\[01\]\\.\[0-9\]\{1,3\}\\.\[0-9\]\{1,3\}<\/host>" /etc/loolwsd/loolwsd.xml + sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ 172\\.1\[6789\]\.\[0-9\]\{1,3\}\.\[0-9\]\{1,3\}<\/host>" /etc/coolwsd/coolwsd.xml + sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ 172\\.2\[0-9\]\\.\[0-9\]\{1,3\}\\.\[0-9\]\{1,3\}<\/host>" /etc/coolwsd/coolwsd.xml + sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ 172\\.3\[01\]\\.\[0-9\]\{1,3\}\\.\[0-9\]\{1,3\}<\/host>" /etc/coolwsd/coolwsd.xml fi fi # Generate WOPI proof key -if [ ! -f /etc/loolwsd/proof_key.pub ]; then - silent /opt/lool/bin/loolwsd-generate-proof-key +if [ ! -f /etc/coolwsd/proof_key.pub ]; then + silent /opt/cool/bin/coolwsd-generate-proof-key fi -# Enable Config Reload (Restart when /etc/loolwsd/loolwsd.xml changes) +# Enable Config Reload (Restart when /etc/coolwsd/coolwsd.xml changes) if var_false "${ENABLE_CONFIG_RELOAD}" ; then print_debug "Disabling Automatic Configuration Reloader" rm -rf /etc/services.available/11-inotify diff --git a/install/etc/services.available/10-loolwsd/run b/install/etc/services.available/10-coolwsd/run similarity index 60% rename from install/etc/services.available/10-loolwsd/run rename to install/etc/services.available/10-coolwsd/run index cb1eda0..a8ee0c2 100755 --- a/install/etc/services.available/10-loolwsd/run +++ b/install/etc/services.available/10-coolwsd/run @@ -2,7 +2,7 @@ source /assets/functions/00-container prepare_service defaults single -PROCESS_NAME="libreoffice-online" +PROCESS_NAME="collabora-online" check_container_initialized check_service_initialized init @@ -11,12 +11,12 @@ liftoff export LC_CTYPE=en_US.UTF-8 print_start "Starting Libreoffice Online Web Services daemon" -exec sudo -u lool /opt/lool/bin/loolwsd \ +exec sudo -u cool /opt/cool/bin/coolwsd \ --version \ - --o:sys_template_path=/opt/lool/systemplate \ + --o:sys_template_path=/opt/cool/systemplate \ --o:lo_template_path=/opt/libreoffice \ - --o:child_root_path=/opt/lool/child-roots \ - --o:file_server_root_path=/opt/lool/share/loolwsd storage.filesystem[@allow]=true \ + --o:child_root_path=/opt/cool/child-roots \ + --o:file_server_root_path=/opt/cool/share/coolwsd storage.filesystem[@allow]=true \ --o:admin_console.username=${ADMIN_USER} \ --o:admin_console.password=${ADMIN_PASS} \ - ${EXTRA_OPTIONS} >> /var/log/lool/loolwsd.log + ${EXTRA_OPTIONS} >> ${LOG_PATH}/${LOG_FILE} diff --git a/install/etc/services.available/11-inotify/run b/install/etc/services.available/11-inotify/run index f920f67..70819bf 100755 --- a/install/etc/services.available/11-inotify/run +++ b/install/etc/services.available/11-inotify/run @@ -5,12 +5,12 @@ prepare_service defaults single PROCESS_NAME="config-reloader" check_container_initialized -check_service_initialized init 10-loolwsd +check_service_initialized init 10-coolwsd liftoff -while inotifywait -q -e create,delete,modify,attrib /etc/loolwsd/loolwsd.xml +while inotifywait -q -e create,delete,modify,attrib /etc/coolwsd/coolwsd.xml do - print_info "Reloading loolwsd configuration do to a detected certificate change" - pkill -f --signal 1 loolwsd + print_info "Reloading coolwsd configuration do to a detected certificate change" + pkill -f --signal 1 coolwsd exit 0 done diff --git a/install/etc/zabbix/zabbix_agentd.conf.d/collabora-online.conf b/install/etc/zabbix/zabbix_agentd.conf.d/collabora-online.conf new file mode 100644 index 0000000..1d6a49a --- /dev/null +++ b/install/etc/zabbix/zabbix_agentd.conf.d/collabora-online.conf @@ -0,0 +1,5 @@ +UserParameter=cool.mem_consumed,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py | grep 'cool.mem.consumed' | awk '{print $2}' +UserParameter=cool.active_users,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py | grep 'cool.active_users_count' | awk '{print $2}' +UserParameter=cool.active_docs,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py | grep 'cool.active_docs' | awk '{print $2}' +UserParameter=cool.bytes_sent,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py | grep 'cool.sent_bytes' | awk '{print $2}' +UserParameter=cool.bytes_received,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py | grep 'cool.recv_bytes' | awk '{print $2}' diff --git a/install/etc/zabbix/zabbix_agentd.conf.d/libreoffice-online.conf b/install/etc/zabbix/zabbix_agentd.conf.d/libreoffice-online.conf deleted file mode 100644 index 5b80fca..0000000 --- a/install/etc/zabbix/zabbix_agentd.conf.d/libreoffice-online.conf +++ /dev/null @@ -1,5 +0,0 @@ -UserParameter=lool.mem_consumed,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.mem.consumed' | awk '{print $2}' -UserParameter=lool.active_users,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.active_users_count' | awk '{print $2}' -UserParameter=lool.active_docs,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.active_docs' | awk '{print $2}' -UserParameter=lool.bytes_sent,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.sent_bytes' | awk '{print $2}' -UserParameter=lool.bytes_received,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.recv_bytes' | awk '{print $2}' diff --git a/install/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py b/install/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py similarity index 86% rename from install/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py rename to install/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py index fbb04c8..bb94202 100755 --- a/install/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py +++ b/install/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py @@ -28,12 +28,12 @@ def get_doc_info(socket_url,token_value): return data if __name__ == '__main__': - url = "http://localhost:9980/loleaflet/dist/admin/admin.html" + url = "http://localhost:9980/browser/dist/admin/admin.html" username = os.getenv('ADMIN_USER') password = os.getenv('ADMIN_PASS') token_value = get_token_value(url,username,password) - socket_url = "ws://localhost:9980/lool/adminws" + socket_url = "ws://localhost:9980/cool/adminws" data = get_doc_info(socket_url,token_value) for key,value in data.items() : - print("lool."+key , value) + print("cool."+key , value) diff --git a/zabbix_templates/libreoffice-online.xml b/zabbix_templates/collabora-online.xml similarity index 95% rename from zabbix_templates/libreoffice-online.xml rename to zabbix_templates/collabora-online.xml index 5dd639d..9bdfb93 100644 --- a/zabbix_templates/libreoffice-online.xml +++ b/zabbix_templates/collabora-online.xml @@ -9,8 +9,8 @@