Syntax fix and linting

This commit is contained in:
Tomislav Kopić 2024-03-06 06:48:53 +00:00
parent be18d2162d
commit beb6207e59

View File

@ -22,7 +22,6 @@ setupNextcloud() {
apt-get upgrade -y apt-get upgrade -y
apt-get -y install apt-transport-https lsb-release ca-certificates curl sudo wget zip hdparm apt-get -y install apt-transport-https lsb-release ca-certificates curl sudo wget zip hdparm
failCheck "while installing basics, please check output above for more info" failCheck "while installing basics, please check output above for more info"
DISTRO=$(lsb_release -si)
RELEASE=$(lsb_release -sc) RELEASE=$(lsb_release -sc)
if [[ -d /etc/udev/rules.d/ ]]; then if [[ -d /etc/udev/rules.d/ ]]; then
@ -37,37 +36,37 @@ setupNextcloud() {
PHPTHREADS=1 PHPTHREADS=1
fi fi
TOTALMEM=$(grep MemTotal /proc/meminfo | awk '{print $2}') TOTALMEM=$(grep MemTotal /proc/meminfo | awk '{print $2}')
TOTALMEM=$((${TOTALMEM}/1024)) TOTALMEM=$((TOTALMEM/1024))
ROUNDED=1 ROUNDED=1
while [ ${ROUNDED} -lt ${TOTALMEM} ]; do while [ ${ROUNDED} -lt ${TOTALMEM} ]; do
ROUNDED=$((${ROUNDED} * 2)) ROUNDED=$((ROUNDED*2))
done done
if [[ ${TOTALMEM} -gt 400 ]]; then if [[ ${TOTALMEM} -gt 400 ]]; then
PHPTHREADS=$((${PHPTHREADS}*2)) PHPTHREADS=$((PHPTHREADS*2))
fi fi
PHPMEM=$((${ROUNDED}/2)) PHPMEM=$((ROUNDED/2))
OVERDRIVE=$((${ROUNDED}/1024)) OVERDRIVE=$((ROUNDED/1024))
if [[ ${OVERDRIVE} -gt 8 ]]; then if [[ ${OVERDRIVE} -gt 8 ]]; then
OVERDRIVE=8 OVERDRIVE=8
fi fi
DBMEM=$((${PHPMEM}/4)) DBMEM=$((PHPMEM/4))
DBTEMPBUFF=$((${DBMEM}/16)) DBTEMPBUFF=$((DBMEM/16))
DBWORKMEM=$((${DBTEMPBUFF}/2)) DBWORKMEM=$((DBTEMPBUFF/2))
REDISMEM=$((${DBMEM}/4)) REDISMEM=$((DBMEM/4))
if [[ ${PHPMEM} -lt 128 ]]; then if [[ ${PHPMEM} -lt 128 ]]; then
PHPMEM="128" PHPMEM="128"
fi fi
if [[ ${PHPMEM} -gt 1024 ]]; then if [[ ${PHPMEM} -gt 1024 ]]; then
PHPTHREADS=$(($PHPTHREADS+$((${OVERDRIVE}*2)))) PHPTHREADS=$((PHPTHREADS+$((OVERDRIVE*2))))
DBMEM=$((256*${OVERDRIVE})) DBMEM=$((256*OVERDRIVE))
DBTEMPBUFF=$((${DBMEM}/32)) DBTEMPBUFF=$((DBMEM/32))
DBWORKMEM=$((${DBTEMPBUFF}/2)) DBWORKMEM=$((DBTEMPBUFF/2))
REDISMEM=$((${DBMEM}/8)) REDISMEM=$((DBMEM/8))
PHPMEM="1024" PHPMEM="1024"
fi fi
THMEM=$((${PHPMEM}+$((${PHPMEM}/2))+$((${PHPMEM}/32))+${REDISMEM}+${DBMEM}+${DBWORKMEM}+${DBTEMPBUFF})) THMEM=$((PHPMEM+$((PHPMEM/2))+$((PHPMEM/32))+REDISMEM+DBMEM+DBWORKMEM+DBTEMPBUFF))
MAXUSERS=$((${THMEM}*${PHPTHREADS})) MAXUSERS=$((THMEM*PHPTHREADS))
MAXUSERS=$((${MAXUSERS}/1786)) MAXUSERS=$((MAXUSERS/1786))
if [[ -d /nextcloud/ ]]; then if [[ -d /nextcloud/ ]]; then
echo "It seems that NextCloud is already installed? Please review and remove /nextcloud/ to continue" echo "It seems that NextCloud is already installed? Please review and remove /nextcloud/ to continue"
@ -108,9 +107,9 @@ setupNextcloud() {
echo "H4sIAAAAAAAAA31SS0sDMRC+51f04LXNWqRowUPBwhZcXWpvpYS4Gd1gXubRVn+9SdatskUvYb/XZHYmWwVH3wgd2A4hwZ0HNbodYRsUNq3BWakoVxOnm7dvw0QfFNhoO2V74dXqYKJwOBzGjHra81IziHQxmxUIBTcIn6WQkRFqxUBSxSKaSHokTcsFs7m/uqw35ToJzlPrSay4B+uiMs1urogz1MIv4bIvMxSmvWDhPYDz2VwURaKN1Q04RzgTQDyXoINP8nXhEGpaxtOPYIRA7bfl49PmYVEtd5G66EFWNlWdSOylwT1xt1oPuOXQVS82ZWaCs1johgrsnrma/8In+CPkjw7GA8UlEsrSQPZUBNgGIzRlJF5CYve5/GkROA2/u38YkyC1/SCCS+5TqFpW96vqr+ppmi9cgOOfkNxXxc2sGp25XRwt1/Fp0T2QNm5aQO7IAuPuf7ehvk3WoPhxjnF+rznWneNuvd2j/QKMme9C4wIAAA==" | base64 -d | gunzip > /etc/php/8.2/fpm/pool.d/cloud.conf echo "H4sIAAAAAAAAA31SS0sDMRC+51f04LXNWqRowUPBwhZcXWpvpYS4Gd1gXubRVn+9SdatskUvYb/XZHYmWwVH3wgd2A4hwZ0HNbodYRsUNq3BWakoVxOnm7dvw0QfFNhoO2V74dXqYKJwOBzGjHra81IziHQxmxUIBTcIn6WQkRFqxUBSxSKaSHokTcsFs7m/uqw35ToJzlPrSay4B+uiMs1urogz1MIv4bIvMxSmvWDhPYDz2VwURaKN1Q04RzgTQDyXoINP8nXhEGpaxtOPYIRA7bfl49PmYVEtd5G66EFWNlWdSOylwT1xt1oPuOXQVS82ZWaCs1johgrsnrma/8In+CPkjw7GA8UlEsrSQPZUBNgGIzRlJF5CYve5/GkROA2/u38YkyC1/SCCS+5TqFpW96vqr+ppmi9cgOOfkNxXxc2sGp25XRwt1/Fp0T2QNm5aQO7IAuPuf7ehvk3WoPhxjnF+rznWneNuvd2j/QKMme9C4wIAAA==" | base64 -d | gunzip > /etc/php/8.2/fpm/pool.d/cloud.conf
sed -i "s/PHPTHR/${PHPTHREADS}/g" /etc/php/8.2/fpm/pool.d/cloud.conf sed -i "s/PHPTHR/${PHPTHREADS}/g" /etc/php/8.2/fpm/pool.d/cloud.conf
sed -i "s/MEMLIM/${PHPMEM}M/g" /etc/php/8.2/fpm/pool.d/cloud.conf sed -i "s/MEMLIM/${PHPMEM}M/g" /etc/php/8.2/fpm/pool.d/cloud.conf
sed -i "s/opcache.memory_consumption=64/opcache.memory_consumption=$((${PHPMEM}/4))/g" /etc/php/8.2/fpm/conf.d/99-nextcloud.ini sed -i "s/opcache.memory_consumption=64/opcache.memory_consumption=$((PHPMEM/4))/g" /etc/php/8.2/fpm/conf.d/99-nextcloud.ini
sed -i "s/apc.shm_size = 128M/apc.shm_size = $((${PHPMEM}/4))M/g" /etc/php/8.2/fpm/conf.d/99-nextcloud.ini sed -i "s/apc.shm_size = 128M/apc.shm_size = $((PHPMEM/4))M/g" /etc/php/8.2/fpm/conf.d/99-nextcloud.ini
sed -i "s/opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=$((${PHPMEM}/32))/g" /etc/php/8.2/fpm/conf.d/99-nextcloud.ini sed -i "s/opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=$((PHPMEM/32))/g" /etc/php/8.2/fpm/conf.d/99-nextcloud.ini
service php8.2-fpm restart service php8.2-fpm restart
failCheck "while starting PHP8.2 process, please check output above for more info" failCheck "while starting PHP8.2 process, please check output above for more info"
@ -125,7 +124,8 @@ setupNextcloud() {
failCheck "while starting Nginx process, please check output above for more info" failCheck "while starting Nginx process, please check output above for more info"
echo "Setting up PostgreSQL" echo "Setting up PostgreSQL"
export DBPASS=$(openssl rand -base64 16) DBPASS=$(openssl rand -base64 16)
export DBPASS
export DBNAME="nextclouddb" export DBNAME="nextclouddb"
export DBUSER="nextcloud" export DBUSER="nextcloud"
apt-get install -y postgresql apt-get install -y postgresql
@ -133,15 +133,15 @@ setupNextcloud() {
failCheck "while installing PostgreSQL, please check output above for more info" failCheck "while installing PostgreSQL, please check output above for more info"
POSTGRESPATH=$(find /etc/postgresql/ -name postgresql.conf) POSTGRESPATH=$(find /etc/postgresql/ -name postgresql.conf)
POSTGRESHBAPATH=$(find /etc/postgresql/ -name pg_hba.conf) POSTGRESHBAPATH=$(find /etc/postgresql/ -name pg_hba.conf)
sed -i "s/shared_buffers = 128MB/shared_buffers = ${DBMEM}MB/g" ${POSTGRESPATH} sed -i "s/shared_buffers = 128MB/shared_buffers = ${DBMEM}MB/g" "${POSTGRESPATH}"
sed -i "s/#work_mem = 4MB/work_mem = ${DBWORKMEM}MB/g" ${POSTGRESPATH} sed -i "s/#work_mem = 4MB/work_mem = ${DBWORKMEM}MB/g" "${POSTGRESPATH}"
sed -i "s/#maintenance_work_mem = 64MB/maintenance_work_mem = ${DBWORKMEM}MB/g" ${POSTGRESPATH} sed -i "s/#maintenance_work_mem = 64MB/maintenance_work_mem = ${DBWORKMEM}MB/g" "${POSTGRESPATH}"
sed -i "s/#temp_buffers = 8MB/temp_buffers = ${DBTEMPBUFF}MB/g" ${POSTGRESPATH} sed -i "s/#temp_buffers = 8MB/temp_buffers = ${DBTEMPBUFF}MB/g" "${POSTGRESPATH}"
sed -i "s/#effective_cache_size = 4GB/effective_cache_size = ${PHPMEM}MB/g" ${POSTGRESPATH} sed -i "s/#effective_cache_size = 4GB/effective_cache_size = ${PHPMEM}MB/g" "${POSTGRESPATH}"
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '127.0.0.1'/g" ${POSTGRESPATH} sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '127.0.0.1'/g" "${POSTGRESPATH}"
SWITCHEROO=$(cat ${POSTGRESHBAPATH}) SWITCHEROO=$(cat "${POSTGRESHBAPATH}")
echo "local ${DBNAME} ${DBUSER} md5" > ${POSTGRESHBAPATH} echo "local ${DBNAME} ${DBUSER} md5" > "${POSTGRESHBAPATH}"
echo "${SWITCHEROO}" >> ${POSTGRESHBAPATH} echo "${SWITCHEROO}" >> "${POSTGRESHBAPATH}"
service postgresql restart service postgresql restart
failCheck "while starting PostgreSQL process, please check output above for more info" failCheck "while starting PostgreSQL process, please check output above for more info"
echo "CREATE USER ${DBUSER} WITH PASSWORD '${DBPASS}'; CREATE DATABASE ${DBNAME} TEMPLATE template0 ENCODING 'UNICODE'; ALTER DATABASE ${DBNAME} OWNER TO ${DBUSER}; GRANT ALL PRIVILEGES ON DATABASE ${DBNAME} TO ${DBUSER};" | sudo -u postgres psql -d template1 echo "CREATE USER ${DBUSER} WITH PASSWORD '${DBPASS}'; CREATE DATABASE ${DBNAME} TEMPLATE template0 ENCODING 'UNICODE'; ALTER DATABASE ${DBNAME} OWNER TO ${DBUSER}; GRANT ALL PRIVILEGES ON DATABASE ${DBNAME} TO ${DBUSER};" | sudo -u postgres psql -d template1
@ -153,15 +153,16 @@ if [[ ${UID} != 0 ]]; then
exit exit
fi fi
cd /root/ cd /root/ || exit
echo "Installing Nextcloud on your machine" echo "Installing Nextcloud on your machine"
setupNextcloud setupNextcloud
clear clear
echo "Installing Nextcloud database" echo "Installing Nextcloud database"
chmod +x /nextcloud/occ chmod +x /nextcloud/occ
export ADMPASS=$(openssl rand -hex 16) ADMPASS=$(openssl rand -hex 16)
sudo -u nextcloud /nextcloud/occ maintenance:install --database pgsql --database-name ${DBNAME} --database-host /run/postgresql --database-user ${DBUSER} --database-pass ${DBPASS} --admin-user admin --admin-pass ${ADMPASS} export ADMPASS
sudo -u nextcloud /nextcloud/occ maintenance:install --database pgsql --database-name "${DBNAME}" --database-host /run/postgresql --database-user "${DBUSER}" --database-pass "${DBPASS}" --admin-user admin --admin-pass "${ADMPASS}"
sleep 3 sleep 3
if (grep "'installed' => true," /nextcloud/config/config.php); then if (grep "'installed' => true," /nextcloud/config/config.php); then
echo "Installation complete!" echo "Installation complete!"
@ -177,9 +178,9 @@ fi
echo "Optimizing" echo "Optimizing"
sed -i '$ d' /nextcloud/config/config.php sed -i '$ d' /nextcloud/config/config.php
echo "H4sIAAAAAAAAA32TYY/TMAyGv9+v6LcKCdbuDiEkBBI7YAJpUMEJncRQlTXeFi5NgpN23b/HiwtlGqEfqtbPW8d+XWdZLjcO0CsfwIQ8e/kqC9jB46uMCGxFp0Pt9tZAjbBT1kRFvlzkUfHDwa7+2QmtwpHJs5IJGLHRUDuEXsHBnydmKCuGFdpeSaohir6RgK/80+16lKwXqyrmvSTL9+8S5EP1dplAX76myErgwxt7MClc3aQINQEJVn1MHXd3f5cg9wsVWuEi/R5dG72sWzHUA7s9L8vR77/h8X/QN4LmshVNsBh18/JM01jTdIhgmmMttI6Sm6TCwIGTXJzTQmuRK5lfP49Y252GHjjn09+hrdLABRe9wIIihYEhNNp2ckZv3AKla0SzB4pQA6xfk12rMb5+Xd12l9IHZXb/EH8GqTyrMT6e/Xn53npahdMVy8LOFFHG9ycesAeceUo/DS93FqePyikuN8pIoIH98YnjQbVgu8Dx62nMAVonFcJpQOMkJ0MKKYIoQusKrv5k3tjmbNyq81Xz4D2tLW2vFgPIGganxrRboT2JHr24+gWXXa/TBgQAAA==" | base64 -d | gunzip >> /nextcloud/config/config.php echo "H4sIAAAAAAAAA32TYY/TMAyGv9+v6LcKCdbuDiEkBBI7YAJpUMEJncRQlTXeFi5NgpN23b/HiwtlGqEfqtbPW8d+XWdZLjcO0CsfwIQ8e/kqC9jB46uMCGxFp0Pt9tZAjbBT1kRFvlzkUfHDwa7+2QmtwpHJs5IJGLHRUDuEXsHBnydmKCuGFdpeSaohir6RgK/80+16lKwXqyrmvSTL9+8S5EP1dplAX76myErgwxt7MClc3aQINQEJVn1MHXd3f5cg9wsVWuEi/R5dG72sWzHUA7s9L8vR77/h8X/QN4LmshVNsBh18/JM01jTdIhgmmMttI6Sm6TCwIGTXJzTQmuRK5lfP49Y252GHjjn09+hrdLABRe9wIIihYEhNNp2ckZv3AKla0SzB4pQA6xfk12rMb5+Xd12l9IHZXb/EH8GqTyrMT6e/Xn53npahdMVy8LOFFHG9ycesAeceUo/DS93FqePyikuN8pIoIH98YnjQbVgu8Dx62nMAVonFcJpQOMkJ0MKKYIoQusKrv5k3tjmbNyq81Xz4D2tLW2vFgPIGganxrRboT2JHr24+gWXXa/TBgQAAA==" | base64 -d | gunzip >> /nextcloud/config/config.php
sed -i "s/'preview_max_memory' => 128,/'preview_max_memory' => $((${PHPMEM}/2)),/g" /nextcloud/config/config.php sed -i "s/'preview_max_memory' => 128,/'preview_max_memory' => $((PHPMEM/2)),/g" /nextcloud/config/config.php
sed -i "s/'preview_concurrency_all' => 3,/'preview_concurrency_all' => $((${NUMCORES}*2)),/g" /nextcloud/config/config.php sed -i "s/'preview_concurrency_all' => 3,/'preview_concurrency_all' => $((NUMCORES*2)),/g" /nextcloud/config/config.php
sed -i "s/'preview_concurrency_new' => 1,/'preview_concurrency_new' => $((${NUMCORES}/2)),/g" /nextcloud/config/config.php sed -i "s/'preview_concurrency_new' => 1,/'preview_concurrency_new' => $((NUMCORES/2)),/g" /nextcloud/config/config.php
echo "Adding Cronjob" echo "Adding Cronjob"
echo "*/5 * * * * php --define apc.enable_cli=1 -f /nextcloud/cron.php" > /tmp/cron echo "*/5 * * * * php --define apc.enable_cli=1 -f /nextcloud/cron.php" > /tmp/cron
echo "*/10 * * * * php --define apc.enable_cli=1 -f /nextcloud/occ preview:pre-generate" >> /tmp/cron echo "*/10 * * * * php --define apc.enable_cli=1 -f /nextcloud/occ preview:pre-generate" >> /tmp/cron
@ -198,9 +199,9 @@ nextcloud config:app:set activity activity_expire_days --value 365
nextcloud db:add-missing-indices nextcloud db:add-missing-indices
echo "Installing additional apps" echo "Installing additional apps"
APPS=(previewgenerator calendar contacts mail notes) APPS=(previewgenerator calendar contacts mail notes)
for APP in ${APPS[@]}; do for APP in "${APPS[@]}"; do
echo "installing ${APP} app" echo "installing ${APP} app"
nextcloud app:install ${APP} nextcloud app:install "${APP}"
done done
GREEN='\033[0;32m' GREEN='\033[0;32m'
BLUE='\033[0;34m' BLUE='\033[0;34m'
@ -214,15 +215,15 @@ echo -e " ${YELLOW}${TOTALMEM}MB${NC} RAM"
echo -e "${GREEN}Calculated Optimal Values:${NC}" echo -e "${GREEN}Calculated Optimal Values:${NC}"
echo -e " ${YELLOW}${PHPTHREADS}${NC} PHP threads" echo -e " ${YELLOW}${PHPTHREADS}${NC} PHP threads"
echo -e " ${YELLOW}${PHPMEM}MB ${NC}PHP memory limit" echo -e " ${YELLOW}${PHPMEM}MB ${NC}PHP memory limit"
echo -e " ${YELLOW}$((${PHPMEM}/4))MB${NC} PHP opcache memory limit" echo -e " ${YELLOW}$((PHPMEM/4))MB${NC} PHP opcache memory limit"
echo -e " ${YELLOW}$((${PHPMEM}/4))MB${NC} PHP APCu cache size" echo -e " ${YELLOW}$((PHPMEM/4))MB${NC} PHP APCu cache size"
echo -e " ${YELLOW}$((${PHPMEM}/32))MB${NC} PHP opcache string buffer" echo -e " ${YELLOW}$((PHPMEM/32))MB${NC} PHP opcache string buffer"
echo -e " ${YELLOW}${DBMEM}MB${NC} PostgreSQL shared buffers" echo -e " ${YELLOW}${DBMEM}MB${NC} PostgreSQL shared buffers"
echo -e " ${YELLOW}${DBWORKMEM}MB${NC} PostgreSQL working memory" echo -e " ${YELLOW}${DBWORKMEM}MB${NC} PostgreSQL working memory"
echo -e " ${YELLOW}${DBTEMPBUFF}MB${NC} PostgreSQL temporary buffer" echo -e " ${YELLOW}${DBTEMPBUFF}MB${NC} PostgreSQL temporary buffer"
echo -e " ${YELLOW}${REDISMEM}MB${NC} Redis memory limit" echo -e " ${YELLOW}${REDISMEM}MB${NC} Redis memory limit"
echo -e " ${YELLOW}$((${PHPMEM}/2))MB${NC} preview generator memory limit" echo -e " ${YELLOW}$((PHPMEM/2))MB${NC} preview generator memory limit"
echo -e " ${YELLOW}$((${NUMCORES}*2))${NC} preview generator concurrency" echo -e " ${YELLOW}$((NUMCORES*2))${NC} preview generator concurrency"
echo -e "" echo -e ""
echo -e "${YELLOW}Additional Information:${NC}" echo -e "${YELLOW}Additional Information:${NC}"
echo -e " Theoretical peak memory usage: ${YELLOW}${THMEM}MB${NC}" echo -e " Theoretical peak memory usage: ${YELLOW}${THMEM}MB${NC}"