From 5fb1be4e41520b248247912ab71c93bb4cecd16a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20B=C3=A9dard-Couture?= <remi.bc@outlook.com>
Date: Tue, 3 Sep 2024 15:09:57 -0400
Subject: [PATCH] Add scripts for Collabora Online (#3648)

---
 ct/collabora.sh              | 71 ++++++++++++++++++++++++++++++++++++
 install/collabora-install.sh | 44 ++++++++++++++++++++++
 2 files changed, 115 insertions(+)
 create mode 100644 ct/collabora.sh
 create mode 100644 install/collabora-install.sh

diff --git a/ct/collabora.sh b/ct/collabora.sh
new file mode 100644
index 000000000..56c3a977b
--- /dev/null
+++ b/ct/collabora.sh
@@ -0,0 +1,71 @@
+#!/usr/bin/env bash
+source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
+# Copyright (c) 2021-2024 tteck
+# Author: tteck (tteckster)
+# Co-Author: remz1337
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+
+function header_info {
+clear
+cat <<"EOF"
+   ______      ____      __                    
+  / ____/___  / / /___ _/ /_  ____  _________ _
+ / /   / __ \/ / / __ `/ __ \/ __ \/ ___/ __ `/
+/ /___/ /_/ / / / /_/ / /_/ / /_/ / /  / /_/ / 
+\____/\____/_/_/\__,_/_.___/\____/_/   \__,_/  
+                                               
+EOF
+}
+header_info
+echo -e "Loading..."
+APP="Collabora"
+var_disk="12"
+var_cpu="1"
+var_ram="1024"
+var_os="debian"
+var_version="12"
+variables
+color
+catch_errors
+
+function default_settings() {
+  CT_TYPE="1"
+  PW=""
+  CT_ID=$NEXTID
+  HN=$NSAPP
+  DISK_SIZE="$var_disk"
+  CORE_COUNT="$var_cpu"
+  RAM_SIZE="$var_ram"
+  BRG="vmbr0"
+  NET="dhcp"
+  GATE=""
+  APT_CACHER=""
+  APT_CACHER_IP=""
+  DISABLEIP6="no"
+  MTU=""
+  SD=""
+  NS=""
+  MAC=""
+  VLAN=""
+  SSH="no"
+  VERB="no"
+  echo_default
+}
+
+function update_script() {
+  header_info
+  if [[ ! -f /lib/systemd/system/coolwsd.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+  msg_info "Updating ${APP} LXC"
+  apt-get update &>/dev/null
+  apt-get -y upgrade &>/dev/null
+  msg_ok "Updated ${APP} LXC"
+  exit
+}
+
+start
+build_container
+description
+
+msg_ok "Completed Successfully!\n"
+echo -e "${APP} needs to be behind a proxy (Nginx Proxy Manager)."
diff --git a/install/collabora-install.sh b/install/collabora-install.sh
new file mode 100644
index 000000000..570d6ae80
--- /dev/null
+++ b/install/collabora-install.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021-2024 tteck
+# Author: tteck (tteckster)
+# Co-Author: remz1337
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+
+source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
+color
+verb_ip6
+catch_errors
+setting_up_container
+network_check
+update_os
+
+msg_info "Installing Dependencies"
+$STD apt-get install -y curl
+$STD apt-get install -y sudo
+$STD apt-get install -y mc
+msg_ok "Installed Dependencies"
+
+msg_info "Installing Collabora Online"
+wget -q -O /usr/share/keyrings/collaboraonline-release-keyring.gpg https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg
+cat <<EOF >/etc/apt/sources.list.d/collaboraonline.sources
+Types: deb
+URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb
+Suites: ./
+Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg
+EOF
+$STD apt update 
+$STD apt install -y coolwsd code-brand collaboraoffice*
+sed -i 's|<enable type="bool" desc="Controls whether SSL encryption between coolwsd and the network is enabled (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">true</enable>|<enable type="bool" desc="Controls whether SSL encryption between coolwsd and the network is enabled (do not disable for production deployment). If default is false, must first be compiled with SSL support to enable." default="true">false</enable>|g' /etc/coolwsd/coolwsd.xml
+sed -i 's|<termination desc="Connection via proxy where coolwsd acts as working via https, but actually uses http." type="bool" default="true">false</termination>|<termination desc="Connection via proxy where coolwsd acts as working via https, but actually uses http." type="bool" default="true">true</termination>|g' /etc/coolwsd/coolwsd.xml
+systemctl restart coolwsd
+msg_ok "Installed Collabora Online"
+
+motd_ssh
+customize
+
+msg_info "Cleaning up"
+$STD apt-get -y autoremove
+$STD apt-get -y autoclean
+msg_ok "Cleaned"