From 68d399c5ad4da6b6cada08772620a83ff419881d Mon Sep 17 00:00:00 2001
From: MercierCorentin <corentin.mercier.pro@gmail.com>
Date: Sat, 23 Mar 2019 17:01:52 +0100
Subject: [PATCH] Updating Collabora and removing unuseful languages

---
 collabora-online-docker/Dockerfile            | 16 +++++++
 collabora-online-docker/README.md             |  4 ++
 .../scripts/install-libreoffice.sh            | 24 +++++++++++
 .../scripts/start-libreoffice.sh              | 42 +++++++++++++++++++
 4 files changed, 86 insertions(+)
 create mode 100644 collabora-online-docker/Dockerfile
 create mode 100644 collabora-online-docker/README.md
 create mode 100644 collabora-online-docker/scripts/install-libreoffice.sh
 create mode 100644 collabora-online-docker/scripts/start-libreoffice.sh

diff --git a/collabora-online-docker/Dockerfile b/collabora-online-docker/Dockerfile
new file mode 100644
index 00000000..503f438b
--- /dev/null
+++ b/collabora-online-docker/Dockerfile
@@ -0,0 +1,16 @@
+FROM ubuntu:16.04
+
+# Environment variables
+ENV domain localhost
+ENV LANG fr_FR.utf8
+ENV LC_CTYPE fr_FR.utf8
+
+# Setup scripts for LibreOffice Online
+ADD /scripts/install-libreoffice.sh /
+ADD /scripts/start-libreoffice.sh /
+RUN bash install-libreoffice.sh
+
+EXPOSE 9980
+
+# Entry point
+CMD bash start-libreoffice.sh
diff --git a/collabora-online-docker/README.md b/collabora-online-docker/README.md
new file mode 100644
index 00000000..b52328c0
--- /dev/null
+++ b/collabora-online-docker/README.md
@@ -0,0 +1,4 @@
+# Docker-CODE
+Dockerfile and scripts to generate CODE Docker image
+
+Usage and possible settings are documented on the [CODE home page](https://collaboraoffice.com/code/).
diff --git a/collabora-online-docker/scripts/install-libreoffice.sh b/collabora-online-docker/scripts/install-libreoffice.sh
new file mode 100644
index 00000000..4bb6339c
--- /dev/null
+++ b/collabora-online-docker/scripts/install-libreoffice.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Update installed packages
+apt-get update && apt-get -y upgrade
+
+# Install HTTPS transport
+apt-get -y install apt-transport-https
+
+# Install locales
+apt-get -y install locales-all
+
+# Add Collabora repos
+echo "deb https://collaboraoffice.com/repos/CollaboraOnline/CODE /" > /etc/apt/sources.list.d/collabora.list
+apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6CCEA47B2281732DF5D504D00C54D189F4BA284D
+apt-get update
+
+# Install the Collabora packages
+apt-get -y install loolwsd code-brand collaboraoffice6.0-dict-fr collaboraoffice6.0-dict-en collaboraofficebasis6.0-fr collaboraofficebasis6.0-en
+
+# Install inotifywait and killall to automatic restart loolwsd, if loolwsd.xml changes
+apt-get -y install inotify-tools psmisc
+
+# Cleanup
+rm -rf /var/lib/apt/lists/*
\ No newline at end of file
diff --git a/collabora-online-docker/scripts/start-libreoffice.sh b/collabora-online-docker/scripts/start-libreoffice.sh
new file mode 100644
index 00000000..3bb613e8
--- /dev/null
+++ b/collabora-online-docker/scripts/start-libreoffice.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# Fix domain name resolution from jails
+cp /etc/resolv.conf /etc/hosts /opt/lool/systemplate/etc/
+
+if test "${DONT_GEN_SSL_CERT-set}" == set; then
+# Generate new SSL certificate instead of using the default
+mkdir -p /opt/ssl/
+cd /opt/ssl/
+mkdir -p certs/ca
+openssl genrsa -out certs/ca/root.key.pem 2048
+openssl req -x509 -new -nodes -key certs/ca/root.key.pem -days 9131 -out certs/ca/root.crt.pem -subj "/C=DE/ST=BW/L=Stuttgart/O=Dummy Authority/CN=Dummy Authority"
+mkdir -p certs/{servers,tmp}
+mkdir -p "certs/servers/localhost"
+openssl genrsa -out "certs/servers/localhost/privkey.pem" 2048 -key "certs/servers/localhost/privkey.pem"
+if test "${cert_domain-set}" == set; then
+openssl req -key "certs/servers/localhost/privkey.pem" -new -sha256 -out "certs/tmp/localhost.csr.pem" -subj "/C=DE/ST=BW/L=Stuttgart/O=Dummy Authority/CN=localhost"
+else
+openssl req -key "certs/servers/localhost/privkey.pem" -new -sha256 -out "certs/tmp/localhost.csr.pem" -subj "/C=DE/ST=BW/L=Stuttgart/O=Dummy Authority/CN=${cert_domain}"
+fi
+openssl x509 -req -in certs/tmp/localhost.csr.pem -CA certs/ca/root.crt.pem -CAkey certs/ca/root.key.pem -CAcreateserial -out certs/servers/localhost/cert.pem -days 9131
+mv certs/servers/localhost/privkey.pem /etc/loolwsd/key.pem
+mv certs/servers/localhost/cert.pem /etc/loolwsd/cert.pem
+mv certs/ca/root.crt.pem /etc/loolwsd/ca-chain.cert.pem
+fi
+
+# Replace trusted host and set admin username and password
+perl -pi -e "s/localhost<\/host>/${domain}<\/host>/g" /etc/loolwsd/loolwsd.xml
+perl -pi -e "s/<username (.*)>.*<\/username>/<username \1>${username}<\/username>/" /etc/loolwsd/loolwsd.xml
+perl -pi -e "s/<password (.*)>.*<\/password>/<password \1>${password}<\/password>/" /etc/loolwsd/loolwsd.xml
+perl -pi -e "s/<server_name (.*)>.*<\/server_name>/<server_name \1>${server_name}<\/server_name>/" /etc/loolwsd/loolwsd.xml
+perl -pi -e "s/<allowed_languages (.*)>.*<\/allowed_languages>/<allowed_languages \1>${dictionaries:-en_GB en_US fr_FR}<\/allowed_languages>/" /etc/loolwsd/loolwsd.xml
+
+# Restart when /etc/loolwsd/loolwsd.xml changes
+[ -x /usr/bin/inotifywait -a /usr/bin/killall ] && (
+	/usr/bin/inotifywait -e modify /etc/loolwsd/loolwsd.xml
+	echo "$(ls -l /etc/loolwsd/loolwsd.xml) modified --> restarting"
+	/usr/bin/killall -1 loolwsd
+) &
+
+# Start loolwsd
+su -c "/usr/bin/loolwsd --version --o:sys_template_path=/opt/lool/systemplate --o:lo_template_path=/opt/collaboraoffice6.0 --o:child_root_path=/opt/lool/child-roots --o:file_server_root_path=/usr/share/loolwsd ${extra_params}" -s /bin/bash lool
-- 
GitLab