Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornachoparker <nacho@ownyourbits.com>2018-06-21 13:28:57 +0300
committernachoparker <nacho@ownyourbits.com>2018-06-22 12:11:17 +0300
commitbbb25fa49ca06708b14d569b437cfdce6854e838 (patch)
treed5ec1c0cb8c7bb6ce301f6802c45419e855bb0ec
parent9983b7cff900042c89aaaa3529bd9c92407764bd (diff)
nc-limits: autolimits enhancementsv0.57.12
-rw-r--r--README.md2
-rw-r--r--bin/ncp-provisioning.sh33
-rwxr-xr-xbuild-SD-rpi.sh2
-rw-r--r--changelog.md8
-rw-r--r--etc/ncp-config.d/nc-limits.sh69
-rw-r--r--lamp.sh9
6 files changed, 67 insertions, 56 deletions
diff --git a/README.md b/README.md
index 8f53cd12..8df1e8bc 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ This code also generates the [NextCloudPi docker images](https://hub.docker.com/
## Features
* Raspbian 9 stretch
- * Nextcloud 13.0.2
+ * Nextcloud 13.0.4
* Apache 2.4.25, with HTTP2 enabled
* PHP 7.0 (double the speed of PHP5!)
* MariaDB 10
diff --git a/bin/ncp-provisioning.sh b/bin/ncp-provisioning.sh
index 98da3290..ed6be0c8 100644
--- a/bin/ncp-provisioning.sh
+++ b/bin/ncp-provisioning.sh
@@ -5,6 +5,7 @@
## redis provisioning
CFG=/var/www/nextcloud/config/config.php
+CONFDIR=/usr/local/etc/ncp-config.d/
REDISPASS="$( grep "^requirepass" /etc/redis/redis.conf | cut -f2 -d' ' )"
### IF redis password is the default one, generate a new one
@@ -46,33 +47,12 @@ EOF
sed -i "s|'dbpassword' =>.*|'dbpassword' => '$DBPASSWD',|" "$CFG"
}
-## CPU core adjustment
+## nc.limits.sh (auto)adjustments: number of threads, memory limits...
-CURRENT_THREADS=$( grep "^pm.max_children" /etc/php/7.0/fpm/pool.d/www.conf | awk '{ print $3 }' )
-
-CFG=/usr/local/etc/ncp-config.d/nc-limits.sh
-PHPTHREADS=0
-[[ -f "$CFG" ]] && PHPTHREADS=$( grep "^PHPTHREADS_" "$CFG" | cut -d= -f2 )
-
-[[ $PHPTHREADS -eq 0 ]] && PHPTHREADS=$( nproc )
-
-[[ $PHPTHREADS -ne $CURRENT_THREADS ]] && {
-
- echo "PHP threads set to $PHPTHREADS"
-
- sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS|" /etc/php/7.0/fpm/pool.d/www.conf
- sed -i "s|pm.max_spare_servers =.*|pm.max_spare_servers = $PHPTHREADS|" /etc/php/7.0/fpm/pool.d/www.conf
- sed -i "s|pm.start_servers =.*|pm.start_servers = $PHPTHREADS|" /etc/php/7.0/fpm/pool.d/www.conf
-
- # need to restart php
- bash -c " sleep 3
- systemctl stop php7.0-fpm
- systemctl stop mysqld
- sleep 0.5
- systemctl start php7.0-fpm
- systemctl start mysqld
- " &>/dev/null &
-}
+source /usr/local/etc/library.sh
+cd "$CONFDIR" &>/dev/null
+activate_script nc-limits.sh
+cd - &>/dev/null
## Check for interrupted upgrades and rollback
BKP="$( ls -1t /var/www/nextcloud-bkp_*.tar.gz 2>/dev/null | head -1 )"
@@ -82,7 +62,6 @@ BKP="$( ls -1t /var/www/nextcloud-bkp_*.tar.gz 2>/dev/null | head -1 )"
}
## Fix permissions on NCP folders. The main reason for this is to make devel docker container work
-CONFDIR="/usr/local/etc/ncp-config.d/"
[[ -e $CONFDIR ]] && {
chown -R root:www-data "$CONFDIR"/*
chmod 660 "$CONFDIR"/*
diff --git a/build-SD-rpi.sh b/build-SD-rpi.sh
index c3617fd6..9852c45f 100755
--- a/build-SD-rpi.sh
+++ b/build-SD-rpi.sh
@@ -58,7 +58,7 @@ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
activate_script nc-nextcloud.sh
install_script ncp.sh
activate_script nc-init.sh
- install_script post-inst.sh
+ install_script post-inst.sh
# harden SSH further for Raspbian
sed -i 's|^#PermitRootLogin .*|PermitRootLogin no|' /etc/ssh/sshd_config
diff --git a/changelog.md b/changelog.md
index 4f02e8d4..a61c22b2 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
-[v0.57.9](https://github.com/nextcloud/nextcloudpi/commit/b91d989) (2018-06-20) ncp-web: fix JS docker detection
+[v0.57.12](https://github.com/nextcloud/nextcloudpi/commit/b0203ab) (2018-06-21) nc-limits: autolimits enhancements
+
+[v0.57.11](https://github.com/nextcloud/nextcloudpi/commit/038b260) (2018-06-20) letsencrypt: notify of renewals
+
+[v0.57.10](https://github.com/nextcloud/nextcloudpi/commit/88843ab) (2018-06-20) ncp-web: fix JS docker detection
+
+[v0.57.9](https://github.com/nextcloud/nextcloudpi/commit/ad64a4b) (2018-06-21) nc-format-USB: fix when ZRAM active
[v0.57.8 ](https://github.com/nextcloud/nextcloudpi/commit/e63523c) (2018-06-19) docker: adapt wizard
diff --git a/etc/ncp-config.d/nc-limits.sh b/etc/ncp-config.d/nc-limits.sh
index 42442e81..a9bfce03 100644
--- a/etc/ncp-config.d/nc-limits.sh
+++ b/etc/ncp-config.d/nc-limits.sh
@@ -8,38 +8,63 @@
# More at https://ownyourbits.com/2017/03/13/nextcloudpi-gets-nextcloudpi-config/
#
-MAXFILESIZE_=2G
-MEMORYLIMIT_=768M
+MAXFILESIZE_=10G
+MEMORYLIMIT_=0
PHPTHREADS_=0
-REDISMEM_=3gb
+REDISMEM_=0
DESCRIPTION="Configure system limits for NextCloudPi"
-INFO="Set PHP threads to 0 in order to use all cores"
+INFO="Examples: 200M or 2G. Write 0 for autoconfig"
configure()
{
- sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini
- sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini
- sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" /var/www/nextcloud/.user.ini
+ # Set auto memory limit to 75% of the total memory
+ local TOTAL_MEM="$( free | sed -n 2p | awk '{ print $2 }' )"
+ AUTOMEM=$(( TOTAL_MEM * 75 / 100 ))
- # adjust max PHP processes so Apps don't overload the board (#146)
+ # MAX FILESIZE
+ local CONF=/var/www/nextcloud/.user.ini
+ local CURRENT_FILE_SIZE="$( grep "^upload_max_filesize" "$CONF" | sed 's|.*=||' )"
+ [[ "$MAXFILESIZE_" == "0" ]] && MAXFILESIZE_=10G
+
+ # MAX PHP MEMORY
+ local CONF=/var/www/nextcloud/.user.ini
+ local CURRENT_PHP_MEM="$( grep "^memory_limit" "$CONF" | sed 's|.*=||' )"
+ [[ $MEMORYLIMIT_ -eq 0 ]] && MEMORYLIMIT_=$AUTOMEM && echo "Using ${AUTOMEM}B for PHP"
+ sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" "$CONF"
+ sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" "$CONF"
+ sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" "$CONF"
+
+ # MAX PHP THREADS
+ local CONF=/etc/php/7.0/fpm/pool.d/www.conf
+ local CURRENT_THREADS=$( grep "^pm.max_children" "$CONF" | awk '{ print $3 }' )
+ local PHPTHREADS=0
[[ $PHPTHREADS_ -eq 0 ]] && PHPTHREADS_=$( nproc ) && echo "Using $PHPTHREADS_ PHP threads"
- sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS_|" /etc/php/7.0/fpm/pool.d/www.conf
- sed -i "s|pm.max_spare_servers =.*|pm.max_spare_servers = $PHPTHREADS_|" /etc/php/7.0/fpm/pool.d/www.conf
- sed -i "s|pm.start_servers =.*|pm.start_servers = $PHPTHREADS_|" /etc/php/7.0/fpm/pool.d/www.conf
-
- # need to restart php
- bash -c " sleep 3
- service php7.0-fpm stop
- service mysql stop
- sleep 0.5
- service php7.0-fpm start
- service mysql start
- " &>/dev/null &
+ sed -i "s|pm.max_children =.*|pm.max_children = $PHPTHREADS_|" "$CONF"
+ sed -i "s|pm.max_spare_servers =.*|pm.max_spare_servers = $PHPTHREADS_|" "$CONF"
+ sed -i "s|pm.start_servers =.*|pm.start_servers = $PHPTHREADS_|" "$CONF"
+
+ # RESTART PHP
+ [[ $PHPTHREADS -ne $CURRENT_THREADS ]] || \
+ [[ "$MEMORYLIMIT" != "$CURRENT_PHP_MEM" ]] || \
+ [[ "$MAXFILESIZE_" != "$CURRENT_FILE_SIZE" ]] && {
+ bash -c " sleep 3
+ service php7.0-fpm stop
+ service mysql stop
+ sleep 0.5
+ service php7.0-fpm start
+ service mysql start
+ " &>/dev/null &
+ }
# redis max memory
- sed -i "s|maxmemory .*|maxmemory $REDISMEM_|" /etc/redis/redis.conf
- service redis restart
+ local CONF=/etc/redis/redis.conf
+ local CURRENT_REDIS_MEM=$( grep "^maxmemory" "$CONF" | awk '{ print $2 }' )
+ [[ $REDISMEM_ -eq 0 ]] && REDISMEM_=$AUTOMEM && echo "Using ${AUTOMEM}B for Redis"
+ [[ "$REDISMEM_" != "$CURRENT_REDIS_MEM" ]] && {
+ sed -i "s|maxmemory .*|maxmemory $REDISMEM_|" "$CONF"
+ service redis restart
+ }
}
install() { :; }
diff --git a/lamp.sh b/lamp.sh
index 60e163d1..d7b07f2f 100644
--- a/lamp.sh
+++ b/lamp.sh
@@ -31,7 +31,11 @@ install()
$APTINSTALL apt-utils cron
$APTINSTALL apache2
- $APTINSTALL php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip php7.0-fileinfo php7.0-mcrypt php7.0-ldap
+ $APTINSTALL php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache \
+ php7.0-mbstring php7.0-xml php7.0-zip php7.0-fileinfo php7.0-ldap \
+ php7.0-intl libmagickcore-6.q16-2-extra php7.0-imagick php-mcrypt
+
+
mkdir -p /run/php
# Randomize mariaDB password
@@ -140,9 +144,6 @@ y
y
y
EOF
-
- # adjust max PHP processes so Apps don't overload the board (#146)
- sed -i 's|pm.max_children =.*|pm.max_children = 3|' /etc/php/7.0/fpm/pool.d/www.conf
}
configure() { :; }