Compare commits

...

5 Commits

Author SHA1 Message Date
80d7600a5b Update nextcloud_Install.sh 2024-10-08 10:07:08 +00:00
a92103b1f4 Update nextcloud_Install.sh 2024-10-08 10:00:32 +00:00
beb6207e59 Syntax fix and linting 2024-03-06 06:48:53 +00:00
be18d2162d Update nginx config 2024-03-05 22:19:53 +01:00
7a6681f06c Update nginx config 2024-03-05 22:17:10 +01:00
3 changed files with 73 additions and 65 deletions

View File

@ -24,6 +24,12 @@ server {
add_header X-XSS-Protection "1; mode=block" always;
fastcgi_hide_header X-Powered-By;
include mime.types;
types {
text/javascript js mjs;
application/wasm wasm;
}
index index.php index.html /index.php$request_uri;
location = / {

View File

@ -18,7 +18,7 @@ http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
sendfile_max_chunk 512k;
sendfile_max_chunk 4m;
types_hash_max_size 2048;
server_tokens off;
keepalive_timeout 120s;
@ -27,16 +27,17 @@ http {
proxy_store off;
proxy_cache off;
proxy_max_temp_file_size 0;
proxy_buffers 16 16k;
proxy_buffers 64 4k;
proxy_buffer_size 16k;
proxy_busy_buffers_size 64k;
proxy_busy_buffers_size 24k;
fastcgi_buffering on;
fastcgi_request_buffering off;
fastcgi_buffers 16 16K;
fastcgi_busy_buffers_size 64k;
fastcgi_buffers 64 4K;
fastcgi_busy_buffers_size 24k;
fastcgi_buffer_size 16k;
fastcgi_max_temp_file_size 0;
client_body_buffer_size 4M;
client_header_buffer_size 4k;
large_client_header_buffers 8 8k;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

View File

@ -22,7 +22,6 @@ setupNextcloud() {
apt-get upgrade -y
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"
DISTRO=$(lsb_release -si)
RELEASE=$(lsb_release -sc)
if [[ -d /etc/udev/rules.d/ ]]; then
@ -37,37 +36,37 @@ setupNextcloud() {
PHPTHREADS=1
fi
TOTALMEM=$(grep MemTotal /proc/meminfo | awk '{print $2}')
TOTALMEM=$((${TOTALMEM}/1024))
TOTALMEM=$((TOTALMEM/1024))
ROUNDED=1
while [ ${ROUNDED} -lt ${TOTALMEM} ]; do
ROUNDED=$((${ROUNDED} * 2))
ROUNDED=$((ROUNDED*2))
done
if [[ ${TOTALMEM} -gt 400 ]]; then
PHPTHREADS=$((${PHPTHREADS}*2))
PHPTHREADS=$((PHPTHREADS*2))
fi
PHPMEM=$((${ROUNDED}/2))
OVERDRIVE=$((${ROUNDED}/1024))
PHPMEM=$((ROUNDED/2))
OVERDRIVE=$((ROUNDED/1024))
if [[ ${OVERDRIVE} -gt 8 ]]; then
OVERDRIVE=8
fi
DBMEM=$((${PHPMEM}/4))
DBTEMPBUFF=$((${DBMEM}/16))
DBWORKMEM=$((${DBTEMPBUFF}/2))
REDISMEM=$((${DBMEM}/4))
DBMEM=$((PHPMEM/4))
DBTEMPBUFF=$((DBMEM/16))
DBWORKMEM=$((DBTEMPBUFF/2))
REDISMEM=$((DBMEM/4))
if [[ ${PHPMEM} -lt 128 ]]; then
PHPMEM="128"
fi
if [[ ${PHPMEM} -gt 1024 ]]; then
PHPTHREADS=$(($PHPTHREADS+$((${OVERDRIVE}*2))))
DBMEM=$((256*${OVERDRIVE}))
DBTEMPBUFF=$((${DBMEM}/32))
DBWORKMEM=$((${DBTEMPBUFF}/2))
REDISMEM=$((${DBMEM}/8))
PHPTHREADS=$((PHPTHREADS+$((OVERDRIVE*2))))
DBMEM=$((256*OVERDRIVE))
DBTEMPBUFF=$((DBMEM/32))
DBWORKMEM=$((DBTEMPBUFF/2))
REDISMEM=$((DBMEM/8))
PHPMEM="1024"
fi
THMEM=$((${PHPMEM}+$((${PHPMEM}/2))+$((${PHPMEM}/32))+${REDISMEM}+${DBMEM}+${DBWORKMEM}+${DBTEMPBUFF}))
MAXUSERS=$((${THMEM}*${PHPTHREADS}))
MAXUSERS=$((${MAXUSERS}/1786))
THMEM=$((PHPMEM+$((PHPMEM/2))+$((PHPMEM/32))+REDISMEM+DBMEM+DBWORKMEM+DBTEMPBUFF))
MAXUSERS=$((THMEM*PHPTHREADS))
MAXUSERS=$((MAXUSERS/1786))
if [[ -d /nextcloud/ ]]; then
echo "It seems that NextCloud is already installed? Please review and remove /nextcloud/ to continue"
@ -90,42 +89,43 @@ setupNextcloud() {
failCheck "while installing Redis, please check output above for more info"
echo "Adding user nextcloud to redis group"
usermod -a -G redis nextcloud
echo "H4sIAAAAAAAAA31Ta1LjMAz+n1P4AoKkQGG5jWOrxNSvke2U9PQrJRQ6lN1kkpH1ydKn1+iiVcPu+a7nd1Cvr0OXKVU0FS2EZFEtWLqcqKq+qybDqM3Rpzf1NAxdi+6jJHPEqu6pxXtC68r2h4I0I90JfGWXkYJ6fmZXLmBqF6dHxKy9m1E99H1nNYYU3XmLXRpfml1Bq2LqsrMH51Hdz5r+FZNtOqbocUavTpqii2+i+L7Ih98uspqDVz3qgkU9dtqf9MLolE7AWBICRTPLP32vhk18ELHf5L2I/HSlpgwnchULpAjjm8CARInWnMiOJoVMWIpL8Us1oTmWFtazHYVu1AGVbSHfMS42YNFDWaIBgYswso4+s3Ljlk+njWe+EPQHsA/u70vHcuCy0qKGffg+QU7emUVp74/IuXpqndfn5UCIIALg7EwVlhzqB/KRHeGtfqumMBWMMHMEvUEH38p0e6OVb/uUAhSTCEHb9xsFzNo3zrtXOy78C9da54zRpuiXtT0+nSR1+URmv3XS8dKXT/S6MF5XjGYBGbmaxJzbMiVveTYnXabV+Ow4iVIBYyXH4Z+G3S24UlP7x249XSNFhhl2G3DpPCec68RRCm7WLlYRr2OcL9hPAsL8BvwiMHkekqyp4IqPCw+iTCpXi3vJzUEhz2uxjprxjt0Cr2NuFcZ2OHDVvAuuckUpaM/V5vd/dp9NVrunfRiZgfz+eyG3sbRRPezY8mWzns6ySHbhmXcG+CTcdDoA4bpKXB9DGNij9nCQHbgsDqzr9Tv8jpyAT4aXcG2ttqv6L8LUp9L4BAAA" | base64 -d | gunzip > /etc/redis/redis.conf
echo "H4sIAAAAAAAAA31Ta1LjMAz+n1P4AoKkQGG5jWOrxNSvke2U9PQrJRQ6lN1kkpH1ydKn1+iiVcPu+a7nd1Cvr0OXKVU0FS2EZFEtWLqcqKq+qybDqM3Rpzf1NAxdi+6jJHPEqu6pxXtC68.3h4I0I90JfGWXkYJ6fmZXLmBqF6dHxKy9m1E99H1nNYYU3XmLXRpfml1Bq2LqsrMH51Hdz5r+FZNtOqbocUavTpqii2+i+L7Ih98uspqDVz3qgkU9dtqf9MLolE7AWBICRTPLP32vhk18ELHf5L2I/HSlpgwnchULpAjjm8CARInWnMiOJoVMWIpL8Us1oTmWFtazHYVu1AGVbSHfMS42YNFDWaIBgYswso4+s3Ljlk+njWe+EPQHsA/u70vHcuCy0qKGffg+QU7emUVp74/IuXpqndfn5UCIIALg7EwVlhzqB/KRHeGtfqumMBWMMHMEvUEH38p0e6OVb/uUAhSTCEHb9xsFzNo3zrtXOy78C9da54zRpuiXtT0+nSR1+URmv3XS8dKXT/S6MF5XjGYBGbmaxJzbMiVveTYnXabV+Ow4iVIBYyXH4Z+G3S24UlP7x249XSNFhhl2G3DpPCec68RRCm7WLlYRr2OcL9hPAsL8BvwiMHkekqyp4IqPCw+iTCpXi3vJzUEhz2uxjprxjt0Cr2NuFcZ2OHDVvAuuckUpaM/V5vd/dp9NVrunfRiZgfz+eyG3sbRRPezY8mWzns6ySHbhmXcG+CTcdDoA4bpKXB9DGNij9nCQHbgsDqzr9Tv8jpyAT4aXcG2ttqv6L8LUp9L4BAAA" | base64 -d | gunzip > /etc/redis/redis.conf
sed -i "s/maxmemory 16m/maxmemory ${REDISMEM}m/g" /etc/redis/redis.conf
service redis-server restart
failCheck "while starting Redis process, please check output above for more info"
echo "Setting up PHP 8.2"
echo "Setting up PHP 8.3"
if [[ ${RELEASE} == "bullseye" ]]; then
echo "Adding SURY repo"
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt-get update
fi
apt-get install -y php8.2 php8.2-fpm php8.2-gmp php8.2-bz2 php-bcmath php8.2-intl php8.2-mbstring php8.2-apcu php8.2-xml php8.2-redis php8.2-curl php8.2-zip php8.2-pgsql php8.2-gd php8.2-bcmath php8.2-imagick php8.2-common libmagickcore-6.q16-6-extra imagemagick ffmpeg
failCheck "while installing PHP8.2, please check output above for more info"
echo "H4sIAAAAAAAAA2WQzW4CMQyE7/sUPAECVBAccqh6bVWqHhGKQtbZNU3iJfZC26dvoPyE9hbNN3ZmvFoSS5OA39+e11XX8M4Pjfd00B0kRhaIMlCD13hhvZDOdpA/BufOjmA+79F4NCqQx/jBdyo2kRLoSIIWMrnonppSrFbUWWNbWFfnxxCi2XhQ46sQIFD60pYi96ETpKhmD1eKUSBFqDVLwtiw3vTOQVLz23wOaKwFD8lINjr0wGo8m0wWV0+CvfFYZ65dgp1a5CIX5gyL5raXmg6xyPUbVFuPhVgs6oy06raGzT6bKYR8QP6/5phK0x5Swrpsv8XTuSfTaSmdW2rGbzjh+Uu+5ePyqV9XprNDboNmaE5/HflNLAZ+ANhYH7snAgAA" | base64 -d | gunzip > /etc/php/8.2/fpm/conf.d/99-nextcloud.ini
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/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/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
service php8.2-fpm restart
failCheck "while starting PHP8.2 process, please check output above for more info"
apt-get install -y php8.3 php8.3-fpm php8.3-gmp php8.3-bz2 php-bcmath php8.3-intl php8.3-mbstring php8.3-apcu php8.3-xml php8.3-redis php8.3-curl php8.3-zip php8.3-pgsql php8.3-gd php8.3-bcmath php8.3-imagick php8.3-common libmagickcore-6.q16-6-extra imagemagick ffmpeg
failCheck "while installing PHP8.3, please check output above for more info"
echo "H4sIAAAAAAAAA2WQzW4CMQyE7/sUPAECVBAccqh6bVWqHhGKQtbZNU3iJfZC26dvoPyE9hbNN3ZmvFoSS5OA39+e11XX8M4Pjfd00B0kRhaIMlCD13hhvZDOdpA/BufOjmA+79F4NCqQx/jBdyo2kRLoSIIWMrnonppSrFbUWWNbWFfnxxCi2XhQ46sQIFD60pYi96ETpKhmD1eKUSBFqDVLwtiw3vTOQVLz23wOaKwFD8lINjr0wGo8m0wWV0+CvfFYZ65dgp1a5CIX5gyL5raXmg6xyPUbVFuPhVgs6oy06raGzT6bKYR8QP6/5phK0x5Swrpsv8XTuSfTaSmdW2rGbzjh+Uu+5ePyqV9XprNDboNmaE5/HflNLAZ+ANhYH7snAgAA" | base64 -d | gunzip > /etc/php/8.3/fpm/conf.d/99-nextcloud.ini
echo "H4sIAAAAAAAAA31SS0sDMRC+51f04LXNWqRowUPBwhZcXWpvpYS4Gd1gXubRVn+9SdatskUvYb/XZHYmWwVH3wgd2A4hwZ0HNbodYRsUNq3BWakoVxOnm7dvw0QfFNhoO2V74dXqYKJwOBzGjHra81IziHQxmxUIBTcIn6WQkRFqxUBSxSKaSHokTcsFs7m/uqw35ToJzlPrSay4B+uiMs1urogz1MIv4bIvMxSmvWDhPYDz2VwURaKN1Q04RzgTQDyXoINP8nXhEGpaxtOPYIRA7bfl49PmYVEtd5G66EFWNlWdSOylwT1xt1oPuOXQVS82ZWaCs1johgrsnrma/8In+CPkjw7GA8UlEsrSQPZUBNgGIzRlJF5CYve5/GkROA2/u38YkyC1/SCCS+5TqFpW96vqr+ppmi9cgOOfkNxXxc2sGp25XRwt1/Fp0T2QNm5aQO7IAuPuf7ehvk3WoPhxjnF+rznWneNuvd2j/QKMme9C4wIAAA==" | base64 -d | gunzip > /etc/php/8.3/fpm/pool.d/cloud.conf
sed -i "s/PHPTHR/${PHPTHREADS}/g" /etc/php/8.3/fpm/pool.d/cloud.conf
sed -i "s/MEMLIM/${PHPMEM}M/g" /etc/php/8.3/fpm/pool.d/cloud.conf
sed -i "s/opcache.memory_consumption=64/opcache.memory_consumption=$((PHPMEM/4))/g" /etc/php/8.3/fpm/conf.d/99-nextcloud.ini
sed -i "s/apc.shm_size = 128M/apc.shm_size = $((PHPMEM/4))M/g" /etc/php/8.3/fpm/conf.d/99-nextcloud.ini
sed -i "s/opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=$((PHPMEM/32))/g" /etc/php/8.3/fpm/conf.d/99-nextcloud.ini
service php8.3-fpm restart
failCheck "while starting PHP8.3 process, please check output above for more info"
echo "Setting up Nginx"
apt-get install -y nginx-full certbot python3-certbot-nginx
failCheck "while installing Nginx, please check output above for more info"
echo "H4sIAAAAAAAAA5VW34+jNhB+z19h6d56Jexm97an5q29SpW61VXaqq/IMQP4YmzXMxD2qv7vHQNJICF7KorC+PvG88OesWkQgjgcDkkuSW5XBxf2EDIfnAJEQCEbctuV17lIQ2NTW2rbrXm4XWmrTJODSIHUgKe1yxsDmICVOwN5+t1aOVtsVytowRKKf1ZifBoEAd4Zsz1Bo2ueYUGRdhbFD08fz3zdGNKZVAo8CVew2X9Xq4rIs9mT0rt3Z1H8JFEr8QJE2pY41TnJCDYvtAHh7NkTKZ9Z5xusFuAcjHyd4UcbWS27TFWN3YsP95v9ZOKrB8wqiVWvgvoriM3d48epidBy7uT2wGn3yR2pPYCXRreQka7BNSTuN3d45nmrutds1xQFBE5zFtnABfi7AaSpztTBoITkAiwRSqpqkYipENQ+63Pvk7pbDgvF/RP/9svsMHWRxpOFQenpcaJUSCRV6hupH9lvJD83Mgb62xL/P2JZyOio8PaiKaO5T7Kdy+eLE5/H37eTMj9WjJX1sbR2jdoDHYPbLutm2vKS5Dpwiw0rcdJb6meuuHVfvWdzORSSOzGLsJDeG61k7NbUKQJKkALIenujI19enr/Rj2ji4UNOOYPiz+eX9n74Xx/fm/H9sGV7n4LzPm4qG24fvhcBih/FH58/f3r+5cIk9Is5LITSvoqbHetlOc5nV5a92bdijUcRYmbcRU1BCC70cNrKkLIwLmdPrHk8cVt+1X5WuBHIeN7rNaocF47hs9SIhwuq5n01YEuqxObD0wUZ20lDLqDzvPG5sC4ZupqFoe990K2kCGSGKzXjg1wXulfNgGQZr4HqwmpfF7MKkOTq911tZuAX2UpUQfOhPYPR2Rlg8vdXWC2tLrh7r5mAeOWptfm6BHetHIkak8JZcrsvsfKn7EFiPQO6XjMhKi7gA+wSRpLbYXUV1eYqsDiOJlPnub1j3+halpDuaj9K2Jb9rGHUJZpvQUHQUdpv1MnjiCEOgjdSj3qtkiEfRU436JoLbfC/7lgaKRpNdEksJmc5nhMQHGKSu5ptJnw1a/V6qz3+0oEaacSvjkP6ma94faNFFs6U+EWwPn8avKGJmqbfEv19/x9juem7rwgAAA==" | base64 -d | gunzip > /etc/nginx/nginx.conf
echo "H4sIAAAAAAAAA6VWW0/jOBR+51d4s5WWLpOm3IYZKoRYGHaQlosoDyNNB8t1nNTg2Fnb6WUx89v35NI2LS3VaiMIwT7+zvmOzy0hKWoQHeMh/DGGWcyTJLOkLxh62ULweB78dIrPkEUkExZ5MxnYeN3aMkwPmQb5QkpwY5lEn9rloXITS5IwhDuliFbKokCysaVCZWEwlZRhxEGxkpUcFZxJixMyxn0VTrDh/zB00P788bpT3y/2LE+Yyiz63G6b6jgJQzxgJATb7lnEtGbav1OC0wla+XhS+boS9PLzYkQmprOM9c0/VxIoWv9hkjL/NrVcSfMWy0geRV71/1qsCzWSQpFwDU6FpVImp1DrsS41ePkdoByre3b95fb+6s+rG+8drK7VnAJBTaRJlbZ+l9FMc7vgOW/38PBwr91uexvsumM64day0D/XyhjgnBAuy7vgzFQcJfPm2Gux7lVfWeM/kHg1wRKLy5CNPyCpIiWEGnnr8b51u/6dVpbR3Gur8XY7KFEhO+kLRZ8XsSJiLI05HvCQ1QirEdNA949JFYqFPeW7lQ7S6mtgE4GC2WpDs78zZiwGT1fnQCEp7DpBQZWQBVyEtlFjYG2KM0gwTGIIR/QTPV6Q4bmAz2ZNOH80s5mWaL+9hwLNEqCbKwxGrB+SYdDgBkMRMHklqHjlz+tW+X5jiS7uoGXHtqaG5I7O33MAoWIslcWRymSIVBTNtwilzBgMEvP1ZU2PP1HQGjEh/GcJWTItMMvW1EQCSnQIjNDLnPHuAuOcbqdi9j6QyHE2A71FWsAhFDKSDsAtTMYsl3tBVk9wXugMasBNF68AnRy0D1YatgCXPnN/SAQPyTRaN8DN8Oo01kTcqjuAmAq2T4/7GRehsyBqHFUy4rETvO/2dZgSbSewk6SCwL4Dy0gTTjRc0Ky5r8ZuGbvXciSzKgd3ilLHjcmYAxs5c2Ef5/qMEqy5nJbL2MvgvZzh1JKXuidGUMlYofyXwhWuvFeXZn2oSI5qJUGrZr2APJFxL8hSYMWcscRmBmw0vWD4fXfvhys3dC9o7cDy98T88FOthlALyrXWTi+AQjoIFc0SSFFDoYz0ApAZT5rvZ369uJhUcItTYgeYy0ihx+3WzmlBr7kdtH5vNuZ5BS0cNeaSjSnEbKkGXwucmSaqeWrLbl2E0FyaSyqykKE5InSbWrVYWEfd8/uruwd8efXXlxvoOKgxdQHOm/8qfeuQ7s4evuKrm8vbGq91slClvxY12JwNCRfFGGN1thY7gpu2GALMaugTeSGFLjBcf8YYlEk+Pg6CQGeQjVAHignmGtpZy0BzeHtIgz2z4WS/GE6WRThME5oy8AOMHkqb+QC0Kqghoqkx7sm4BH7NMHYxj1wqY/eUxo5T5UbEJM5GEDPMJSR1Ko5dJAhtNmrleqlqvFcT8qfWM88JHbBiBgKnIa9Mmg8IpjQf+tDJ7uHR0aeDj/sf3kyU3tryX6z9isrJhYhjdKHkbzbvH5UksgoVaGZFwc29knNuLDW9al7FFsY0RFJIovJAkAtvanMFKNi2d/o/vMbGKdcgfBT+t85XNZqa4tVdaHP9DtYbXzaKDc3gdetf3H7I+CMMAAA=" | base64 -d | gunzip > /etc/nginx/sites-available/nextcloud
echo "H4sIAAAAAAAAA5VWTY/bNhC9+1cQyC2prP1w3UV9S1OgQBdIgS16JWhqJDHmVzmULKfof+9Qkm3ZlhN0D2vqvcfHGWqGYoMQ2H6/zwoRxWaxd2EHgfvgJCACMtFEt1l4VbA8NDa3lbLdkh43C2WlbgpgOUQ54LlxRaMBM7Biq6HI3y+ls+VmsYAWbET2z4KNfw0CA++03pygcWmaYUFG5Syyn9YvZ940OioupAQfmSvJ9t/Foo7Rk+1J9O7decg+ClSSvUGMylY41ZzGCLYolQbm7HmlKD23zjdYz8AFaHG4wI8e3IiOy7qxO7Yyk2kHD8hrgXUvQPUV2NPD6mVqEFrKPLodUNJ9akdqB+CFVi3wqAy4JrLHpwc88/SiugPfNmUJgZK8iGvgAvzdAMapZrrAIMLoAswRUsh6lkipRDCe95n3ST3Mh4VsvWKr3Tw5zHxcz9B4Mhj3bOpRCoyyUncyP7Lfyf3SZIjz9zn6f4Qyk9BRMLtlR9FJLbWiXuE1iILcpqbTRbUIFfA5LbIX9kLKSR+M9WWFORbitpE7iIPterWZ13JlaQcLFagdh4076eZ6n+pz2df62a6AUlDX8gQz4b1WUqTOzp2MEDOMAYTZ3Onet7fX7/Qu6nRQRSedRvbn61v7OPxfHn+fxt/nDfl9Cs77VANk3D7/wAKUP7M/Pn/+9PrrlSX0Wz5shFS+Tpuayms+zldXVb3tt2JNxxYi1+6qBCEEF3o4b0XIaTBuZ08s6XmybPVV+Ys6TwCneYdbVDoqNE3nrmbPV5Sh96rBVrFmTz+ur8jUfQoKBp2nF18w67LhDKDBcEr4oFoRE8A1VTanQ1+VqpdyiKJKn4z6yrWvi4sKENGZD53RF+AX0QqUQdEBfwGjsxeALj7cYEZYVVKz3zIB8Wal1hbLCtytOBEGs9LZ6LZfUuVP2b1AcwF0vTKLsbyC97DNCMnuh9XV0eibwNJzssydp9ZOfaOMqCDfGj+OsK36WcNTlyn6YrIIXcz7F3VaccQQh4HXQo26VopQjENKNyhDhTasv+xoNFJxtOiyVEzOUjwnIDjErHCGPDP6jCt5uNcef6kQG6HZb45C+oWuA+pOi8ycKen2sDxfI76hRBWn947+bvAfM/rBqNsIAAA=" | base64 -d | gunzip > /etc/nginx/nginx.conf
echo "H4sIAAAAAAAAA6VWW2/bNhR+Xn8FpxlYvFamc+slQRC0absGWJMgyUOBuiVoipKZUKRGUr4sbH/7DiU5lh07wTDBUBTy8DvnOzy3nBaoQ01GxvDHWu6IyPPS0aHk6O4ZgieK4HdYfSY8paV0KLqXgY0fz55ZbsbcgHwlJYV1XKHX/fpQvUkUzTkih7WI0dohrPjUManLBM8lVZIKUKxVI8ek4MqRnE7JUCczYsU/HO3137z8fNjer/acyLkuHXrT79vmOE0SMuI0AdsuecqN4Sa+0FKwGVr7RErHphGMwnk5oTN7uIr1JT7RCii6+HpW8Pi8cEIr+xDLKpGmUfP/Rqz3eqKkpskGnAZLF1zNoTZjfTTg5UeAAtbV288fzi9P/zw9ix7BunJGMCBoqLKFNi6+4qw0wi15Ltre39/f6ff70RN2XXCTC+d4Ep8YbS1wzqlQ9V0IbhuOikcL7I1Yl3qonY2vabaeYI0lVMKnL5DSqZZST6LNeF+uruILox1nwWvr8bYPUa4TfjSUmt0uY6XUOpYJMhIJbxHWE26A7rtZE4pCMVkmHOUQpT0HYdMcrz6bTKv+h5zAN3RMLTOicOjGovwGZH+hRQHOosFGPKE2R+FVY/yYqwDK9btXjIrma+RyifD9asfwv0tuHYHLbEwDThUsOkK4ZYlI0RbqjJwrSAk5TGgGEY9+ou/v6fhEwme3JRwew11pFNrt7yBseA4eDQrxhA8TOsYdYQnUGRuKTcO9tr3FoG2Jqa6556aupYaGuwzvBYDUGVHakVSXKkE6TRdblDFuLQGJxfqqpu8/Ee5NuJTxrYJEnNewVWtaIphRkwAjdLdgvL3EONA9bJg9DiQDztNAD5GWcCiDpGcjcAtXGQ9yd8iZGQm11KIO3HT1wuhor7+31rAluOJWxGMqRULnCfEE3D1em8aGiFt3BxBTeOv4YFgKmXgHotYzrVKReSmGftckBTVuBjt5ISnse7CMduFEx+Nuy30tdqvYg56npdMB3GvGvLC25B5sFNwnQxL0WS15dzXzV7FXwQeB4dySu7YnJlAseaX818oVvr5XX5RDyGPPjFag1fABpjd0OsBlAay4t4660oKNdoDHX7d3vvl6wwxw7zksf83tt7gwegzlpl7rPR9gqNWjRLMyhxS1DCrVAIPMdNZ9PPPDM69fFsqLIwV1IyJUqtH3rd7z44pedwv3/uh2FnkFUwLqLCQ7c4j7pRZ8K3DuNVWVrR4IqhBaSM+r5AIRGlqrWiyto6uTy9OLa/Lx9K8PZ9DUUGfuAhLmi3X6NiFdvL3+RE7PPp63eG2ShUbwqSrz9u2YCllNSs6UG7FTuGlHIMCcgVYUCik0mvHmM9aiUonpAcbYlJCNUAeqIekzdMyehf7z8JABe+7nn91q/lkVETCwGMbBDzDdaGMXM9a6oIaIZtb6G+uh+Xg7znwmUl+ozN8UmRdM+9B9vEshZrjPaeF1lvlUUtbttJvZctV4rCaEp9WWTygb8WrMAqehqE6aFwgGwRj60NH2/qtXr/de7r54MLRGG8t/tfYbqocjKg/Qe61+d6F/NJLIaVSh2TUFN3glcO6sNL1mJCahj6PVHv1Um6tAwbad4//hNT4thAHhV8l/63xNo2kpXt+Fnq7feLPxdaN4ohnA71+mdDaehwwAAA==" | base64 -d | gunzip > /etc/nginx/sites-available/nextcloud
ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
service nginx restart
failCheck "while starting Nginx process, please check output above for more info"
echo "Setting up PostgreSQL"
export DBPASS=$(openssl rand -base64 16)
DBPASS=$(openssl rand -base64 16)
export DBPASS
export DBNAME="nextclouddb"
export DBUSER="nextcloud"
apt-get install -y postgresql
@ -133,15 +133,15 @@ setupNextcloud() {
failCheck "while installing PostgreSQL, please check output above for more info"
POSTGRESPATH=$(find /etc/postgresql/ -name postgresql.conf)
POSTGRESHBAPATH=$(find /etc/postgresql/ -name pg_hba.conf)
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/#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/#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}
SWITCHEROO=$(cat ${POSTGRESHBAPATH})
echo "local ${DBNAME} ${DBUSER} md5" > ${POSTGRESHBAPATH}
echo "${SWITCHEROO}" >> ${POSTGRESHBAPATH}
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/#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/#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}"
SWITCHEROO=$(cat "${POSTGRESHBAPATH}")
echo "local ${DBNAME} ${DBUSER} md5" > "${POSTGRESHBAPATH}"
echo "${SWITCHEROO}" >> "${POSTGRESHBAPATH}"
service postgresql restart
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
@ -153,15 +153,16 @@ if [[ ${UID} != 0 ]]; then
exit
fi
cd /root/
cd /root/ || exit
echo "Installing Nextcloud on your machine"
setupNextcloud
clear
echo "Installing Nextcloud database"
chmod +x /nextcloud/occ
export 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}
ADMPASS=$(openssl rand -hex 16)
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
if (grep "'installed' => true," /nextcloud/config/config.php); then
echo "Installation complete!"
@ -177,9 +178,9 @@ fi
echo "Optimizing"
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
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_new' => 1,/'preview_concurrency_new' => $((${NUMCORES}/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_new' => 1,/'preview_concurrency_new' => $((NUMCORES/2)),/g" /nextcloud/config/config.php
echo "Adding Cronjob"
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
@ -188,7 +189,7 @@ rm /tmp/cron
touch /var/log/nextcloud.log
chown nextcloud:www-data /var/log/nextcloud.log
echo "Restarting services"
systemctl restart php8.2-fpm.service postgresql.service nginx.service redis-server.service
systemctl restart php8.3-fpm.service postgresql.service nginx.service redis-server.service
apt-get clean
echo "Installing command line utility"
echo "H4sIAAAAAAAAA5XMvQrCMBSG4bnnKj5r1xicJeDiDShOpUh+TkggnATSgJfv1t355XnPJ+2yaGd7ohyxrljer8cTxmAW/u6+1BFmbNsNe2KhqaUGpQLHLAzb/IXFusIfX7K5Qh9GV++x3IlLZ5r6CBVq4Mj49xMz/QDKN/0grAAAAA==" | base64 -d | gunzip > /usr/local/bin/nextcloud
@ -198,9 +199,9 @@ nextcloud config:app:set activity activity_expire_days --value 365
nextcloud db:add-missing-indices
echo "Installing additional apps"
APPS=(previewgenerator calendar contacts mail notes)
for APP in ${APPS[@]}; do
for APP in "${APPS[@]}"; do
echo "installing ${APP} app"
nextcloud app:install ${APP}
nextcloud app:install "${APP}"
done
GREEN='\033[0;32m'
BLUE='\033[0;34m'
@ -214,15 +215,15 @@ echo -e " ${YELLOW}${TOTALMEM}MB${NC} RAM"
echo -e "${GREEN}Calculated Optimal Values:${NC}"
echo -e " ${YELLOW}${PHPTHREADS}${NC} PHP threads"
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 APCu cache size"
echo -e " ${YELLOW}$((${PHPMEM}/32))MB${NC} PHP opcache string buffer"
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/32))MB${NC} PHP opcache string buffer"
echo -e " ${YELLOW}${DBMEM}MB${NC} PostgreSQL shared buffers"
echo -e " ${YELLOW}${DBWORKMEM}MB${NC} PostgreSQL working memory"
echo -e " ${YELLOW}${DBTEMPBUFF}MB${NC} PostgreSQL temporary buffer"
echo -e " ${YELLOW}${REDISMEM}MB${NC} Redis 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}$((PHPMEM/2))MB${NC} preview generator memory limit"
echo -e " ${YELLOW}$((NUMCORES*2))${NC} preview generator concurrency"
echo -e ""
echo -e "${YELLOW}Additional Information:${NC}"
echo -e " Theoretical peak memory usage: ${YELLOW}${THMEM}MB${NC}"