CinemaPress/cinemapress.sh

5023 lines
228 KiB
Bash
Raw Permalink Normal View History

2019-10-01 21:34:02 +02:00
#!/bin/bash
R='\033[0;31m'
G='\033[0;32m'
Y='\033[0;33m'
2019-11-28 23:19:56 +01:00
C='\033[1;34m'
2019-10-01 21:34:02 +02:00
B='\033[0;36m'
S='\033[0;90m'
NC='\033[0m'
OPTION=${1:-}
GIT_SERVER="github.com"
2021-05-22 00:56:02 +02:00
CP_VER="5.0.0"
2019-10-01 21:34:02 +02:00
PRC_=0
2019-11-05 03:24:08 +01:00
CP_DOMAIN=${CP_DOMAIN:-}
CP_LANG=${CP_LANG:-}
CP_THEME=${CP_THEME:-}
CP_PASSWD=${CP_PASSWD:-}
2019-10-28 02:43:18 +01:00
CP_MIRROR=${CP_MIRROR:-}
CP_KEY=${CP_KEY:-}
2019-11-05 03:24:08 +01:00
CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL:-}
CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY:-}
MEGA_EMAIL=${MEGA_EMAIL:-}
MEGA_PASSWORD=${MEGA_PASSWORD:-}
2021-03-31 01:26:36 +02:00
FTP_USERNAME=${FTP_USERNAME:-}
FTP_PASSWORD=${FTP_PASSWORD:-}
FTP_HOSTNAME=${FTP_HOSTNAME:-}
FTP_NAME=${FTP_NAME:-}
2019-10-01 21:34:02 +02:00
CP_DOMAIN_=$(echo "${CP_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
CP_MIRROR_=$(echo "${CP_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-10-01 21:34:02 +02:00
2021-06-06 00:55:05 +02:00
CP_SPB=""
2020-05-01 23:12:29 +02:00
CP_IP="domain"
2019-10-01 21:34:02 +02:00
EXTERNAL_PORT=""
EXTERNAL_DOCKER=""
2019-10-01 21:34:02 +02:00
2020-08-13 02:55:41 +02:00
CP_OS="`awk '/^ID=/' /etc/*os-release | awk -F'=' '{ print tolower($2) }'`"
2021-01-06 05:33:52 +01:00
CP_MEM=$(free -m | grep -oP '\d+' | sed '1!d')
2021-01-06 04:37:20 +01:00
if echo "${CP_MEM}" | grep -qE '^[0-9]+$'; then
2021-02-04 02:56:38 +01:00
DOCKER_MEM=("--memory" "$(( CP_MEM / 2 ))m")
2021-01-06 04:37:20 +01:00
else
DOCKER_MEM=()
fi
2019-11-16 05:27:22 +01:00
post_commands() {
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-16 05:27:22 +01:00
2021-01-13 05:55:18 +01:00
if [ "$(grep "%d_%m_%Y" /etc/crontab)" != "" ]; then
sed -i "s/%d_%m_%Y/\\\%d_\\\%m_\\\%Y/g" /etc/crontab &> /dev/null
fi
if [ "$(grep "${LOCAL_DOMAIN}_autostart" /etc/crontab)" = "" ] \
&& [ -f "/home/${LOCAL_DOMAIN}/process.json" ] \
&& [ -f "/home/${LOCAL_DOMAIN}/app.js" ]; then
2019-10-11 16:13:07 +02:00
echo -e "\n" >>/etc/crontab
2019-11-16 05:27:22 +01:00
echo "# ----- ${LOCAL_DOMAIN}_autostart --------------------------------------" >>/etc/crontab
2021-01-13 05:55:18 +01:00
echo "@reboot root /usr/bin/cinemapress autostart \"${LOCAL_DOMAIN}\" >>\"/home/${LOCAL_DOMAIN}/log/autostart_\$(date '+\%d_\%m_\%Y').log\" 2>&1" >>/etc/crontab
2019-11-16 05:27:22 +01:00
echo "# ----- ${LOCAL_DOMAIN}_autostart --------------------------------------" >>/etc/crontab
2019-10-11 16:13:07 +02:00
fi
2021-01-13 05:55:18 +01:00
if [ "$(grep "${LOCAL_DOMAIN}_renew" /etc/crontab)" = "" ] \
2019-11-16 05:27:22 +01:00
&& [ -d "/home/${LOCAL_DOMAIN}/config/production/nginx/ssl.d/live/${LOCAL_DOMAIN}/" ]; then
2020-12-13 23:32:23 +01:00
sed -i "s/.*${LOCAL_DOMAIN}_ssl.*//g" /etc/crontab &> /dev/null
sed -i "s/.*${LOCAL_DOMAIN}\/config\/production\/nginx\/ssl\.d.*//g" /etc/crontab &> /dev/null
2019-10-11 16:13:07 +02:00
echo -e "\n" >>/etc/crontab
2020-12-13 23:27:43 +01:00
echo "# ----- ${LOCAL_DOMAIN}_renew --------------------------------------" >>/etc/crontab
2021-01-13 05:55:18 +01:00
echo "0 23 * * * root /usr/bin/cinemapress renew \"${LOCAL_DOMAIN}\" >>\"/home/${LOCAL_DOMAIN}/log/renew_\$(date '+\%d_\%m_\%Y').log\" 2>&1" >>/etc/crontab
2020-12-13 23:27:43 +01:00
echo "# ----- ${LOCAL_DOMAIN}_renew --------------------------------------" >>/etc/crontab
2019-11-16 05:27:22 +01:00
fi
2019-10-11 16:13:07 +02:00
}
2019-10-01 21:34:02 +02:00
docker_install() {
2019-11-01 22:42:13 +01:00
if [ "${CP_OS}" != "alpine" ] && [ "${CP_OS}" != "\"alpine\"" ]; then
2020-03-06 03:44:55 +01:00
if [ "`basename "${0}"`" != "cinemapress" ] || [ "${1}" != "" ]; then
echo ""; echo -n "☐ Downloading cinemapress.sh ...";
wget -qO /usr/bin/cinemapress https://gitlab.com/CinemaPress/CinemaPress/raw/master/cinemapress.sh -o /dev/null && \
2020-03-06 03:44:55 +01:00
chmod +x /usr/bin/cinemapress
echo -e "\\r${G}✓ Downloading cinemapress.sh ...${NC}"
echo -n "☐ Installing packages ..."
2019-10-25 04:09:31 +02:00
if [ "${CP_OS}" = "debian" ] || [ "${CP_OS}" = "\"debian\"" ]; then
2019-12-03 02:06:09 +01:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq update >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2021-07-14 02:00:30 +02:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install sudo >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install wget >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install curl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install nano >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install htop >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install lsb-release >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install git-core >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install openssl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install net-tools >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install netcat >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install cron >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install zip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install gzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install bzip2 >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install unzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install gcc >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install make >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install libssl-dev >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install locales >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install lsof >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-25 04:09:31 +02:00
elif [ "${CP_OS}" = "ubuntu" ] || [ "${CP_OS}" = "\"ubuntu\"" ]; then
2019-12-03 02:06:09 +01:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq update >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2021-07-14 02:00:30 +02:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install sudo >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install wget >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install curl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install nano >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install htop >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install lsb-release >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install git-core >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install openssl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install netcat >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install net-tools >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install cron >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install zip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install gzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install bzip2 >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install unzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install gcc >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install make >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install libssl-dev >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install locales >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install lsof >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install syslog-ng >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-25 04:09:31 +02:00
elif [ "${CP_OS}" = "fedora" ] || [ "${CP_OS}" = "\"fedora\"" ]; then
2021-07-14 02:00:30 +02:00
dnf -y install sudo >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install wget >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install curl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install nano >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install htop >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install lsb-release >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install ca-certificates >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install git-core >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install openssl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install netcat >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install cron >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install zip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install gzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install bzip2 >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install unzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install gcc >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install make >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install libssl-dev >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install locales >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
dnf -y install lsof >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-25 04:09:31 +02:00
elif [ "${CP_OS}" = "centos" ] || [ "${CP_OS}" = "\"centos\"" ]; then
2019-12-03 02:06:09 +01:00
yum install -y epel-release >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2021-07-14 02:00:30 +02:00
yum install -y sudo >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y wget >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y curl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y nano >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y htop >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y lsb-release >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y ca-certificates >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y git-core >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y openssl >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y netcat >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y net-tools >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y cron >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y zip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y gzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y bzip2 >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y unzip >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y gcc >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y make >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y libssl-dev >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y locales >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
yum install -y lsof >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-25 04:09:31 +02:00
fi
2020-03-06 03:44:55 +01:00
echo -e "\\r${G}✓ Installing packages ...${NC}"
echo ""
2019-10-08 20:29:17 +02:00
fi
2020-03-11 02:21:54 +01:00
if [ "$(docker -v 2>/dev/null)" = "" ]; then
2019-10-08 20:29:17 +02:00
clear
_line
_logo
_header "DOCKER"
_content
_content "Installing Docker ..."
_content
_s
sed -Ei "s/#SyslogFacility AUTH/SyslogFacility AUTH/g" /etc/ssh/sshd_config >/dev/null
sed -Ei "s/#LogLevel INFO/LogLevel ERROR/g" /etc/ssh/sshd_config >/dev/null
2020-04-04 20:36:52 +02:00
sed -Ei "s/#MaxAuthTries 6/MaxAuthTries 3/g" /etc/ssh/sshd_config >/dev/null
sed -Ei "s/#ClientAliveCountMax 3/ClientAliveCountMax 99999/g" /etc/ssh/sshd_config >/dev/null
sed -Ei "s/#ClientAliveInterval 0/ClientAliveInterval 20/g" /etc/ssh/sshd_config >/dev/null
2019-10-01 21:34:02 +02:00
if [ "${CP_OS}" = "debian" ] || [ "${CP_OS}" = "\"debian\"" ]; then
2019-10-08 20:29:17 +02:00
CP_ARCH="`dpkg --print-architecture`"
2019-12-09 23:53:40 +01:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq remove docker docker-engine docker.io containerd runc
DEBIAN_FRONTEND=noninteractive apt-get -y -qq update
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install apt-transport-https
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install curl
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install gnupg2
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2019-10-08 20:29:17 +02:00
if [ "${CP_ARCH}" = "amd64" ] || [ "${CP_ARCH}" = "x86_64" ] || [ "${CP_ARCH}" = "i386" ]
then
CP_ARCH="amd64"
elif [ "${CP_ARCH}" = "armhf" ] || [ "${CP_ARCH}" = "armel" ]
then
CP_ARCH="armhf"
elif [ "${CP_ARCH}" = "arm64" ]
then
CP_ARCH="arm64"
fi
sed -i "s~.*docker.com.*~~g" /etc/apt/sources.list &> /dev/null
echo "deb [arch=${CP_ARCH} signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2019-12-09 23:53:40 +01:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq update
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce-cli
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install containerd.io
systemctl restart ssh
2019-10-01 21:34:02 +02:00
elif [ "${CP_OS}" = "ubuntu" ] || [ "${CP_OS}" = "\"ubuntu\"" ]; then
2019-10-08 20:29:17 +02:00
CP_ARCH="`dpkg --print-architecture`"
2019-12-09 23:53:40 +01:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq remove docker docker-engine docker.io containerd runc
DEBIAN_FRONTEND=noninteractive apt-get -y -qq update
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install apt-transport-https
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install curl
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install gnupg-agent
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2019-10-08 20:29:17 +02:00
if [ "${CP_ARCH}" = "amd64" ] || [ "${CP_ARCH}" = "x86_64" ] || [ "${CP_ARCH}" = "i386" ]
then
CP_ARCH="amd64"
elif [ "${CP_ARCH}" = "armhf" ] || [ "${CP_ARCH}" = "armel" ]
then
CP_ARCH="armhf"
elif [ "${CP_ARCH}" = "arm64" ]
then
CP_ARCH="arm64"
elif [ "${CP_ARCH}" = "ppc64el" ] || [ "${CP_ARCH}" = "ppc" ] || [ "${CP_ARCH}" = "powerpc" ]
then
CP_ARCH="ppc64el"
elif [ "${CP_ARCH}" = "s390x" ]
then
CP_ARCH="s390x"
fi
sed -i "s~.*docker.com.*~~g" /etc/apt/sources.list &> /dev/null
echo "deb [arch=${CP_ARCH} signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2019-12-09 23:53:40 +01:00
DEBIAN_FRONTEND=noninteractive apt-get -y -qq update
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce-cli
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install containerd.io
systemctl restart ssh
2019-10-01 21:34:02 +02:00
elif [ "${CP_OS}" = "fedora" ] || [ "${CP_OS}" = "\"fedora\"" ]; then
2019-12-09 23:53:40 +01:00
dnf -y remove docker \
2019-10-08 20:29:17 +02:00
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2019-12-09 23:53:40 +01:00
dnf -y install dnf-plugins-core
dnf config-manager \
2019-10-08 20:29:17 +02:00
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
dnf -y install docker-ce
dnf -y install docker-ce-cli
dnf -y install containerd.io
2019-12-09 23:53:40 +01:00
systemctl start docker
systemctl enable docker
systemctl restart sshd
2019-10-01 21:34:02 +02:00
elif [ "${CP_OS}" = "centos" ] || [ "${CP_OS}" = "\"centos\"" ]; then
2019-12-09 23:53:40 +01:00
yum remove -y docker \
2019-10-08 20:29:17 +02:00
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2019-12-09 23:53:40 +01:00
yum install -y yum-utils \
2019-10-08 20:29:17 +02:00
device-mapper-persistent-data \
lvm2
2019-12-09 23:53:40 +01:00
yum-config-manager \
2019-10-08 20:29:17 +02:00
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
yum install -y docker-ce-cli
yum install -y containerd.io
2019-12-09 23:53:40 +01:00
systemctl start docker
systemctl enable docker
systemctl restart sshd
2019-10-01 21:34:02 +02:00
fi
2020-03-11 02:21:54 +01:00
if [ "$(docker -v 2>/dev/null)" = "" ]; then
2019-10-08 20:29:17 +02:00
clear
_header "ERROR"
_content
_content "Docker is not installed, try installing manually!"
_content
_s
exit 0
2019-10-01 21:34:02 +02:00
fi
fi
fi
}
ip_install() {
IP1=`ip route get 1 | awk '{print $NF;exit}'`
IP2=`ip route get 8.8.4.4 | head -1 | cut -d' ' -f8`
IP3=`ip route get 8.8.4.4 | head -1 | awk '{print $7}'`
if [ "`expr "${IP1}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" = "0" ] \
&& [ "`expr "${IP2}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" = "0" ] \
&& [ "`expr "${IP3}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" = "0" ]; then exit 1; fi
2019-11-11 02:12:38 +01:00
if [ "`expr "${IP1}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" != "0" ]; then IP_DOMAIN="${IP1}"; \
elif [ "`expr "${IP2}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" != "0" ]; then IP_DOMAIN="${IP2}"; \
elif [ "`expr "${IP3}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" != "0" ]; then IP_DOMAIN="${IP3}"; fi
CP_IP="ip"
2019-10-01 21:34:02 +02:00
CP_LANG="${1}"
CP_THEME="tarly"
2019-10-01 21:34:02 +02:00
CP_PASSWD="test"
sh_yes
_s
sh_progress
1_install "${IP_DOMAIN}" "${CP_LANG}" "${CP_THEME}" "${CP_PASSWD}"
2019-10-01 21:34:02 +02:00
sh_progress 100
success_install
}
1_install() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
LOCAL_LANG=${2:-${CP_LANG}}
LOCAL_THEME=${3:-${CP_THEME}}
LOCAL_PASSWD=${4:-${CP_PASSWD}}
2020-04-08 21:28:13 +02:00
echo "${PRC_}% install" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-16 01:19:08 +01:00
fi
2020-03-30 02:08:40 +02:00
# MEMTOTATAL=$(grep MemTotal /proc/meminfo | awk '{print $2}')
# SWAPTOTAL=$(grep SwapTotal /proc/meminfo | awk '{print $2}')
# MEMORY_DOCKER=""
# if [ "${MEMTOTATAL}" -gt 0 ]; then
# MEMDOCKER=$(("${MEMTOTATAL}"-"${MEMTOTATAL}"*10/100))
# if [ "${MEMDOCKER}" -gt 0 ]; then
# SWAPDOCKER=$(("${MEMDOCKER}"+"${SWAPTOTAL}"-"${SWAPTOTAL}"*10/100))
# MEMORY_DOCKER="--memory ${MEMDOCKER}k --memory-swap ${SWAPDOCKER}k --oom-kill-disable"
# fi
# fi
if [ ! "$(docker network ls | grep cinemapress)" ]; then
docker network create \
--driver bridge \
cinemapress >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
fi
2019-10-01 21:34:02 +02:00
2019-10-15 21:23:00 +02:00
# docker build -t cinemapress/docker https://github.com/CinemaPress/CinemaPress.git
2020-06-13 03:29:30 +02:00
docker pull cinemapress/docker:latest >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-15 21:23:00 +02:00
2019-10-01 21:34:02 +02:00
docker run \
-d \
2020-05-01 21:48:52 +02:00
--name "${LOCAL_DOMAIN_}" \
2021-01-06 04:37:20 +01:00
"${DOCKER_MEM[@]}" \
2019-11-11 02:12:38 +01:00
-e "CP_DOMAIN=${LOCAL_DOMAIN}" \
-e "CP_DOMAIN_=${LOCAL_DOMAIN_}" \
-e "CP_LANG=${LOCAL_LANG}" \
-e "CP_THEME=${LOCAL_THEME}" \
-e "CP_PASSWD=${LOCAL_PASSWD}" \
-e "RCLONE_CONFIG=/home/${LOCAL_DOMAIN}/config/production/rclone.conf" \
2020-05-01 21:48:52 +02:00
-w /home/"${LOCAL_DOMAIN}" \
2019-10-01 21:34:02 +02:00
--restart always \
--network cinemapress \
-v /var/lib/sphinx/data:/var/lib/sphinx/data \
2019-10-11 21:18:03 +02:00
-v /var/local/balancer:/var/local/balancer \
2020-05-01 21:48:52 +02:00
-v /home/"${LOCAL_DOMAIN}":/home/"${LOCAL_DOMAIN}" \
${EXTERNAL_DOCKER} \
2019-12-03 02:06:09 +01:00
cinemapress/docker:latest >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
WEBSITE_RUN=1
while [ "${WEBSITE_RUN}" != "50" ]; do
sleep 3
WEBSITE_RUN=$((1+${WEBSITE_RUN}))
2019-11-11 02:12:38 +01:00
if [ "`docker ps -aq -f status=running -f name=^/${LOCAL_DOMAIN_}\$ 2>/dev/null`" != "" ]; then
2019-10-01 21:34:02 +02:00
WEBSITE_RUN=50
fi
done
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% nginx" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
DIR_SUCCESS=1
while [ "${DIR_SUCCESS}" != "10" ]; do
sleep 3
DIR_SUCCESS=$((1+${DIR_SUCCESS}))
if [ -d "/home/${LOCAL_DOMAIN}/" ]; then
2020-04-03 02:23:17 +02:00
ln -s /home/"${LOCAL_DOMAIN}"/ /root/"${LOCAL_DOMAIN}" >/dev/null
DIR_SUCCESS=10
fi
done
2019-10-13 04:55:29 +02:00
if [ "`docker ps -aq -f status=running -f name=^/nginx\$ 2>/dev/null`" != "" ]; then
2019-12-03 02:06:09 +01:00
docker restart nginx >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-13 04:55:29 +02:00
else
if [ "${CP_IP}" = "domain" ] \
&& [ "`netstat -tunlp | grep 0.0.0.0:80`" = "" ] \
&& [ "`netstat -tunlp | grep :::80`" = "" ]; then
2019-10-15 21:23:00 +02:00
# docker build -t cinemapress/nginx https://github.com/CinemaPress/CinemaPress.git#:config/default/nginx
# docker build -t cinemapress/fail2ban https://github.com/CinemaPress/CinemaPress.git#:config/default/fail2ban
# docker build -t cinemapress/filestash https://github.com/CinemaPress/CinemaPress.git#:config/default/filestash
2019-10-01 21:34:02 +02:00
2020-05-04 18:34:45 +02:00
BOTS=()
2020-05-15 20:13:19 +02:00
if [ ! -f "/etc/nginx/bots.d/blockbots.conf" ] \
&& [ -f "/home/${LOCAL_DOMAIN}/config/production/nginx/bots.d/blockbots.conf" ]; then
2019-10-21 00:56:49 +02:00
mkdir -p /etc/nginx/bots.d
cp -rf /home/"${LOCAL_DOMAIN}"/config/production/nginx/bots.d/* /etc/nginx/bots.d/
2020-05-15 20:13:19 +02:00
fi
if [ -f "/etc/nginx/bots.d/blockbots.conf" ]; then
BOTS=(-v /etc/nginx/bots.d:/etc/nginx/bots.d)
2019-10-20 18:23:07 +02:00
fi
2019-10-13 04:55:29 +02:00
docker run \
-d \
--name nginx \
2021-01-06 04:37:20 +01:00
"${DOCKER_MEM[@]}" \
2019-10-13 04:55:29 +02:00
--restart always \
--network cinemapress \
-v /var/log/nginx:/var/log/nginx \
-v /var/local/balancer:/var/local/balancer \
-v /home:/home \
"${BOTS[@]}" \
2019-10-13 04:55:29 +02:00
-p 80:80 \
-p 443:443 \
2019-12-03 02:06:09 +01:00
cinemapress/nginx:latest >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
2019-10-13 04:55:29 +02:00
NGINX_RUN=1
while [ "${NGINX_RUN}" != "50" ]; do
sleep 3
NGINX_RUN=$((1+${NGINX_RUN}))
if [ "`docker ps -aq -f status=running -f name=^/nginx\$ 2>/dev/null`" != "" ]; then
NGINX_RUN=50
fi
done
2019-10-01 21:34:02 +02:00
2019-10-13 04:55:29 +02:00
sh_progress
2019-10-01 21:34:02 +02:00
2020-04-08 21:28:13 +02:00
echo "${PRC_}% fail2ban" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
2020-04-01 19:51:59 +02:00
if [ ! -f "/var/log/nginx/access.log" ]; then touch "/var/log/nginx/access.log"; fi
2020-04-03 00:01:31 +02:00
if [ ! -f "/var/log/auth.log" ]; then touch "/var/log/auth.log"; fi
2020-04-01 19:51:59 +02:00
2019-10-13 04:55:29 +02:00
docker run \
-d \
--name fail2ban \
2021-01-06 04:37:20 +01:00
"${DOCKER_MEM[@]}" \
2019-10-13 04:55:29 +02:00
--restart always \
--network host \
--cap-add NET_ADMIN \
--cap-add NET_RAW \
2019-11-11 02:12:38 +01:00
-v /home/${LOCAL_DOMAIN}/config/production/fail2ban:/data \
2019-10-13 04:55:29 +02:00
-v /var/log:/var/log:ro \
2019-12-03 02:06:09 +01:00
cinemapress/fail2ban:latest >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
2019-10-13 04:55:29 +02:00
FAIL2BAN_RUN=1
while [ "${FAIL2BAN_RUN}" != "50" ]; do
sleep 3
FAIL2BAN_RUN=$((1+${FAIL2BAN_RUN}))
if [ "`docker ps -aq -f status=running -f name=^/fail2ban\$ 2>/dev/null`" != "" ]; then
FAIL2BAN_RUN=50
fi
done
2019-10-01 21:34:02 +02:00
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% filestash" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
docker run \
-d \
--name filestash \
2021-01-06 04:37:20 +01:00
"${DOCKER_MEM[@]}" \
--restart always \
--network cinemapress \
2020-03-21 03:53:14 +01:00
cinemapress/filestash >>/var/log/docker_install_"$(date '+%d_%m_%Y')".log 2>&1
FILESTASH_RUN=1
while [ "${FILESTASH_RUN}" != "50" ]; do
sleep 3
FILESTASH_RUN=$((1+${FILESTASH_RUN}))
if [ "`docker ps -aq -f status=running -f name=^/filestash\$ 2>/dev/null`" != "" ]; then
2020-04-01 19:51:59 +02:00
docker exec "${LOCAL_DOMAIN_}" /usr/bin/cinemapress container ftp
FILESTASH_RUN=50
fi
done
2019-10-13 04:55:29 +02:00
fi
2019-10-01 21:34:02 +02:00
fi
2021-01-16 01:19:08 +01:00
2021-06-07 01:27:03 +02:00
sleep 20
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-16 01:19:08 +01:00
fi
2019-10-01 21:34:02 +02:00
}
2_update() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
LOCAL_MEGA_EMAIL=${2:-${MEGA_EMAIL}}
LOCAL_MEGA_PASSWORD=${3:-${MEGA_PASSWORD}}
2021-02-03 02:34:29 +01:00
LOCAL_NAME_STORAGE=${4:-mega}
LOCAL_FTP_HOST=${5}
2020-05-01 21:48:52 +02:00
if [ "${LOCAL_MEGA_EMAIL}" != "" ] && [ "${LOCAL_MEGA_PASSWORD}" != "" ]; then
2021-02-03 02:34:29 +01:00
LOCAL_CONF_STORAGE=()
if [ "${LOCAL_NAME_STORAGE}" = "mega" ]; then
LOCAL_CONF_STORAGE=(mega user "${LOCAL_MEGA_EMAIL}" pass "${LOCAL_MEGA_PASSWORD}")
elif [ "${LOCAL_NAME_STORAGE}" = "opendrive" ]; then
LOCAL_CONF_STORAGE=(opendrive username "${LOCAL_MEGA_EMAIL}" password "${LOCAL_MEGA_PASSWORD}")
elif [ "${LOCAL_NAME_STORAGE}" = "ftp" ]; then
LOCAL_CONF_STORAGE=(ftp user "${LOCAL_MEGA_EMAIL}" pass "${LOCAL_MEGA_PASSWORD}" host "${LOCAL_FTP_HOST}")
fi
docker exec "${LOCAL_DOMAIN_}" rclone config create CINEMAPRESS "${LOCAL_CONF_STORAGE[@]}" \
2020-05-01 21:48:52 +02:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
2020-06-05 23:39:12 +02:00
sleep 10
2020-05-01 21:48:52 +02:00
fi
2019-11-11 02:12:38 +01:00
2020-04-08 21:28:13 +02:00
echo "${PRC_}% update" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-16 01:19:08 +01:00
fi
2021-02-02 07:52:55 +01:00
CHECK_MEGA=$(docker exec -t "${LOCAL_DOMAIN_}" rclone config show 2>/dev/null | grep "CINEMAPRESS")
2020-02-24 00:05:10 +01:00
if [ "${CHECK_MEGA}" = "" ]; then
_header "WARNING"
_content
_content "You have no configuration to create a backup!"
_content
_content "Configure for MEGA.nz cloud storage in one line:"
_content
2020-03-11 02:21:54 +01:00
printf " ~# cinemapress b %s config \"email\" \"pass\"" "${LOCAL_DOMAIN}"
2020-02-24 00:05:10 +01:00
_br
_content
_content "email - your email on MEGA.nz"
_content "pass - your password on MEGA.nz"
_content
2021-02-03 02:34:29 +01:00
_content "Configure for FTP storage in one line:"
_content
printf " ~# cinemapress b %s ftp \"user\" \"pass\" \"host\"" "${LOCAL_DOMAIN}"
_br
_content
_content "user - your username on FTP"
_content "pass - your password on FTP"
_content "host - your IP/host on FTP"
_content
2020-02-24 00:05:10 +01:00
_s
exit 0
fi
KILOBYTE_ALL=$(df -k /home | tail -1 | awk '{print $4}')
KILOBYTE_DIR=614400
if [ "${KILOBYTE_ALL}" -lt "${KILOBYTE_DIR}" ]; then
_header "WARNING"
_content
_content "Less than 600 MB of free space left on the server!"
_content "You need to increase disk space."
_content
_s
exit 0
fi
2020-04-26 02:12:11 +02:00
if [ ! -f "/home/${LOCAL_DOMAIN}/config/production/config.js" ]; then
_header "WARNING"
_content
_content "File config.js not found!"
_content
_s
exit 0
fi
AA=$(grep "\"CP_ALL\"" /home/"${LOCAL_DOMAIN}"/process.json)
2021-01-24 22:57:57 +01:00
XX=$(grep "\"CP_XMLPIPE2\"" /home/"${LOCAL_DOMAIN}"/process.json)
2020-05-01 21:48:52 +02:00
KK=$(grep "\"key\"" /home/"${LOCAL_DOMAIN}"/config/default/config.js)
DD=$(grep "\"date\"" /home/"${LOCAL_DOMAIN}"/config/default/config.js)
2020-05-11 01:25:25 +02:00
BM=$(grep "\"bomain\"" /home/"${LOCAL_DOMAIN}"/config/production/config.js)
CP_ALL=$(echo ${AA} | sed 's/.*"CP_ALL":\s*"\([a-zA-Z0-9_| -]*\)".*/\1/')
2021-01-24 22:57:57 +01:00
CP_XMLPIPE2=$(echo ${XX} | sed 's/.*"CP_XMLPIPE2":\s*"\([a-zA-Z0-9_| -]*\)".*/\1/')
2020-05-01 21:48:52 +02:00
CP_KEY=$(echo ${KK} | sed 's/.*"key":\s*"\(FREE\|[a-zA-Z0-9-]\{32\}\)".*/\1/')
CP_DATE=$(echo ${DD} | sed 's/.*"date":\s*"\([0-9-]*\)".*/\1/')
2020-05-11 01:25:25 +02:00
CP_BOMAIN=$(echo ${BM} | sed 's/.*"bomain":\s*"\([a-zA-Z0-9.-]*\)".*/\1/')
if [ "${CP_ALL}" = "" ] || [ "${CP_ALL}" = "${AA}" ]; then CP_ALL=""; fi
2021-01-24 22:57:57 +01:00
if [ "${CP_XMLPIPE2}" = "" ] || [ "${CP_XMLPIPE2}" = "${AA}" ]; then CP_XMLPIPE2=""; fi
2020-02-20 21:37:31 +01:00
DISABLE_SSL=$(grep "#ssl" /home/"${LOCAL_DOMAIN}"/config/production/nginx/conf.d/default.conf 2>/dev/null)
rm -rf /home/"${LOCAL_DOMAIN}"/config/production/nginx/conf.d/default.conf
mkdir -p /var/temp
if [ ! -d /var/temp/nginx ]; then
mkdir -p /var/temp/nginx
cp -rf /home/"${LOCAL_DOMAIN}"/config/production/nginx/* /var/temp/nginx/ 2>/dev/null
fi
if [ ! -d /var/temp/windows ] && [ -d /home/"${LOCAL_DOMAIN}"/files/windows ]; then
mv -f /home/"${LOCAL_DOMAIN}"/files/windows /var/temp/windows 2>/dev/null
fi
if [ ! -d /var/temp/linux ] && [ -d /home/"${LOCAL_DOMAIN}"/files/linux ]; then
mv -f /home/"${LOCAL_DOMAIN}"/files/linux /var/temp/linux 2>/dev/null
fi
if [ ! -d /var/temp/osx ] && [ -d /home/"${LOCAL_DOMAIN}"/files/osx ]; then
mv -f /home/"${LOCAL_DOMAIN}"/files/osx /var/temp/osx 2>/dev/null
fi
if [ ! -d /var/temp/poster ]; then
mv -f /home/"${LOCAL_DOMAIN}"/files/poster /var/temp/poster 2>/dev/null
fi
if [ ! -d /var/temp/picture ]; then
mv -f /home/"${LOCAL_DOMAIN}"/files/picture /var/temp/picture 2>/dev/null
fi
2020-05-11 01:25:25 +02:00
if [ -f /home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf ]; then
mv -f /home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/disabled.conf 2>/dev/null
fi
3_backup "${LOCAL_DOMAIN}" "create"
2019-11-11 02:12:38 +01:00
8_remove "${LOCAL_DOMAIN}" "full" "safe"
if [ ! -d /var/temp/sphinx ]; then
mkdir -p /var/temp/sphinx
cp -rf /var/lib/sphinx/data/* /var/temp/sphinx/ 2>/dev/null
fi
2019-11-11 02:12:38 +01:00
1_install "${LOCAL_DOMAIN}"
if [ -d /var/temp/sphinx ] && [ -d /var/lib/sphinx/data ]; then
cp -rf /var/temp/sphinx/* /var/lib/sphinx/data/ 2>/dev/null
rm -rf /var/temp/sphinx
fi
if [ -d /var/temp/nginx ] && [ -d /home/"${LOCAL_DOMAIN}"/config/production/nginx ]; then
cp -rf /var/temp/nginx/* /home/"${LOCAL_DOMAIN}"/config/production/nginx/ 2>/dev/null
rm -rf /var/temp/nginx
fi
if [ -d /var/temp/windows ] && [ ! -d /home/"${LOCAL_DOMAIN}"/files/windows ]; then
mv -f /var/temp/windows /home/"${LOCAL_DOMAIN}"/files/windows 2>/dev/null
fi
if [ -d /var/temp/linux ] && [ ! -d /home/"${LOCAL_DOMAIN}"/files/linux ]; then
mv -f /var/temp/linux /home/"${LOCAL_DOMAIN}"/files/linux 2>/dev/null
fi
if [ -d /var/temp/osx ] && [ ! -d /home/"${LOCAL_DOMAIN}"/files/osx ]; then
mv -f /var/temp/osx /home/"${LOCAL_DOMAIN}"/files/osx 2>/dev/null
fi
if [ -d /var/temp/poster ]; then
2020-04-15 21:28:55 +02:00
rm -rf /home/"${LOCAL_DOMAIN}"/files/poster
mv -f /var/temp/poster /home/"${LOCAL_DOMAIN}"/files/poster 2>/dev/null
fi
if [ -d /var/temp/picture ]; then
2020-04-15 21:28:55 +02:00
rm -rf /home/"${LOCAL_DOMAIN}"/files/picture
mv -f /var/temp/picture /home/"${LOCAL_DOMAIN}"/files/picture 2>/dev/null
fi
3_backup "${LOCAL_DOMAIN}" "restore"
2019-12-03 02:06:09 +01:00
docker exec nginx nginx -s reload >>/var/log/docker_update_"$(date '+%d_%m_%Y')".log 2>&1
if [ "${CP_ALL}" != "" ] && [ ! -f "/var/lib/sphinx/data/movies_${CP_DOMAIN_}.spb" ]; then
sed -E -i "s/\"CP_ALL\":\s*\"[a-zA-Z0-9_| -]*\"/\"CP_ALL\":\"${CP_ALL}\"/" \
/home/"${LOCAL_DOMAIN}"/process.json
fi
2021-01-24 22:57:57 +01:00
if [ "${CP_XMLPIPE2}" != "" ]; then
sed -E -i "s/\"CP_XMLPIPE2\":\s*\"[a-zA-Z0-9_| -]*\"/\"CP_XMLPIPE2\":\"${CP_XMLPIPE2}\"/" \
/home/"${LOCAL_DOMAIN}"/process.json
fi
2020-05-01 21:48:52 +02:00
if [ "${#CP_KEY}" -eq "4" ] || [ "${#CP_KEY}" -eq "32" ]; then
2019-10-16 02:00:44 +02:00
sed -E -i "s/\"key\":\s*\"(FREE|[a-zA-Z0-9-]{32})\"/\"key\":\"${CP_KEY}\"/" \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_DOMAIN}"/config/production/config.js
2019-10-16 02:00:44 +02:00
sed -E -i "s/\"key\":\s*\"(FREE|[a-zA-Z0-9-]{32})\"/\"key\":\"${CP_KEY}\"/" \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_DOMAIN}"/config/default/config.js
2019-10-16 02:00:44 +02:00
fi
2020-05-01 21:48:52 +02:00
if [ "${#CP_DATE}" -eq "10" ]; then
2019-10-16 02:00:44 +02:00
sed -E -i "s/\"date\":\s*\"[0-9-]*\"/\"date\":\"${CP_DATE}\"/" \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_DOMAIN}"/config/production/config.js
2019-10-16 02:00:44 +02:00
sed -E -i "s/\"date\":\s*\"[0-9-]*\"/\"date\":\"${CP_DATE}\"/" \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_DOMAIN}"/config/default/config.js
2019-10-16 02:00:44 +02:00
fi
2020-02-20 22:15:28 +01:00
if [ "${DISABLE_SSL}" = "" ]; then
2020-05-01 21:48:52 +02:00
docker exec "${LOCAL_DOMAIN_}" /usr/bin/cinemapress container protocol "https://"
2020-02-20 22:15:28 +01:00
fi
2020-05-12 22:31:58 +02:00
if [ -f /home/"${CP_BOMAIN}"/config/production/nginx/conf.d/disabled.conf ]; then
mv -f /home/"${CP_BOMAIN}"/config/production/nginx/conf.d/disabled.conf \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf 2>/dev/null
fi
2021-04-25 22:15:49 +02:00
for all_server in /home/*/config/production/nginx/conf.d/default.conf; do
[ -f "${all_server}" ] || continue
sed -i '/pagespeed/d' "${all_server}"
done
2021-04-29 21:27:01 +02:00
docker exec nginx nginx -s reload >>/var/log/docker_update_"$(date '+%d_%m_%Y')".log 2>&1
docker restart "${LOCAL_DOMAIN_}" >>/var/log/docker_update_"$(date '+%d_%m_%Y')".log 2>&1
2019-12-14 21:23:04 +01:00
sleep 10
2019-10-01 21:34:02 +02:00
}
3_backup() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2021-02-03 02:34:29 +01:00
LOCAL_ACTION=${2} # 1 | 2 | 3 | create | restore | config | opendrive | ftp
2019-11-11 02:12:38 +01:00
LOCAL_MEGA_EMAIL=${3:-${MEGA_EMAIL}}
LOCAL_MEGA_PASSWORD=${4:-${MEGA_PASSWORD}}
LOCAL_ACTION2=${5} # 1 | 2 | create | restore
LOCAL_DOMAIN2=${6:-${LOCAL_DOMAIN}}
2020-04-08 21:28:13 +02:00
echo "${PRC_}% backup" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-16 01:19:08 +01:00
fi
2019-11-11 02:12:38 +01:00
if [ -f "/var/rclone.conf" ] && [ ! -f "/home/${LOCAL_DOMAIN}/config/production/rclone.conf" ]; then
2020-05-02 03:34:49 +02:00
cp -r /var/rclone.conf /home/"${LOCAL_DOMAIN}"/config/production/rclone.conf
2019-11-11 02:12:38 +01:00
elif [ -f "/home/${LOCAL_DOMAIN}/config/production/rclone.conf" ]; then
2020-05-02 03:34:49 +02:00
cp -r /home/"${LOCAL_DOMAIN}"/config/production/rclone.conf /var/rclone.conf
2019-10-01 21:34:02 +02:00
fi
2019-11-11 02:12:38 +01:00
2020-04-26 05:09:33 +02:00
sleep 5
2021-02-02 07:52:55 +01:00
RCS=$(docker exec -t "${LOCAL_DOMAIN_}" rclone config show 2>/dev/null | grep "CINEMAPRESS")
2019-11-11 02:12:38 +01:00
2021-02-03 02:34:29 +01:00
LOCAL_CONF_STORAGE=()
if [ "${LOCAL_ACTION}" = "opendrive" ]; then
LOCAL_CONF_STORAGE=(opendrive username "${LOCAL_MEGA_EMAIL}" password "${LOCAL_MEGA_PASSWORD}")
docker exec "${LOCAL_DOMAIN_}" rclone config create CINEMAPRESS "${LOCAL_CONF_STORAGE[@]}" \
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
sh_progress 100
exit 0
elif [ "${LOCAL_ACTION}" = "ftp" ]; then
if [ "${LOCAL_DOMAIN2}" = "static" ]; then
LOCAL_CONF_STORAGE=(ftp user "${LOCAL_MEGA_EMAIL}" pass "${LOCAL_MEGA_PASSWORD}" host "${LOCAL_ACTION2}")
docker exec "${LOCAL_DOMAIN_}" rclone config create CINEMASTATIC "${LOCAL_CONF_STORAGE[@]}" \
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
sh_progress 100
exit 0
fi
LOCAL_CONF_STORAGE=(ftp user "${LOCAL_MEGA_EMAIL}" pass "${LOCAL_MEGA_PASSWORD}" host "${LOCAL_ACTION2}")
docker exec "${LOCAL_DOMAIN_}" rclone config create CINEMAPRESS "${LOCAL_CONF_STORAGE[@]}" \
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
sh_progress 100
exit 0
else
LOCAL_CONF_STORAGE=(mega user "${LOCAL_MEGA_EMAIL}" pass "${LOCAL_MEGA_PASSWORD}")
fi
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_ACTION}" = "config" ] || [ "${LOCAL_ACTION}" = "3" ] || [ "${RCS}" = "" ]; then
if [ "${LOCAL_MEGA_EMAIL}" != "" ] && [ "${LOCAL_MEGA_PASSWORD}" != "" ]; then
2019-10-01 21:34:02 +02:00
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% config check-connection" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
2021-02-03 02:34:29 +01:00
docker exec "${LOCAL_DOMAIN_}" rclone config create CINEMAPRESS "${LOCAL_CONF_STORAGE[@]}" \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
2020-06-05 23:39:12 +02:00
sleep 10
2021-02-02 07:52:55 +01:00
CHECK_MKDIR=$(docker exec -t "${LOCAL_DOMAIN_}" rclone mkdir CINEMAPRESS:/check-connection 2>/dev/null)
sleep 3
2021-04-22 00:42:02 +02:00
CHECK_RMDIR=$(docker exec -t "${LOCAL_DOMAIN_}" rclone rmdir CINEMAPRESS:/check-connection 2>/dev/null)
if [ "${CHECK_MKDIR}" != "" ] || [ "${CHECK_RMDIR}" != "" ]; then
_header "ERROR"
_content
_content "Cannot connect to backup storage."
_content
_s
exit 0
fi
2020-05-02 03:34:49 +02:00
cp -r /home/"${LOCAL_DOMAIN}"/config/production/rclone.conf /var/rclone.conf
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_ACTION2}" = "create" ] || [ "${LOCAL_ACTION2}" = "1" ]; then
2020-05-02 03:34:49 +02:00
docker exec "${LOCAL_DOMAIN_}" /usr/bin/cinemapress container backup create hand \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-11 02:12:38 +01:00
elif [ "${LOCAL_ACTION2}" = "restore" ] || [ "${LOCAL_ACTION2}" = "2" ]; then
2020-05-02 03:34:49 +02:00
docker exec "${LOCAL_DOMAIN_}" /usr/bin/cinemapress container backup restore "${LOCAL_DOMAIN2}" \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
docker exec nginx nginx -s reload \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-24 02:09:54 +02:00
fi
2019-10-01 21:34:02 +02:00
else
2020-03-11 02:21:54 +01:00
_header "ERROR RCLONE CONFIG"
2019-10-01 21:34:02 +02:00
_content
2020-03-11 02:21:54 +01:00
_content "Configure for MEGA.nz cloud storage in one line:"
2019-10-01 21:34:02 +02:00
_content
2020-03-11 02:21:54 +01:00
printf " ~# cinemapress b %s config \"email\" \"pass\"" "${LOCAL_DOMAIN}"
2019-10-27 19:59:39 +01:00
_br
2019-10-24 02:09:54 +02:00
_content
_content "email - your email on MEGA.nz"
_content "pass - your password on MEGA.nz"
_content
2021-02-03 02:34:29 +01:00
_content "Configure for FTP storage in one line:"
_content
printf " ~# cinemapress b %s ftp \"user\" \"pass\" \"host\"" "${LOCAL_DOMAIN}"
_br
_content
_content "user - your username on FTP"
_content "pass - your password on FTP"
_content "host - your IP/host on FTP"
_content
2019-10-24 02:09:54 +02:00
_content "after creating config, you can create/restore backup:"
_content
2020-03-11 02:21:54 +01:00
printf " ~# cinemapress b %s create" "${LOCAL_DOMAIN}"
2019-10-27 19:59:39 +01:00
_br
2020-03-11 02:21:54 +01:00
printf " ~# cinemapress b %s restore" "${LOCAL_DOMAIN}"
2019-10-01 21:34:02 +02:00
_br
_content
_s
exit 0
fi
2019-11-11 02:12:38 +01:00
else
if [ "${LOCAL_ACTION}" = "" ]; then
2019-10-25 04:09:31 +02:00
_header "MAKE A CHOICE"
printf "${C}---- ${G}1)${NC} create ${S}-------------------- Create New Backup Website ${C}----\n"
printf "${C}---- ${G}2)${NC} restore ${S}------------ Restore Website From Last Backup ${C}----\n"
_s
2019-11-11 02:12:38 +01:00
read -e -p 'OPTION [1-2]: ' LOCAL_ACTION
2020-05-02 03:34:49 +02:00
LOCAL_ACTION=$(echo "${LOCAL_ACTION}" | iconv -c -t UTF-8)
2019-10-25 04:09:31 +02:00
_br
fi
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% backup check-connection" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
2021-02-02 07:52:55 +01:00
CHECK_MKDIR=$(docker exec -t "${LOCAL_DOMAIN_}" rclone mkdir CINEMAPRESS:/check-connection 2>/dev/null)
sleep 3
2021-04-22 00:42:02 +02:00
CHECK_RMDIR=$(docker exec -t "${LOCAL_DOMAIN_}" rclone rmdir CINEMAPRESS:/check-connection 2>/dev/null)
if [ "${CHECK_MKDIR}" != "" ] || [ "${CHECK_RMDIR}" != "" ]; then
_header "ERROR"
_content
_content "Cannot connect to backup storage."
_content
_s
exit 0
fi
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_ACTION}" = "create" ] || [ "${LOCAL_ACTION}" = "1" ]; then
2020-04-10 02:11:50 +02:00
docker exec "${LOCAL_DOMAIN_}" /usr/bin/cinemapress container backup create hand \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-11 02:12:38 +01:00
elif [ "${LOCAL_ACTION}" = "restore" ] || [ "${LOCAL_ACTION}" = "2" ]; then
2020-03-11 02:21:54 +01:00
docker exec "${LOCAL_DOMAIN_}" /usr/bin/cinemapress container backup restore \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
docker exec nginx nginx -s reload \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_backup_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-25 04:09:31 +02:00
fi
2019-10-01 21:34:02 +02:00
fi
2019-12-14 21:23:04 +01:00
sleep 10
2019-10-01 21:34:02 +02:00
}
4_theme() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
LOCAL_THEME=${2:-${CP_THEME}}
2020-04-08 21:28:13 +02:00
echo "${PRC_}% theme" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2019-10-01 21:34:02 +02:00
YES="NOT"
2019-11-11 02:12:38 +01:00
if [ -d "/home/${LOCAL_DOMAIN}/themes/${LOCAL_THEME}" ]; then
_header "${LOCAL_THEME}";
2019-10-01 21:34:02 +02:00
_content
_content "This theme exists!"
_content
_s
2019-12-03 04:24:22 +01:00
if [ ${3} ]
2019-10-01 21:34:02 +02:00
then
2019-12-03 04:24:22 +01:00
YES=${3}
2019-10-01 21:34:02 +02:00
YES=`echo ${YES} | iconv -c -t UTF-8`
echo "Update? [YES/not] : ${YES}"
else
read -e -p 'Update? [YES/not] : ' YES
YES=`echo ${YES} | iconv -c -t UTF-8`
fi
_br
if [ "${YES}" != "ДА" ] && [ "${YES}" != "Да" ] && [ "${YES}" != "да" ] && [ "${YES}" != "YES" ] && [ "${YES}" != "Yes" ] && [ "${YES}" != "yes" ] && [ "${YES}" != "Y" ] && [ "${YES}" != "y" ] && [ "${YES}" != "" ]
then
exit 0
else
2020-03-11 02:21:54 +01:00
git clone https://${GIT_SERVER}/CinemaPress/Theme-"${LOCAL_THEME}".git \
/var/"${LOCAL_THEME}" >>/var/log/docker_theme_"$(date '+%d_%m_%Y')".log 2>&1
mkdir -p /home/"${LOCAL_DOMAIN}"/themes/"${LOCAL_THEME}"/
cp -rf /var/"${LOCAL_THEME}"/* /home/"${LOCAL_DOMAIN}"/themes/"${LOCAL_THEME}"/
2019-11-11 02:12:38 +01:00
sed -Ei "s/\"theme\":\s*\"[a-zA-Z0-9-]*\"/\"theme\":\"${LOCAL_THEME}\"/" \
2020-03-11 02:21:54 +01:00
/home/"${LOCAL_DOMAIN}"/config/production/config.js
docker exec "${LOCAL_DOMAIN_}" node optimal.js "${LOCAL_THEME}" \
>>/var/log/docker_theme_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
fi
else
2020-03-11 02:21:54 +01:00
git clone https://${GIT_SERVER}/CinemaPress/Theme-"${LOCAL_THEME}".git \
/var/"${LOCAL_THEME}" >>/var/log/docker_theme_"$(date '+%d_%m_%Y')".log 2>&1
mkdir -p /home/"${LOCAL_DOMAIN}"/themes/"${LOCAL_THEME}"/
cp -rf /var/"${LOCAL_THEME}"/* /home/"${LOCAL_DOMAIN}"/themes/"${LOCAL_THEME}"/
2019-11-11 02:12:38 +01:00
sed -Ei "s/\"theme\":\s*\"[a-zA-Z0-9-]*\"/\"theme\":\"${LOCAL_THEME}\"/" \
2020-03-11 02:21:54 +01:00
/home/"${LOCAL_DOMAIN}"/config/production/config.js
docker exec "${LOCAL_DOMAIN_}" node optimal.js "${LOCAL_THEME}" \
>>/var/log/docker_theme_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
fi
2020-03-11 02:21:54 +01:00
rm -rf /var/"${LOCAL_THEME:?}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% theme" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
2020-03-11 02:21:54 +01:00
if [ "$(docker -v 2>/dev/null)" != "" ]; then
docker restart "${LOCAL_DOMAIN_}" >>/var/log/docker_theme_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-05 03:06:15 +01:00
fi
2019-12-14 21:23:04 +01:00
sleep 10
2019-10-01 21:34:02 +02:00
}
5_database() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-03-11 02:21:54 +01:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
2020-04-08 21:28:13 +02:00
echo "${PRC_}% database" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2021-06-06 01:49:47 +02:00
_header "MOVIES"
_content
_content "Update movies information"
_content "using the instructions:"
_content "https://enota.club/threads/3043"
_content
_s
exit 0
2019-10-01 21:34:02 +02:00
}
2019-10-11 15:26:59 +02:00
6_https() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
LOCAL_CLOUDFLARE_EMAIL=${2:-${CLOUDFLARE_EMAIL}}
LOCAL_CLOUDFLARE_API_KEY=${3:-${CLOUDFLARE_API_KEY}}
2020-05-01 21:48:52 +02:00
LOCAL_SUBDOMAIN=${4:-}
2019-10-11 15:26:59 +02:00
2020-04-08 21:28:13 +02:00
echo "${PRC_}% https" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-16 01:19:08 +01:00
fi
NGX="/home/${LOCAL_DOMAIN}/config/production/nginx"
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_CLOUDFLARE_EMAIL}" != "" ] \
&& [ "${LOCAL_CLOUDFLARE_API_KEY}" != "" ]; then
echo -e "dns_cloudflare_email = \"${LOCAL_CLOUDFLARE_EMAIL}\"\ndns_cloudflare_api_key = \"${LOCAL_CLOUDFLARE_API_KEY}\"" \
> "${NGX}/cloudflare.ini"
2019-10-11 15:26:59 +02:00
2020-04-03 03:32:08 +02:00
_header "Generating, please wait ..."
_br
2019-10-15 23:14:12 +02:00
2020-04-03 03:50:00 +02:00
sleep 5
DOMAINS=(-d "${LOCAL_DOMAIN}" -d *."${LOCAL_DOMAIN}")
2020-05-01 21:48:52 +02:00
if [ "${LOCAL_SUBDOMAIN}" != "" ]; then
for SUBDOMAIN in $LOCAL_SUBDOMAIN; do DOMAINS=("${DOMAINS[@]}" -d *."${SUBDOMAIN}"."${LOCAL_DOMAIN}"); done
2020-05-01 21:48:52 +02:00
fi
2020-04-25 04:23:11 +02:00
2019-10-11 15:26:59 +02:00
docker run \
--rm \
-v "${NGX}/ssl.d:/etc/letsencrypt" \
-v "${NGX}/letsencrypt:/var/lib/letsencrypt" \
-v "${NGX}/cloudflare.ini:/cloudflare.ini" \
2019-10-11 15:26:59 +02:00
certbot/dns-cloudflare \
certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /cloudflare.ini \
--email "support@${LOCAL_DOMAIN}" \
2019-10-11 15:26:59 +02:00
--non-interactive \
--agree-tos \
"${DOMAINS[@]}" \
2019-10-11 15:26:59 +02:00
--server https://acme-v02.api.letsencrypt.org/directory \
>>/var/log/docker_https_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-11 15:26:59 +02:00
2020-04-03 03:32:08 +02:00
sleep 15
2020-04-25 04:23:11 +02:00
if [ -d "${NGX}/ssl.d/live/${LOCAL_DOMAIN}/" ]; then
openssl dhparam -out "${NGX}/ssl.d/live/${LOCAL_DOMAIN}/dhparam.pem" 2048 \
>>/var/log/docker_https_"$(date '+%d_%m_%Y')".log 2>&1
2020-04-25 02:18:55 +02:00
sed -Ei "s~/self-signed/~/live/~g" "${NGX}/ssl.d/default.conf"
2020-06-09 21:11:57 +02:00
sed -Ei "s/ssl_stapling off;/ssl_stapling on;/g" "${NGX}/ssl.d/default.conf"
sed -Ei "s/#ssl //g" "${NGX}/conf.d/default.conf"
2019-10-15 23:14:12 +02:00
sed -Ei "s/\"protocol\":\s*\"http:/\"protocol\":\"https:/" \
2021-04-25 22:15:49 +02:00
"/home/${LOCAL_DOMAIN}/config/production/config.js" >/dev/null
docker restart "${LOCAL_DOMAIN_}" \
>>/var/log/docker_https_"$(date '+%d_%m_%Y')".log 2>&1
_header "Generating wildcard certificate, completed successfully!"
2020-04-03 03:57:08 +02:00
_br
else
_header "ERROR"
_content
_content "Wildcard SSL certificate is not generated,"
_content "check the correct Email and Global API Key."
_content
_s
2019-10-01 21:34:02 +02:00
fi
elif [ "${LOCAL_CLOUDFLARE_EMAIL}" = "ss" ]; then
rm -rf "${NGX}"/ssl.d/self-signed/"${LOCAL_DOMAIN}"
mkdir -p "${NGX}"/ssl.d/self-signed/"${LOCAL_DOMAIN}"
openssl req \
-x509 \
-nodes \
-days 3650 \
-subj "/C=CA/ST=QC/O=${LOCAL_DOMAIN}/CN=${LOCAL_DOMAIN}" \
-addext "subjectAltName=DNS:${LOCAL_DOMAIN}" \
-newkey rsa:2048 \
-keyout "${NGX}"/ssl.d/self-signed/"${LOCAL_DOMAIN}"/privkey.pem \
-out "${NGX}"/ssl.d/self-signed/"${LOCAL_DOMAIN}"/fullchain.pem
openssl dhparam \
-out "${NGX}"/ssl.d/self-signed/"${LOCAL_DOMAIN}"/dhparam.pem 2048
sed -Ei "s/live/self-signed/g" "${NGX}/ssl.d/default.conf"
2020-06-09 21:11:57 +02:00
sed -Ei "s/ssl_stapling on;/ssl_stapling off;/g" "${NGX}/ssl.d/default.conf"
sed -Ei "s/#ssl //g" "${NGX}/conf.d/default.conf"
sed -Ei "s/\"protocol\":\s*\"http:/\"protocol\":\"https:/" \
2021-04-25 22:15:49 +02:00
"/home/${LOCAL_DOMAIN}/config/production/config.js" >/dev/null
docker restart "${LOCAL_DOMAIN_}" \
>>/var/log/docker_https_"$(date '+%d_%m_%Y')".log 2>&1
_header "Generating self-signed certificate, completed successfully!"
_br
2019-10-01 21:34:02 +02:00
fi
2019-12-14 21:23:04 +01:00
sleep 10
2019-10-01 21:34:02 +02:00
}
7_mirror() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
LOCAL_MIRROR=${2:-${CP_MIRROR}}
2020-05-01 21:48:52 +02:00
LOCAL_MIRROR_=$(echo "${LOCAL_MIRROR}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
if [ ! -f "/home/${LOCAL_MIRROR}/process.json" ]; then
if [ -f "/home/${LOCAL_DOMAIN}/process.json" ]; then
M_="${LOCAL_MIRROR_}"
LOCAL_MIRROR="${LOCAL_DOMAIN}"
LOCAL_MIRROR_="${LOCAL_DOMAIN_}"
LOCAL_DOMAIN=""
LOCAL_DOMAIN_="${M_}"
else
_header "ERROR"
_content
2019-11-11 02:12:38 +01:00
_content "First create a mirror website ${LOCAL_MIRROR},"
_content "import the movie database and"
_content "configure HTTPS on it (if you use it)."
_content
_s
exit 0
fi
2019-10-01 21:34:02 +02:00
fi
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% mirror" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-16 01:19:08 +01:00
fi
2020-05-01 21:48:52 +02:00
docker stop "${LOCAL_MIRROR_}" >>/var/log/docker_mirror_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-11 02:12:38 +01:00
if [ -f "/home/${LOCAL_DOMAIN}/process.json" ]; then
3_backup "${LOCAL_DOMAIN}" "create"
2020-05-01 21:48:52 +02:00
docker stop "${LOCAL_DOMAIN_}" \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_mirror_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
rm -rf \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/comment \
/home/"${LOCAL_MIRROR}"/config/content \
/home/"${LOCAL_MIRROR}"/config/rt \
/home/"${LOCAL_MIRROR}"/config/user
2019-10-01 21:34:02 +02:00
cp -r \
2019-11-11 02:12:38 +01:00
/home/${LOCAL_DOMAIN}/config/comment \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/comment
2019-10-01 21:34:02 +02:00
cp -r \
2019-11-11 02:12:38 +01:00
/home/${LOCAL_DOMAIN}/config/content \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/content
2019-10-01 21:34:02 +02:00
cp -r \
2019-11-11 02:12:38 +01:00
/home/${LOCAL_DOMAIN}/config/rt \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/rt
2019-10-01 21:34:02 +02:00
cp -r \
2019-11-11 02:12:38 +01:00
/home/${LOCAL_DOMAIN}/config/user \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/user
2019-11-11 04:39:10 +01:00
cp -r \
/home/${LOCAL_DOMAIN}/config/production/config.js \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/production/config.js
2019-11-11 04:39:10 +01:00
cp -r \
/home/${LOCAL_DOMAIN}/config/production/modules.js \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/config/production/modules.js
2019-11-11 04:39:10 +01:00
cp -r \
/home/${LOCAL_DOMAIN}/themes/default/public/desktop/* \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/themes/default/public/desktop/
2019-11-11 04:39:10 +01:00
cp -r \
/home/${LOCAL_DOMAIN}/themes/default/public/mobile/* \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/themes/default/public/mobile/
2019-11-11 04:39:10 +01:00
cp -r \
/home/${LOCAL_DOMAIN}/themes/default/views/mobile/* \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/themes/default/views/mobile/
2019-11-11 04:39:10 +01:00
cp -r \
/home/${LOCAL_DOMAIN}/files/* \
2020-05-01 21:48:52 +02:00
/home/"${LOCAL_MIRROR}"/files/
2019-11-11 04:39:10 +01:00
sed -Ei \
"s/${LOCAL_DOMAIN_}:3000/${LOCAL_MIRROR_}:3000/g" \
/home/${LOCAL_DOMAIN}/config/production/nginx/conf.d/default.conf
2019-10-01 21:34:02 +02:00
fi
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_DOMAIN_}" != "" ]; then
2020-05-01 21:48:52 +02:00
for f in /home/"${LOCAL_MIRROR}"/config/comment/comment_${LOCAL_DOMAIN_}.*; do
2019-11-11 02:12:38 +01:00
mv -f "${f}" "`echo ${f} | sed s/comment_${LOCAL_DOMAIN_}/comment_${LOCAL_MIRROR_}/`" 2>/dev/null
done
2020-05-01 21:48:52 +02:00
for f in /home/"${LOCAL_MIRROR}"/config/content/content_${LOCAL_DOMAIN_}.*; do
2019-11-11 02:12:38 +01:00
mv -f "${f}" "`echo ${f} | sed s/content_${LOCAL_DOMAIN_}/content_${LOCAL_MIRROR_}/`" 2>/dev/null
done
2020-05-01 21:48:52 +02:00
for f in /home/"${LOCAL_MIRROR}"/config/rt/rt_${LOCAL_DOMAIN_}.*; do
2019-11-11 02:12:38 +01:00
mv -f "${f}" "`echo ${f} | sed s/rt_${LOCAL_DOMAIN_}/rt_${LOCAL_MIRROR_}/`" 2>/dev/null
done
2020-05-01 21:48:52 +02:00
for f in /home/"${LOCAL_MIRROR}"/config/user/user_${LOCAL_DOMAIN_}.*; do
2019-11-11 02:12:38 +01:00
mv -f "${f}" "`echo ${f} | sed s/user_${LOCAL_DOMAIN_}/user_${LOCAL_MIRROR_}/`" 2>/dev/null
done
2019-10-01 21:34:02 +02:00
fi
2019-11-02 01:32:00 +01:00
sh_progress
2020-04-08 21:28:13 +02:00
echo "${PRC_}% mirror2" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2020-01-22 22:23:12 +01:00
2020-05-01 21:48:52 +02:00
docker start "${LOCAL_MIRROR_}" \
>>/var/log/docker_mirror_"$(date '+%d_%m_%Y')".log 2>&1
sleep 10
2020-05-10 01:36:46 +02:00
docker exec "${LOCAL_MIRROR_}" /usr/bin/cinemapress container mirror \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_mirror_"$(date '+%d_%m_%Y')".log 2>&1
2020-05-01 21:48:52 +02:00
sleep 10
2019-11-11 02:12:38 +01:00
docker exec nginx nginx -s reload \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_mirror_"$(date '+%d_%m_%Y')".log 2>&1
2019-12-14 21:23:04 +01:00
sleep 10
2019-10-01 21:34:02 +02:00
}
8_remove() {
2019-11-11 02:12:38 +01:00
LOCAL_DOMAIN=${1:-${CP_DOMAIN}}
2020-05-01 21:48:52 +02:00
LOCAL_DOMAIN_=$(echo "${LOCAL_DOMAIN}" | sed -r "s/[^A-Za-z0-9]/_/g")
2019-11-11 02:12:38 +01:00
LOCAL_FULL=${2}
LOCAL_SAFE=${3}
2020-04-08 21:28:13 +02:00
echo "${PRC_}% remove" >>/var/log/docker_log_"$(date '+%d_%m_%Y')".log
2021-01-19 05:21:55 +01:00
if [ "$(grep "_uptimerobot" /etc/crontab)" != "" ]; then
touch "/home/.uptimerobot" &>/dev/null
2021-01-18 04:00:16 +01:00
fi
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_SAFE}" = "safe" ] && [ -f "/home/${LOCAL_DOMAIN}/config/production/config.js" ]; then
T=`grep "\"theme\"" /home/${LOCAL_DOMAIN}/config/production/config.js`
L=`grep "\"language\"" /home/${LOCAL_DOMAIN}/config/production/config.js`
2021-01-15 23:19:28 +01:00
CP_THEME=`echo ${T} | sed 's/.*"theme":\s*"\([a-zA-Z0-9_-]*\)".*/\1/'`
2019-10-16 02:00:44 +02:00
CP_LANG=`echo ${L} | sed 's/.*"language":\s*"\([a-z]*\)".*/\1/'`
if [ "${CP_THEME}" = "" ] \
|| [ "${CP_LANG}" = "" ] \
|| [ "${CP_THEME}" = "${T}" ] \
|| [ "${CP_LANG}" = "${L}" ]; then
_header "ERROR"
_content
_content "The field has an invalid value:"
_content "CP_THEME: ${CP_THEME}"
_content "CP_LANG: ${CP_LANG}"
_content
_line
exit 0
fi
fi
2019-12-03 02:06:09 +01:00
docker stop ${LOCAL_DOMAIN_} >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
docker rm -f ${LOCAL_DOMAIN_} >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# docker build -t cinemapress/docker https://github.com/CinemaPress/CinemaPress.git
2019-12-03 02:06:09 +01:00
docker pull cinemapress/docker:latest >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-11 02:12:38 +01:00
sed -i "s/.*${LOCAL_DOMAIN}.*//g" /etc/crontab &> /dev/null
2019-12-03 02:06:09 +01:00
rm -rf /home/${LOCAL_DOMAIN:?}
rm -rf /root/${LOCAL_DOMAIN:?}
2019-11-11 02:12:38 +01:00
if [ "${LOCAL_FULL}" != "" ]; then
2020-01-08 22:50:14 +01:00
echo "STOP NGINX" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2019-12-03 02:06:09 +01:00
docker stop nginx >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2020-01-08 22:50:14 +01:00
echo "RM NGINX" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2019-12-03 02:06:09 +01:00
docker rm -f nginx >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2020-01-08 22:50:14 +01:00
echo "PULL NGINX" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# docker build -t cinemapress/nginx https://github.com/CinemaPress/CinemaPress.git#:config/default/nginx
2019-12-03 02:06:09 +01:00
docker pull cinemapress/nginx:latest >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2021-01-16 01:40:39 +01:00
# echo "STOP FAIL2BAN" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# docker stop fail2ban >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# echo "RM FAIL2BAN" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# docker rm -f fail2ban >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# echo "PULL FAIL2BAN" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# # docker build -t cinemapress/fail2ban https://github.com/CinemaPress/CinemaPress.git#:config/default/fail2ban
2021-01-16 01:40:39 +01:00
# docker pull cinemapress/fail2ban:latest >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# echo "STOP FILESTASH" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# docker stop filestash >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# echo "RM FILESTASH" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# docker rm -f filestash >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# echo "PULL FILESTASH" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
# # docker build -t cinemapress/filestash https://github.com/CinemaPress/CinemaPress.git#:config/default/filestash
2021-01-16 01:40:39 +01:00
# docker pull cinemapress/filestash:latest >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-15 19:45:11 +02:00
fi
2020-01-08 22:50:14 +01:00
echo "RMI OLD" >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
docker rmi -f $(docker images -f 'dangling=true' -q) >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2019-12-14 21:23:04 +01:00
sleep 10
2019-10-01 21:34:02 +02:00
}
option() {
clear
_line
_logo
_header "MAKE A CHOICE"
2021-04-16 23:26:18 +02:00
printf "${C}---- ${G}i)${NC} install ${S}------------------ Create Movies / TV Website ${C}----\n"
printf "${C}---- ${G}u)${NC} update ${S}------------------- Upgrade CinemaPress System ${C}----\n"
printf "${C}---- ${G}b)${NC} backup ${S}-------------------- Backup System Master Data ${C}----\n"
printf "${C}---- ${G}t)${NC} theme ${S}------------- Install / Update Website Template ${C}----\n"
printf "${C}---- ${G}h)${NC} https ${S}-------------- Getting Wildcard SSL Certificate ${C}----\n"
printf "${C}---- ${G}r)${NC} remove ${S}---------------------------- Uninstall Website ${C}----\n"
2019-10-01 21:34:02 +02:00
_s
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
OPTION=${1}
2021-04-16 23:26:18 +02:00
echo "OPTION: ${OPTION}"
2019-10-01 21:34:02 +02:00
else
2021-04-16 23:26:18 +02:00
read -e -p 'OPTION: ' OPTION
2019-10-01 21:34:02 +02:00
OPTION=`echo ${OPTION} | iconv -c -t UTF-8`
fi
if [ "${OPTION}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${OPTION}" | grep -qE ^[0-9a-z]+$
2019-10-01 21:34:02 +02:00
then
AGAIN=10
else
2021-04-16 23:26:18 +02:00
printf "${R}WARNING:${NC} Enter the letter of the option. \n"
2019-10-01 21:34:02 +02:00
AGAIN=$((${AGAIN}+1))
fi
else
printf "${R}WARNING:${NC} Make your choice. \n"
AGAIN=$((${AGAIN}+1))
fi
done
printf "\n${NC}"
}
read_domain() {
2019-11-11 02:12:38 +01:00
CP_DOMAIN=${1:-${CP_DOMAIN}}
2019-10-01 21:34:02 +02:00
if [ "${CP_DOMAIN}" = "" ]; then
_header "DOMAIN NAME OR IP"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_DOMAIN=${1}
CP_DOMAIN=`echo ${CP_DOMAIN} | iconv -c -t UTF-8`
echo ": ${CP_DOMAIN}"
else
2020-03-26 01:21:46 +01:00
AUTO_DOMAIN=""
cd /home && for D in *; do
2020-05-10 03:36:17 +02:00
if [ -d "$D" ] && [ -f "$D/process.json" ] && [ -f "$D/app.js" ] && [ "${AUTO_DOMAIN}" = "" ]; then
2020-03-26 01:21:46 +01:00
AUTO_DOMAIN="$D"
fi
done
if [ "${AUTO_DOMAIN}" = "" ]; then
read -e -p ': ' CP_DOMAIN
else
read -e -p ': ' -i "${AUTO_DOMAIN}" CP_DOMAIN
fi
2019-10-01 21:34:02 +02:00
CP_DOMAIN=`echo ${CP_DOMAIN} | iconv -c -t UTF-8`
fi
if [ "${CP_DOMAIN}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${CP_DOMAIN}" | grep -qE ^[.a-z0-9-]+$
2019-10-01 21:34:02 +02:00
then
CP_DOMAIN_=`echo ${CP_DOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
if [ "`expr "${CP_DOMAIN}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" != "0" ]; then
CP_IP="ip"
2019-10-01 21:34:02 +02:00
fi
AGAIN=10
else
printf "${NC} You entered: ${R}${CP_DOMAIN}${NC} \n"
printf "${R}WARNING:${NC} Only latin lowercase characters, \n"
printf "${NC} numbers, dots, and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
else
printf "${R}WARNING:${NC} Domain name cannot be blank. \n"
AGAIN=$((${AGAIN}+1))
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CP_DOMAIN}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
if [ "`expr "${CP_DOMAIN}" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$'`" != "0" ]; then
while [ "`netstat -tunlp 2>/dev/null | grep :${EXTERNAL_PORT}`" != "" ]; do
RND=`sh_random 1 9999`
EXTERNAL_PORT=$((30000+${RND}))
done
if [ "`netstat -tunlp | grep 0.0.0.0:80`" = "" ] \
&& [ "`netstat -tunlp | grep :::80`" = "" ]; then
EXTERNAL_PORT="80"
fi
EXTERNAL_DOCKER="-p ${EXTERNAL_PORT}:3000"
CP_IP="ip"
fi
CP_DOMAIN_=`echo ${CP_DOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g"`
2019-10-01 21:34:02 +02:00
}
read_mirror() {
2019-11-11 02:12:38 +01:00
CP_MIRROR=${1:-${CP_MIRROR}}
2019-10-01 21:34:02 +02:00
if [ "${CP_MIRROR}" = "" ]; then
_header "MIRROR WEBSITE"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_MIRROR=${1}
CP_MIRROR=`echo ${CP_MIRROR} | iconv -c -t UTF-8`
echo ": ${CP_MIRROR}"
else
read -e -p ': ' CP_MIRROR
CP_MIRROR=`echo ${CP_MIRROR} | iconv -c -t UTF-8`
fi
if [ "${CP_MIRROR}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${CP_MIRROR}" | grep -qE ^[.a-z0-9-]+$
2019-10-01 21:34:02 +02:00
then
if [ "${CP_DOMAIN}" = "${CP_MIRROR}" ]
then
printf "${R}WARNING:${NC} The mirror of the website cannot be \n"
printf "${NC} the same as the domain of the main website! \n"
AGAIN=$((${AGAIN}+1))
else
CP_MIRROR_=`echo ${CP_MIRROR} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
AGAIN=10
fi
else
printf "${NC} You entered: ${R}${CP_MIRROR}${NC} \n"
printf "${R}WARNING:${NC} Only latin lowercase characters, \n"
printf "${NC} numbers, dots, and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
else
printf "${R}WARNING:${NC} Mirror domain name cannot be blank. \n"
AGAIN=$((${AGAIN}+1))
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CP_MIRROR}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
CP_MIRROR_=`echo ${CP_MIRROR} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
2019-10-01 21:34:02 +02:00
}
read_theme() {
2019-11-11 02:12:38 +01:00
CP_THEME=${1:-${CP_THEME}}
2019-10-01 21:34:02 +02:00
if [ "${CP_THEME}" = "" ]; then
_header "WEBSITE THEME"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_THEME=${1}
2020-03-11 02:21:54 +01:00
CP_THEME=$(echo ${CP_THEME} | iconv -c -t UTF-8)
2019-10-01 21:34:02 +02:00
echo ": ${CP_THEME}"
else
2021-03-08 21:36:34 +01:00
read -e -p ': ' -i "snow" CP_THEME
2020-03-11 02:21:54 +01:00
CP_THEME=$(echo ${CP_THEME} | iconv -c -t UTF-8)
2019-10-01 21:34:02 +02:00
fi
if [ "${CP_THEME}" = "" ]
then
AGAIN=10
2019-10-03 23:59:49 +02:00
CP_THEME='tarly'
2019-10-16 20:16:04 +02:00
echo ": ${CP_THEME}"
2019-10-01 21:34:02 +02:00
else
2021-05-11 23:24:49 +02:00
if [ "${CP_THEME}" = "default" ] || [ "${CP_THEME}" = "hodor" ] || [ "${CP_THEME}" = "sansa" ] || [ "${CP_THEME}" = "robb" ] || [ "${CP_THEME}" = "ramsay" ] || [ "${CP_THEME}" = "tyrion" ] || [ "${CP_THEME}" = "cersei" ] || [ "${CP_THEME}" = "joffrey" ] || [ "${CP_THEME}" = "drogo" ] || [ "${CP_THEME}" = "bran" ] || [ "${CP_THEME}" = "arya" ] || [ "${CP_THEME}" = "mormont" ] || [ "${CP_THEME}" = "tarly" ] || [ "${CP_THEME}" = "daenerys" ] || [ "${CP_THEME}" = "tormund" ] || [ "${CP_THEME}" = "snow" ] || [ "${CP_THEME}" = "dustin" ]
2019-10-01 21:34:02 +02:00
then
AGAIN=10
else
2021-01-09 01:12:50 +01:00
printf "%b There is no such theme! \n" "${NC}"
2021-03-07 20:34:14 +01:00
printf "%bWARNING:%b Currently there are theme: hodor, sansa, robb, ramsay, tyrion, cersei \n" "${R}" "${NC}"
2021-05-11 23:24:49 +02:00
printf "%b joffrey, drogo, bran, arya, mormont, tarly и daenerys, tormund, snow, dustin \n" "${NC}"
2020-03-11 02:21:54 +01:00
AGAIN=$(("${AGAIN}"+1))
2019-10-01 21:34:02 +02:00
fi
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CP_THEME}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
read_password() {
2019-11-11 02:12:38 +01:00
CP_PASSWD=${1:-${CP_PASSWD}}
2019-10-01 21:34:02 +02:00
if [ "${CP_PASSWD}" = "" ]; then
_header "PASSWORD ADMIN PANEL"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_PASSWD=${1}
CP_PASSWD=`echo ${CP_PASSWD} | iconv -c -t UTF-8`
echo ": ${CP_PASSWD}"
else
read -e -p ': ' -i "`echo ${RANDOM} | tr '[0-9]' '[a-z]'`${RANDOM}`echo ${RANDOM} | tr '[0-9]' '[a-z]'`" CP_PASSWD
CP_PASSWD=`echo ${CP_PASSWD} | iconv -c -t UTF-8`
fi
if [ "${CP_PASSWD}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${CP_PASSWD}" | grep -qE ^[a-zA-Z0-9]+$
then
AGAIN=10
else
printf "${NC} You entered: ${R}${CP_PASSWD}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters and numbers! \n"
AGAIN=$((${AGAIN}+1))
fi
2019-10-01 21:34:02 +02:00
else
printf "${R}WARNING:${NC} Admin panel password cannot be empty. \n"
AGAIN=$((${AGAIN}+1))
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CP_PASSWD}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
read_key() {
2019-11-11 02:12:38 +01:00
CP_KEY=${1:-${CP_KEY}}
2019-10-01 21:34:02 +02:00
if [ "${CP_KEY}" = "" ]; then
_header "DATABASE KEY"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]; then
CP_KEY=${1}
CP_KEY=`echo ${CP_KEY} | iconv -c -t UTF-8`
echo ": ${CP_KEY}"
else
read -e -p ': ' CP_KEY
CP_KEY=`echo ${CP_KEY} | iconv -c -t UTF-8`
fi
if [ "${CP_KEY}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${CP_KEY}" | grep -qE ^[A-Za-z0-9]+$
2019-10-01 21:34:02 +02:00
then
2019-10-16 20:16:04 +02:00
AGAIN=10
2019-10-01 21:34:02 +02:00
else
printf "${NC} You entered: ${R}${CP_KEY}${NC} \n "
2020-05-01 21:48:52 +02:00
printf "${R}WARNING:${NC} Only latin characters \n"
printf "${NC} and numbers are allowed! \n"
2019-10-01 21:34:02 +02:00
AGAIN=$((${AGAIN}+1))
fi
else
printf "${R}WARNING:${NC} You can purchase a key \n "
printf "${NC} in the admin panel of your website. \n "
AGAIN=$((${AGAIN}+1))
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CP_KEY}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
2019-10-16 20:16:04 +02:00
if [ "${CP_LANG}" = "" ]; then
L=`grep "\"language\"" /home/${CP_DOMAIN}/config/production/config.js`
CP_LANG=`echo "${L}" | sed 's/.*"language":\s*"\([a-z]*\)".*/\1/'`
if [ "${CP_LANG}" = "" ] \
|| [ "${CP_LANG}" = "${L}" ]; then
_header "ERROR";
_content
_content "Failed to determine"
_content "the language of the website."
_content
_s
exit 0
fi
fi
2019-10-01 21:34:02 +02:00
}
read_lang() {
2019-11-11 02:12:38 +01:00
CP_LANG=${1:-${CP_LANG}}
2019-10-01 21:34:02 +02:00
if [ "${CP_LANG}" = "" ]; then
_header "WEBSITE LANGUAGE"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_LANG=${1}
CP_LANG=`echo ${CP_LANG} | iconv -c -t UTF-8`
echo ": ${CP_LANG}"
else
read -e -p ': ' -i "en" CP_LANG
CP_LANG=`echo ${CP_LANG} | iconv -c -t UTF-8`
fi
if [ "${CP_LANG}" = "" ]
then
AGAIN=10
CP_LANG='en'
2019-10-03 23:59:49 +02:00
echo ": ${CP_LANG}"
2019-10-01 21:34:02 +02:00
else
if [ "${CP_LANG}" = "ru" ] || [ "${CP_LANG}" = "en" ] || [ "${CP_LANG}" = "Русский" ] || [ "${CP_LANG}" = "English" ] || [ "${CP_LANG}" = "русский" ] || [ "${CP_LANG}" = "english" ]
then
if [ "${CP_LANG}" = "ru" ] || [ "${CP_LANG}" = "Русский" ] || [ "${CP_LANG}" = "русский" ]
then
CP_LANG="ru"
else
CP_LANG="en"
fi
AGAIN=10
else
printf "${NC} There is no such language! \n"
printf "${R}WARNING:${NC} Currently there are \n"
printf "${NC} languages: ru and en. \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CP_LANG}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
2020-12-01 00:26:47 +01:00
read_cloudflare_zone_id() {
CLOUDFLARE_ZONE_ID=${1:-${CLOUDFLARE_ZONE_ID}}
if [ "${CLOUDFLARE_ZONE_ID}" = "" ]; then
_header "CLOUDFLARE ZONE ID"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CLOUDFLARE_ZONE_ID=${1}
CLOUDFLARE_ZONE_ID=`echo ${CLOUDFLARE_ZONE_ID} | iconv -c -t UTF-8`
echo ": ${CLOUDFLARE_ZONE_ID}"
else
read -e -p ': ' CLOUDFLARE_ZONE_ID
CLOUDFLARE_ZONE_ID=`echo ${CLOUDFLARE_ZONE_ID} | iconv -c -t UTF-8`
fi
if [ "${CLOUDFLARE_ZONE_ID}" != "" ]
then
if echo "${CLOUDFLARE_ZONE_ID}" | grep -qE ^[.a-zA-Z0-9-]+$
then
AGAIN=10
else
printf "${NC} You entered: ${R}${CLOUDFLARE_ZONE_ID}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters \n"
printf "${NC} and numbers are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
if [ "${CLOUDFLARE_ZONE_ID}" = "" ]; then exit 1; fi
fi
}
2019-10-01 21:34:02 +02:00
read_cloudflare_email() {
2019-11-11 02:12:38 +01:00
CLOUDFLARE_EMAIL=${1:-${CLOUDFLARE_EMAIL}}
2019-10-01 21:34:02 +02:00
if [ "${CLOUDFLARE_EMAIL}" = "" ]; then
_header "CLOUDFLARE EMAIL"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CLOUDFLARE_EMAIL=${1}
CLOUDFLARE_EMAIL=`echo ${CLOUDFLARE_EMAIL} | iconv -c -t UTF-8`
echo ": ${CLOUDFLARE_EMAIL}"
else
read -e -p ': ' CLOUDFLARE_EMAIL
CLOUDFLARE_EMAIL=`echo ${CLOUDFLARE_EMAIL} | iconv -c -t UTF-8`
fi
if [ "${CLOUDFLARE_EMAIL}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${CLOUDFLARE_EMAIL}" | grep -qE ^[.a-zA-Z0-9@_-]+$
2019-10-01 21:34:02 +02:00
then
AGAIN=10
else
printf "${NC} You entered: ${R}${CLOUDFLARE_EMAIL}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters, @, numbers, \n"
printf "${NC} dots, underscore and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CLOUDFLARE_EMAIL}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
read_cloudflare_api_key() {
2019-11-11 02:12:38 +01:00
CLOUDFLARE_API_KEY=${1:-${CLOUDFLARE_API_KEY}}
2019-10-01 21:34:02 +02:00
if [ "${CLOUDFLARE_API_KEY}" = "" ]; then
_header "CLOUDFLARE API KEY"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CLOUDFLARE_API_KEY=${1}
CLOUDFLARE_API_KEY=`echo ${CLOUDFLARE_API_KEY} | iconv -c -t UTF-8`
echo ": ${CLOUDFLARE_API_KEY}"
else
read -e -p ': ' CLOUDFLARE_API_KEY
CLOUDFLARE_API_KEY=`echo ${CLOUDFLARE_API_KEY} | iconv -c -t UTF-8`
fi
if [ "${CLOUDFLARE_API_KEY}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${CLOUDFLARE_API_KEY}" | grep -qE ^[.a-zA-Z0-9-]+$
2019-10-01 21:34:02 +02:00
then
AGAIN=10
else
printf "${NC} You entered: ${R}${CLOUDFLARE_API_KEY}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters \n"
printf "${NC} and numbers are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
2019-10-03 21:43:19 +02:00
if [ "${CLOUDFLARE_API_KEY}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
read_mega_email() {
2019-11-11 02:12:38 +01:00
MEGA_EMAIL=${1:-${MEGA_EMAIL}}
2019-10-01 21:34:02 +02:00
if [ "${MEGA_EMAIL}" = "" ]; then
2021-02-03 02:34:29 +01:00
_header "BACKUP EMAIL"
2019-10-01 21:34:02 +02:00
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
MEGA_EMAIL=${1}
MEGA_EMAIL=`echo ${MEGA_EMAIL} | iconv -c -t UTF-8`
echo ": ${MEGA_EMAIL}"
else
read -e -p ': ' MEGA_EMAIL
MEGA_EMAIL=`echo ${MEGA_EMAIL} | iconv -c -t UTF-8`
fi
if [ "${MEGA_EMAIL}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${MEGA_EMAIL}" | grep -qE ^[.a-zA-Z0-9@_-]+$
2019-10-01 21:34:02 +02:00
then
AGAIN=10
else
printf "${NC} You entered: ${R}${MEGA_EMAIL}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters, @, numbers, \n"
printf "${NC} dots, underscore and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
2019-10-03 21:43:19 +02:00
if [ "${MEGA_EMAIL}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
read_mega_password() {
2019-11-11 02:12:38 +01:00
MEGA_PASSWORD=${1:-${MEGA_PASSWORD}}
2019-10-01 21:34:02 +02:00
if [ "${MEGA_PASSWORD}" = "" ]; then
2021-02-03 02:34:29 +01:00
_header "BACKUP PASSWORD"
2019-10-01 21:34:02 +02:00
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
MEGA_PASSWORD=${1}
MEGA_PASSWORD=`echo ${MEGA_PASSWORD} | iconv -c -t UTF-8`
echo ": ${MEGA_PASSWORD}"
else
read -e -p ': ' MEGA_PASSWORD
MEGA_PASSWORD=`echo ${MEGA_PASSWORD} | iconv -c -t UTF-8`
fi
if [ "${MEGA_PASSWORD}" != "" ]
then
if echo "${MEGA_PASSWORD}" | grep -qE ^[.a-zA-Z0-9@_-!?]+$
2020-05-01 21:48:52 +02:00
then
AGAIN=10
else
printf "${NC} You entered: ${R}${MEGA_PASSWORD}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters \n"
printf "${NC} and numbers are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
2019-10-01 21:34:02 +02:00
fi
done
2019-10-03 21:43:19 +02:00
if [ "${MEGA_PASSWORD}" = "" ]; then exit 1; fi
2019-10-01 21:34:02 +02:00
fi
}
read_cms() {
NAME_CMS=${1:-${NAME_CMS}}
if [ "${NAME_CMS}" = "" ]; then
_header "NAME CMS"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
NAME_CMS=${1}
NAME_CMS=`echo ${NAME_CMS} | iconv -c -t UTF-8`
echo ": ${NAME_CMS}"
else
read -e -p ': ' -i "php-mysql" NAME_CMS
NAME_CMS=`echo ${NAME_CMS} | iconv -c -t UTF-8`
fi
if [ "${NAME_CMS}" = "" ]
then
AGAIN=10
NAME_CMS='php-mysql'
echo ": ${NAME_CMS}"
else
2020-04-05 23:00:45 +02:00
if [ "${NAME_CMS}" = "php-mysql" ] || [ "${NAME_CMS}" = "wordpress" ] || [ "${NAME_CMS}" = "drupal" ] || [ "${NAME_CMS}" = "joomla" ] || [ "${NAME_CMS}" = "dle" ] || [ "${NAME_CMS}" = "backup" ]
then
AGAIN=10
else
printf "${NC} There is no such CMS! \n"
printf "${R}WARNING:${NC} Currently there are \n"
2020-01-17 06:24:00 +01:00
printf "${NC} CMS: wordpress, drupal, joomla, dle and php-mysql. \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
if [ "${NAME_CMS}" = "" ]; then exit 1; fi
fi
}
2020-01-09 04:14:14 +01:00
read_os() {
NAME_OS=${1:-${NAME_OS}}
if [ "${NAME_OS}" = "" ]; then
_header "NAME OS"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
NAME_OS=${1}
NAME_OS=`echo ${NAME_OS} | iconv -c -t UTF-8`
echo ": ${NAME_OS}"
else
read -e -p ': ' -i "windows" NAME_OS
NAME_OS=`echo ${NAME_OS} | iconv -c -t UTF-8`
fi
if [ "${NAME_OS}" = "" ]
then
AGAIN=10
NAME_OS='windows'
echo ": ${NAME_OS}"
else
2020-03-06 03:44:55 +01:00
if [ "${NAME_OS}" = "macos" ] || [ "${NAME_OS}" = "ios" ] || [ "${NAME_OS}" = "apple" ]
then
NAME_OS="osx"
fi
2020-01-09 04:14:14 +01:00
if [ "${NAME_OS}" = "windows" ] || [ "${NAME_OS}" = "linux" ] || [ "${NAME_OS}" = "osx" ]
then
AGAIN=10
else
printf "${NC} There is no such OS! \n"
printf "${R}WARNING:${NC} Currently there are \n"
printf "${NC} OS: windows, linux and osx. \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
if [ "${NAME_OS}" = "" ]; then exit 1; fi
fi
}
read_app() {
APP_DOMAIN=${1:-${APP_DOMAIN}}
if [ "${APP_DOMAIN}" = "" ]; then
2020-03-06 03:44:55 +01:00
_header "DOMAIN NAME FOR SPLASH SCREEN"
2020-01-09 04:14:14 +01:00
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
APP_DOMAIN=${1}
APP_DOMAIN=`echo ${APP_DOMAIN} | iconv -c -t UTF-8`
echo ": ${APP_DOMAIN}"
else
read -e -p ': ' APP_DOMAIN
APP_DOMAIN=`echo ${APP_DOMAIN} | iconv -c -t UTF-8`
fi
if [ "${APP_DOMAIN}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${APP_DOMAIN}" | grep -qE ^[.a-z0-9-]+$
2020-01-09 04:14:14 +01:00
then
2020-01-09 05:44:03 +01:00
APP_DOMAIN_=`echo ${APP_DOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
2020-01-09 04:14:14 +01:00
AGAIN=10
else
printf "${NC} You entered: ${R}${APP_DOMAIN}${NC} \n"
printf "${R}WARNING:${NC} Only latin lowercase characters, \n"
printf "${NC} numbers, dots, and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
else
2020-03-06 03:44:55 +01:00
printf "${R}WARNING:${NC} Domain name for splash screen cannot be blank. \n"
2020-01-09 04:14:14 +01:00
AGAIN=$((${AGAIN}+1))
fi
done
if [ "${APP_DOMAIN}" = "" ]; then exit 1; fi
fi
APP_DOMAIN_=`echo ${APP_DOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g"`
}
2020-01-16 03:36:20 +01:00
read_import() {
IMPORT_DOMAIN=${1:-${IMPORT_DOMAIN}}
if [ "${IMPORT_DOMAIN}" = "" ]; then
_header "IMPORT DOMAIN NAME"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
IMPORT_DOMAIN=${1}
IMPORT_DOMAIN=`echo ${IMPORT_DOMAIN} | iconv -c -t UTF-8`
echo ": ${IMPORT_DOMAIN}"
else
read -e -p ': ' IMPORT_DOMAIN
IMPORT_DOMAIN=`echo ${IMPORT_DOMAIN} | iconv -c -t UTF-8`
fi
if [ "${IMPORT_DOMAIN}" != "" ]
then
2020-05-01 21:48:52 +02:00
if echo "${IMPORT_DOMAIN}" | grep -qE ^[.a-z0-9-]+$
2020-01-16 03:36:20 +01:00
then
IMPORT_DOMAIN_=`echo ${IMPORT_DOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
AGAIN=10
else
printf "${NC} You entered: ${R}${IMPORT_DOMAIN}${NC} \n"
printf "${R}WARNING:${NC} Only latin lowercase characters, \n"
printf "${NC} numbers, dots, and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
else
printf "${R}WARNING:${NC} Import domain name cannot be blank. \n"
AGAIN=$((${AGAIN}+1))
fi
done
if [ "${IMPORT_DOMAIN}" = "" ]; then exit 1; fi
fi
IMPORT_DOMAIN_=`echo ${IMPORT_DOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g"`
}
read_bomain() {
CP_BOMAIN=${1:-${CP_BOMAIN}}
if [ "${CP_BOMAIN}" = "" ]; then
2020-08-19 20:06:09 +02:00
_header "DOMAIN FOR BOTS / ALTERNATE DOMAIN"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_BOMAIN=${1}
CP_BOMAIN=`echo ${CP_BOMAIN} | iconv -c -t UTF-8`
echo ": ${CP_BOMAIN}"
else
read -e -p ': ' CP_BOMAIN
CP_BOMAIN=`echo ${CP_BOMAIN} | iconv -c -t UTF-8`
fi
if [ "${CP_BOMAIN}" != "" ]
then
if echo "${CP_BOMAIN}" | grep -qE ^[.a-z0-9-]+$
then
if [ "${CP_DOMAIN}" = "${CP_BOMAIN}" ]
then
2020-08-19 20:06:09 +02:00
printf "${R}WARNING:${NC} The alternate domain cannot be \n"
printf "${NC} the same as the domain for users! \n"
AGAIN=$((${AGAIN}+1))
else
CP_BOMAIN_=`echo ${CP_BOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
AGAIN=10
fi
else
printf "${NC} You entered: ${R}${CP_BOMAIN}${NC} \n"
printf "${R}WARNING:${NC} Only latin lowercase characters, \n"
printf "${NC} numbers, dots, and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
else
2020-08-19 20:06:09 +02:00
printf "${R}WARNING:${NC} Alternate domain name cannot be blank. \n"
AGAIN=$((${AGAIN}+1))
fi
done
if [ "${CP_BOMAIN}" = "" ]; then exit 1; fi
fi
CP_BOMAIN_=`echo ${CP_BOMAIN} | sed -r "s/[^A-Za-z0-9]/_/g" | sed -r "s/www\.//g" | sed -r "s/http:\/\///g" | sed -r "s/https:\/\///g"`
}
2021-01-12 23:48:38 +01:00
read_mode() {
CP_MODE=${1:-${CP_MODE}}
if [ "${CP_MODE}" = "" ]; then
_header "MODE debug/production"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
CP_MODE=${1}
CP_MODE=$(echo ${CP_MODE} | iconv -c -t UTF-8)
echo ": ${CP_MODE}"
else
read -e -p ': ' -i "production" CP_MODE
CP_MODE=$(echo ${CP_MODE} | iconv -c -t UTF-8)
fi
if [ "${CP_MODE}" = "" ]
then
AGAIN=10
CP_MODE='production'
echo ": ${CP_MODE}"
else
if [ "${CP_MODE}" = "production" ] || [ "${CP_MODE}" = "debug" ]
then
AGAIN=10
else
printf "%b There is no mode! \n" "${NC}"
printf "%bWARNING:%b Currently: debug, production \n" "${R}" "${NC}"
AGAIN=$(("${AGAIN}"+1))
fi
fi
done
if [ "${CP_MODE}" = "" ]; then exit 1; fi
fi
}
2021-03-31 01:26:36 +02:00
read_ftp_name() {
FTP_NAME=${1:-${FTP_NAME}}
if [ "${FTP_NAME}" = "" ]; then
_header "FTP NAME"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
FTP_NAME=${1}
FTP_NAME=`echo ${FTP_NAME} | iconv -c -t UTF-8`
echo ": ${FTP_NAME}"
else
AUTO_FTP_NAME=""
for N in {1..9}; do
CINEMATORRENT=$(docker exec -t "${CP_DOMAIN_}" rclone config show 2>/dev/null | grep "CINEMATORRENT${N}")
if [ "${CINEMATORRENT}" = "" ]; then
AUTO_FTP_NAME="CINEMATORRENT${N}"
break
fi
done
read -e -p ': ' -i "${AUTO_FTP_NAME}" FTP_NAME
FTP_NAME=`echo ${FTP_NAME} | iconv -c -t UTF-8`
fi
if [ "${FTP_NAME}" != "" ]
then
if echo "${FTP_NAME}" | grep -qE ^[A-Z0-9]+$
then
AGAIN=10
else
printf "${NC} You entered: ${R}${FTP_NAME}${NC} \n"
printf "${R}WARNING:${NC} Only upper case latin characters \n"
printf "${NC} and numbers are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
if [ "${FTP_NAME}" = "" ]; then exit 1; fi
fi
}
read_ftp_username() {
FTP_USERNAME=${1:-${FTP_USERNAME}}
if [ "${FTP_USERNAME}" = "" ]; then
_header "FTP USERNAME"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
FTP_USERNAME=${1}
FTP_USERNAME=`echo ${FTP_USERNAME} | iconv -c -t UTF-8`
echo ": ${FTP_USERNAME}"
else
read -e -p ': ' FTP_USERNAME
FTP_USERNAME=`echo ${FTP_USERNAME} | iconv -c -t UTF-8`
fi
if [ "${FTP_USERNAME}" != "" ]
then
if echo "${FTP_USERNAME}" | grep -qE ^[.a-zA-Z0-9@_-]+$
then
AGAIN=10
else
printf "${NC} You entered: ${R}${FTP_USERNAME}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters, @, numbers, \n"
printf "${NC} dots, underscore and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
if [ "${FTP_USERNAME}" = "" ]; then exit 1; fi
fi
}
read_ftp_password() {
FTP_PASSWORD=${1:-${FTP_PASSWORD}}
if [ "${FTP_PASSWORD}" = "" ]; then
_header "FTP PASSWORD"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
FTP_PASSWORD=${1}
FTP_PASSWORD=`echo ${FTP_PASSWORD} | iconv -c -t UTF-8`
echo ": ${FTP_PASSWORD}"
else
read -e -p ': ' FTP_PASSWORD
FTP_PASSWORD=`echo ${FTP_PASSWORD} | iconv -c -t UTF-8`
fi
if [ "${FTP_PASSWORD}" != "" ]
then
2021-05-23 03:29:00 +02:00
AGAIN=10
2021-03-31 01:26:36 +02:00
fi
done
if [ "${FTP_PASSWORD}" = "" ]; then exit 1; fi
fi
}
read_ftp_hostname() {
FTP_HOSTNAME=${1:-${FTP_HOSTNAME}}
if [ "${FTP_HOSTNAME}" = "" ]; then
_header "FTP HOSTNAME"
AGAIN=1
while [ "${AGAIN}" -lt "10" ]
do
if [ ${1} ]
then
FTP_HOSTNAME=${1}
FTP_HOSTNAME=`echo ${FTP_HOSTNAME} | iconv -c -t UTF-8`
echo ": ${FTP_HOSTNAME}"
else
read -e -p ': ' FTP_HOSTNAME
FTP_HOSTNAME=`echo ${FTP_HOSTNAME} | iconv -c -t UTF-8`
fi
if [ "${FTP_HOSTNAME}" != "" ]
then
2021-05-27 02:00:33 +02:00
if echo "${FTP_HOSTNAME}" | grep -qE ^[.:a-zA-Z0-9-]+$
2021-03-31 01:26:36 +02:00
then
AGAIN=10
else
printf "${NC} You entered: ${R}${FTP_HOSTNAME}${NC} \n"
printf "${R}WARNING:${NC} Only latin characters, numbers, \n"
printf "${NC} dots and hyphens are allowed! \n"
AGAIN=$((${AGAIN}+1))
fi
fi
done
if [ "${FTP_HOSTNAME}" = "" ]; then exit 1; fi
fi
}
2019-10-01 21:34:02 +02:00
sh_yes() {
if [ -f "/home/${CP_DOMAIN}/process.json" ]; then
clear
_line
_logo
_header "${CP_DOMAIN}";
_content
_content "Website on this domain is installed!"
_content
2021-02-14 07:03:59 +01:00
if [ -n "${1}" ]; then
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container "passwd" "${1}" \
>>/var/log/docker_passwd_"$(date '+%d_%m_%Y')".log 2>&1
docker exec nginx nginx -s reload \
>>/var/log/docker_passwd_"$(date '+%d_%m_%Y')".log 2>&1
_content "USERNAME: admin"
_content "PASSWORD: ${1}"
_content
2020-04-16 00:13:58 +02:00
_content "Reboot after 10 seconds ..."
_content "To cancel, press Ctrl + C"
_content
_s
sleep 10
reboot
fi
2021-01-04 00:51:38 +01:00
_s
2019-10-01 21:34:02 +02:00
exit 0
fi
}
sh_not() {
2020-05-30 00:25:48 +02:00
if [ ! -f "/home/${CP_DOMAIN}/process.json" ] && [ ! -f "/home/${CP_DOMAIN}/index.php" ]; then
2019-10-01 21:34:02 +02:00
clear
_line
_logo
_header "${CP_DOMAIN}";
_content
_content "Website on this domain is not installed!"
_content
_s
exit 0
fi
}
sh_random() {
FLOOR=${1}
RANGE=${2}
number=0
while [ "${number}" -le ${FLOOR} ]
do
number=$RANDOM
let "number %= $RANGE"
done
echo ${number}
}
sh_wget() {
local flag=false c count cr=$'\r' nl=$'\n'
while IFS='' read -d '' -rn 1 c
do
if $flag
2019-10-01 21:34:02 +02:00
then
printf '%s' "$c"
2019-10-01 21:34:02 +02:00
else
if [[ $c != $cr && $c != $nl ]]
2019-10-01 21:34:02 +02:00
then
count=0
else
((count++))
if ((count > 1))
then
flag=true
fi
fi
fi
done
}
sh_progress() {
if [ "${PRC_}" = "" ]; then PRC_=0; fi
if [ "${1}" != "" ]; then PRC_=${1}; fi
LR='\033[1;31m'; LG='\033[1;32m'; LY='\033[1;33m'; LC='\033[1;36m'; LW='\033[1;37m'; NC='\033[0m'
if [ "${PRC_}" = "0" ]; then TME=$(date +"%s"); fi
SEC=`printf "%04d\n" $(($(date +"%s")-${TME}))`; SEC="$SEC sec"
PRC=`printf "%.0f" ${PRC_}`
SHW=`printf "%3d\n" ${PRC}`
LNE=`printf "%.0f" $((${PRC}/2))`
LRR=`printf "%.0f" $((${PRC}/2-12))`; if [ ${LRR} -le 0 ]; then LRR=0; fi;
LYY=`printf "%.0f" $((${PRC}/2-24))`; if [ ${LYY} -le 0 ]; then LYY=0; fi;
LCC=`printf "%.0f" $((${PRC}/2-36))`; if [ ${LCC} -le 0 ]; then LCC=0; fi;
LGG=`printf "%.0f" $((${PRC}/2-48))`; if [ ${LGG} -le 0 ]; then LGG=0; fi;
LRR_=""; LYY_=""; LCC_=""; LGG_=""
for ((i=1;i<=13;i++))
do
DOTS=""; for ((ii=${i};ii<13;ii++)); do DOTS="${DOTS}."; done
if [ ${i} -le ${LNE} ]; then LRR_="${LRR_}#"; else LRR_="${LRR_}."; fi
echo -ne " ${LW}${SEC} ${LR}${LRR_}${DOTS}${LY}............${LC}............${LG}............ ${SHW}%${NC}\r"
if [ ${LNE} -ge 1 ]; then sleep .05; fi
done
for ((i=14;i<=25;i++))
do
DOTS=""; for ((ii=${i};ii<25;ii++)); do DOTS="${DOTS}."; done
if [ ${i} -le ${LNE} ]; then LYY_="${LYY_}#"; else LYY_="${LYY_}."; fi
echo -ne " ${LW}${SEC} ${LR}${LRR_}${LY}${LYY_}${DOTS}${LC}............${LG}............ ${SHW}%${NC}\r"
if [ ${LNE} -ge 14 ]; then sleep .05; fi
done
for ((i=26;i<=37;i++))
do
DOTS=""; for ((ii=${i};ii<37;ii++)); do DOTS="${DOTS}."; done
if [ ${i} -le ${LNE} ]; then LCC_="${LCC_}#"; else LCC_="${LCC_}."; fi
echo -ne " ${LW}${SEC} ${LR}${LRR_}${LY}${LYY_}${LC}${LCC_}${DOTS}${LG}............ ${SHW}%${NC}\r"
if [ ${LNE} -ge 26 ]; then sleep .05; fi
done
for ((i=38;i<=49;i++))
do
DOTS=""; for ((ii=${i};ii<49;ii++)); do DOTS="${DOTS}."; done
if [ ${i} -le ${LNE} ]; then LGG_="${LGG_}#"; else LGG_="${LGG_}."; fi
echo -ne " ${LW}${SEC} ${LR}${LRR_}${LY}${LYY_}${LC}${LCC_}${LG}${LGG_}${DOTS} ${SHW}%${NC}\r"
if [ ${LNE} -ge 38 ]; then sleep .05; fi
done
if [ "${PRC}" = "100" ]; then
printf "\n\n${NC}"
fi
PRC_=$((10+${PRC_}))
if [ ${PRC_} -gt 100 ]; then PRC_=100; fi
}
_content_l() {
__C=${1}; _M=$((${#__C})); _L=1; _R=$((57-${_M})); L_=""; R_=""
2019-10-01 21:34:02 +02:00
if [ "$((${#__C}%2))" != "0" ]; then _R=$((${_R})); fi
for ((l=1;l<=${_L};l++)); do L_=" ${L_}"; done
for ((r=1;r<=${_R};r++)); do R_=" ${R_}"; done
printf "${C}----${NC}${L_}${1}${R_}${C}----\n${NC}"
}
_content() {
__C=${1}; _M=$((${#__C}/2)); _L=$((29-${_M})); _R=$((29-${_M})); L_=""; R_=""
if [ "$((${#__C}%2))" != "0" ]; then _R=$((${_R}-1)); fi
for ((l=1;l<=${_L};l++)); do L_=" ${L_}"; done
for ((r=1;r<=${_R};r++)); do R_=" ${R_}"; done
printf "${C}----${NC}${L_}${1}${R_}${C}----\n${NC}"
}
_header() {
_C=${1}; _M=$((${#_C}/2)); _L=$((31-${_M})); _R=$((31-${_M})); L_=""; R_=""
if [ "$((${#_C}%2))" != "0" ]; then _R=$((${_R}-1)); fi
for ((l=1;l<=${_L};l++)); do L_="-${L_}"; done
for ((r=1;r<=${_R};r++)); do R_="-${R_}"; done
printf "${C}${L_}[ ${Y}${1}${C} ]${R_}\n${NC}"
}
_logo() {
printf " ${B} _______ ${G}_ ${B} ______ ${G} \n"
printf " ${B}(_______${G}|_) ${B}(_____ \ ${G} \n"
printf " ${B} _ ${G} _ ____ _____ ____ _____${B} _____) )${G}___ _____ ___ ___ \n"
printf " ${B}| | ${G}| | _ \| ___ | \(____ ${B}| ____/ ${G}___) ___ |/___)/___) \n"
printf " ${B}| |_____${G}| | | | | ____| | | / ___ ${B}| | ${G}| | | ____|___ |___ | \n"
printf " ${B} \______)${G}_|_| |_|_____)_|_|_\_____${B}|_| ${G}|_| |_____|___/(___/ \n"
printf "\n${NC}"
}
_line() {
printf "${C}------------------------------------------------------------------\n${NC}"
}
_br() {
if [ "${1}" = "" ]; then
printf "\n${NC}"
fi
2019-10-01 21:34:02 +02:00
}
_s() {
if [ "${1}" = "" ]; then
_line
_br
else
_br
fi
}
docker_run() {
if [ ! -d "/home/${CP_DOMAIN}/config/production" ]; then
2019-10-15 21:23:00 +02:00
find /var/cinemapress -maxdepth 1 -type f -iname '\.gitkeep' -delete
2020-05-01 21:48:52 +02:00
cp -rf /var/cinemapress/* /home/"${CP_DOMAIN}"
2020-04-26 05:09:33 +02:00
rm -rf /var/cinemapress/* /var/${CP_THEME:?}
2020-05-02 17:30:31 +02:00
cp -rf /home/"${CP_DOMAIN}"/config/locales/${CP_LANG}/default/sphinx/source.xml /etc/sphinx/source.xml
rm -rf /home/"${CP_DOMAIN}"/config/locales/${CP_LANG}/default/sphinx
2020-05-01 21:48:52 +02:00
cp -rf /home/"${CP_DOMAIN}"/config/locales/${CP_LANG}/* /home/"${CP_DOMAIN}"/config/
cp -rf /home/"${CP_DOMAIN}"/config/default/* /home/"${CP_DOMAIN}"/config/production/
cp -rf /home/"${CP_DOMAIN}"/files/bbb.mp4 /var/local/balancer/bbb.mp4
sed -Ei "s/127.0.0.1:3000/${CP_DOMAIN_}:3000/g" /home/"${CP_DOMAIN}"/config/production/nginx/conf.d/default.conf
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/config/production/nginx/conf.d/default.conf
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/config/production/nginx/error.d/default.conf
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/config/production/nginx/ssl.d/default.conf
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/config/production/nginx/any.d/default.conf
2020-05-01 21:48:52 +02:00
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/config/production/config.js
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/config/default/config.js
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /home/"${CP_DOMAIN}"/process.json
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /etc/sphinx/sphinx.conf
sed -Ei "s/example_com/${CP_DOMAIN_}/g" /etc/sphinx/source.xml
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/config/production/nginx/conf.d/default.conf
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/config/production/nginx/error.d/default.conf
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/config/production/nginx/ssl.d/default.conf
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/config/production/nginx/any.d/default.conf
2020-05-01 21:48:52 +02:00
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/config/production/config.js
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/config/default/config.js
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /home/"${CP_DOMAIN}"/process.json
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /etc/sphinx/sphinx.conf
sed -Ei "s/example\.com/${CP_DOMAIN}/g" /etc/sphinx/source.xml
sed -Ei "s/\"theme\":\s*\"[a-zA-Z0-9-]*\"/\"theme\":\"${CP_THEME}\"/" /home/"${CP_DOMAIN}"/config/production/config.js
2020-09-16 03:47:49 +02:00
cp -rf /home/"${CP_DOMAIN}"/config/production/config.js /home/"${CP_DOMAIN}"/config/production/config.prev.js
cp -rf /home/"${CP_DOMAIN}"/config/production/modules.js /home/"${CP_DOMAIN}"/config/production/modules.prev.js
cp -rf /home/"${CP_DOMAIN}"/config/production/config.js /home/"${CP_DOMAIN}"/config/production/config.backup.js
cp -rf /home/"${CP_DOMAIN}"/config/production/modules.js /home/"${CP_DOMAIN}"/config/production/modules.backup.js
2019-11-11 02:12:38 +01:00
git clone https://${GIT_SERVER}/CinemaPress/Theme-${CP_THEME}.git /var/${CP_THEME}
2020-05-01 21:48:52 +02:00
mkdir -p /home/"${CP_DOMAIN}"/themes/${CP_THEME}/
cp -rf /var/${CP_THEME}/* /home/"${CP_DOMAIN}"/themes/${CP_THEME}/
node /home/"${CP_DOMAIN}"/optimal.js
OPENSSL=$(echo "${CP_PASSWD}" | openssl passwd -1 -stdin -salt CP)
echo "admin:${OPENSSL}" > /home/"${CP_DOMAIN}"/config/production/nginx/pass.d/"${CP_DOMAIN}".pass
echo "${CP_DOMAIN}:${OPENSSL}" >> /home/"${CP_DOMAIN}"/config/production/nginx/pass.d/"${CP_DOMAIN}".pass
if [ "${CP_IP}" = "ip" ]; then rm -rf /home/"${CP_DOMAIN}"/config/production/nginx/conf.d/default.conf; fi
if [ ! -f "/var/lib/sphinx/data/movies_${CP_DOMAIN_}.sps" ]; then indexer --all; fi
sleep 5
2019-10-01 21:34:02 +02:00
searchd
sleep 5
2020-05-01 21:48:52 +02:00
node /home/"${CP_DOMAIN}"/config/update/default.js
2021-04-18 23:41:39 +02:00
if [ ! -f "/var/log/${CP_DOMAIN_}.pid" ]; then
nohup /usr/bin/cinemapress container cron run >"/var/log/${CP_DOMAIN_}.log" 2>&1 &
echo $! >"/var/log/${CP_DOMAIN_}.pid"
fi
2019-10-01 21:34:02 +02:00
else
searchd
2020-05-01 21:48:52 +02:00
node /home/"${CP_DOMAIN}"/config/update/config.js
2021-01-22 04:43:52 +01:00
#node /home/"${CP_DOMAIN}"/config/update/mirror.js
2019-10-01 21:34:02 +02:00
fi
crond -L /var/log/cron.log
2020-05-01 21:48:52 +02:00
cd /home/"${CP_DOMAIN}" && pm2-runtime start process.json
2019-10-01 21:34:02 +02:00
}
docker_stop() {
2020-03-08 04:42:33 +01:00
sed -Ei "s/\/\/app\.use\(rebooting\(\)\);/app\.use\(rebooting\(\)\);/" "/home/${CP_DOMAIN}/app.js"
2021-01-13 05:07:53 +01:00
touch "/home/${CP_DOMAIN}/.uptimerobot"
2020-03-08 04:42:33 +01:00
pm2 reload all
2019-10-01 21:34:02 +02:00
searchd --stop
killall crond
sleep 5
}
docker_start() {
2020-03-08 04:42:33 +01:00
sed -Ei "s/app\.use\(rebooting\(\)\);/\/\/app\.use\(rebooting\(\)\);/" "/home/${CP_DOMAIN}/app.js"
2021-01-13 05:07:53 +01:00
rm -f "/home/${CP_DOMAIN}/.uptimerobot"
2019-10-01 21:34:02 +02:00
searchd
crond -L /var/log/cron.log
2020-05-01 21:48:52 +02:00
node /home/"${CP_DOMAIN}"/config/update/config.js
2020-05-02 02:47:25 +02:00
cd /home/"${CP_DOMAIN}" && pm2 delete process.json && pm2 start process.json
2019-10-01 21:34:02 +02:00
}
docker_restart() {
docker_stop
docker_start
}
docker_reload() {
2020-05-01 21:48:52 +02:00
cd /home/"${CP_DOMAIN}" && pm2 reload process.json
2019-10-01 21:34:02 +02:00
}
2020-01-20 06:33:27 +01:00
docker_logs() {
SHOW_ERR_LOGS=$(pm2 logs --err --lines 50 --nostream | curl -s -F 'clbin=<-' https://clbin.com)
SHOW_OUT_LOGS=$(pm2 logs --out --lines 50 --nostream | curl -s -F 'clbin=<-' https://clbin.com)
2020-01-22 23:50:55 +01:00
_header "ERR LOGS"
_content
_content "${SHOW_ERR_LOGS}"
_content
2020-01-20 06:33:27 +01:00
_header "OUT LOGS"
_content
_content "${SHOW_OUT_LOGS}"
_content
_s
}
2019-10-01 21:34:02 +02:00
docker_zero() {
2021-01-24 22:57:57 +01:00
if [ -n "${1}" ]; then
sed -E -i "s/\"CP_XMLPIPE2\":\s*\"[a-zA-Z0-9_| -]*\"/\"CP_XMLPIPE2\":\"xmlpipe2_${CP_DOMAIN_}\"/" \
/home/"${CP_DOMAIN}"/process.json
2021-02-14 06:39:20 +01:00
sed -Ei "s/\"only_realtime\":\s*[0-9]*/\"only_realtime\":0/" \
2021-02-06 06:20:11 +01:00
/home/"${CP_DOMAIN}"/config/production/config.js
2021-01-24 22:57:57 +01:00
else
sed -E -i "s/\"CP_XMLPIPE2\":\s*\"[a-zA-Z0-9_| -]*\"/\"CP_XMLPIPE2\":\"rt_${CP_DOMAIN_}\"/" \
/home/"${CP_DOMAIN}"/process.json
2021-02-14 06:39:20 +01:00
sed -Ei "s/\"only_realtime\":\s*[0-9]*/\"only_realtime\":1/" \
2021-02-06 06:20:11 +01:00
/home/"${CP_DOMAIN}"/config/production/config.js
2021-01-24 22:57:57 +01:00
fi
cd /home/"${CP_DOMAIN}" && pm2 delete process.json && pm2 start process.json
2021-01-22 04:43:52 +01:00
}
2021-03-12 07:17:18 +01:00
docker_zero_rt() {
searchd --stop
sleep 2
rm -rf /home/"${CP_DOMAIN}"/config/rt/* /home/"${CP_DOMAIN}"/config/binlog/*
searchd
cd /home/"${CP_DOMAIN}" && pm2 delete process.json && pm2 start process.json
}
2021-01-22 04:43:52 +01:00
docker_hand() {
2021-01-24 22:57:57 +01:00
if [ -n "${1}" ]; then
node /home/"${CP_DOMAIN}"/config/update/hand.js "player"
else
node /home/"${CP_DOMAIN}"/config/update/hand.js
fi
}
docker_movies() {
if [ -n "${1}" ]; then
if [ -f /home/"${CP_DOMAIN}"/log/cron_movies.pid ]; then
MOVIES_PID=$(cat /home/"${CP_DOMAIN}"/log/cron_movies.pid)
kill -9 "${MOVIES_PID}"
rm -f /home/"${CP_DOMAIN}"/log/cron_movies.pid
fi
2021-05-29 23:30:43 +02:00
echo $$ >/home/"${CP_DOMAIN}"/log/cron_movies.pid
2021-01-24 22:57:57 +01:00
node /home/"${CP_DOMAIN}"/lib/CP_movies.js "run"
2021-05-29 23:30:43 +02:00
rm -f /home/"${CP_DOMAIN}"/log/cron_movies.pid
2021-01-24 22:57:57 +01:00
else
if [ ! -f /home/"${CP_DOMAIN}"/log/cron_movies.pid ]; then
echo $$ >/home/"${CP_DOMAIN}"/log/cron_movies.pid
node /home/"${CP_DOMAIN}"/lib/CP_movies.js
rm -f /home/"${CP_DOMAIN}"/log/cron_movies.pid
else
echo "[SKIP] The autocomplete movies of the previous task has not finished yet!"
fi
2021-01-24 22:57:57 +01:00
fi
2019-10-01 21:34:02 +02:00
}
docker_cron() {
nohup /usr/bin/cinemapress torrent "${CP_DOMAIN}" upload \
>> /home/"${CP_DOMAIN}"/log/torrent_"$(date '+%d_%m_%Y')".log 2>&1 &
if [ ! -f /home/"${CP_DOMAIN}"/log/cron_movies.pid ]; then
echo $$ >/home/"${CP_DOMAIN}"/log/cron_movies.pid
if [ -n "${1}" ]; then
node /home/"${CP_DOMAIN}"/lib/CP_movies.js "run"
else
node /home/"${CP_DOMAIN}"/lib/CP_movies.js
fi
rm -f /home/"${CP_DOMAIN}"/log/cron_movies.pid
2021-03-29 02:59:45 +02:00
else
echo "[SKIP] The autocomplete movies of the previous task has not finished yet!"
2021-03-29 02:59:45 +02:00
fi
2021-03-29 02:48:31 +02:00
node /home/"${CP_DOMAIN}"/lib/CP_cron.js
2019-10-01 21:34:02 +02:00
}
docker_restore() {
2019-11-11 02:12:38 +01:00
WEB_DIR=${1:-${CP_DOMAIN}}
2020-04-26 03:21:33 +02:00
LATEST_DIR=${2:-latest}
RCS=$(rclone config show 2>/dev/null | grep "CINEMAPRESS")
2019-10-01 21:34:02 +02:00
if [ "${RCS}" = "" ]; then exit 0; fi
docker_stop
2020-04-26 03:21:33 +02:00
rm -rf /var/mega/new && mkdir -p /var/mega/new
mkdir -p /home/"${CP_DOMAIN}"/config/custom
2020-04-26 05:09:33 +02:00
sleep 5
2020-04-26 03:41:05 +02:00
sleep 3; rclone -vv --ignore-size copy CINEMAPRESS:"${WEB_DIR}"/"${LATEST_DIR}"/config.tar /var/mega/new/"${CP_DOMAIN}"/
sleep 3; rclone -vv --ignore-size copy CINEMAPRESS:"${WEB_DIR}"/"${LATEST_DIR}"/themes.tar /var/mega/new/"${CP_DOMAIN}"/
2020-04-26 05:09:33 +02:00
sleep 5
2020-04-26 03:21:33 +02:00
if [ -f /var/mega/new/"${CP_DOMAIN}"/config.tar ]; then
cd /home/"${CP_DOMAIN}" && \
tar -xf /var/mega/new/"${CP_DOMAIN}"/config.tar
else
cd /home/"${CP_DOMAIN}" && \
tar -xf /var/mega/"${CP_DOMAIN}"/config.tar
fi
if [ -f /var/mega/new/"${CP_DOMAIN}"/themes.tar ]; then
cd /home/"${CP_DOMAIN}" && \
tar --exclude=themes/default/views/desktop \
-xf /var/mega/new/"${CP_DOMAIN}"/themes.tar
else
cd /home/"${CP_DOMAIN}" && \
tar --exclude=themes/default/views/desktop \
-xf /var/mega/"${CP_DOMAIN}"/themes.tar
fi
2020-04-26 04:33:27 +02:00
cp -rf /home/"${CP_DOMAIN}"/config/custom/* /home/"${CP_DOMAIN}"/ 2>/dev/null
2020-01-08 01:54:24 +01:00
sleep 5
2020-01-08 00:29:11 +01:00
if [ -f "/home/${CP_DOMAIN}/config/comment/comment_${CP_DOMAIN_}.ram" ]; then
COMMENTSIZE=$(wc -c <"/home/${CP_DOMAIN}/config/comment/comment_${CP_DOMAIN_}.ram")
2020-01-08 03:45:50 +01:00
if [ "${COMMENTSIZE}" -le "20" ]; then
2020-04-26 03:21:33 +02:00
rm -rf /home/"${CP_DOMAIN}"/config/comment/*;
2020-01-08 00:29:11 +01:00
fi
else
2020-04-26 03:21:33 +02:00
rm -rf /home/"${CP_DOMAIN}"/config/comment/*;
fi
2020-01-08 00:29:11 +01:00
if [ -f "/home/${CP_DOMAIN}/config/user/user_${CP_DOMAIN_}.ram" ]; then
USERSIZE=$(wc -c <"/home/${CP_DOMAIN}/config/user/user_${CP_DOMAIN_}.ram")
2020-01-08 03:45:50 +01:00
if [ "${USERSIZE}" -le "20" ]; then
2020-04-26 03:21:33 +02:00
rm -rf /home/"${CP_DOMAIN}"/config/user/*;
2020-01-08 00:29:11 +01:00
fi
else
2020-04-26 03:21:33 +02:00
rm -rf /home/"${CP_DOMAIN}"/config/user/*;
fi
2021-02-06 06:20:11 +01:00
R=$(grep "\"only_realtime\"" /home/"${CP_DOMAIN}"/config/production/config.js)
ONLY_REALTIME=$(echo "${R}" | sed 's/.*"only_realtime":\s*\([0-9]*\).*/\1/')
if [ "${ONLY_REALTIME}" = "1" ]; then
docker_zero
fi
2019-10-01 21:34:02 +02:00
docker_start
}
docker_backup() {
RCS=$(rclone config show 2>/dev/null | grep "CINEMAPRESS")
2019-10-01 21:34:02 +02:00
if [ "${RCS}" = "" ]; then exit 0; fi
BACKUP_DAY=$(date +%d)
BACKUP_NOW=$(date +%Y-%m-%d)
BACKUP_DELETE=$(date +%Y-%m-%d -d "@$(($(date +%s) - 432000))")
T=$(grep "\"theme\"" /home/"${CP_DOMAIN}"/config/production/config.js)
THEME_NAME=$(echo "${T}" | sed 's/.*"theme":\s*"\([a-zA-Z0-9-]*\)".*/\1/')
2019-10-01 21:34:02 +02:00
if [ "${THEME_NAME}" = "" ] || [ "${THEME_NAME}" = "${T}" ]; then exit 0; fi
2021-04-18 23:41:39 +02:00
if [ -f "/var/log/${CP_DOMAIN_}.pid" ]; then
NOHUP_PID=$(cat "/var/log/${CP_DOMAIN_}.pid")
if [ "${NOHUP_PID}" != "" ]; then
2021-04-18 23:41:39 +02:00
kill -9 "${NOHUP_PID}" >>"/var/log/${CP_DOMAIN_}.log"
2021-05-30 00:37:32 +02:00
echo "KILL NOHUP PID ${NOHUP_PID}" >>"/var/log/${CP_DOMAIN_}.log"
fi
fi
if [ -f "/home/${CP_DOMAIN}/log/cron_movies.pid" ]; then
CRON_PID=$(cat "/home/${CP_DOMAIN}/log/cron_movies.pid")
if [ "${CRON_PID}" != "" ]; then
kill -9 "${CRON_PID}" >>"/var/log/${CP_DOMAIN_}.log"
echo "KILL CRON PID ${CRON_PID}" >>"/var/log/${CP_DOMAIN_}.log"
fi
2021-05-30 00:37:32 +02:00
rm -f "/home/${CP_DOMAIN}/log/cron_movies.pid"
fi
2020-05-01 21:48:52 +02:00
PORT_DOMAIN=$(grep "mysql41" /etc/sphinx/sphinx.conf | sed 's/.*:\([0-9]*\):mysql41.*/\1/')
2021-04-09 01:50:12 +02:00
# echo "FLUSH RAMCHUNK"
# echo "FLUSH RAMCHUNK rt_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
# echo "FLUSH RAMCHUNK content_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
# echo "FLUSH RAMCHUNK comment_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
# echo "FLUSH RAMCHUNK user_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
# sleep 10
# FLUSH_RAMCHUNK=1
# while [ "${FLUSH_RAMCHUNK}" != "100" ]; do
# sleep 3
# FLUSH_RAMCHUNK=$((1+FLUSH_RAMCHUNK))
# TMP_FILES=$(ls /home/"${CP_DOMAIN}"/config/rt/ | grep ".tmp.")
# OLD_FILES=$(ls /home/"${CP_DOMAIN}"/config/rt/ | grep ".old.")
# if [ "${TMP_FILES}" = "" ]; then
# echo "${FLUSH_RAMCHUNK}) TMP FILES: ${TMP_FILES}"
# fi
# if [ "${OLD_FILES}" = "" ]; then
# echo "${FLUSH_RAMCHUNK}) OLD FILES: ${OLD_FILES}"
# fi
# if [ "${TMP_FILES}" = "" ] && [ "${OLD_FILES}" = "" ]; then
# FLUSH_RAMCHUNK=100
# fi
# done
echo "OPTIMIZE INDEX"
echo "OPTIMIZE INDEX rt_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
echo "OPTIMIZE INDEX content_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
echo "OPTIMIZE INDEX comment_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
echo "OPTIMIZE INDEX user_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
sleep 10
OPTIMIZE_INDEX=1
while [ "${OPTIMIZE_INDEX}" != "100" ]; do
sleep 3
2021-04-09 01:50:12 +02:00
OPTIMIZE_INDEX=$((1+OPTIMIZE_INDEX))
TMP_FILES=$(ls /home/"${CP_DOMAIN}"/config/rt/ | grep ".tmp.")
OLD_FILES=$(ls /home/"${CP_DOMAIN}"/config/rt/ | grep ".old.")
if [ "${TMP_FILES}" = "" ]; then
2021-04-09 01:50:12 +02:00
echo "${OPTIMIZE_INDEX}) TMP FILES: ${TMP_FILES}"
fi
if [ "${OLD_FILES}" = "" ]; then
2021-04-09 01:50:12 +02:00
echo "${OPTIMIZE_INDEX}) OLD FILES: ${OLD_FILES}"
fi
if [ "${TMP_FILES}" = "" ] && [ "${OLD_FILES}" = "" ]; then
2021-04-09 01:50:12 +02:00
OPTIMIZE_INDEX=100
fi
done
echo "FLUSH RTINDEX"
echo "FLUSH RTINDEX rt_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
echo "FLUSH RTINDEX content_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
echo "FLUSH RTINDEX comment_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
echo "FLUSH RTINDEX user_${CP_DOMAIN_};" | mysql -h0 -P"${PORT_DOMAIN}"
2020-06-09 21:11:57 +02:00
sleep 10
2020-04-26 03:21:33 +02:00
rm -rf /var/mega/"${CP_DOMAIN:?}" && mkdir -p /var/mega/"${CP_DOMAIN}"
cd /home/"${CP_DOMAIN}" && \
2020-03-23 00:25:19 +01:00
tar --ignore-failed-read \
--exclude=config/update \
2019-10-01 21:34:02 +02:00
--exclude=config/default \
--exclude=config/locales \
--exclude=config/production/fail2ban \
--exclude=config/production/filestash \
2019-10-01 21:34:02 +02:00
--exclude=config/production/sphinx \
2019-10-15 19:45:11 +02:00
--exclude=config/production/nginx \
--exclude=config/production/mail \
--exclude=config/production/php \
2020-04-26 03:21:33 +02:00
-uf /var/mega/"${CP_DOMAIN}"/config.tar \
2020-03-06 03:44:55 +01:00
config
cd /home/"${CP_DOMAIN}" && \
2020-03-23 00:25:19 +01:00
tar --ignore-failed-read \
--exclude=files/GeoLite2-Country.mmdb \
2020-04-07 03:11:00 +02:00
--exclude=files/GeoLite2-ASN.mmdb \
2020-03-08 00:18:40 +01:00
--exclude=files/poster \
--exclude=files/torrent \
2020-03-08 00:18:40 +01:00
--exclude=files/picture \
2020-03-23 00:25:19 +01:00
--exclude=files/windows \
--exclude=files/linux \
--exclude=files/osx \
2019-10-01 21:34:02 +02:00
--exclude=files/bbb.mp4 \
--exclude=files/content/collage.psd \
2020-04-26 03:21:33 +02:00
-uf /var/mega/"${CP_DOMAIN}"/themes.tar \
2019-10-01 21:34:02 +02:00
themes/default/public/desktop \
themes/default/public/mobile \
themes/default/views/mobile \
themes/"${THEME_NAME}" \
2019-10-01 21:34:02 +02:00
files
2021-04-24 20:07:18 +02:00
sleep 3; rclone delete --rmdirs CINEMAPRESS:"${CP_DOMAIN}"/"${BACKUP_NOW}" &> /dev/null
if [ "${BACKUP_DAY}" != "10" ]; then
rclone delete --rmdirs CINEMAPRESS:"${CP_DOMAIN}"/"${BACKUP_DELETE}" &> /dev/null;
rclone rmdirs CINEMAPRESS:"${CP_DOMAIN}"/"${BACKUP_DELETE}" &> /dev/null;
fi
sleep 3; rclone delete --rmdirs CINEMAPRESS:"${CP_DOMAIN}"/latest &> /dev/null
2020-04-26 03:41:05 +02:00
sleep 3; rclone -vv --ignore-size copy /var/mega/"${CP_DOMAIN}"/config.tar CINEMAPRESS:"${CP_DOMAIN}"/"${BACKUP_NOW}"/
sleep 3; rclone -vv --ignore-size copy /var/mega/"${CP_DOMAIN}"/themes.tar CINEMAPRESS:"${CP_DOMAIN}"/"${BACKUP_NOW}"/
sleep 3; rclone -vv --ignore-size copy /var/mega/"${CP_DOMAIN}"/config.tar CINEMAPRESS:"${CP_DOMAIN}"/latest/
sleep 3; rclone -vv --ignore-size copy /var/mega/"${CP_DOMAIN}"/themes.tar CINEMAPRESS:"${CP_DOMAIN}"/latest/
KILOBYTE_ALL=$(df -k /home | tail -1 | awk '{print $4}')
KILOBYTE_DIR=$(du -d 0 /home/"${CP_DOMAIN}"/files | cut -f1)
RCST=$(rclone config show 2>/dev/null | grep "CINEMASTATIC")
2020-04-10 02:11:50 +02:00
if [ "${1}" = "" ] && [ "${RCST}" != "" ] && [ "${BACKUP_DAY}" = "10" ] && [ "${KILOBYTE_ALL}" -gt "${KILOBYTE_DIR}" ]; then
CHECK_MKDIR=$(rclone mkdir CINEMASTATIC:/check-connection 2>/dev/null)
sleep 3
2021-04-22 00:42:02 +02:00
CHECK_RMDIR=$(rclone rmdir CINEMASTATIC:/check-connection 2>/dev/null)
if [ "${CHECK_MKDIR}" = "" ] && [ "${CHECK_RMDIR}" = "" ]; then
cd /home/"${CP_DOMAIN}" && tar -uf /home/"${CP_DOMAIN}"/static.tar \
files/poster \
files/picture
if [ -d "/home/${CP_DOMAIN}/files/windows" ]; then
cd /home/"${CP_DOMAIN}" && tar -uf /home/"${CP_DOMAIN}"/app.tar \
files/windows \
files/linux \
files/osx &>/dev/null
2021-04-22 00:46:24 +02:00
sleep 3; rclone -vv delete CINEMASTATIC:"${CP_DOMAIN}"/app.tar
2020-04-26 03:41:05 +02:00
sleep 3; rclone -vv --ignore-size copy /home/"${CP_DOMAIN}"/app.tar CINEMASTATIC:"${CP_DOMAIN}"/
fi
2021-04-22 00:46:24 +02:00
sleep 3; rclone -vv delete CINEMASTATIC:"${CP_DOMAIN}"/static.tar
2020-04-26 03:41:05 +02:00
sleep 3; rclone -vv --ignore-size copy /home/"${CP_DOMAIN}"/static.tar CINEMASTATIC:"${CP_DOMAIN}"/
rm -rf /home/"${CP_DOMAIN}"/static.tar /home/"${CP_DOMAIN}"/app.tar
fi
fi
2021-02-02 08:28:13 +01:00
CHECK_MKDIR=$(rclone mkdir CINEMAPRESS:/check-connection 2>/dev/null)
sleep 3
2021-04-22 00:42:02 +02:00
CHECK_RMDIR=$(rclone rmdir CINEMAPRESS:/check-connection 2>/dev/null)
if [ "${CHECK_MKDIR}" != "" ] || [ "${CHECK_RMDIR}" != "" ]; then
2021-02-02 08:28:13 +01:00
_header "ERROR"
_content
_content "Cannot connect to backup storage."
_content
_s
exit 0
fi
2019-10-01 21:34:02 +02:00
}
2020-05-10 01:36:46 +02:00
docker_mirror() {
node /home/"${CP_DOMAIN}"/config/update/mirror.js
}
2019-10-01 21:34:02 +02:00
docker_actual() {
2020-03-24 20:05:40 +01:00
node /home/"${CP_DOMAIN}"/config/update/actual.js
2019-10-01 21:34:02 +02:00
}
2020-03-24 03:51:22 +01:00
docker_available() {
2020-03-24 20:05:40 +01:00
node /home/"${CP_DOMAIN}"/config/update/available.js "${1}"
2020-03-24 03:51:22 +01:00
}
2019-10-01 21:34:02 +02:00
docker_rclone() {
2020-01-08 22:50:14 +01:00
sleep 3; rclone "${1}" "${2}"
2019-10-01 21:34:02 +02:00
}
2020-06-10 22:28:46 +02:00
docker_cinematheme() {
2020-06-11 02:49:34 +02:00
rm -rf /var/theme && mkdir -p /var/theme
cd /var/theme && cinematheme "${@}"
sleep 3
2020-06-13 00:28:24 +02:00
cd /var/theme/ && for i in */; do
if [ "${i%%/}" != "" ]; then
sed -Ei "s/\"theme\":\s*\"[a-zA-Z0-9-]*\"/\"theme\":\"${i%%/}\"/" \
/home/"${CP_DOMAIN}"/config/production/config.js
fi
done
2020-06-11 02:49:34 +02:00
cp -rf /var/theme/* /home/"${CP_DOMAIN}"/themes/
2020-06-13 01:45:17 +02:00
pm2 delete process.json &>/dev/null
cd /home/"${CP_DOMAIN}" && pm2 start process.json &>/dev/null
2020-06-11 02:49:34 +02:00
sleep 3
rm -rf /var/theme
2020-06-10 22:28:46 +02:00
}
2020-05-10 01:36:46 +02:00
docker_spb() {
SPB="/var/lib/sphinx/data/movies_${CP_DOMAIN_}.spb"
CNF="/home/${CP_DOMAIN}/config/production/config.js"
PRC="/home/${CP_DOMAIN}/process.json"
2021-06-06 00:55:05 +02:00
CP_SPB=""
2020-05-10 01:36:46 +02:00
if [ ! -f "${SPB}" ] && [ -f "${CNF}" ] && [ -f "${PRC}" ]; then
AA=$(grep "\"CP_ALL\"" "${PRC}")
KK=$(grep "\"key\"" "${CNF}")
AAA=$(echo ${AA} | sed 's/.*"CP_ALL":\s*".*[ |"]\{1\}_\([A-Za-z0-9]\{7\}\)_[ |"]\{1\}.*/\1/')
KKK=$(echo ${KK} | sed 's/.*"key":\s*"\(FREE\|[a-zA-Z0-9-]\{32\}\)".*/\1/')
if [ "${#AAA}" -eq "7" ] && [ "${#KKK}" -eq "32" ]; then
openssl enc \
-aes-256-cbc \
-pbkdf2 \
-iter 100000 \
-in <(echo "${AAA}") \
-out "${SPB}" \
-k "${CP_DOMAIN}/${KKK}" \
-salt 2>/dev/null
fi
fi
if [ -f "${SPB}" ] && [ -f "${CNF}" ]; then
KK=$(grep "\"key\"" "${CNF}")
KKK=$(echo ${KK} | sed 's/.*"key":\s*"\(FREE\|[a-zA-Z0-9-]\{32\}\)".*/\1/')
if [ "${#KKK}" -eq "32" ]; then
AAA=$(openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -in "${SPB}" -out - -k "${CP_DOMAIN}/${KKK}" -d 2>/dev/null)
if [ "${#AAA}" -eq "7" ]; then
2021-06-06 00:55:05 +02:00
CP_SPB="_${CP_DOMAIN_}_ | _${AAA}_"
2020-05-10 01:36:46 +02:00
fi
fi
fi
}
2019-10-01 21:34:02 +02:00
docker_passwd() {
OPENSSL=`echo "${1}" | openssl passwd -1 -stdin -salt CP`
2019-10-06 03:44:51 +02:00
echo "admin:${OPENSSL}" > "/home/${CP_DOMAIN}/config/production/nginx/pass.d/${CP_DOMAIN}.pass"
echo "${CP_DOMAIN}:${OPENSSL}" >> "/home/${CP_DOMAIN}/config/production/nginx/pass.d/${CP_DOMAIN}.pass"
2019-10-01 21:34:02 +02:00
}
2019-10-19 02:55:45 +02:00
docker_ssl_on() {
2020-04-16 02:05:38 +02:00
if [ -d "/home/${CP_DOMAIN}/config/production/nginx/ssl.d/live/${CP_DOMAIN}/" ] || \
[ -d "/home/${CP_DOMAIN}/config/production/nginx/ssl.d/self-signed/${CP_DOMAIN}/" ]; then
sed -Ei "s/ #ssl include \/home\/${CP_DOMAIN}\/config\/production\/nginx\/ssl\.d\/default\.conf;/ include \/home\/${CP_DOMAIN}\/config\/production\/nginx\/ssl.d\/default.conf;/" \
"/home/${CP_DOMAIN}/config/production/nginx/conf.d/default.conf"
fi
2019-10-19 02:55:45 +02:00
}
docker_ssl_off() {
sed -Ei "s/ include \/home\/${CP_DOMAIN}\/config\/production\/nginx\/ssl\.d\/default\.conf;/ #ssl include \/home\/${CP_DOMAIN}\/config\/production\/nginx\/ssl.d\/default.conf;/" \
"/home/${CP_DOMAIN}/config/production/nginx/conf.d/default.conf"
}
2020-04-01 19:51:59 +02:00
docker_ftp_on() {
sed -Ei "s/#ftp //g" "/home/${CP_DOMAIN}/config/production/nginx/conf.d/default.conf"
}
2021-03-31 01:26:36 +02:00
docker_torrent_on() {
sed -Ei "s/#torrent //g" "/home/${CP_DOMAIN}/config/production/nginx/conf.d/default.conf"
}
2019-10-01 21:34:02 +02:00
success_install(){
CP_URL="${CP_DOMAIN}"
if [ "${CP_IP}" = "ip" ] && [ "${EXTERNAL_PORT}" != "80" ]; then
CP_URL="${CP_DOMAIN}:${EXTERNAL_PORT}"
else
docker exec -d nginx nginx -s reload
2019-10-01 21:34:02 +02:00
fi
clear
_line
_logo
_header "${CP_DOMAIN}";
_content
if [ "${CP_IP}" = "domain" ]; then
2019-10-01 21:34:02 +02:00
_content "Website successfully installed!"
else
_content "Test website successfully installed!"
fi
_content
_content "${CP_URL}"
_content "${CP_URL}/admin"
if [ "${CP_IP}" = "domain" ]; then
2019-10-01 21:34:02 +02:00
_content
_content "USERNAME: admin"
_content "PASSWORD: ${CP_PASSWD}"
2019-10-01 21:34:02 +02:00
fi
_content
_content "We strongly recommend immediately"
_content "setting up automatic backup!"
_content "root@vps:~# cinemapress backup"
2019-10-01 21:34:02 +02:00
_content
2021-05-29 00:51:58 +02:00
_content "Issues: github.com/CinemaPress"
2019-10-01 21:34:02 +02:00
_content
_s
}
if [ ${EUID} -ne 0 ]; then
printf "${R}WARNING:${NC} Run as root user! \n${NC}"
exit 1
fi
2020-05-10 01:36:46 +02:00
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ] || \
[ "${CP_OS}" = "debian" ] || [ "${CP_OS}" = "\"debian\"" ] || \
[ "${CP_OS}" = "ubuntu" ] || [ "${CP_OS}" = "\"ubuntu\"" ] || \
[ "${CP_OS}" = "fedora" ] || [ "${CP_OS}" = "\"fedora\"" ] || \
[ "${CP_OS}" = "centos" ] || [ "${CP_OS}" = "\"centos\"" ]; then
true
else
_header "ERROR"
_content
_content "This OS is not supported."
_content "Please reinstall to"
_content "CentOS 7 or Debian 9/10 or Ubuntu 18/19 or Fedora 28/29"
_content
_s
exit 0
fi
2019-10-01 21:34:02 +02:00
docker_install
2020-05-10 01:36:46 +02:00
if [ "$(docker -v 2>/dev/null | grep "version")" = "" ]; then
docker_spb 2>/dev/null
fi
2019-10-01 21:34:02 +02:00
WHILE=0
while [ "${WHILE}" -lt "2" ]; do
WHILE=$((${WHILE}+1))
case ${OPTION} in
"i"|"install"|1 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2021-02-14 07:03:59 +01:00
sh_yes "${5}"
2020-05-01 21:48:52 +02:00
read_lang "${3}"
read_theme "${4}"
read_password "${5}"
_s "${5}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-05-01 21:48:52 +02:00
1_install "${2}" "${3}" "${4}" "${5}"
2019-10-01 21:34:02 +02:00
sh_progress 100
success_install
2019-11-16 05:27:22 +01:00
post_commands
2019-10-01 21:34:02 +02:00
exit 0
;;
"u"|"update"|2 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-01 21:48:52 +02:00
_s "${2}"
2019-10-01 21:34:02 +02:00
sh_progress
2021-02-03 02:34:29 +01:00
2_update "${2}" "${3}" "${4}" "${5}" "${6}"
2019-10-01 21:34:02 +02:00
sh_progress 100
2019-11-16 05:27:22 +01:00
post_commands
2019-10-01 21:34:02 +02:00
exit 0
;;
"b"|"backup"|3 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-01 21:48:52 +02:00
_s "${2}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-05-01 21:48:52 +02:00
3_backup "${2}" "${3}" "${4}" "${5}" "${6}" "${7}"
2019-10-01 21:34:02 +02:00
sh_progress 100
exit 0
;;
"t"|"theme"|4 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-01 21:48:52 +02:00
read_theme "${3}"
_s "${3}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-05-01 21:48:52 +02:00
4_theme "${2}" "${3}" "${4}"
2019-10-01 21:34:02 +02:00
sh_progress 100
exit 0
;;
"d"|"database"|5 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-01 21:48:52 +02:00
read_key "${3}"
_s "${3}"
5_database "${2}" "${3}"
2019-10-01 21:34:02 +02:00
exit 0
;;
2019-10-11 15:26:59 +02:00
"h"|"https"|6 )
2020-04-25 02:18:55 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-04-25 02:18:55 +02:00
read_cloudflare_email "${3}"
read_cloudflare_api_key "${4}"
_s "${4}"
6_https "${2}" "${3}" "${4}" "${5}"
2019-11-16 05:27:22 +01:00
post_commands
2019-10-01 21:34:02 +02:00
exit 0
;;
"m"|"mirror"|7 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
read_mirror "${3}"
_s "${3}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-05-01 21:48:52 +02:00
7_mirror "${2}" "${3}"
2019-10-01 21:34:02 +02:00
sh_progress 100
exit 0
;;
"r"|"rm"|"remove"|8 )
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-01 21:48:52 +02:00
_s "${2}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-05-01 21:48:52 +02:00
8_remove "${2}" "${3}" "${4}"
2019-10-01 21:34:02 +02:00
sh_progress 100
exit 0
;;
"en"|"ru" )
2020-05-01 21:48:52 +02:00
ip_install "${1}"
2019-10-01 21:34:02 +02:00
exit 0
;;
"passwd" )
_br "${3}"
2020-05-01 21:48:52 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-01 21:48:52 +02:00
read_password "${3}"
_s "${3}"
2019-10-01 21:34:02 +02:00
sh_progress
2020-05-01 21:48:52 +02:00
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container "${1}" "${CP_PASSWD}" \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_passwd_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
sh_progress
2019-10-02 15:32:29 +02:00
docker exec nginx nginx -s reload \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_passwd_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
sh_progress 100
exit 0
;;
2019-10-11 15:26:59 +02:00
"images" )
2021-06-06 01:49:47 +02:00
_header "IMAGES"
_content
_content "No images!"
_content
_s
exit 0
2019-10-11 15:26:59 +02:00
;;
2020-03-11 02:21:54 +01:00
"premium" )
2021-06-06 01:49:47 +02:00
_header "PREMIUM"
_content
_content "No premium themes!"
_content
_s
exit 0
2020-03-11 02:21:54 +01:00
;;
2019-10-23 21:23:43 +02:00
"upd" )
2020-03-06 03:44:55 +01:00
docker_install "UPD"
2019-10-23 21:23:43 +02:00
exit 0
;;
"ss"|"self-signed" )
read_domain "${2}"
sh_not
_s "${2}"
6_https "${2}" "ss"
2020-04-16 01:40:45 +02:00
exit 0
;;
2019-10-01 21:34:02 +02:00
"stop"|"start"|"restart" )
_br "${2}"
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
_s "${2}"
2019-12-03 02:06:09 +01:00
docker ${1} ${CP_DOMAIN_} >>/var/log/docker_${1}_"$(date '+%d_%m_%Y')".log 2>&1
2019-10-01 21:34:02 +02:00
exit 0
;;
2019-11-02 02:35:24 +01:00
"zero" )
_br "${2}"
read_domain "${2}"
2019-11-02 02:35:24 +01:00
sh_not
_s "${2}"
2019-11-02 02:35:24 +01:00
_header "WARNING";
_content
_content "This command will delete all movies!"
_content
_s
2019-11-02 02:42:23 +01:00
if [ ${3} ]; then
YES=${3}
2019-11-02 02:35:24 +01:00
YES=`echo ${YES} | iconv -c -t UTF-8`
2021-01-24 22:57:57 +01:00
echo "Deactivate Automatic Index? [NOT/yes] : ${YES}"
2019-11-02 02:35:24 +01:00
else
2021-01-24 22:57:57 +01:00
read -e -p 'Deactivate Automatic Index? [NOT/yes] : ' YES
2019-11-02 02:35:24 +01:00
YES=`echo ${YES} | iconv -c -t UTF-8`
fi
_br
if [ "${YES}" != "ДА" ] && [ "${YES}" != "Да" ] && [ "${YES}" != "да" ] && [ "${YES}" != "YES" ] && [ "${YES}" != "Yes" ] && [ "${YES}" != "yes" ] && [ "${YES}" != "Y" ] && [ "${YES}" != "y" ]; then
2021-01-24 22:57:57 +01:00
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container zero "NOT" \
>>/var/log/docker_zero_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-02 02:35:24 +01:00
else
2021-01-24 22:57:57 +01:00
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container zero \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_zero_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-02 02:35:24 +01:00
fi
2021-01-24 22:57:57 +01:00
exit 0
2019-11-02 02:35:24 +01:00
;;
2021-03-12 07:17:18 +01:00
"zero_rt"|"zero_realtime" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
_header "WARNING";
_content
_content "This command will delete all movies!"
_content
_s
if [ ${3} ]; then
YES=${3}
YES=`echo ${YES} | iconv -c -t UTF-8`
echo "Delete Realtime Index? [NOT/yes] : ${YES}"
else
read -e -p 'Delete Realtime Index? [NOT/yes] : ' YES
YES=`echo ${YES} | iconv -c -t UTF-8`
fi
_br
if [ "${YES}" != "ДА" ] && [ "${YES}" != "Да" ] && [ "${YES}" != "да" ] && [ "${YES}" != "YES" ] && [ "${YES}" != "Yes" ] && [ "${YES}" != "yes" ] && [ "${YES}" != "Y" ] && [ "${YES}" != "y" ]; then
exit 0
else
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container zero_rt \
>>/var/log/docker_zero_rt_"$(date '+%d_%m_%Y')".log 2>&1
fi
exit 0
;;
2021-01-22 04:43:52 +01:00
"hand" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
2021-01-24 22:57:57 +01:00
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container hand "${3}"
2021-01-22 04:43:52 +01:00
exit 0
;;
"main_mirror" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container mirror
exit 0
;;
2021-01-24 22:57:57 +01:00
"movies" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container movies
exit 0
;;
2021-04-21 19:19:36 +02:00
"reload"|"actual"|"available"|"reindex"|"speed"|"cron" )
_br "${2}"
2020-05-10 01:36:46 +02:00
read_domain "${2}"
2019-10-01 21:34:02 +02:00
sh_not
2020-05-10 01:36:46 +02:00
_s "${2}"
2021-04-21 19:19:36 +02:00
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container "${1}" "${3}"
_br
2019-10-01 21:34:02 +02:00
exit 0
;;
"container" )
if [ "${2}" = "run" ]; then
docker_run
elif [ "${2}" = "stop" ]; then
docker_stop
elif [ "${2}" = "start" ]; then
docker_start
elif [ "${2}" = "restart" ]; then
docker_restart
elif [ "${2}" = "reload" ]; then
docker_reload
2020-01-20 06:33:27 +01:00
elif [ "${2}" = "logs" ]; then
docker_logs
2019-10-01 21:34:02 +02:00
elif [ "${2}" = "zero" ]; then
2021-01-24 22:57:57 +01:00
docker_zero "${3}"
2021-03-12 07:17:18 +01:00
elif [ "${2}" = "zero_rt" ]; then
docker_zero_rt
2021-01-22 04:43:52 +01:00
elif [ "${2}" = "hand" ]; then
2021-01-24 22:57:57 +01:00
docker_hand "${3}"
elif [ "${2}" = "movies" ]; then
docker_movies "${3}"
2019-10-01 21:34:02 +02:00
elif [ "${2}" = "cron" ]; then
2021-03-29 02:59:45 +02:00
docker_cron "${3}"
2019-10-01 21:34:02 +02:00
elif [ "${2}" = "actual" ]; then
2019-11-11 02:12:38 +01:00
docker_actual
2020-05-10 01:36:46 +02:00
elif [ "${2}" = "mirror" ]; then
docker_mirror
2021-04-21 23:04:57 +02:00
elif [ "${2}" = "available" ] || [ "${2}" = "reindex" ]; then
2020-03-24 20:05:40 +01:00
docker_available "${3}"
2019-11-11 02:12:38 +01:00
elif [ "${2}" = "passwd" ]; then
docker_passwd "${3}"
elif [ "${2}" = "rclone" ]; then
docker_rclone "${3}" "${4}"
2020-06-10 22:28:46 +02:00
elif [ "${2}" = "cinematheme" ]; then
docker_cinematheme "${@}"
2019-10-01 21:34:02 +02:00
elif [ "${2}" = "backup" ]; then
2019-11-11 02:12:38 +01:00
if [ "${3}" = "create" ] || [ "${3}" = "1" ]; then
2020-03-06 03:44:55 +01:00
docker_backup "${4}"
2019-11-11 02:12:38 +01:00
elif [ "${3}" = "restore" ] || [ "${3}" = "2" ]; then
2020-04-26 03:21:33 +02:00
docker_restore "${4}" "${5}"
2019-10-01 21:34:02 +02:00
fi
2019-10-19 02:55:45 +02:00
elif [ "${2}" = "protocol" ]; then
if [ "${3}" = "http://" ]; then
docker_ssl_off
else
docker_ssl_on
fi
2020-04-01 19:51:59 +02:00
elif [ "${2}" = "ftp" ]; then
docker_ftp_on
2021-03-31 01:26:36 +02:00
elif [ "${2}" = "torrent" ]; then
docker_torrent_on
2019-10-01 21:34:02 +02:00
fi
exit 0
;;
2020-05-19 22:57:41 +02:00
"combine"|"c" )
2019-10-28 02:43:18 +01:00
CP_DOMAIN=""
CP_LANG=""
CP_THEME=""
CP_PASSWD=""
CP_MIRROR=""
CP_KEY=""
CLOUDFLARE_EMAIL=""
CLOUDFLARE_API_KEY=""
MEGA_EMAIL=""
MEGA_PASSWORD=""
2020-05-19 22:57:41 +02:00
if [ "${2}" = "chrm" ] || [ "${2}" = "create_https_restore_mirror" ] || [ "${2}" = "ihrm" ] || [ "${2}" = "install_https_restore_mirror" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
read_mirror ${4}
read_lang ${5}
read_theme ${6}
read_password ${7}
read_cloudflare_email ${8}
read_cloudflare_api_key ${9}
read_mega_email ${10}
read_mega_password ${11}
_s ${11}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_MIRROR}"
6_https "${CP_MIRROR}" "${CLOUDFLARE_EMAIL}" "${CLOUDFLARE_API_KEY}"
3_backup "${CP_MIRROR}" "config" "${MEGA_EMAIL}" "${MEGA_PASSWORD}" "restore" "${CP_DOMAIN}"
7_mirror "${CP_DOMAIN}" "${CP_MIRROR}"
2019-11-16 05:27:22 +01:00
post_commands "${CP_MIRROR}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "crm" ] || [ "${2}" = "create_restore_mirror" ] || [ "${2}" = "irm" ] || [ "${2}" = "install_restore_mirror" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
read_mirror ${4}
read_lang ${5}
read_theme ${6}
read_password ${7}
read_mega_email ${8}
read_mega_password ${9}
_s ${9}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_MIRROR}"
3_backup "${CP_MIRROR}" "config" "${MEGA_EMAIL}" "${MEGA_PASSWORD}" "restore" "${CP_DOMAIN}"
7_mirror "${CP_DOMAIN}" "${CP_MIRROR}"
2019-11-16 05:27:22 +01:00
post_commands "${CP_MIRROR}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "chm" ] || [ "${2}" = "create_https_mirror" ] || [ "${2}" = "ihm" ] || [ "${2}" = "install_https_mirror" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
read_mirror ${4}
read_lang ${5}
read_theme ${6}
read_password ${7}
read_cloudflare_email ${8}
read_cloudflare_api_key ${9}
_s ${9}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_MIRROR}"
6_https "${CP_MIRROR}" "${CLOUDFLARE_EMAIL}" "${CLOUDFLARE_API_KEY}"
7_mirror "${CP_DOMAIN}" "${CP_MIRROR}"
2019-11-16 05:27:22 +01:00
post_commands "${CP_MIRROR}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "chb" ] || [ "${2}" = "create_https_backup" ] || [ "${2}" = "ihb" ] || [ "${2}" = "install_https_backup" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
sh_yes
read_lang ${4}
read_theme ${5}
read_password ${6}
read_cloudflare_email ${7}
read_cloudflare_api_key ${8}
read_mega_email ${9}
read_mega_password ${10}
_s ${10}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_DOMAIN}"
6_https "${CP_DOMAIN}" "${CLOUDFLARE_EMAIL}" "${CLOUDFLARE_API_KEY}"
3_backup "${CP_DOMAIN}" "config" "${MEGA_EMAIL}" "${MEGA_PASSWORD}" "create"
2019-11-16 05:27:22 +01:00
post_commands "${CP_DOMAIN}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "chr" ] || [ "${2}" = "create_https_restore" ] || [ "${2}" = "ihr" ] || [ "${2}" = "install_https_restore" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
sh_yes
read_lang ${4}
read_theme ${5}
read_password ${6}
read_cloudflare_email ${7}
read_cloudflare_api_key ${8}
read_mega_email ${9}
read_mega_password ${10}
_s ${10}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_DOMAIN}"
6_https "${CP_DOMAIN}" "${CLOUDFLARE_EMAIL}" "${CLOUDFLARE_API_KEY}"
3_backup "${CP_DOMAIN}" "config" "${MEGA_EMAIL}" "${MEGA_PASSWORD}" "restore"
2019-11-16 05:27:22 +01:00
post_commands "${CP_DOMAIN}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "ch" ] || [ "${2}" = "create_https" ] || [ "${2}" = "ih" ] || [ "${2}" = "install_https" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
sh_yes
read_lang ${4}
read_theme ${5}
read_password ${6}
read_cloudflare_email ${7}
read_cloudflare_api_key ${8}
_s ${8}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_DOMAIN}"
6_https "${CP_DOMAIN}" "${CLOUDFLARE_EMAIL}" "${CLOUDFLARE_API_KEY}"
2019-11-16 05:27:22 +01:00
post_commands "${CP_DOMAIN}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "cb" ] || [ "${2}" = "create_backup" ] || [ "${2}" = "ib" ] || [ "${2}" = "install_backup" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
sh_yes
read_lang ${4}
read_theme ${5}
read_password ${6}
read_mega_email ${7}
read_mega_password ${8}
_s ${8}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_DOMAIN}"
3_backup "${CP_DOMAIN}" "config" "${MEGA_EMAIL}" "${MEGA_PASSWORD}" "create"
2019-11-16 05:27:22 +01:00
post_commands "${CP_DOMAIN}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
2020-05-19 22:57:41 +02:00
elif [ "${2}" = "cr" ] || [ "${2}" = "create_restore" ] || [ "${2}" = "ir" ] || [ "${2}" = "install_restore" ]; then
2019-10-25 04:09:31 +02:00
read_domain ${3}
sh_yes
read_lang ${4}
read_theme ${5}
read_password ${6}
read_mega_email ${7}
read_mega_password ${8}
_s ${8}
sh_progress
2019-11-11 02:12:38 +01:00
1_install "${CP_DOMAIN}"
3_backup "${CP_DOMAIN}" "config" "${MEGA_EMAIL}" "${MEGA_PASSWORD}" "restore"
2019-11-16 05:27:22 +01:00
post_commands "${CP_DOMAIN}"
2019-10-25 04:09:31 +02:00
sh_progress 100
exit 0
fi
exit 0
;;
2019-10-01 21:34:02 +02:00
"autostart" )
2021-02-02 04:17:42 +01:00
read_domain "${2}"
2021-01-15 00:46:04 +01:00
docker start "${CP_DOMAIN_}"
2019-10-01 21:34:02 +02:00
docker start fail2ban
docker start filestash
2021-01-15 00:46:04 +01:00
docker start nginx
2019-10-01 21:34:02 +02:00
exit 0
;;
2020-12-13 23:27:43 +01:00
"renew" )
2021-02-02 04:17:42 +01:00
_br "${2}"
2020-12-13 23:27:43 +01:00
read_domain "${2}"
sh_not
_s "${2}"
quiet=""
2021-01-19 23:00:10 +01:00
if [ "${3}" != "" ]; then
quiet="--dry-run"
else
sleep $(( ( "${RANDOM}" % 900 ) ))
fi
2020-12-13 23:27:43 +01:00
docker run \
--rm \
-v /home/${CP_DOMAIN}/config/production/nginx/ssl.d:/etc/letsencrypt \
-v /home/${CP_DOMAIN}/config/production/nginx/letsencrypt:/var/lib/letsencrypt \
-v /home/${CP_DOMAIN}/config/production/nginx/cloudflare.ini:/cloudflare.ini \
-v /var/log/letsencrypt:/var/log/letsencrypt \
certbot/dns-cloudflare \
renew \
--dns-cloudflare \
--dns-cloudflare-credentials /cloudflare.ini \
${quiet}
docker exec -d nginx nginx -s reload
post_commands
exit 0
;;
"optimal" )
_br "${2}"
2020-05-06 00:40:10 +02:00
read_domain "${2}"
sh_not
2020-05-06 00:40:10 +02:00
_s "${2}"
docker exec -t "${CP_DOMAIN_}" node optimal.js
exit 0
;;
"mode" )
_br "${2}"
read_domain "${2}"
sh_not
2021-01-12 23:48:38 +01:00
read_mode "${3}"
_s "${2}"
2021-01-18 01:52:36 +01:00
sh_progress
sed -i "s~\"NODE_ENV\": \"production\"~\"NODE_ENV\": \"${CP_MODE}\"~" "/home/${CP_DOMAIN}/process.json" &>/dev/null
2021-01-18 02:29:26 +01:00
sed -i "s~\"NODE_ENV\": \"debug\"~\"NODE_ENV\": \"${CP_MODE}\"~" "/home/${CP_DOMAIN}/process.json" &>/dev/null
2021-01-18 01:52:36 +01:00
sh_progress
docker exec -t "${CP_DOMAIN_}" /usr/bin/cinemapress container reload &>/dev/null
sh_progress 100
exit 0
;;
2021-03-18 10:09:38 +01:00
"l"|"ll"|"lp"|"lm"|"lms"|"ls"|"llp"|"log"|"logs"|"live"|"lb"|"lbt"|"lbf"|"lbb" )
2021-01-09 09:55:31 +01:00
if [ "${1}" = "lb" ] || [ "${1}" = "lbt" ] || [ "${1}" = "lbf" ] || [ "${1}" = "lbb" ] || [ "${2}" = "bot" ] || [ "${2}" = "bots" ]; then
2021-01-10 00:15:32 +01:00
RR='\o033[0;31m'
GG='\o033[0;32m'
YY='\o033[0;33m'
2021-01-10 06:15:26 +01:00
BB='\o033[1;36m'
2021-01-10 00:15:32 +01:00
NCC='\o033[0m'
2021-01-09 01:12:50 +01:00
_br
if [ "${1}" = "live" ]; then
_line
_header "BOT DETECTED"
_line
_br
tail \
-n0 -f /home/*/log/err*.log \
-n0 -f /home/*/log/out*.log \
2021-01-10 00:15:32 +01:00
| sed \
-e 's/\([0-9T:-]*\):\s*/\1/' \
-e 's/\(TRUE BOT DETECTED\)/ \o033[32mTRUE\o033[39m/' \
-e 's/\(FAKE BOT DETECTED\)/ \o033[31mFAKE\o033[39m/' \
2021-01-10 06:15:26 +01:00
-e 's/\(BAD BOT DETECTED \[CAPTCHA \(TRUE\|FALSE\)\]\)/ \o033[36mBAD?\o033[39m [CAPTCHA]/' \
2021-01-10 00:15:32 +01:00
-e 's/\(BAD BOT DETECTED\)/ \o033[33mBAD!\o033[39m/'
2021-01-09 01:12:50 +01:00
_br
fi
if [ "${3}" = "" ] && { [ "${1}" = "lb" ] || [ "${2}" = "bot" ] || [ "${2}" = "bots" ]; }; then
_line
_header "BOT DETECTED"
_line
_br
2021-01-10 00:15:32 +01:00
grep \
"BOT DETECTED" /home/*/log/err*.log /home/*/log/out*.log \
| sed -E "s/\/home\/([0-9A-Za-z.-]{10})([0-9A-Za-z.-]*)\/log\/(out|err)-0\.log:([0-9T:-]*):\s*/\4 \1/" \
| sed -E "s/TRUE BOT DETECTED/ ${GG}TRUE${NCC}/" \
| sed -E "s/FAKE BOT DETECTED/ ${RR}FAKE${NCC}/" \
2021-01-10 06:15:26 +01:00
| sed -E "s/BAD BOT DETECTED \[CAPTCHA (TRUE|FALSE)\]/ ${BB}BAD?${NCC} [CAPTCHA]/" \
2021-01-10 00:15:32 +01:00
| sed -E "s/BAD BOT DETECTED/ ${YY}BAD!${NCC}/" \
| sort -k1
2021-01-09 01:12:50 +01:00
_br
_line
_br
fi
if [ "${1}" = "lbt" ] || [ "${3}" = "true" ]; then
_line
_header "TRUE BOT DETECTED"
_line
_br
2021-01-10 00:15:32 +01:00
grep \
"TRUE BOT DETECTED" /home/*/log/err*.log /home/*/log/out*.log \
| sed -E "s/\/home\/([0-9A-Za-z.-]{10})([0-9A-Za-z.-]*)\/log\/(out|err)-0\.log:([0-9T:-]*):\s*/\4 \1/" \
| sed -E "s/TRUE BOT DETECTED/ ${GG}TRUE${NCC}/" \
| sort -k1
2021-01-09 01:12:50 +01:00
_br
_line
_br
fi
if [ "${1}" = "lbf" ] || [ "${3}" = "fake" ]; then
_line
_header "FAKE BOT DETECTED"
_line
_br
2021-01-10 00:15:32 +01:00
grep \
"FAKE BOT DETECTED" /home/*/log/err*.log /home/*/log/out*.log \
| sed -E "s/\/home\/([0-9A-Za-z.-]{10})([0-9A-Za-z.-]*)\/log\/(out|err)-0\.log:([0-9T:-]*):\s*/\4 \1/" \
| sed -E "s/FAKE BOT DETECTED/ ${RR}FAKE${NCC}/" \
| sort -k1
2021-01-09 01:12:50 +01:00
_br
_line
_br
fi
2021-01-09 09:55:31 +01:00
if [ "${1}" = "lbb" ] || [ "${3}" = "bad" ]; then
_line
_header "BAD BOT DETECTED"
_line
_br
2021-01-10 00:15:32 +01:00
grep \
"BAD BOT DETECTED" /home/*/log/err*.log /home/*/log/out*.log \
| sed -E "s/\/home\/([0-9A-Za-z.-]{10})([0-9A-Za-z.-]*)\/log\/(out|err)-0\.log:([0-9T:-]*):\s*/\4 \1/" \
2021-01-10 06:15:26 +01:00
| sed -E "s/BAD BOT DETECTED \[CAPTCHA (TRUE|FALSE)\]/ ${BB}BAD?${NCC} [CAPTCHA]/" \
2021-01-10 00:15:32 +01:00
| sed -E "s/BAD BOT DETECTED/ ${YY}BAD!${NCC}/" \
| sort -k1
2021-01-09 09:55:31 +01:00
_br
_line
_br
fi
2021-01-09 01:12:50 +01:00
exit 0
fi
2020-05-17 22:33:17 +02:00
if [ "${1}" = "ll" ] || [ "${1}" = "live" ] || [ "${2}" = "live" ] || [ "${2}" = "l" ]; then
2020-05-06 01:15:16 +02:00
_br
2020-05-06 00:40:10 +02:00
tail \
-n0 -f /var/log/nginx/*.log \
-n0 -f /home/*/log/err*.log \
-n0 -f /home/*/log/out*.log
exit 0
fi
2021-01-25 03:39:21 +01:00
if [ "${1}" = "llp" ] || [ "${1}" = "lp" ]; then
2021-01-19 22:01:57 +01:00
_br
tail \
-n0 -f /var/log/nginx/*.log \
-n0 -f /home/*/log/err*.log \
-n0 -f /home/*/log/out*.log \
| grep -v ping
exit 0
fi
2021-01-25 03:39:21 +01:00
if [ "${1}" = "lm" ]; then
_br
tail \
-n0 -f /home/*/log/movies*.log
exit 0
fi
2021-03-18 10:09:38 +01:00
if [ "${1}" = "ls" ] || [ "${1}" = "lms" ]; then
2021-01-25 03:39:21 +01:00
_br
tail \
-n0 -f /home/*/log/movies*.log \
| grep -v REALTIME
exit 0
fi
_br "${2}"
2020-01-20 06:33:27 +01:00
read_domain "${2}"
2019-12-08 22:26:32 +01:00
sh_not
2020-01-20 06:33:27 +01:00
_s "${2}"
_header "DOCKER CONTAINER"
_content
if docker network ls | grep -q cinemapress
then
_content "Network: runnind"
else
_content "Network: stopped"
fi
2021-04-25 22:15:49 +02:00
if [ "$(docker ps -aq -f health=healthy -f name=^/${CP_DOMAIN_}\$ 2>/dev/null)" != "" ]; then
2020-01-20 06:33:27 +01:00
_content "Website: runnind"
else
_content "Website: stopped"
fi
2021-04-25 22:15:49 +02:00
if [ "$(docker ps -aq -f health=healthy -f name=^/nginx\$ 2>/dev/null)" != "" ]; then
2020-01-20 06:33:27 +01:00
NGINX_STATUS=$(docker exec -t nginx nginx -t | grep successful)
if [ "${NGINX_STATUS}" != "" ]; then
_content "Nginx: runnind"
else
_content "Nginx: error"
docker exec -t nginx nginx -t
fi
else
_content "Nginx: stopped"
fi
2021-04-25 22:15:49 +02:00
if [ "$(docker ps -aq -f health=healthy -f name=^/fail2ban\$ 2>/dev/null)" != "" ]; then
2020-01-20 06:33:27 +01:00
_content "Fail2ban: runnind"
else
_content "Fail2ban: stopped"
fi
if [ "$(docker ps -aq -f status=running -f name=^/filestash\$ 2>/dev/null)" != "" ]; then
_content "FTP: runnind"
else
_content "FTP: stopped"
fi
2020-06-07 01:30:37 +02:00
if [ "$(docker ps -aq -f status=running -f name=^/mail\$ 2>/dev/null)" != "" ]; then
_content "MailServer: runnind"
else
_content "MailServer: stopped"
fi
2020-01-20 06:33:27 +01:00
_content
_header "NGINX LOGS"
_content
_content "$(tail -n50 /var/log/nginx/*.log | curl -s -F 'clbin=<-' https://clbin.com)"
_content
docker exec -t "${CP_DOMAIN_}" /usr/bin/cinemapress container logs
2019-12-08 22:26:32 +01:00
exit 0
;;
2019-11-13 01:12:07 +01:00
"clear_vps"|"clean_vps"|"flush_vps"|"clear_all"|"clean_all"|"flush_all" )
2019-11-02 15:04:36 +01:00
_br
2019-11-01 16:14:59 +01:00
sh_progress
2019-12-03 02:06:09 +01:00
docker rm -f $(docker ps -aq) >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
docker rmi -f $(docker images -q) >>/var/log/docker_remove_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-11 02:27:34 +01:00
for D in /home/*; do
2020-05-18 02:08:17 +02:00
if [ -f "${D}/process.json" ] || [ -f "${D}/index.php" ]; then
2019-11-11 02:27:34 +01:00
DD=`find ${D} -maxdepth 0 -printf "%f"`
2019-11-16 05:45:38 +01:00
sed -i "s/.*${DD}.*//g" /etc/crontab &> /dev/null
2019-12-03 02:06:09 +01:00
rm -rf /home/${DD:?}
rm -rf /root/${DD:?}
2019-11-11 02:27:34 +01:00
fi
done
2020-06-07 01:30:37 +02:00
rm -rf \
/var/log/* \
/var/ngx_pagespeed_cache \
/var/lib/sphinx/tmp \
/var/lib/sphinx/old \
/etc/nginx/bots.d \
/var/lib/cinemapress \
/var/docker-mailserver
2019-11-01 16:14:59 +01:00
sh_progress 100
exit 0
;;
"clear_log"|"clean_log"|"clear_logs"|"clean_logs"|"logrotate" )
2019-11-09 23:55:06 +01:00
CP_SIZE=${2:-"+102400"}
find /var/log -type f -name '*.log' -size "${CP_SIZE}" -exec rm -rf {} \; \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_logrotate_"$(date '+%d_%m_%Y')".log 2>&1
2019-11-09 23:55:06 +01:00
find /var/log -type f -name '*.gz' -exec rm -rf {} \; \
2019-12-03 02:06:09 +01:00
>>/var/log/docker_logrotate_"$(date '+%d_%m_%Y')".log 2>&1
2020-01-08 23:42:57 +01:00
rm -rf /var/ngx_pagespeed_cache/*
if [ "${CP_OS}" != "alpine" ] && [ "${CP_OS}" != "\"alpine\"" ]; then
2019-12-03 02:06:09 +01:00
docker restart fail2ban >>/var/log/docker_logrotate_"$(date '+%d_%m_%Y')".log 2>&1
docker restart filestash >>/var/log/docker_logrotate_"$(date '+%d_%m_%Y')".log 2>&1
2021-01-15 00:46:04 +01:00
docker restart nginx >>/var/log/docker_logrotate_"$(date '+%d_%m_%Y')".log 2>&1
fi
exit 0
;;
"any"|"default_server"|"ds" )
for all_server in /home/*/config/production/nginx/conf.d/default.conf; do
[ -f "${all_server}" ] || continue
sed -i "s~ include ${all_server/conf.d/any.d}~#any include ${all_server/conf.d/any.d}~" "${all_server}"
done
if [ "${2}" = "none" ]; then
2021-01-11 03:03:09 +01:00
_br
_header "DEFAULT SERVER"
_content
_content "NONE"
_content
2021-01-31 05:05:58 +01:00
_content "(wait 20 seconds)"
_content
_line
2021-01-11 03:03:09 +01:00
_br
2021-01-31 05:05:58 +01:00
mkdir -p /home/default_server/config/production/nginx/conf.d/
mkdir -p /home/default_server/config/production/nginx/any.d/
echo "server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/default_server;
server_name _;
deny all;
location / {return 444;}
}
" > /home/default_server/config/production/nginx/any.d/default.conf
echo " include /home/default_server/config/production/nginx/any.d/default.conf;" \
> /home/default_server/config/production/nginx/conf.d/default.conf
docker restart nginx &>/dev/null
exit 0
fi
read_domain "${2}"
sh_not
sed -i "s~#any include /home/${CP_DOMAIN}/config/production/nginx/any.d/default.conf~ include /home/${CP_DOMAIN}/config/production/nginx/any.d/default.conf~" \
/home/"${CP_DOMAIN}"/config/production/nginx/conf.d/default.conf
2021-01-11 03:03:09 +01:00
_br
_header "DEFAULT SERVER"
_content
_content "${CP_DOMAIN}"
_content
_content "(wait 60 seconds)"
_content
_line
2021-01-11 03:03:09 +01:00
_br
exit 0
;;
2020-08-19 20:06:09 +02:00
"bot"|"bot_https"|"domain"|"domain_https" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
read_bomain "${3}"
2020-08-19 20:06:09 +02:00
if [ "${1}" = "bot_https" ] || [ "${1}" = "domain_https" ]; then
read_cloudflare_email "${4}"
read_cloudflare_api_key "${5}"
fi
_s "${3}"
sh_progress
if [ ! -f /home/"${CP_BOMAIN}"/process.json ]; then
sh_progress
2021-06-06 00:55:05 +02:00
1_install "${CP_BOMAIN}" "en" "default" "pass"
fi
if [ "${CLOUDFLARE_EMAIL}" != "" ] && [ "${CLOUDFLARE_API_KEY}" != "" ]; then
sh_progress
6_https "${CP_BOMAIN}" "${CLOUDFLARE_EMAIL}" "${CLOUDFLARE_API_KEY}"
fi
sh_progress
sed -i "s~root /home/${CP_BOMAIN};~root /home/${CP_DOMAIN};~g" \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf
2020-05-07 04:11:24 +02:00
sed -i "s~/home/${CP_BOMAIN}/config/production/nginx/pass.d/${CP_BOMAIN}.pass~/home/${CP_DOMAIN}/config/production/nginx/pass.d/${CP_DOMAIN}.pass~g" \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf
sed -i "s~/home/${CP_BOMAIN}/config/production/nginx/error.d/default.conf~/home/${CP_DOMAIN}/config/production/nginx/error.d/default.conf~g" \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf
sed -i "s~server ${CP_BOMAIN_}:3000~server ${CP_DOMAIN_}:3000~g" \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/default.conf
sh_progress
docker stop "${CP_BOMAIN_}" >>/var/log/docker_bot_"$(date '+%d_%m_%Y')".log 2>&1
sh_progress
docker rm -f "${CP_BOMAIN_}" >>/var/log/docker_bot_"$(date '+%d_%m_%Y')".log 2>&1
sh_progress
2020-05-07 04:21:56 +02:00
rm -rf /home/"${CP_BOMAIN}"/config/production/nginx/bots.d \
/home/"${CP_BOMAIN}"/config/production/nginx/error.d \
/home/"${CP_BOMAIN}"/config/production/nginx/html \
/home/"${CP_BOMAIN}"/config/production/nginx/pagespeed.d \
/home/"${CP_BOMAIN}"/config/production/nginx/pass.d \
/home/"${CP_BOMAIN}"/config/production/nginx/nginx.sh \
/home/"${CP_BOMAIN}"/config/production/nginx/nginx.conf \
/home/"${CP_BOMAIN}"/config/production/nginx/mime.types \
/home/"${CP_BOMAIN}"/config/production/nginx/Dockerfile \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/globalblacklist.conf \
/home/"${CP_BOMAIN}"/config/production/nginx/conf.d/real_ip.conf
rm -rf /tmp/nginx && mv /home/"${CP_BOMAIN}"/config/production/nginx /tmp/nginx \
>>/var/log/docker_bot_"$(date '+%d_%m_%Y')".log 2>&1
rm -rf /home/"${CP_BOMAIN:?}"
mkdir -p /home/"${CP_BOMAIN}"/config/production
mkdir -p /home/"${CP_BOMAIN}"/log
mv /tmp/nginx /home/"${CP_BOMAIN}"/config/production/nginx
touch /home/"${CP_BOMAIN}"/process.json
2020-05-19 00:08:40 +02:00
sh_progress 100
NGINX_STATUS=$(docker exec -t nginx nginx -t | grep successful)
if [ "${NGINX_STATUS}" != "" ]; then
docker exec nginx nginx -s reload >>/var/log/docker_bot_"$(date '+%d_%m_%Y')".log 2>&1
2020-12-02 23:54:01 +01:00
_header "DOMAIN FOR BOTS / ALTERNATE DOMAIN"
_content
_content "${CP_BOMAIN}"
_content
_line
else
_header "ERROR"
_content
docker exec -t nginx nginx -t
_content
_line
fi
post_commands "${CP_BOMAIN}"
_br
exit 0
;;
2020-01-20 06:58:56 +01:00
"bench"|"benchmark"|"speedtest" )
2020-01-20 06:33:27 +01:00
SPEED_LOCATION=${2:-"eu"}
bash <(wget "https://raw.githubusercontent.com/laset-com/speedtest/master/speedtest.sh" -qO-) "-${SPEED_LOCATION}"
exit 0
;;
2020-01-16 03:36:20 +01:00
"import" )
if [ "${2}" = "dle" ]; then
read_domain "${3}"
sh_not
read_import "${4}"
_s "${4}"
FILE_EXPORT="http://${IMPORT_DOMAIN}/uploads/files/${CP_DOMAIN}.xml"
CREATE_EXPORT=$(wget -qO- "http://${IMPORT_DOMAIN}/dle2cinemapress.php?domain=${CP_DOMAIN}")
if [ "${CREATE_EXPORT}" != "ok" ]; then
_header "ERROR"
_content
_content "The website ${IMPORT_DOMAIN} is temporarily unavailable,"
_content "please try again later."
_content "http://${IMPORT_DOMAIN}/dle2cinemapress.php?domain=${CP_DOMAIN}"
_content
_s
exit 0
else
sleep 2
fi
_line
_content "Downloading ..."
wget -qO "/home/${CP_DOMAIN}/config/production/sphinx/export.xml" "${FILE_EXPORT}" || \
rm -rf "/home/${CP_DOMAIN}/config/production/sphinx/export.xml"
if [ -f "/home/${CP_DOMAIN}/config/production/sphinx/export.xml" ]; then
_content "Import ..."
rm -rf "/home/${CP_DOMAIN}/config/production/sphinx/source.xml"
mv "/home/${CP_DOMAIN}/config/production/sphinx/export.xml" \
"/home/${CP_DOMAIN}/config/production/sphinx/source.xml"
docker exec "${CP_DOMAIN_}" indexer "xmlpipe2_${CP_DOMAIN_}" --rotate >/dev/null
_content "Done!"
else
_header "ERROR"
_content
_content "Failed to download export file,"
_content "please try again later."
_content "${FILE_EXPORT}"
_content
_s
exit 0
fi
fi
exit 0
;;
2020-01-09 04:14:14 +01:00
"app" )
read_domain "${2}"
2020-01-09 05:16:37 +01:00
sh_not
2020-03-06 03:44:55 +01:00
if [ "${3}" = "windows" ] || [ "${3}" = "linux" ] || [ "${3}" = "osx" ]; then
NAME_OS="${3}"
2020-03-09 02:05:16 +01:00
if [ "${4}" = "" ]; then
APP_DOMAIN="app.${2}"
else
APP_DOMAIN="${4}"
fi
2020-03-06 03:44:55 +01:00
_br
else
read_os "${3}"
read_app "${4}"
_s "${4}"
fi
PROTOCOLS=$(grep "\"protocol\"" /home/"${CP_DOMAIN}"/config/production/config.js)
PROTOCOL=$(echo "${PROTOCOLS}" | sed 's/.*"protocol":\s*"\(https\|http\).*/\1/')
2020-01-09 05:16:37 +01:00
sh_progress
2020-06-18 23:49:00 +02:00
docker rm $(docker ps -aq) >>/var/log/docker_app_"$(date '+%d_%m_%Y')".log 2>&1
2020-01-09 05:16:37 +01:00
sh_progress
2020-06-18 23:49:00 +02:00
docker rmi -f $(docker images -f 'dangling=true' -q) >>/var/log/docker_app_"$(date '+%d_%m_%Y')".log 2>&1
sh_progress
2020-01-09 04:14:14 +01:00
docker run \
2021-01-13 23:14:55 +01:00
--rm \
2020-01-09 04:14:14 +01:00
-v /home/"${CP_DOMAIN}"/config/app/icons:/icons \
-v /home/"${CP_DOMAIN}"/config/app/"${NAME_OS}":/cinemaapp \
2020-01-09 04:14:14 +01:00
cinemapress/app:latest \
--name "${CP_DOMAIN_}" \
--platform "${NAME_OS}" \
--arch "x64" \
--app-copyright "CinemaPress App" \
--app-version "${CP_VER}" \
2020-01-09 04:14:14 +01:00
--icon "/icons/icon.png" \
--width "1280px" \
--height "800px" \
--min-width "0" \
--min-height "0" \
--user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0 CinemaPress App" \
2020-01-09 04:14:14 +01:00
--ignore-certificate \
--insecure \
--internal-urls ".*" \
2020-01-09 04:14:14 +01:00
--disable-context-menu \
--disable-dev-tools \
--single-instance \
--darwin-dark-mode-support \
--background-color "#1a2035" \
2020-06-17 22:49:10 +02:00
--verbose \
2020-01-09 04:14:14 +01:00
--win32metadata "{\"CompanyName\": \"${CP_DOMAIN}\",\"FileDescription\": \"${CP_DOMAIN}\",\"OriginalFilename\": \"${CP_DOMAIN}\",\"ProductName\": \"${CP_DOMAIN}\",\"InternalName\": \"${CP_DOMAIN}\"}" \
2020-03-06 03:44:55 +01:00
"${PROTOCOL}://${APP_DOMAIN}" \
"/cinemaapp/" \
2020-01-09 04:14:14 +01:00
>>/var/log/docker_app_"$(date '+%d_%m_%Y')".log 2>&1
2020-06-17 22:49:10 +02:00
sleep 10
2020-01-09 05:16:37 +01:00
sh_progress
rm -rf /home/${CP_DOMAIN}/files/"${NAME_OS}"
mkdir -p /home/${CP_DOMAIN}/files/"${NAME_OS}"
2020-06-18 23:49:00 +02:00
mv /home/${CP_DOMAIN}/config/app/"${NAME_OS}"/* \
2020-03-09 04:11:51 +01:00
/home/${CP_DOMAIN}/config/app/"${NAME_OS}"/app >/dev/null 2>&1;
if [ -f /home/${CP_DOMAIN}/config/app/"${NAME_OS}"/app/"${CP_DOMAIN_}".exe ]; then
mv /home/${CP_DOMAIN}/config/app/"${NAME_OS}"/app/"${CP_DOMAIN_}".exe \
/home/${CP_DOMAIN}/config/app/"${NAME_OS}"/app/app.exe
fi
cd /home/${CP_DOMAIN}/config/app/"${NAME_OS}" && \
2020-03-06 03:44:55 +01:00
zip -rq /home/${CP_DOMAIN}/files/"${NAME_OS}"/app_"${CP_VER}".zip app
rm -rf /home/${CP_DOMAIN}/config/app/"${NAME_OS}"
docker image prune -af >>/var/log/docker_app_"$(date '+%d_%m_%Y')".log 2>&1
2020-01-09 05:16:37 +01:00
sh_progress 100
_line
2020-06-17 22:49:10 +02:00
_header "/files/${NAME_OS}/app_${CP_VER}.zip"
2020-03-06 03:44:55 +01:00
_line
_br
exit 0
;;
2021-04-18 23:41:39 +02:00
"splash" )
2020-03-06 03:44:55 +01:00
if [ "${4}" = "" ]; then exit 0; fi
_br
sh_progress
PROTOCOLS=$(grep "\"protocol\"" /home/"${2}"/config/production/config.js)
PROTOCOL=$(echo "${PROTOCOLS}" | sed 's/.*"protocol":\s*"\(https\|http\).*/\1/')
2021-04-18 23:41:39 +02:00
SPLASH_DOMAIN="${PROTOCOL}:\/\/app.${2}"
if [ "${6}" != "" ]; then SPLASH_DOMAIN="${6//\//\\\/}"; fi
GIT=${5:-github}
2020-03-06 03:44:55 +01:00
cd /home/"${2}"/files/splash && \
2020-03-08 23:23:08 +01:00
echo "config" >> .gitignore && \
echo "screen.html" >> .gitignore && \
2020-03-06 03:44:55 +01:00
git init >/dev/null 2>&1; \
cp -rf config .git/config; \
cp -rf screen.html index.html; \
2021-04-18 00:02:17 +02:00
sed -Ei "s/\/\/example\.com/${SPLASH_DOMAIN}/g" index.html; \
2020-03-06 03:44:55 +01:00
sed -Ei "s/config_name/${3}/g" .git/config; \
sed -Ei "s/config_password/${4}/g" .git/config; \
if [ "${GIT}" != "github" ]; then
sed -Ei "s/github/gitlab/g" .git/config;
fi;
git add . >/dev/null 2>&1; \
git commit -a -m "${3}" >/dev/null 2>&1; \
2021-01-19 02:38:22 +01:00
git branch -M main >/dev/null 2>&1; \
git push -u origin main >/dev/null 2>&1
2020-03-06 03:44:55 +01:00
sh_progress
sleep 20
sh_progress 100
_line
_header "DOMAIN NAME FOR SPLASH SCREEN"
_line
2020-03-08 23:19:24 +01:00
_header "${3}.${GIT}.io"
2020-01-09 05:16:37 +01:00
_line
_br
2020-01-09 05:16:37 +01:00
exit 0
2020-01-09 04:14:14 +01:00
;;
2020-06-06 01:18:18 +02:00
"ms"|"mailserver"|"mail"|"setup.sh"|"./setup.sh" )
2021-03-27 22:14:28 +01:00
if [ "${2}" = "help" ]; then
2021-03-27 23:10:58 +01:00
wget -qO /usr/bin/mailcinema https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/2527ebfaf2b3eee11b11c4ee589010e8c7a61a99/setup.sh
sed -Ei "s/\\\$0/cinemapress ms/" /usr/bin/mailcinema
chmod a+x /usr/bin/mailcinema
2020-06-06 01:18:18 +02:00
/usr/bin/mailcinema
elif [ "${3}" = "" ]; then
2020-05-30 23:43:26 +02:00
read_domain "${2}"
sh_not
2020-06-07 01:30:37 +02:00
SSL_TYPE=()
SSL_DIR=()
if [ -d "/home/${CP_DOMAIN}/config/production/nginx/ssl.d/live/${CP_DOMAIN}/" ]; then
SSL_TYPE=(-e "SSL_TYPE=letsencrypt")
SSL_DIR=(-v /home/"${CP_DOMAIN}"/config/production/nginx/ssl.d:/etc/letsencrypt:ro)
fi
2020-05-30 23:43:26 +02:00
docker run \
-d \
--name mail \
--hostname "mail.${CP_DOMAIN}" \
--restart always \
--cap-add NET_ADMIN \
--cap-add SYS_PTRACE \
-v /var/docker-mailserver:/tmp/docker-mailserver \
2020-06-07 01:30:37 +02:00
"${SSL_DIR[@]}" \
2020-05-30 23:43:26 +02:00
-e ENABLE_SPAMASSASSIN=1 \
-e SPAMASSASSIN_SPAM_TO_INBOX=1 \
-e ENABLE_CLAMAV=1 \
-e ENABLE_FAIL2BAN=1 \
2020-06-07 01:30:37 +02:00
-e DMS_DEBUG=1 \
"${SSL_TYPE[@]}" \
2020-05-30 23:43:26 +02:00
-p 25:25 \
-p 143:143 \
-p 465:465 \
-p 587:587 \
-p 993:993 \
cinemapress/mail
2021-03-27 23:10:58 +01:00
wget -qO /usr/bin/mailcinema https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/2527ebfaf2b3eee11b11c4ee589010e8c7a61a99/setup.sh
sed -Ei "s/\\\$0/cinemapress ms/" /usr/bin/mailcinema
chmod a+x /usr/bin/mailcinema
2020-06-01 20:45:31 +02:00
_br
2020-05-30 23:43:26 +02:00
_line
2020-06-07 01:30:37 +02:00
_header "MAIL SERVER ${CP_DOMAIN} STARTED"
_line
printf "${Y}Type:${NC} ${G}A${NC}"
_br
printf "${Y}Name:${NC} ${G}mail.${CP_DOMAIN}${NC}"
_br
printf "${Y}Content:${NC} ${G}IP of your server${NC}"
_br
_line
printf "${Y}Type:${NC} ${G}A${NC}"
_br
printf "${Y}Name:${NC} ${G}imap.${CP_DOMAIN}${NC}"
_br
printf "${Y}Content:${NC} ${G}IP of your server${NC}"
_br
_line
printf "${Y}Type:${NC} ${G}A${NC}"
_br
printf "${Y}Name:${NC} ${G}smtp.${CP_DOMAIN}${NC}"
_br
printf "${Y}Content:${NC} ${G}IP of your server${NC}"
_br
_line
printf "${Y}Type:${NC} ${G}MX${NC}"
_br
printf "${Y}Name:${NC} ${G}${CP_DOMAIN}${NC}"
_br
printf "${Y}Content:${NC} ${G}mail.${CP_DOMAIN}${NC}"
_br
printf "${Y}Priority:${NC} ${G}1${NC}"
_br
_line
printf "${Y}Type:${NC} ${G}TXT${NC}"
_br
printf "${Y}Name:${NC} ${G}${CP_DOMAIN}${NC}"
_br
printf "${Y}Content:${NC} ${G}v=spf1 mx -all${NC}"
_br
2020-05-30 23:43:26 +02:00
_line
_br
else
/usr/bin/mailcinema "${2}" "${3}" "${4}" "${5}" "${6}" "${7}" "${8}" "${9}"
sleep 5
2020-06-01 20:45:31 +02:00
_br
2020-06-07 01:30:37 +02:00
if [ "${3}" = "dkim" ] && [ -d "/var/docker-mailserver/opendkim/keys" ]; then
docker restart mail &>/dev/null
sleep 15
2020-06-01 20:45:31 +02:00
cd /var/docker-mailserver/opendkim/keys/ && for f in */; do
if [ -d "${f}" ] && [ -f "/var/docker-mailserver/opendkim/keys/${f%%/}/mail.txt" ]; then
2020-06-07 01:30:37 +02:00
CONTENT_DKIM=""
2020-05-30 23:43:26 +02:00
_header "${f%%/}"
2020-06-07 01:30:37 +02:00
printf "${Y}Type:${NC} ${G}TXT${NC}"
_br
printf "${Y}Name:${NC} ${G}mail._domainkey${NC}"
_br
while IFS= read -r line; do CONTENT_DKIM_ONE=$(echo ${line} | sed 's/.*"\(.*\)".*/\1/'); CONTENT_DKIM="${CONTENT_DKIM}${CONTENT_DKIM_ONE}"; done < "/var/docker-mailserver/opendkim/keys/${f%%/}/mail.txt"
printf "${Y}Content:${NC} ${G}${CONTENT_DKIM}${NC}"
_br
2020-05-30 23:43:26 +02:00
_line
_br
fi
done
fi
fi
exit 0
2020-05-26 04:24:44 +02:00
;;
"temp"|"template"|"design"|"cinematheme"|"ct"|"uncss" )
2020-06-10 22:28:46 +02:00
read_domain "${2}"
2020-06-11 00:30:40 +02:00
sh_not
ARRAY_PAGE=()
2020-06-14 21:40:58 +02:00
if [ "${3}" = "-h" ]; then
docker exec -it "${CP_DOMAIN_}" /usr/bin/cinematheme -h
elif [ "${3}" != "" ]; then
2020-06-13 00:28:24 +02:00
docker exec -it "${CP_DOMAIN_}" /usr/bin/cinemapress container cinematheme "${@}"
2020-06-13 04:03:23 +02:00
else
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[Name Theme] -n ' NAME_THEME
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Index] -i ' INDEX_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Movie] -m ' MOVIE_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Category] -c ' CATEGORY_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Categories] -s ' CATEGORIES_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Episode] -e ' EPISODE_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Picture] -p ' PICTURE_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Trailer] -t ' TRAILER_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Online] -o ' ONLINE_PAGE
2020-06-13 04:03:23 +02:00
_line
2020-06-14 00:07:06 +02:00
read -r -e -p '[URL Download] -d ' DOWNLOAD_PAGE
2020-06-13 04:03:23 +02:00
_line
_br
if [ "${NAME_THEME}" != "" ]; then ARRAY_PAGE+=(-n "${NAME_THEME}"); fi
if [ "${INDEX_PAGE}" != "" ]; then ARRAY_PAGE+=(-i "${INDEX_PAGE}"); fi
if [ "${MOVIE_PAGE}" != "" ]; then ARRAY_PAGE+=(-m "${MOVIE_PAGE}"); fi
if [ "${CATEGORY_PAGE}" != "" ]; then ARRAY_PAGE+=(-c "${CATEGORY_PAGE}"); fi
if [ "${CATEGORIES_PAGE}" != "" ]; then ARRAY_PAGE+=(-s "${CATEGORIES_PAGE}"); fi
if [ "${EPISODE_PAGE}" != "" ]; then ARRAY_PAGE+=(-e "${EPISODE_PAGE}"); fi
if [ "${PICTURE_PAGE}" != "" ]; then ARRAY_PAGE+=(-p "${PICTURE_PAGE}"); fi
if [ "${TRAILER_PAGE}" != "" ]; then ARRAY_PAGE+=(-t "${TRAILER_PAGE}"); fi
if [ "${ONLINE_PAGE}" != "" ]; then ARRAY_PAGE+=(-o "${ONLINE_PAGE}"); fi
if [ "${DOWNLOAD_PAGE}" != "" ]; then ARRAY_PAGE+=(-d "${DOWNLOAD_PAGE}"); fi
if [ "${1}" = "uncss" ]; then
ARRAY_PAGE+=(--uncss);
docker exec -it "${CP_DOMAIN_}" /usr/bin/cinematheme "${ARRAY_PAGE[@]}"
else
docker exec -it "${CP_DOMAIN_}" /usr/bin/cinemapress container cinematheme "${ARRAY_PAGE[@]}"
fi
2020-06-13 04:03:23 +02:00
_br
2020-06-13 00:28:24 +02:00
fi
2020-06-10 22:28:46 +02:00
exit 0
;;
"cms" )
read_domain ${2}
sh_yes
read_cms "${3}"
2020-01-18 04:09:13 +01:00
_s ${3}
NAME_CMS=${NAME_CMS:-}
2020-01-18 04:09:13 +01:00
MYSQL_PASSWORD="$(date +%s%N | sha256sum | base64 | head -c 12)"
MYSQL_DATABASE="${CP_DOMAIN_}"
MYSQL_USER="${CP_DOMAIN_}"
ADMIN_USER="cinemaadmin"
2020-01-18 04:09:13 +01:00
ADMIN_PASSWORD="$(date +%s%N | sha256sum | base64 | head -c 12)"
2020-04-05 23:00:45 +02:00
if [ "${NAME_CMS}" = "backup" ] && [ "${4}" = "create" ]; then
2020-01-18 04:09:13 +01:00
if [ -f "/var/lib/cinemapress/dump/backup.sql" ]; then
echo "ERROR: Backup file found /var/lib/cinemapress/dump/backup.sql"
exit 0
fi
2020-01-18 04:09:13 +01:00
docker exec mysql sh -c 'exec mysqldump -A -uroot' \
> "/var/lib/cinemapress/dump/backup.sql"
echo "SUCCESS: Backup file /var/lib/cinemapress/dump/backup.sql"
exit 0
fi
2020-04-05 23:00:45 +02:00
if [ "${NAME_CMS}" = "backup" ] && [ "${4}" = "restore" ]; then
if [ ! -f "/var/lib/cinemapress/dump/restore.sql" ]; then
echo "ERROR: Restore file not found /var/lib/cinemapress/dump/restore.sql"
exit 0
fi
2020-01-18 04:09:13 +01:00
docker exec -i mysql sh -c 'exec mysql -uroot' \
< "/var/lib/cinemapress/dump/restore.sql"
echo "SUCCESS: Restore file /var/lib/cinemapress/dump/restore.sql"
exit 0
fi
mkdir -p /var/lib/cinemapress/php
mkdir -p /var/lib/cinemapress/mysql
mkdir -p /var/lib/cinemapress/dump
2020-05-30 00:25:48 +02:00
mkdir -p /home/"${CP_DOMAIN}"/config/production/nginx/conf.d
mkdir -p /home/"${CP_DOMAIN}"/config/production/nginx/pass.d
mkdir -p /home/"${CP_DOMAIN}"/config/production/nginx/ssl.d
2021-01-11 04:24:36 +01:00
mkdir -p /home/"${CP_DOMAIN}"/config/production/nginx/any.d
2020-05-30 00:25:48 +02:00
mkdir -p /home/"${CP_DOMAIN}"/config/production/nginx/conf.d
mkdir -p /home/"${CP_DOMAIN}"/config/production/nginx/letsencrypt
2020-05-18 01:47:35 +02:00
if [ ! "$(docker network ls | grep cinemapress)" ]; then
docker network create \
--driver bridge \
cinemapress
fi
if [ "`docker ps -aq -f status=running -f name=^/nginx\$ 2>/dev/null`" = "" ]; then
if [ "${CP_IP}" = "domain" ] \
&& [ "`netstat -tunlp | grep 0.0.0.0:80`" = "" ] \
&& [ "`netstat -tunlp | grep :::80`" = "" ]; then
# docker build -t cinemapress/nginx https://github.com/CinemaPress/CinemaPress.git#:config/default/nginx
docker run \
-d \
--name nginx \
--restart always \
--network cinemapress \
-v /var/log/nginx:/var/log/nginx \
-v /var/local/balancer:/var/local/balancer \
-v /home:/home \
-p 80:80 \
-p 443:443 \
cinemapress/nginx:latest
NGINX_RUN=1
while [ "${NGINX_RUN}" != "50" ]; do
sleep 3
NGINX_RUN=$((1+${NGINX_RUN}))
if [ "`docker ps -aq -f status=running -f name=^/nginx\$ 2>/dev/null`" != "" ]; then
NGINX_RUN=50
fi
done
fi
fi
if [ ! "$(docker ps -a | grep php)" ]; then
docker run \
-d \
--name php \
--restart always \
--network cinemapress \
-v /home:/home \
2020-05-30 23:43:26 +02:00
cinemapress/php:latest
fi
if [ ! "$(docker ps -a | grep mysql)" ]; then
docker run \
-d \
--name mysql \
--restart always \
--network cinemapress \
-v /var/lib/cinemapress/mysql:/var/lib/mysql \
2020-01-17 04:37:27 +01:00
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
mariadb:10 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
fi
2020-01-17 04:37:27 +01:00
sleep 30
docker exec mysql sh -c \
2020-01-17 04:37:27 +01:00
"exec mysql -uroot -e \"FLUSH PRIVILEGES;CREATE DATABASE ${MYSQL_DATABASE} /*\!40100 DEFAULT CHARACTER SET utf8mb4 */;CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';GRANT ALL PRIVILEGES ON ${MYSQL_DATABASE}.* TO '${MYSQL_USER}'@'%';FLUSH PRIVILEGES;\""
sleep 30
docker exec mysql sh -c \
2020-01-17 04:37:27 +01:00
"exec mysql -uroot -e \"FLUSH PRIVILEGES;DROP USER '${MYSQL_USER}'@'%';CREATE USER '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';GRANT ALL PRIVILEGES ON ${MYSQL_DATABASE}.* TO '${MYSQL_USER}'@'%';FLUSH PRIVILEGES;\""
if [ ! "$(docker ps -a | grep adminer)" ]; then
docker run \
-d \
--name adminer \
2020-09-27 20:30:15 +02:00
--restart always \
--network cinemapress \
-e ADMINER_DEFAULT_SERVER=mysql \
-e ADMINER_DESIGN='galkaev' \
adminer:fastcgi
OPENSSL=`echo "${ADMIN_PASSWORD}" | openssl passwd -1 -stdin -salt CP`
echo "cinemaadmin:${OPENSSL}" > /home/${CP_DOMAIN}/config/production/nginx/pass.d/${CP_DOMAIN}.pass
else
ADMIN_PASSWORD=""
fi
if [ "${NAME_CMS}" = "wordpress" ]; then
2020-05-18 02:24:15 +02:00
wget -qO "wordpress.tar.gz" "https://wordpress.org/wordpress-latest.tar.gz"
tar -xzf "wordpress.tar.gz" -C /var
rm -rf "wordpress.tar.gz"
cp -rf /var/wordpress/* /home/${CP_DOMAIN}/
2020-05-18 02:52:29 +02:00
{
echo "<?php"
echo "define( 'DB_NAME', '${MYSQL_DATABASE}' );"
echo "define( 'DB_USER', '${MYSQL_USER}' );"
echo "define( 'DB_PASSWORD', '${MYSQL_PASSWORD}' );"
echo "define( 'DB_HOST', 'mysql' );"
echo "define( 'DB_CHARSET', 'utf8mb4' );"
echo "define( 'DB_COLLATE', '' );"
echo "define( 'AUTH_KEY', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'SECURE_AUTH_KEY', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'LOGGED_IN_KEY', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'NONCE_KEY', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'AUTH_SALT', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'SECURE_AUTH_SALT', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'LOGGED_IN_SALT', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "define( 'NONCE_SALT', '$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 64)' );"
echo "\$table_prefix = 'wp_';"
echo "define( 'WP_DEBUG', false );"
echo "if ( ! defined( 'ABSPATH' ) ) {"
echo " define( 'ABSPATH', __DIR__ . '/' );"
echo "}"
echo "require_once ABSPATH . 'wp-settings.php';"
} >> /home/${CP_DOMAIN}/wp-config.php
elif [ "${NAME_CMS}" = "drupal" ]; then
2020-05-18 02:24:15 +02:00
wget -qO "drupal.tar.gz" "https://www.drupal.org/download-latest/tar.gz"
tar -xzf "drupal.tar.gz" -C /var
mv /var/drupal-*/* /var/drupal-*/.htaccess /var/drupal-*/.csslintrc /var/drupal-*/.editorconfig /var/drupal-*/.eslintignore /var/drupal-*/.eslintrc.json /var/drupal-*/.gitattributes /home/${CP_DOMAIN}/
mkdir -p /home/${CP_DOMAIN}/sites/default/files/translations
chmod a+w /home/${CP_DOMAIN}/sites/default/files
chmod a+w /home/${CP_DOMAIN}/sites/default/files/translations
cp /home/${CP_DOMAIN}/sites/default/default.settings.php /home/${CP_DOMAIN}/sites/default/settings.php
chmod a+w /home/${CP_DOMAIN}/sites/default/settings.php
rm -rf "drupal.tar.gz"
elif [ "${NAME_CMS}" = "joomla" ]; then
wget -qO "joomla3.tar.gz" "https://downloads.joomla.org/cms/joomla3/3-10-3/Joomla_3-10-3-Stable-Full_Package.tar.gz?format=gz"
tar -xzf "joomla3.tar.gz" -C /home/${CP_DOMAIN}/
touch /home/${CP_DOMAIN}/configuration.php
chmod 644 /home/${CP_DOMAIN}/configuration.php
rm -rf "joomla3.tar.gz"
2020-01-17 06:24:00 +01:00
elif [ "${NAME_CMS}" = "dle" ]; then
2020-05-18 02:24:15 +02:00
wget -qO "dle_trial.zip" "https://dle-news.ru/files/dle_trial.zip"
2020-01-17 06:24:00 +01:00
mkdir -p /var/dle
unzip "dle_trial.zip" -d /var/dle/
rm -rf "dle_trial.zip"
cp -rf /var/dle/upload/* /home/${CP_DOMAIN}/
chmod 777 /home/${CP_DOMAIN}/templates
chmod 777 $(find /home/${CP_DOMAIN}/templates -type d)
chmod 666 $(find /home/${CP_DOMAIN}/templates -type f)
chmod 777 /home/${CP_DOMAIN}/backup
chmod 777 $(find /home/${CP_DOMAIN}/backup -type d)
chmod 777 /home/${CP_DOMAIN}/uploads
chmod 777 $(find /home/${CP_DOMAIN}/uploads -type d)
chmod 777 /home/${CP_DOMAIN}/engine/data
chmod 777 /home/${CP_DOMAIN}/engine/cache
chmod 777 /home/${CP_DOMAIN}/engine/cache/system
elif [ "${MYSQL_USER}" != "" ] && [ "${MYSQL_PASSWORD}" != "" ] && [ "${MYSQL_DATABASE}" != "" ]; then
{
echo "<html>"
echo "<head>"
echo " <title>Hello CinemaPress</title>"
echo "</head>"
echo "<body>"
echo " <?php"
echo " \$link = mysqli_connect('mysql', '${MYSQL_USER}', '${MYSQL_PASSWORD}', '${MYSQL_DATABASE}');"
echo " if (!\$link) {"
echo " die('ERROR: ' . mysqli_error());"
echo " }"
echo " echo 'Hello, CinemaPress!';"
echo " mysqli_close(\$link);"
echo " ?>"
echo "</body>"
echo "</html>"
} >> /home/${CP_DOMAIN}/index.php
else
{
echo "<html>"
echo "<head>"
echo " <title>Hello CinemaPress</title>"
echo "</head>"
echo "<body>"
echo " <?php"
echo " echo 'Hello, CinemaPress!';"
echo " ?>"
echo "</body>"
echo "</html>"
} >> /home/${CP_DOMAIN}/index.php
fi
{
echo "server {"
echo " listen 80;"
echo " listen [::]:80;"
2020-05-30 00:25:48 +02:00
echo " #ssl include /home/${CP_DOMAIN}/config/production/nginx/ssl.d/default.conf;"
echo " root /home/${CP_DOMAIN};"
echo " index index.php index.html index.htm;"
echo " server_name .${CP_DOMAIN};"
echo " access_log /var/log/nginx/access_${CP_DOMAIN}.log;"
echo " include /etc/nginx/bots.d/ddos.conf;"
echo " include /etc/nginx/bots.d/blockbots.conf;"
echo " keepalive_timeout 10;"
echo " client_max_body_size 64m;"
echo " if ( \$host ~* ^www\.(?<domain>.+) ) {"
2020-09-29 23:06:54 +02:00
echo " rewrite ^/(.*)$ \$scheme://\$domain/\$1 permanent;"
echo " }"
echo " if ( \$request_method !~ ^(GET|POST)$ ) {"
echo " return 444;"
echo " }"
echo " location ~* ^/(bin|.*\.sh|.*\.conf)($|\/) {"
echo " return 404;"
echo " }"
echo " location / {"
echo " try_files \$uri \$uri/ /index.php?\$query_string;"
echo " }"
echo " location ~* \.php$ {"
echo " try_files \$uri \$uri/ /index.php last;"
echo " fastcgi_split_path_info (.+?\.php)(/.*)$;"
echo " fastcgi_pass php:9000;"
echo " fastcgi_index index.php;"
echo " include fastcgi_params;"
echo " fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;"
echo " fastcgi_param PATH_INFO \$fastcgi_path_info;"
echo " }"
echo " location ~* .php/ { rewrite (.*.php)/ \$1 last; }"
echo " location ~ \/cinemaadmin {"
echo " auth_basic \"Login Adminer!\";"
echo " auth_basic_user_file /home/${CP_DOMAIN}/config/production/nginx/pass.d/${CP_DOMAIN}.pass;"
echo " rewrite ^/cinemaadmin(/.*)$ \$1 break;"
echo " try_files \$uri \$uri/ /index.php last;"
echo " fastcgi_split_path_info (.+?\.php)(/.*)$;"
echo " fastcgi_pass adminer:9000;"
echo " fastcgi_index index.php;"
echo " include fastcgi_params;"
echo " fastcgi_param SCRIPT_FILENAME /var/www/html/index.php;"
echo " fastcgi_param DOCUMENT_ROOT /var/www/html/;"
echo " }"
echo " location ~ /\.ht {"
echo " deny all;"
echo " }"
echo " location = /favicon.ico {"
echo " log_not_found off; access_log off;"
echo " }"
echo " location = /robots.txt {"
echo " log_not_found off; access_log off; allow all;"
echo " }"
echo " location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {"
echo " expires max; log_not_found off;"
echo " }"
echo "}"
} >> /home/${CP_DOMAIN}/config/production/nginx/conf.d/default.conf
2020-05-30 00:25:48 +02:00
{
echo "listen 443 ssl;"
echo "listen [::]:443 ssl;"
echo "ssl_certificate /home/${CP_DOMAIN}/config/production/nginx/ssl.d/live/${CP_DOMAIN}/fullchain.pem;"
echo "ssl_certificate_key /home/${CP_DOMAIN}/config/production/nginx/ssl.d/live/${CP_DOMAIN}/privkey.pem;"
echo "ssl_dhparam /home/${CP_DOMAIN}/config/production/nginx/ssl.d/live/${CP_DOMAIN}/dhparam.pem;"
echo "ssl_session_cache shared:SSL:10m;"
echo "ssl_session_timeout 1d;"
echo "ssl_stapling on;"
echo "ssl_stapling_verify on;"
echo "ssl_prefer_server_ciphers on;"
echo "ssl_protocols TLSv1.2;"
echo "ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;"
echo "resolver 1.1.1.1;"
echo "resolver_timeout 10s;"
echo "add_header X-Content-Type-Options \"nosniff\";"
echo "add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;"
2020-05-30 00:29:19 +02:00
} >> /home/"${CP_DOMAIN}"/config/production/nginx/ssl.d/default.conf
2020-05-18 02:19:29 +02:00
if [ "`docker ps -aq -f status=running -f name=^/nginx\$ 2>/dev/null`" != "" ]; then
2020-05-18 02:24:15 +02:00
docker exec nginx nginx -s reload
2020-05-18 02:19:29 +02:00
fi
_line
_header "${NAME_CMS}"
_line
echo "Website: http://${CP_DOMAIN}"
echo "MYSQL HOST: mysql"
if [ "${MYSQL_DATABASE}" != "" ]; then echo "MYSQL DATABASE: ${MYSQL_DATABASE}"; fi;
if [ "${MYSQL_USER}" != "" ]; then echo "MYSQL USER: ${MYSQL_USER}"; fi;
if [ "${MYSQL_PASSWORD}" != "" ]; then echo "MYSQL PASSWORD: ${MYSQL_PASSWORD}"; fi;
if [ "${ADMIN_PASSWORD}" != "" ]; then
echo "Adminer: http://${CP_DOMAIN}/cinemaadmin"
if [ "${ADMIN_USER}" != "" ]; then echo "USER: ${ADMIN_USER}"; fi;
if [ "${ADMIN_PASSWORD}" != "" ]; then echo "PASSWORD: ${ADMIN_PASSWORD}"; fi;
fi
_line
exit 0
;;
2020-05-29 22:26:21 +02:00
"redirect" )
if [ "${2}" = "" ] || [ "${3}" = "" ]; then
echo "ERROR: cinemapress redirect example.co hd.example.com"
exit 0
fi
mkdir -p /home/"${2}"/config/production/nginx/ssl.d
2020-05-29 23:58:24 +02:00
mkdir -p /home/"${2}"/config/production/nginx/conf.d
mkdir -p /home/"${2}"/config/production/nginx/letsencrypt
2020-05-29 22:26:21 +02:00
touch /home/"${2}"/index.php
{
echo "server {"
echo " listen 80;"
echo " listen [::]:80;"
echo " #ssl include /home/${2}/config/production/nginx/ssl.d/default.conf;"
echo " server_name .${2};"
echo " return 301 \$scheme://${3}\$request_uri;"
echo "}"
2020-05-30 00:41:42 +02:00
} > /home/"${2}"/config/production/nginx/conf.d/default.conf
2020-05-31 01:18:06 +02:00
if [ "${4}" = "bot" ]; then
{
echo "server {"
echo " listen 80;"
echo " listen [::]:80;"
echo " #ssl include /home/${2}/config/production/nginx/ssl.d/default.conf;"
echo " server_name .${2};"
echo " if ( \$http_user_agent ~* (google|yandex|bing|yahoo|baidu|duckduckgo|mail|ask|aol|msn) ) {"
echo " return 301 \$scheme://${3}\$request_uri;"
echo " }"
echo " return 444;"
echo "}"
} > /home/"${2}"/config/production/nginx/conf.d/default.conf
fi
2020-05-30 00:25:48 +02:00
{
echo "listen 443 ssl;"
echo "listen [::]:443 ssl;"
echo "ssl_certificate /home/${2}/config/production/nginx/ssl.d/live/${2}/fullchain.pem;"
echo "ssl_certificate_key /home/${2}/config/production/nginx/ssl.d/live/${2}/privkey.pem;"
echo "ssl_dhparam /home/${2}/config/production/nginx/ssl.d/live/${2}/dhparam.pem;"
echo "ssl_session_cache shared:SSL:10m;"
echo "ssl_session_timeout 1d;"
echo "ssl_stapling on;"
echo "ssl_stapling_verify on;"
echo "ssl_prefer_server_ciphers on;"
echo "ssl_protocols TLSv1.2;"
echo "ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;"
echo "resolver 1.1.1.1;"
echo "resolver_timeout 10s;"
echo "add_header X-Content-Type-Options \"nosniff\";"
echo "add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;"
2020-05-30 00:41:42 +02:00
} > /home/"${2}"/config/production/nginx/ssl.d/default.conf
2020-05-29 22:26:21 +02:00
if [ -d "/home/${2}/config/production/nginx/ssl.d/live/${2}/" ] || \
[ -d "/home/${2}/config/production/nginx/ssl.d/self-signed/${2}/" ]; then
sed -Ei "s/ #ssl include \/home\/${2}\/config\/production\/nginx\/ssl\.d\/default\.conf;/ include \/home\/${2}\/config\/production\/nginx\/ssl.d\/default.conf;/" \
"/home/${2}/config/production/nginx/conf.d/default.conf"
fi
2020-05-29 22:36:25 +02:00
NGINX_STATUS=$(docker exec -t nginx nginx -t | grep successful)
if [ "${NGINX_STATUS}" != "" ]; then
docker exec nginx nginx -s reload >/dev/null
echo "REDIRECT ${2} -> ${3}"
else
echo "ERROR NGINX:"
docker exec -t nginx nginx -t
fi
2020-05-29 22:26:21 +02:00
exit 0
;;
2020-03-08 00:18:40 +01:00
"static" )
read_domain "${2}"
sh_not
2020-12-01 00:26:47 +01:00
if [ "${4}" != "" ]; then
if [ "${3}" = "config" ]; then
docker exec "${CP_DOMAIN_}" rclone config create CINEMASTATIC mega user "${4}" pass "${5}" \
>>/var/log/docker_static_"$(date '+%d_%m_%Y')".log 2>&1
2021-02-03 02:34:29 +01:00
elif [ "${3}" = "ftp" ]; then
docker exec "${CP_DOMAIN_}" rclone config create CINEMASTATIC ftp user "${4}" pass "${5}" host "${6}" \
>>/var/log/docker_static_"$(date '+%d_%m_%Y')".log 2>&1
2020-03-18 22:03:48 +01:00
else
2021-02-02 07:52:55 +01:00
RCS=$(docker exec -t "${CP_DOMAIN_}" rclone config show 2>/dev/null | grep "CINEMASTATIC")
2020-12-01 00:26:47 +01:00
if [ "${RCS}" = "" ]; then
docker exec "${CP_DOMAIN_}" rclone config create CINEMASTATIC mega user "${3}" pass "${4}" \
>>/var/log/docker_static_"$(date '+%d_%m_%Y')".log 2>&1
fi
fi
sleep 10
2021-02-02 07:52:55 +01:00
CHECK_MKDIR=$(docker exec -t "${CP_DOMAIN_}" rclone mkdir CINEMASTATIC:/check-connection 2>/dev/null)
2020-12-01 00:26:47 +01:00
sleep 3
2021-04-22 00:42:02 +02:00
CHECK_RMDIR=$(docker exec -t "${CP_DOMAIN_}" rclone rmdir CINEMASTATIC:/check-connection 2>/dev/null)
if [ "${CHECK_MKDIR}" != "" ] || [ "${CHECK_RMDIR}" != "" ]; then
2020-12-01 00:26:47 +01:00
_header "ERROR"
_content
_content "Cannot connect to backup storage."
_content
_s
2020-03-08 00:18:40 +01:00
exit 0
fi
2020-12-01 00:26:47 +01:00
cp -r /home/"${CP_DOMAIN}"/config/production/rclone.conf /var/rclone.conf
2020-03-08 00:18:40 +01:00
fi
2021-02-03 02:34:29 +01:00
if [ "${3}" = "restore" ] || [ "${5}" = "restore" ] || [ "${6}" = "restore" ] || [ "${7}" = "restore" ]; then
2020-05-11 01:25:25 +02:00
sleep 3; docker exec "${CP_DOMAIN_}" rclone -vv copy CINEMASTATIC:${CP_DOMAIN}/static.tar /home/${CP_DOMAIN}/
2020-03-08 00:18:40 +01:00
cd /home/${CP_DOMAIN} && tar -xf /home/${CP_DOMAIN}/static.tar
rm -rf /home/${CP_DOMAIN}/static.tar
2020-05-11 01:25:25 +02:00
sleep 3; docker exec "${CP_DOMAIN_}" rclone -vv copy CINEMASTATIC:${CP_DOMAIN}/app.tar /home/${CP_DOMAIN}/
2020-04-15 04:02:53 +02:00
if [ -f "/home/${CP_DOMAIN}/app.tar" ]; then
cd /home/${CP_DOMAIN} && tar -xf /home/${CP_DOMAIN}/app.tar
rm -rf /home/${CP_DOMAIN}/app.tar
fi
2021-02-03 02:34:29 +01:00
elif [ "${3}" = "create" ] || [ "${5}" = "create" ] || [ "${6}" = "create" ] || [ "${7}" = "create" ]; then
2020-03-23 00:25:19 +01:00
cd /home/${CP_DOMAIN} && tar -uf /home/${CP_DOMAIN}/static.tar \
files/poster \
files/picture
if [ -d "/home/${CP_DOMAIN}/files/windows" ]; then
cd /home/${CP_DOMAIN} && tar -uf /home/${CP_DOMAIN}/app.tar \
files/windows \
files/linux \
files/osx &>/dev/null
2021-04-22 00:46:24 +02:00
sleep 3; docker exec "${CP_DOMAIN_}" rclone -vv delete CINEMASTATIC:${CP_DOMAIN}/app.tar
sleep 10; docker exec "${CP_DOMAIN_}" rclone -vv cleanup CINEMASTATIC:
2020-05-11 01:25:25 +02:00
sleep 10; docker exec "${CP_DOMAIN_}" rclone -vv copy /home/${CP_DOMAIN}/app.tar CINEMASTATIC:${CP_DOMAIN}/
2020-03-23 00:25:19 +01:00
fi
2021-04-22 00:46:24 +02:00
sleep 3; docker exec "${CP_DOMAIN_}" rclone -vv delete CINEMASTATIC:${CP_DOMAIN}/static.tar
sleep 10; docker exec "${CP_DOMAIN_}" rclone -vv cleanup CINEMASTATIC:
2020-05-11 01:25:25 +02:00
sleep 10; docker exec "${CP_DOMAIN_}" rclone -vv copy /home/${CP_DOMAIN}/static.tar CINEMASTATIC:${CP_DOMAIN}/
2020-03-23 00:25:19 +01:00
rm -rf /home/${CP_DOMAIN}/static.tar /home/${CP_DOMAIN}/app.tar
2020-03-08 00:18:40 +01:00
fi
exit 0
2020-03-08 00:18:40 +01:00
;;
2021-02-20 08:19:24 +01:00
"scp" )
if [ "${2}" = "" ] || [ "${3}" = "" ]; then
exit 0
fi
read_domain "${2}"
scp -r -q root@"${3}":/var/lib/sphinx/data/movies_"${CP_DOMAIN_}"* /var/lib/sphinx/data/
exit 0
;;
"cf"|"subdomains"|"sub" )
_br "${4}"
2020-12-01 00:26:47 +01:00
read_domain "${2}"
read_cloudflare_email "${3}"
read_cloudflare_api_key "${4}"
_s "${4}"
CLOUDFLARE_ZONE_ID=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=${CP_DOMAIN}" \
-H "X-Auth-Email: ${CLOUDFLARE_EMAIL}" \
-H "X-Auth-Key: ${CLOUDFLARE_API_KEY}" \
-H "Content-Type: application/json" | \
sed -rn 's/.*"result":\[\{"id":"([A-Za-z0-9]*)".*/\1/p')
if [ "${CLOUDFLARE_ZONE_ID}" = "" ]; then
_line
printf "${Y} ☐ ZONE NOT FOUND [ ${NC}${CP_DOMAIN}${Y} ]\n${NC}"
_line
exit 0
fi
if [ -f "/home/${CP_DOMAIN}/files/${CP_DOMAIN}.sub.txt" ]; then
STATUS1=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/dns_records/import" \
-H "X-Auth-Email: ${CLOUDFLARE_EMAIL}" \
-H "X-Auth-Key: ${CLOUDFLARE_API_KEY}" \
--form "file=@/home/${CP_DOMAIN}/files/${CP_DOMAIN}.sub.txt" \
--form 'proxied=false' | \
sed -rn 's/.*"success":(true|false).*/\1/p')
_line
if [ "${STATUS1}" = "true" ]; then
printf "${G} ✓ SUCCESS [ ${NC}${CP_DOMAIN}.sub.txt${G} ]\n${NC}"
else
printf "${R} ☐ ERROR [ ${NC}${CP_DOMAIN}.sub.txt${R} ]\n${NC}"
fi
2020-12-01 00:26:47 +01:00
fi
if [ -f "/home/${CP_DOMAIN}/files/${CP_DOMAIN}.proxied.sub.txt" ]; then
STATUS2=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/dns_records/import" \
-H "X-Auth-Email: ${CLOUDFLARE_EMAIL}" \
-H "X-Auth-Key: ${CLOUDFLARE_API_KEY}" \
--form "file=@/home/${CP_DOMAIN}/files/${CP_DOMAIN}.proxied.sub.txt" \
--form 'proxied=true' | \
sed -rn 's/.*"success":(true|false).*/\1/p')
_line
if [ "${STATUS2}" = "true" ]; then
printf "${G} ✓ SUCCESS [ ${NC}${CP_DOMAIN}.proxied.sub.txt${G} ]\n${NC}"
else
printf "${R} ☐ ERROR [ ${NC}${CP_DOMAIN}.proxied.sub.txt${R} ]\n${NC}"
fi
fi
if [ "${STATUS1}" != "" ] || [ "${STATUS2}" != "" ]; then _s; fi
2020-12-01 00:26:47 +01:00
exit 0
;;
2021-01-12 00:37:29 +01:00
"debug" )
CRASH=()
CRASH+=("
---------------------------------------------------
")
CRASH+=("TOP")
CRASH+=("
---------------------------------------------------
")
CRASH+=("$(top -b -n 1)")
CRASH+=("
---------------------------------------------------
")
CRASH+=("DF")
CRASH+=("
---------------------------------------------------
")
CRASH+=("$(df -h)")
CRASH+=("
---------------------------------------------------
")
CRASH+=("DOCKER STATS")
CRASH+=("
---------------------------------------------------
")
CRASH+=("$(docker stats -a --no-stream)")
CRASH+=("
---------------------------------------------------
")
CRASH+=("DOCKER PS")
CRASH+=("
---------------------------------------------------
")
2021-01-13 02:39:03 +01:00
CRASH+=("$(docker ps -a)")
2021-01-12 00:37:29 +01:00
CRASH+=("
---------------------------------------------------
")
CRASH+=("PS")
CRASH+=("
---------------------------------------------------
")
CRASH+=("$(ps auxf)")
CRASH+=("
---------------------------------------------------
")
for D in /home/*; do
if [ -f "${D}/process.json" ] || [ -f "${D}/index.php" ]; then
DD=$(find "${D}" -maxdepth 0 -printf "%f")
DD_=$(echo "${DD}" | sed -r "s/[^A-Za-z0-9]/_/g")
2021-02-13 08:19:09 +01:00
if [ "$(docker ps -aq -f status=running -f name=^/"${DD_}"\$ 2>/dev/null)" != "" ]; then
CRASH+=("PING ${DD}")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(docker exec -t "${DD_}" cinemapress ping 2>/dev/null)")
CRASH+=("
2021-02-13 07:24:23 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("PS ${DD}")
CRASH+=("
2021-02-04 03:14:01 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(docker exec -t "${DD_}" ps 2>/dev/null)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("PM2 LIST")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(docker exec -t "${DD_}" pm2 list 2>/dev/null)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("PM2 ERR")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(docker exec -t "${DD_}" pm2 logs --err --lines 50 --nostream 2>/dev/null)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("PM2 OUT")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(docker exec -t "${DD_}" pm2 logs --out --lines 50 --nostream 2>/dev/null)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("CRON LOG ${DD}")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(docker exec -t "${DD_}" tail -n 50 "/home/${DD}/log/cron_$(date '+%d_%m_%Y').log" | grep -v CP_save)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
2021-02-04 03:14:01 +01:00
")
2021-02-13 08:19:09 +01:00
fi
CRASH+=("NGINX ACCESS ${DD}")
2021-02-04 03:14:01 +01:00
CRASH+=("
---------------------------------------------------
")
2021-02-13 08:19:09 +01:00
CRASH+=("$(tail -n 50 "/var/log/nginx/access_${DD}.log")")
2021-02-04 03:14:01 +01:00
CRASH+=("
---------------------------------------------------
2021-01-12 00:37:29 +01:00
")
fi
done
CRASH+=("NGINX ACCESS")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
CRASH+=("$(tail -n 50 /var/log/nginx/access.log)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
CRASH+=("NGINX ERROR")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
CRASH+=("$(tail -n 50 /var/log/nginx/error.log)")
CRASH+=("
2021-01-12 00:37:29 +01:00
---------------------------------------------------
")
DEBUG_URL=$(echo "${CRASH[@]}" | curl -s -F 'clbin=<-' https://clbin.com)
2021-01-13 04:01:23 +01:00
_br
2021-01-12 00:37:29 +01:00
_header "DEBUG LOGS"
_content
_content "${DEBUG_URL}?hl"
_content
_s
exit 0
;;
"people" )
_br "${3}"
read_domain "${2}"
read_theme "${3}"
_s "${3}"
if [ "${CP_DOMAIN}" = "" ] || [ "${CP_THEME}" = "" ]; then
2021-03-16 19:47:43 +01:00
exit 0
fi
PEOPLE_INFO="jpg"
if [ "${4}" = "json" ] || [ "${4}" = "jpg" ] || [ "${4}" = "all" ]; then
PEOPLE_INFO="${4}"
fi
PEOPLE_LANG="ru"
if [ "${5}" = "ru" ] || [ "${5}" = "en" ] || [ "${5}" = "all" ]; then
PEOPLE_LANG="${5}"
fi
PEOPLE_CACHE=""
if [ "${6}" = "cache" ]; then
PEOPLE_CACHE="${6}"
fi
if [ "${CP_OS}" = "debian" ] || [ "${CP_OS}" = "\"debian\"" ] || \
[ "${CP_OS}" = "ubuntu" ] || [ "${CP_OS}" = "\"ubuntu\"" ]; then
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install jq
elif [ "${CP_OS}" = "fedora" ] || [ "${CP_OS}" = "\"fedora\"" ]; then
dnf -y install jq
elif [ "${CP_OS}" = "centos" ] || [ "${CP_OS}" = "\"centos\"" ]; then
yum install -y jq
fi
api="https://api.themoviedb.org/3/person/id?api_key=269890f657dddf4635473cf4cf456576&language=ru"
2021-03-16 20:30:37 +01:00
if [ "${PEOPLE_LANG}" = "en" ]; then
api="https://api.themoviedb.org/3/person/id?api_key=269890f657dddf4635473cf4cf456576&language=en"
fi
2021-03-16 19:47:43 +01:00
tmp_dir="/var/tmp-people"
mkdir -p "${tmp_dir}"
json_dir="/var/json-people"
mkdir -p "${json_dir}"
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "jpg" ]; then
people_images="/home/${CP_DOMAIN}/files/poster/people"
mkdir -p "${people_images}"
fi
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "json" ]; then
director_dir="/home/${CP_DOMAIN}/themes/${CP_THEME}/views/director"
actor_dir="/home/${CP_DOMAIN}/themes/${CP_THEME}/views/actor"
director_dir_tmp="${tmp_dir}/director"
actor_dir_tmp="${tmp_dir}/actor"
mkdir -p "${director_dir_tmp}"
mkdir -p "${actor_dir_tmp}"
mkdir -p "${director_dir}"
mkdir -p "${actor_dir}"
rm -rf "${director_dir}"
rm -rf "${actor_dir}"
fi
for l in {1..10}; do
start=$(( l * 310000 - 309999 ))
stop=$(( l * 310000 ))
( for (( i=start; i<=stop; i++ )); do
people_url="${api//id/${i}}"
2021-03-16 19:47:43 +01:00
people="${json_dir}/${i}.json"
if [ "${PEOPLE_CACHE}" = "cache" ]; then
if [ ! -f "${people}" ]; then
wget "${people_url}" -qO "${people}"
fi
else
wget "${people_url}" -qO "${people}"
fi
if [ ! -f "${people}" ]; then
rm -f "${people}"
continue
fi
people_json="$(cat "${people}")"
profile_path=$( echo "${people_json}" | jq -r ".profile_path" )
if [ "${profile_path}" = "null" ] || [ "${profile_path}" = "" ]; then
rm -f "${people}"
continue
fi
adult=$( echo "${people_json}" | jq -r ".adult" )
if [ "${adult}" != "false" ]; then
rm -f "${people}"
continue
fi
name=$( echo "${people_json}" | jq -r ".name" )
2021-03-16 19:47:43 +01:00
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "jpg" ]; then
if [ "${PEOPLE_CACHE}" = "cache" ]; then
if [ ! -f "${people_images}/${name}.jpg" ]; then
wget "https://image.tmdb.org/t/p/w185${profile_path}" -qO "${people_images}/${name}.jpg"
fi
else
wget "https://image.tmdb.org/t/p/w185${profile_path}" -qO "${people_images}/${name}.jpg"
fi
echo "${i}/${stop}) ${name}.jpg"
fi
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "json" ]; then
known_for_department=$( echo "${people_json}" | jq -r ".known_for_department" )
department=""
if [ "${known_for_department}" = "Directing" ]; then
department="${director_dir_tmp}"
else
department="${actor_dir_tmp}"
fi
mv "${people}" "${department}/${name}.json" &>/dev/null
echo "${i}/${stop}) ${name}.json"
fi
if [ "${PEOPLE_LANG}" = "all" ] || [ "${PEOPLE_LANG}" = "ru" ]; then
also_known_as=$( echo "${people_json}" | jq -r ".also_known_as[] | @base64" )
for row in ${also_known_as}; do
other_name="$(echo "${row}" | base64 --decode)"
other_name="${other_name//Ё/Е}"
other_name="${other_name//ё/е}"
if [ "${PEOPLE_LANG}" = "all" ]; then
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "json" ]; then
cd "${department}" && ln -s "${name}.json" "${other_name}.json" &>/dev/null
fi
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "jpg" ]; then
cd "${people_images}" && ln -s "${name}.jpg" "${other_name}.jpg" &>/dev/null
fi
echo "${i}/${stop}) ${name} » ${other_name}"
else
cyrillic="$(echo "${other_name}" | grep -Eo "[А-Яа-я]*")"
if [ -n "${cyrillic}" ]; then
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "json" ]; then
cd "${department}" && ln -s "${name}.json" "${other_name}.json" &>/dev/null
fi
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "jpg" ]; then
cd "${people_images}" && ln -s "${name}.jpg" "${other_name}.jpg" &>/dev/null
fi
echo "${i}/${stop}) ${name} » ${other_name}"
fi
fi
done
fi
done ) &
done
wait
2021-03-16 19:47:43 +01:00
if [ "${PEOPLE_INFO}" = "all" ] || [ "${PEOPLE_INFO}" = "json" ]; then
mv "${actor_dir_tmp}" "${actor_dir}"
mv "${director_dir_tmp}" "${director_dir}"
fi
rm -rf "${tmp_dir}"
exit 0
;;
2020-05-03 01:46:17 +02:00
"ping" )
2021-01-13 04:01:23 +01:00
curl -s --fail http://localhost:3000/ping || exit 1
exit 0
;;
"uptimerobot" )
2021-01-15 00:46:04 +01:00
MIN=$(date '+%M')
if [ "${MIN}" = "00" ] || [ "${MIN}" = "01" ]; then
2021-01-19 05:18:27 +01:00
rm -f "/home/.uptimerobot"
2021-01-15 00:46:04 +01:00
for D_MIN in /home/*; do
DD_MIN=$(find "${D_MIN}" -maxdepth 0 -printf "%f")
rm -f "/home/${DD_MIN}/.uptimerobot"
done
fi
2021-01-14 04:18:36 +01:00
if [ -n "${2}" ] && [ "${2}" != "push" ]; then
2021-01-13 04:01:23 +01:00
[ -f "/home/${2}/app.js" ] || [ -f "/home/${2}/index.php" ] || exit 0
2021-01-19 05:18:27 +01:00
[ ! -f "/home/.uptimerobot" ] || [ ! -f "/home/${2}/.uptimerobot" ] || exit 0
2021-01-18 05:39:36 +01:00
touch "/home/${2}/.uptimerobot"
2021-01-19 23:00:10 +01:00
sleep $(( ( "${RANDOM}" % 30 ) ))
2021-01-13 04:01:23 +01:00
DD=${2}
DD_=$(echo "${2}" | sed -r "s/[^A-Za-z0-9]/_/g")
PONG1=$(docker exec -t "${DD_}" /usr/bin/cinemapress ping 2>/dev/null)
if [ "${PONG1}" != "pong" ]; then
2021-01-14 04:18:36 +01:00
echo "$(date) ${DD} DOCKER warning"
2021-01-19 23:00:10 +01:00
sleep $(( ( "${RANDOM}" % 30 ) ))
2021-01-14 04:18:36 +01:00
PONG1=$(docker exec -t "${DD_}" /usr/bin/cinemapress ping 2>/dev/null)
if [ "${PONG1}" != "pong" ]; then
echo "$(date) ${DD} DOCKER restart"
docker restart "${DD_}"
2021-01-19 23:00:10 +01:00
sleep $(( ( "${RANDOM}" % 30 ) ))
2021-01-14 04:18:36 +01:00
fi
2021-01-13 04:01:23 +01:00
fi
2021-01-15 23:19:28 +01:00
PONG2=$(curl -s --fail -A "PING" http://"${DD}"/ping || curl -s --fail http://ping."${DD}"/ping)
2021-01-13 04:01:23 +01:00
if [ "${PONG2}" = "pong" ]; then
echo "$(date) ${DD} WEBSITE online"
else
/usr/bin/cinemapress debug
2021-01-15 00:46:04 +01:00
if [ -n "${3}" ] && [ -n "${4}" ]; then
2021-01-14 04:18:36 +01:00
echo "$(date) ${DD} WEBSITE push"
curl -d "{\"chat_id\":${4}, \"text\":\"Website down?\", \"reply_markup\": {\"inline_keyboard\": [[{\"text\":\"ping.${DD}\", \"url\": \"http://ping.${DD}\"}]]} }" -H "Content-Type: application/json" -X POST "https://api.telegram.org/bot${3}/sendMessage" &>/dev/null
else
2021-01-18 00:04:27 +01:00
echo "$(date) ${DD} WEBSITE restart"
docker stop "${DD_}"
sleep 5
docker start "${DD_}"
docker stop nginx
sleep 5
docker start nginx
2021-01-14 04:18:36 +01:00
fi
2021-01-13 04:01:23 +01:00
fi
2021-01-13 04:46:17 +01:00
rm -f "/home/${2}/.uptimerobot"
2021-01-13 04:01:23 +01:00
else
for D in /home/*; do
2021-01-14 04:18:36 +01:00
DD=$(find "${D}" -maxdepth 0 -printf "%f")
DD_=$(echo "${DD}" | sed -r "s/[^A-Za-z0-9]/_/g")
2021-01-15 23:19:28 +01:00
PONG1=$(curl -s --fail -A "PING" http://"${DD}"/ping || curl -s --fail http://ping."${DD}"/ping)
2021-01-14 04:18:36 +01:00
if { [ -f "${D}/app.js" ] || [ -f "${D}/index.php" ]; } && [ "${PONG1}" = "pong" ]; then
2021-01-13 04:01:23 +01:00
if [ "$(grep "${DD}_uptimerobot" /etc/crontab)" = "" ]; then
echo -e "\n" >>/etc/crontab
echo "# ----- ${DD}_uptimerobot --------------------------------------" >>/etc/crontab
2021-01-14 04:18:36 +01:00
echo "*/2 * * * * root /usr/bin/cinemapress uptimerobot \"${DD}\" \"${3}\" \"${4}\" >>\"/home/${DD}/log/uptimerobot_\$(date '+\%d_\%m_\%Y').log\" 2>&1" >>/etc/crontab
2021-01-13 04:01:23 +01:00
echo "# ----- ${DD}_uptimerobot --------------------------------------" >>/etc/crontab
2021-01-14 04:18:36 +01:00
echo "Added to monitoring: ${DD}"
2021-01-13 04:01:23 +01:00
fi
2021-01-14 04:18:36 +01:00
else
echo "Not added to monitoring: ${DD}"
2021-01-13 04:01:23 +01:00
fi
done
fi
2020-05-03 01:46:17 +02:00
exit 0
;;
2021-03-31 01:26:36 +02:00
"aria2"|"cloudtorrent"|"torrent"|"torrentclient" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
LOCAL_ACTION="${3}"
if [ "${LOCAL_ACTION}" = "" ]; then
_header "MAKE A CHOICE"
printf "${C}---- ${G}1)${NC} run ${S}------------------------ Run Torrent Cloud Client ${C}----\n"
printf "${C}---- ${G}2)${NC} ftp ${S}---------------------- Configuration FTP Storages ${C}----\n"
printf "${C}---- ${G}3)${NC} show ${S}-------------------------- Show FTP Storage List ${C}----\n"
2021-05-23 03:29:00 +02:00
printf "${C}---- ${G}4)${NC} delete ${S}--------------------------- Delete FTP Storage ${C}----\n"
2021-03-31 01:26:36 +02:00
_s
2021-05-23 03:29:00 +02:00
read -e -p 'OPTION [1-4]: ' LOCAL_ACTION
2021-03-31 01:26:36 +02:00
LOCAL_ACTION=$(echo "${LOCAL_ACTION}" | iconv -c -t UTF-8)
_br
fi
if [ "${LOCAL_ACTION}" = "run" ] || [ "${LOCAL_ACTION}" = "1" ]; then
if [ "${CP_OS}" = "debian" ] || [ "${CP_OS}" = "\"debian\"" ] || \
[ "${CP_OS}" = "ubuntu" ] || [ "${CP_OS}" = "\"ubuntu\"" ]; then
DEBIAN_FRONTEND=noninteractive apt-get -y -qq install jq
elif [ "${CP_OS}" = "fedora" ] || [ "${CP_OS}" = "\"fedora\"" ]; then
dnf -y install jq
elif [ "${CP_OS}" = "centos" ] || [ "${CP_OS}" = "\"centos\"" ]; then
yum install -y jq
fi
RPC_SECRET=$(cat "/dev/urandom" | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1)
RPC_SECRET=$(printf '%s\n' "${RPC_SECRET}" | awk '{ print toupper($0) }')
if [ "`docker ps -aq -f status=running -f name=^/torrent\$ 2>/dev/null`" != "" ]; then
docker stop torrent >>/var/log/docker_torrent_"$(date '+%d_%m_%Y')".log 2>&1
docker rm -f torrent >>/var/log/docker_torrent_"$(date '+%d_%m_%Y')".log 2>&1
fi
2021-03-31 01:26:36 +02:00
docker run \
-d \
--name torrent \
"${DOCKER_MEM[@]}" \
--restart always \
--network cinemapress \
--env="PUID=${UID}" \
--env="PGID=${GID}" \
--env="UMASK_SET=022" \
--env="RPC_SECRET=${RPC_SECRET}" \
--env="RPC_PORT=6800" \
-p 6800:6800 \
--env="LISTEN_PORT=6888" \
-p 6888:6888 \
-p 6888:6888/udp \
-v "/home/${CP_DOMAIN}/files/torrent/config":/config \
-v "/home/${CP_DOMAIN}/files/torrent/downloads":/downloads \
p3terx/aria2-pro >>/var/log/docker_torrent_"$(date '+%d_%m_%Y')".log 2>&1
TORRENT_RUN=1
while [ "${TORRENT_RUN}" != "50" ]; do
sleep 3
TORRENT_RUN=$((1+${TORRENT_RUN}))
if [ "`docker ps -aq -f status=running -f name=^/torrent\$ 2>/dev/null`" != "" ]; then
docker exec "${CP_DOMAIN_}" /usr/bin/cinemapress container torrent
TORRENT_RUN=50
fi
done
mkdir -p "/home/${CP_DOMAIN}/files/torrent/uploads"
_line
_content
_content "Torrent client is running!"
_content
2021-05-23 03:29:00 +02:00
_content "torrent.${CP_DOMAIN}/index.html"
2021-03-31 01:26:36 +02:00
_content
2021-05-23 03:29:00 +02:00
_content "RPC ADDRESS: torrent.${CP_DOMAIN}:80/jsonrpc"
2021-03-31 01:26:36 +02:00
_content "RPC SECRET: ${RPC_SECRET}"
2021-05-23 03:29:00 +02:00
_content "RPC METHOD: POST"
2021-03-31 01:26:36 +02:00
_content
_content "Configure your video storage."
_content
_s
elif [ "${LOCAL_ACTION}" = "ftp" ] || [ "${LOCAL_ACTION}" = "2" ]; then
read_ftp_name "${4}"
read_ftp_hostname "${5}"
read_ftp_username "${6}"
read_ftp_password "${7}"
2021-05-30 23:21:55 +02:00
FTP_PASSWORD="$(docker exec -t "${CP_DOMAIN_}" /usr/bin/cinemapress rclone_obscure "${FTP_PASSWORD}")"
2021-05-27 01:57:45 +02:00
IFS=':' read -r -a HOST_PORT <<< "${FTP_HOSTNAME}"
if [ "${HOST_PORT[1]}" = "" ]; then
TORRENT_STORAGE=(ftp user "${FTP_USERNAME}" pass "${FTP_PASSWORD}" host "${HOST_PORT[0]}")
else
TORRENT_STORAGE=(ftp user "${FTP_USERNAME}" pass "${FTP_PASSWORD}" host "${HOST_PORT[0]}" port "${HOST_PORT[1]}")
fi
2021-05-23 03:29:00 +02:00
docker exec "${CP_DOMAIN_}" rclone config create "${FTP_NAME}" "${TORRENT_STORAGE[@]}" \
2021-03-31 01:26:36 +02:00
>>/var/log/docker_torrent_"$(date '+%d_%m_%Y')".log 2>&1
_s
elif [ "${LOCAL_ACTION}" = "show" ] || [ "${LOCAL_ACTION}" = "3" ]; then
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
rclone config show
else
docker exec -t "${CP_DOMAIN_}" rclone config show
fi
2021-05-23 03:29:00 +02:00
elif [ "${LOCAL_ACTION}" = "delete" ] || [ "${LOCAL_ACTION}" = "4" ]; then
read_ftp_name "${4}"
docker exec -t "${CP_DOMAIN_}" rclone config delete "${FTP_NAME}"
2021-05-30 23:21:55 +02:00
elif [ "${LOCAL_ACTION}" = "upload" ] || [ "${LOCAL_ACTION}" = "uploads" ] || [ "${LOCAL_ACTION}" = "5" ]; then
2021-05-30 01:05:36 +02:00
if [ ! -d "/home/${CP_DOMAIN}/files/torrent/uploads" ]; then
exit 0
fi
if [ -d "/home/${CP_DOMAIN}/files/torrent/.process" ]; then
if [ -f "/home/${CP_DOMAIN}/files/torrent/.1hour" ]; then
if [ -f "/home/${CP_DOMAIN}/files/torrent/.2hours" ]; then
if [ -f "/home/${CP_DOMAIN}/files/torrent/.3hours" ]; then
if [ -f "/home/${CP_DOMAIN}/files/torrent/.4hours" ]; then
if [ -f "/home/${CP_DOMAIN}/files/torrent/.5hours" ]; then
/usr/bin/cinemapress kill_rclone "${CP_DOMAIN}"
rm -rf \
"/home/${CP_DOMAIN}/files/torrent/.1hour" \
"/home/${CP_DOMAIN}/files/torrent/.2hours" \
"/home/${CP_DOMAIN}/files/torrent/.3hours" \
"/home/${CP_DOMAIN}/files/torrent/.4hours" \
"/home/${CP_DOMAIN}/files/torrent/.5hours"
mkdir -p "/home/${CP_DOMAIN}/files/torrent/uploads"
cp -rf \
/home/"${CP_DOMAIN}"/files/torrent/.process/* \
/home/"${CP_DOMAIN}"/files/torrent/uploads/
rm -rf /home/"${CP_DOMAIN}"/files/torrent/.process
else
echo "$(date '+%Y/%m/%d %H:%M:%S') Uploading video files takes 5 hours."
touch "/home/${CP_DOMAIN}/files/torrent/.5hours"
exit 0
fi
else
echo "$(date '+%Y/%m/%d %H:%M:%S') Uploading video files takes 4 hours."
touch "/home/${CP_DOMAIN}/files/torrent/.4hours"
exit 0
fi
else
echo "$(date '+%Y/%m/%d %H:%M:%S') Uploading video files takes 3 hours."
touch "/home/${CP_DOMAIN}/files/torrent/.3hours"
exit 0
fi
else
echo "$(date '+%Y/%m/%d %H:%M:%S') Uploading video files takes 2 hours."
touch "/home/${CP_DOMAIN}/files/torrent/.2hours"
exit 0
fi
else
echo "$(date '+%Y/%m/%d %H:%M:%S') Uploading video files takes 1 hour."
touch "/home/${CP_DOMAIN}/files/torrent/.1hour"
exit 0
fi
2021-05-30 01:05:36 +02:00
fi
if [ -z "$(ls -A "/home/${CP_DOMAIN}/files/torrent/uploads")" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') The folder /home/${CP_DOMAIN}/files/torrent/uploads is empty."
exit 0
fi
CINEMATORRENT_ARRAY=()
CINEMATORRENT_ACTIVE="false"
for N in {1..9}; do
CINEMATORRENT_NAME="CINEMATORRENT${N}"
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
CINEMATORRENT=$(rclone config show 2>/dev/null | grep "${CINEMATORRENT_NAME}")
else
CINEMATORRENT=$(docker exec -t "${CP_DOMAIN_}" rclone config show 2>/dev/null | grep "${CINEMATORRENT_NAME}")
fi
if [ "${CINEMATORRENT}" = "" ]; then continue; fi
CINEMATORRENT_ACTIVE="true"
echo "$(date '+%Y/%m/%d %H:%M:%S')${CINEMATORRENT_NAME}"
CINEMATORRENT_ARRAY+=("${CINEMATORRENT_NAME}")
done
if [ "${CINEMATORRENT_ACTIVE}" = "false" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') You don't have an FTP server configuration."
2021-03-31 01:26:36 +02:00
exit 0
fi
mv "/home/${CP_DOMAIN}/files/torrent/uploads" "/home/${CP_DOMAIN}/files/torrent/.process"
mkdir -p "/home/${CP_DOMAIN}/files/torrent/uploads"
2021-03-31 01:53:36 +02:00
for DIR in "/home/${CP_DOMAIN}/files/torrent/.process"/*; do
if [ ! -f "${DIR}" ]; then continue; fi
DIR_NAME="${DIR##*/}"
IFS='.' read -r -a FILE_ARR <<< "${DIR_NAME}"
if [ "${FILE_ARR[1]}" = "dir" ] || \
[ "${FILE_ARR[1]}" = "Dir" ] || \
[ "${FILE_ARR[1]}" = "DIR" ]; then
mkdir -p "/home/${CP_DOMAIN}/files/torrent/.process/${FILE_ARR[0]}"
mv "${DIR}" \
"/home/${CP_DOMAIN}/files/torrent/.process/${FILE_ARR[0]}/${DIR##*/${FILE_ARR[0]}.${FILE_ARR[1]}.}"
fi
done
for CINEMATORRENT_NAME in "${CINEMATORRENT_ARRAY[@]}"; do
2021-06-07 23:19:51 +02:00
CFOLDER="/home/${CP_DOMAIN}/files/torrent/.process/${CINEMATORRENT_NAME}"
if [ ! -d "${CFOLDER}" ]; then continue; fi
echo "$(date '+%Y/%m/%d %H:%M:%S') UPLOAD TO ${CINEMATORRENT_NAME}"
2021-06-07 23:19:51 +02:00
for DIR in "${CFOLDER}"/*; do
2021-03-31 01:26:36 +02:00
DIR_NAME="${DIR##*/}"
if [ -d "${DIR}" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') CREATE DIR ${DIR_NAME}"
2021-03-31 01:26:36 +02:00
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
rclone -vv --retries 2 --low-level-retries 2 mkdir "${CINEMATORRENT_NAME}":"${DIR_NAME}"
2021-03-31 01:26:36 +02:00
else
docker exec -t "${CP_DOMAIN_}" rclone -vv --retries 2 --low-level-retries 2 mkdir "${CINEMATORRENT_NAME}":"${DIR_NAME}"
2021-03-31 01:26:36 +02:00
fi
2021-06-07 23:19:51 +02:00
for FILE in "${CFOLDER}/${DIR_NAME}"/*; do
2021-03-31 01:26:36 +02:00
FILE_NAME="${FILE##*/}"
if [ -f "${FILE}" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') UPLOAD FILE ${DIR_NAME}/${FILE_NAME}"
2021-03-31 01:26:36 +02:00
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
{ rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${CFOLDER}/${DIR_NAME}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
rm -rf "${FILE}"
2021-03-31 01:26:36 +02:00
else
{ docker exec -t "${CP_DOMAIN_}" rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${CFOLDER}/${DIR_NAME}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
rm -rf "${FILE}"
2021-03-31 01:26:36 +02:00
fi
fi
done
elif [ -f "${DIR}" ]; then
2021-03-31 01:53:36 +02:00
FILE_NAME="${DIR##*/}"
echo "$(date '+%Y/%m/%d %H:%M:%S') UPLOAD FILE ${FILE_NAME}"
2021-03-31 01:53:36 +02:00
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
{ rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${CFOLDER}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
rm -rf "${DIR}"
2021-03-31 01:26:36 +02:00
else
{ docker exec -t "${CP_DOMAIN_}" rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${CFOLDER}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
rm -rf "${DIR}"
2021-06-07 23:19:51 +02:00
fi
fi
done
rm -rf "${CFOLDER}"
done
PFOLDER="/home/${CP_DOMAIN}/files/torrent/.process"
for DIR in "${PFOLDER}"/*; do
DIR_NAME="${DIR##*/}"
if [ -d "${DIR}" ]; then
for CINEMATORRENT_NAME in "${CINEMATORRENT_ARRAY[@]}"; do
echo "$(date '+%Y/%m/%d %H:%M:%S') CREATE DIR ${CINEMATORRENT_NAME}:${DIR_NAME}"
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
rclone -vv --retries 2 --low-level-retries 2 mkdir "${CINEMATORRENT_NAME}":"${DIR_NAME}"
else
docker exec -t "${CP_DOMAIN_}" rclone -vv --retries 2 --low-level-retries 2 mkdir "${CINEMATORRENT_NAME}":"${DIR_NAME}"
fi
done
for FILE in "${PFOLDER}/${DIR_NAME}"/*; do
FILE_NAME="${FILE##*/}"
if [ -f "${FILE}" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') UPLOAD FILE ${DIR_NAME}/${FILE_NAME}"
FILE_UPLOADED="false"
for CINEMATORRENT_NAME in "${CINEMATORRENT_ARRAY[@]}"; do
echo "$(date '+%Y/%m/%d %H:%M:%S') UPLOAD TO ${CINEMATORRENT_NAME}"
2021-06-07 23:19:51 +02:00
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
{ rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${PFOLDER}/${DIR_NAME}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
FILE_UPLOADED="true"
2021-06-07 23:19:51 +02:00
else
{ docker exec -t "${CP_DOMAIN_}" rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${PFOLDER}/${DIR_NAME}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
FILE_UPLOADED="true"
2021-06-07 23:19:51 +02:00
fi
done
if [ "${FILE_UPLOADED}" = "true" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') DELETE FILE ${FILE}"
rm -rf "${FILE}"
2021-06-07 23:19:51 +02:00
fi
fi
done
elif [ -f "${DIR}" ]; then
FILE_UPLOADED="false"
for CINEMATORRENT_NAME in "${CINEMATORRENT_ARRAY[@]}"; do
2021-06-07 23:19:51 +02:00
FILE_NAME="${DIR##*/}"
echo "$(date '+%Y/%m/%d %H:%M:%S') UPLOAD FILE ${FILE_NAME}"
2021-06-07 23:19:51 +02:00
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
{ rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${PFOLDER}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
FILE_UPLOADED="true"
2021-06-07 23:19:51 +02:00
else
{ docker exec -t "${CP_DOMAIN_}" rclone -vv --retries 2 --low-level-retries 2 --ignore-size copy \
"${PFOLDER}/${FILE_NAME}" "${CINEMATORRENT_NAME}:${DIR_NAME}/"; } && \
FILE_UPLOADED="true"
2021-03-31 01:26:36 +02:00
fi
done
if [ "${FILE_UPLOADED}" = "true" ]; then
echo "$(date '+%Y/%m/%d %H:%M:%S') DELETE FILE ${DIR}"
rm -rf "${DIR}"
2021-03-31 01:26:36 +02:00
fi
fi
2021-03-31 01:26:36 +02:00
done
rm -rf "/home/${CP_DOMAIN}/files/torrent/.process"
rm -rf \
"/home/${CP_DOMAIN}/files/torrent/.1hour" \
"/home/${CP_DOMAIN}/files/torrent/.2hours" \
"/home/${CP_DOMAIN}/files/torrent/.3hours" \
"/home/${CP_DOMAIN}/files/torrent/.4hours" \
"/home/${CP_DOMAIN}/files/torrent/.5hours"
fi
exit 0
;;
"kill_rclone" )
_br "${2}"
read_domain "${2}"
sh_not
_s "${2}"
if [ "${CP_OS}" = "alpine" ] || [ "${CP_OS}" = "\"alpine\"" ]; then
ps -ef | grep "rclone" | grep -v 'grep' | awk '{ print $1 }' | xargs kill
else
docker exec -t "${CP_DOMAIN_}" /usr/bin/cinemapress kill_rclone "${CP_DOMAIN}"
2021-03-31 01:26:36 +02:00
fi
exit 0
;;
"local" )
echo ""; echo -n "☐ Change to a local build cinemapress.sh ...";
sed -Ei "s/# docker build/docker build/g" /usr/bin/cinemapress >/dev/null
sed -Ei "s/docker pull/# docker pull/g" /usr/bin/cinemapress >/dev/null
sleep 1
echo -e "\\r${G}✓ Change to a local build cinemapress.sh ...${NC}"
echo ""
exit 0
;;
2021-05-30 23:21:55 +02:00
"rclone_obscure" )
echo "$(echo "${2}" | rclone obscure -)"
exit 0
;;
2019-10-18 04:56:31 +02:00
"help"|"H"|"--help"|"-h"|"-H" )
2019-10-01 21:34:02 +02:00
clear
_line
_logo
_header "HELP"
_br
printf " ~# cinemapress [OPTION]"; _br; _br;
printf " OPTIONS:"; _br; _br;
2019-11-13 01:12:07 +01:00
printf " en - Fast install EN website"; _br;
printf " ru - Fast install RU website"; _br;
printf " passwd - Change the password for access to the admin panel"; _br;
printf " stop - Stop website (docker container)"; _br;
printf " start - Start website (docker container)"; _br;
printf " restart - Restart website (docker container)"; _br;
printf " reload - Reload website (PM2)"; _br;
printf " zero - Delete all data from the automatic database"; _br;
2021-03-12 07:17:18 +01:00
printf " zero_rt - Delete all data from the realtime database"; _br;
2019-12-08 22:26:32 +01:00
printf " logs - Show all logs"; _br;
2020-05-17 22:33:17 +02:00
printf " logs live - Show all logs realtime"; _br;
2021-01-09 02:07:30 +01:00
printf " logs bot - Show logs for fake and true bots"; _br;
printf " live bot - Show realtime logs for fake and true bots"; _br;
printf " lbf - Show logs for fake bots"; _br;
printf " lbt - Show logs for true bots"; _br;
2021-01-09 09:55:31 +01:00
printf " lbb - Show logs for bad bots"; _br;
2021-01-12 00:37:29 +01:00
printf " crash - Getting debug information after a site crash"; _br;
2020-01-20 06:58:56 +01:00
printf " bench - System info, I/O test and speedtest"; _br;
2019-11-13 01:12:07 +01:00
printf " actual - Updating data from an automatic database"; _br;
printf " to a manual database (year, list of actors, list"; _br;
printf " of genres, list of countries, list of directors,"; _br;
printf " premiere date, rating and number of votes)"; _br;
2020-01-20 06:58:56 +01:00
printf " clear_vps - Complete deletion of all data on the VPS"; _br;
2020-03-08 03:57:39 +01:00
printf " app - Create movie application"; _br;
2020-04-05 23:00:45 +02:00
printf " cms - Install other CMS (php-mysql,wordpress,drupal,joomla,dle)"; _br;
printf " cms example.com backup [create,restore]"; _br;
2020-05-17 22:33:17 +02:00
printf " bot - Install website for bots"; _br;
printf " bot_https - Install website for bots and generate SSL"; _br;
2021-01-11 05:19:40 +01:00
printf " ds - The domain that is the main on the server and accepts all requests"; _br;
2021-02-03 02:34:29 +01:00
printf " ds none - Deny access to the site by IP address"; _br;
2020-12-01 00:26:47 +01:00
printf " cf - Adding all subdomains to CloudFlare"; _br;
2021-01-13 00:31:24 +01:00
printf " mode - debug: more information about the speed and memory of each request"; _br;
2021-01-13 04:08:44 +01:00
printf " uptimerobot - Ping check for container and website every 2 minutes, if the website"; _br;
printf " is offline, the server will be rebooted"; _br;
2020-05-31 01:41:12 +02:00
printf " redirect movie.co hd.movie.com - Redirect from movie.co to hd.movie.com"; _br;
printf " redirect movie.co hd.movie.com bot - Redirect only for bots (Googlebot, etc.)"; _br;
2021-04-18 23:41:39 +02:00
printf " splash example.com git_login git_token [github,gitlab] [http://app-movies.com]"; _br;
2020-03-08 03:57:39 +01:00
printf " static example.com mega_login mega_pass [create,restore]"; _br; _br;
2020-05-19 22:57:41 +02:00
printf " combine install_https_restore_mirror"; _br;
printf " combine install_restore_mirror"; _br;
printf " combine install_https_mirror"; _br;
printf " combine install_https_backup"; _br;
printf " combine install_https_restore"; _br;
printf " combine install_https"; _br;
printf " combine install_backup"; _br;
printf " combine install_restore"; _br; _br;
2020-04-08 00:50:51 +02:00
printf " nohup cinemapress [FULL COMMAND] > log 2>&1; tail -f log"; _br; _br;
2019-10-01 21:34:02 +02:00
exit 0
;;
"version"|"ver"|"v"|"V"|"--version"|"--ver"|"-v"|"-V" )
2020-05-17 22:33:17 +02:00
echo "CinemaPress ${CP_VER}"
2019-10-01 21:34:02 +02:00
_br
echo "Copyright (c) 2014 - ... CinemaPress"
2019-10-01 21:34:02 +02:00
_br
exit 0
;;
* )
option ${1}
;;
esac
done