diff --git a/seqs/onlyoffice.sh b/seqs/onlyoffice.sh new file mode 100755 index 0000000..a9df7dc --- /dev/null +++ b/seqs/onlyoffice.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +# Source +# Docker - Install using the repository +# https://docs.docker.com/install/linux/docker-ce/ubuntu/ +# +# Onlyoffice - Docker +# https://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx + +toolName="onlyoffice" +dockerDeps="apt-transport-https ca-certificates curl gnupg-agent software-properties-common" +dockerGpgKeyUrl="https://download.docker.com/linux/ubuntu/gpg" +dockerRepoUrl="https://download.docker.com/linux/ubuntu" +dockerPackages="docker-ce docker-ce-cli containerd.io" +dockerDns1="192.168.23.20" +dockerDns2="46.182.19.48" +dockerDnsEntry="DOCKER_OPTS=\"--dns $dockerDns1 --dns $dockerDns2\"" +dockerDefaultConf="/etc/default/docker" +onlyOfficePort="8026" + +step_1_info() { echo "Install docker dependencies"; } +step_1_alias() { ALIAS="install"; } +step_1() { + local aptOption= + exe apt update + if [ $QUIET -ne 0 ] ; then + aptOption="-y" + else + aptOption="" + fi + exe apt install $dockerDeps $aptOption + endReturn -o $? "Docker dependencies installation failed" +} + +step_2_info() { echo "Install docker repository"; } +step_2() { + # Add official docker GPG key + exep "curl -fsSL ${dockerGpgKeyUrl} | sudo apt-key add -" + + # Add stable repository + exe add-apt-repository "deb [arch=amd64] ${dockerRepoUrl} $(lsb_release -cs) stable" + endReturn -o $? "Failed to add Docker repository" + exe apt update + endReturn -o $? "Docker repository not available" +} + +step_3_info() { echo "Install latest docker version"; } +step_3() { + # Install the latest version + if [ $QUIET -ne 0 ] ; then + aptOption="-y" + else + aptOption="" + fi + exe apt install $dockerPackages $aptOption + + echo " [I] You may test the installation by running:" + echo " sudo docker run hello-world" +} + +step_4_info() { echo "Replace Docker DNS entry"; } +step_4() { + exe sed -i "s/\(^#DOCKER_OPTS=.*\)$/#\1\n${dockerDnsEntry}/" "$dockerDefaultConf" + exep "grep \"${dockerDns1}\" \"$dockerDefaultConf\" >>/dev/null" + if [ $? -ne 0 ] ; then + echoerr " [W] Docker dns entry could not be changed" + fi +} + +step_5_info() { echo "Install onlyoffice docker container"; } +step_5_alias() { ALIAS="onlyoffice"; } +step_5() { + exe docker run -i -t -d -p ${onlyOfficePort}:80 --restart=always onlyoffice/documentserver +} + +step_10_info() { echo "List running Docker container"; } +step_10_alias() { ALIAS="ls"; } +step_10() { + exe docker container ls + echo + echo " [I] To stop a container run:" + echo " docker stop [CONTAINER ID]" + echo " e.g.: docker stop 70f1c5c81be2" +} + +step_100_info() { echo "Uninstall docker"; } +step_100_alias() { ALIAS="uninstall"; } +step_100() { + exe apt-get purge docker-ce +} + +step_102_info() { echo "Purge images, containers, volumes, or customized configuration files"; } +step_102_alias() { ALIAS="purge"; } +step_102() { + exe read -p "Are you sure y/[n]? " answer + case $answer in + yY) + exe rm -rf /var/lib/docker + ;; + *) + return 0 + ;; + esac +} + +VERSION_SEQREV=7 +. sequencer.sh