2024-04-20 07:17:37 +00:00
#!/usr/bin/env bash
2024-11-02 07:48:05 +00:00
source <( curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
2024-04-20 07:17:37 +00:00
# Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster)
# Co-Author: remz1337
# License: MIT
2024-11-02 07:48:05 +00:00
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
2024-04-20 07:17:37 +00:00
function header_info {
clear
cat <<"EOF"
2024-04-20 07:38:08 +00:00
______ ___ __ _ __ __
/ ____/___ _/ ( _) /_ ________ | | / /__ / /_
/ / / __ ` / / / __ \/ ___/ _ \_ __| | /| / / _ \/ __ \
/ /___/ /_/ / / / /_/ / / / __/___/ | / | / / __/ /_/ /
\_ ___/\_ _,_/_/_/_.___/_/ \_ __/ | __/| __/\_ __/_.___/
2024-04-20 07:22:18 +00:00
2024-04-20 07:17:37 +00:00
EOF
}
header_info
echo -e "Loading..."
2024-04-20 07:38:40 +00:00
APP = "Calibre-Web"
2024-04-20 07:17:37 +00:00
var_disk = "4"
var_cpu = "2"
var_ram = "2048"
var_os = "debian"
var_version = "12"
variables
color
catch_errors
function default_settings( ) {
CT_TYPE = "1"
PW = ""
CT_ID = $NEXTID
HN = $NSAPP
DISK_SIZE = " $var_disk "
CORE_COUNT = " $var_cpu "
RAM_SIZE = " $var_ram "
BRG = "vmbr0"
NET = "dhcp"
GATE = ""
APT_CACHER = ""
APT_CACHER_IP = ""
DISABLEIP6 = "no"
MTU = ""
SD = ""
NS = ""
MAC = ""
VLAN = ""
SSH = "no"
VERB = "no"
echo_default
}
function update_script( ) {
if [ [ ! -f /etc/systemd/system/cps.service ] ] ; then
msg_error " No ${ APP } Installation Found! "
exit
fi
2024-11-05 18:37:21 +00:00
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" " Please set the resources in your ${ APP } LXC to ${ var_cpu } vCPU and ${ var_ram } RAM for the build process before continuing " 10 75
2024-04-20 07:17:37 +00:00
header_info
msg_info " Updating $APP LXC "
systemctl stop cps
cd /opt/kepubify
rm kepubify-linux-64bit
curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-64bit & >/dev/null
chmod +x kepubify-linux-64bit
menu_array = ( "1" "Enables gdrive as storage backend for your ebooks" OFF \
"2" "Enables sending emails via a googlemail account without enabling insecure apps" OFF \
"3" "Enables displaying of additional author infos on the authors page" OFF \
"4" "Enables login via LDAP server" OFF \
"5" "Enables login via google or github oauth" OFF \
"6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF \
"7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF \
"8" "Enables syncing with your kobo reader" OFF )
if [ -f "/opt/calibre-web/options.txt" ] ; then
cps_options = " $( cat /opt/calibre-web/options.txt) "
IFS = ',' read -ra ADDR <<< " $cps_options "
for i in " ${ ADDR [@] } " ; do
if [ $i = = "gdrive" ] ; then
line = 0
elif [ $i = = "gmail" ] ; then
line = 1
2024-08-23 15:39:31 +00:00
elif [ $i = = "goodreads" ] ; then
2024-04-20 07:17:37 +00:00
line = 2
elif [ $i = = "ldap" ] ; then
line = 3
elif [ $i = = "oauth" ] ; then
line = 4
elif [ $i = = "metadata" ] ; then
line = 5
elif [ $i = = "comics" ] ; then
line = 6
elif [ $i = = "kobo" ] ; then
line = 7
fi
array_index = $(( 3 * line + 2 ))
menu_array[ $array_index ] = ON
done
fi
if [ -n " $SPINNER_PID " ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
CHOICES = $( whiptail --backtitle "Proxmox VE Helper Scripts" --title "CALIBRE-WEB OPTIONS" --separate-output --checklist "Choose Additional Options" 15 125 8 " ${ menu_array [@] } " 3>& 1 1>& 2 2>& 3)
spinner &
SPINNER_PID = $!
2024-08-23 15:39:31 +00:00
options = ( )
2024-04-20 07:17:37 +00:00
if [ ! -z " $CHOICES " ] ; then
for CHOICE in $CHOICES ; do
case " $CHOICE " in
"1" )
options += ( gdrive )
; ;
"2" )
options += ( gmail )
; ;
"3" )
options += ( goodreads )
; ;
"4" )
options += ( ldap )
apt-get install -qqy libldap2-dev libsasl2-dev
; ;
"5" )
options += ( oauth )
; ;
"6" )
options += ( metadata )
; ;
"7" )
options += ( comics )
; ;
"8" )
options += ( kobo )
; ;
*)
echo " Unsupported item $CHOICE ! " >& 2
exit 1
; ;
esac
done
fi
if [ ! -z " $options " ] && [ ${# options [@] } -gt 0 ] ; then
cps_options = $( IFS = , ; echo " ${ options [*] } " )
echo $cps_options > /opt/calibre-web/options.txt
pip install --upgrade calibreweb[ $cps_options ]
else
rm /opt/calibre-web/options.txt 2> /dev/null
pip install --upgrade calibreweb
fi
systemctl start cps
msg_ok " Updated $APP LXC "
exit
}
start
build_container
description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 512
pct set $CTID -cores 1
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n"
echo -e " ${ APP } should be reachable by going to the following URL.
${ BL } http://${ IP } :8083${ CL } \n "