Merge branch 'master' into desec-apps

This commit is contained in:
Daniel Hansson 2023-04-02 23:17:30 +02:00 committed by GitHub
commit 1d61047177
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 626 additions and 340 deletions

View File

@ -6,7 +6,7 @@ true
SCRIPT_NAME="Automatic Updates"
# shellcheck source=lib.sh
source /var/scripts/fetch_lib.sh
SCRIPT_EXPLAINER="This option will update your server every week on Saturdays at $AUT_UPDATES_TIME:00.
SCRIPT_EXPLAINER="This option will update your server once every month on Saturdays at $AUT_UPDATES_TIME:00.
The update will run the built in script '$SCRIPTS/update.sh' which will update both the server packages and Nextcloud itself.\n
You can read more about it here: https://www.techandme.se/nextcloud-update-is-now-fully-automated/
Please keep in mind that automatic updates might fail, which is why it's \
@ -39,7 +39,7 @@ fi
# Install automatic updates
mkdir -p "$VMLOGS"/updates
crontab -u root -l | { cat; echo "0 $AUT_UPDATES_TIME * * 6 $SCRIPTS/update.sh minor >> $VMLOGS/updates/update-\$(date +\%Y-\%m-\%d_\%H:\%M).log 2>&1"; } | crontab -u root -
crontab -u root -l | { cat; echo "0 $AUT_UPDATES_TIME * 1-12 6 $SCRIPTS/update.sh minor >> $VMLOGS/updates/update-\$(date +\%Y-\%m-\%d_\%H:\%M).log 2>&1"; } | crontab -u root -
if yesno_box_yes "Do you want to reboot your server after every update? *recommended*"
then
sed -i "s|exit|/sbin/shutdown -r +1|g" "$SCRIPTS"/update.sh

156
apps/imaginary.sh Normal file
View File

@ -0,0 +1,156 @@
#!/bin/bash
# T&M Hansson IT AB © - 2023, https://www.hanssonit.se/
# GNU General Public License v3.0
# https://github.com/nextcloud/vm/blob/master/LICENSE
true
SCRIPT_NAME="Imaginary Docker"
SCRIPT_EXPLAINER="This script will install Imaginary which is a replacement for the less secure Imagick.
It can speedup the loading of previews in Nextcloud a lot."
# shellcheck source=lib.sh
source /var/scripts/fetch_lib.sh
# Check for errors + debug code and abort if something isn't right
# 1 = ON
# 0 = OFF
DEBUG=0
debug_mode
# Check if root
root_check
# Check recources
ram_check 4
cpu_check 2
# Compatible with NC24 and above
lowest_compatible_nc 26
# Check if Imaginary is already installed
if ! does_this_docker_exist nextcloud/aio-imaginary
then
# Ask for installing
install_popup "$SCRIPT_NAME"
else
# Ask for removal or reinstallation
reinstall_remove_menu "$SCRIPT_NAME"
# Removal
if yesno_box_yes "Do you want to remove the Imaginary and all it's settings?"
then
# Remove docker container
docker_prune_this 'nextcloud/aio-imaginary'
# reset the preview formats
nextcloud_occ config:system:delete "preview_imaginary_url"
nextcloud_occ config:system:delete "enabledPreviewProviders"
nextcloud_occ config:system:delete "preview_max_x"
nextcloud_occ config:system:delete "preview_max_y"
nextcloud_occ config:system:delete "jpeg_quality"
nextcloud_occ config:system:delete "preview_max_memory"
nextcloud_occ config:system:delete "enable_previews"
nextcloud_occ config:system:delete "preview_concurrency_new"
nextcloud_occ config:system:delete "preview_concurrency_all"
# Remove FFMPEG
if is_this_installed ffmpeg && ! is_app_installed integration_whiteboard
then
apt-get purge ffmpeg -y
apt-get autoremove -y
fi
# Show successful uninstall if applicable
removal_popup "$SCRIPT_NAME"
fi
fi
# Remove everything that is related to previewgenerator
if is_app_enabled previewgenerator
then
if yesno_box_yes "We noticed that you have Preview Generator enabled. Imagniary replaces this, and the old app Preview Generator is now legacy.\nWe recommend you to remove it. Do you want to do that?"
then
# Remove the app
nextcloud_occ app:remove previewgenerator
# Reset the cronjob
crontab -u www-data -l | grep -v 'preview:pre-generate' | crontab -u www-data -
# Remove dependecies
DEPENDENCY=(php-imagick php"$PHPVER"-imagick libmagickcore-6.q16-3-extra imagemagick-6.q16-extra)
for installeddependency in "${DEPENDENCY[@]}"
do
if is_this_installed "$installeddependency"
then
# --allow-change-held-packages in case running on Ondrejs PPA and it's held
apt-get purge "$installeddependency" -y --allow-change-held-packages
fi
done
# Remove custom config
rm -rf /etc/ImageMagick-6
# Remove previews
if yesno_box_yes "Do you want to remove all previews that were generated until now?
This will most likely clear a lot of space! Also, pre-generated previews are not needed anymore once Imaginary are installed."
then
countdown "Removing the preview folder. This can take a while..." "5"
rm -rfv "$NCDATA"/appdata_*/preview/*
print_text_in_color "$ICyan" "Scanning Nextclouds appdata directory after removing all previews. \
This can take a while..."
nextcloud_occ files:scan-app-data preview -vvv
msg_box "All previews were successfully removed."
fi
# Remove log
rm -f "$VMLOGS"/previewgenerator.log
fi
fi
# Install Docker
install_docker
# Pull and start
docker pull nextcloud/aio-imaginary:latest
docker run -t -d -p 127.0.0.1:9000:9000 --restart always --name imaginary nextcloud/aio-imaginary -concurrency 50 -enable-url-source -log-level debug
# Test if imaginary is working
countdown "Testing if it works in 3 sedonds" "3"
if curl -O "http://127.0.0.1:9000/crop?width=500&height=400&url=https://raw.githubusercontent.com/h2non/imaginary/master/testdata/large.jpg"
then
print_text_in_color "$IGreen" "imaginary seems to be working OK!"
rm -f large.jpg
else
msg_box "Test failed, please report this to: $ISSUES"
exit
fi
# Install dependencies
check_php
install_if_not php"$PHPVER"-sysvsem
install_if_not ffmpeg
# Calculate CPU cores
# https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#previews
if which nproc >/dev/null 2>&1
then
nextcloud_occ config:system:set preview_concurrency_new --value="$(nproc)"
nextcloud_occ config:system:set preview_concurrency_all --value="$(("$(nproc)"*2))"
else
nextcloud_occ config:system:set preview_concurrency_new --value="2"
nextcloud_occ config:system:set preview_concurrency_all --value="4"
fi
# Set providers (https://github.com/nextcloud/server/blob/master/lib/private/Preview/Imaginary.php#L60)
# https://github.com/nextcloud/vm/issues/2465
nextcloud_occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\Imaginary"
nextcloud_occ config:system:set enabledPreviewProviders 1 --value="OC\\Preview\\Image"
nextcloud_occ config:system:set enabledPreviewProviders 2 --value="OC\\Preview\\MarkDown"
nextcloud_occ config:system:set enabledPreviewProviders 3 --value="OC\\Preview\\MP3"
nextcloud_occ config:system:set enabledPreviewProviders 4 --value="OC\\Preview\\TXT"
nextcloud_occ config:system:set enabledPreviewProviders 5 --value="OC\\Preview\\OpenDocument"
nextcloud_occ config:system:set enabledPreviewProviders 6 --value="OC\\Preview\\Movie"
nextcloud_occ config:system:set preview_imaginary_url --value="http://127.0.0.1:9000"
# Set general values
nextcloud_occ config:system:set preview_max_x --value="2048"
nextcloud_occ config:system:set preview_max_y --value="2048"
nextcloud_occ config:system:set jpeg_quality --value="60"
nextcloud_occ config:system:set preview_max_memory --value="256"
if docker logs imaginary
then
msg_box "Imaginary was successfully installed!"
else
msg_box "It seems that something is wrong. Please post the full installation output to $ISSUES"
fi

View File

@ -30,6 +30,8 @@ else
# Remove config.php value set when install was successful
nextcloud_occ config:system:delete allow_local_remote_servers
nextcloud_occ config:system:delete onlyoffice
nextcloud_occ config:system:delete onlyoffice jwt_secret
nextcloud_occ config:system:delete onlyoffice jwt_header
# Show successful uninstall if applicable
removal_popup "$SCRIPT_NAME"
fi
@ -205,9 +207,12 @@ then
# basic proxy settings
ProxyRequests off
ProxyPassMatch (.*)(\/websocket)$ "ws://127.0.0.3:9090/\$1\$2"
ProxyPass / "http://127.0.0.3:9090/"
ProxyPassReverse / "http://127.0.0.3:9090/"
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.3:9090/" [P,L]
<Location />
ProxyPassReverse /

View File

@ -1,296 +1,14 @@
#!/bin/bash
# T&M Hansson IT AB © - 2023, https://www.hanssonit.se/
# GNU General Public License v3.0
# https://github.com/nextcloud/vm/blob/master/LICENSE
true
SCRIPT_NAME="Preview Generator"
SCRIPT_EXPLAINER="This script will install the Preview Generator.
It can speedup the loading of previews in Nextcloud a lot."
SCRIPT_NAME="Fix LEGACY Preview Generator"
# shellcheck source=lib.sh
source /var/scripts/fetch_lib.sh
source <(curl -sL https://raw.githubusercontent.com/nextcloud/vm/master/lib.sh)
# Check for errors + debug code and abort if something isn't right
# 1 = ON
# 0 = OFF
DEBUG=0
debug_mode
####### TEMPORARY 2023-04-01 #######
# Check if root
root_check
# PHP 7.x is needed
if is_this_installed php5.6-common || is_this_installed php5.5-common
then
msg_box "At least PHP 7.X is required, please upgrade your PHP version: \
https://shop.hanssonit.se/product/upgrade-php-version-including-dependencies/"
exit
fi
# Encryption may not be enabled
if is_app_enabled encryption || is_app_enabled end_to_end_encryption
then
msg_box "It seems like you have encryption enabled which is unsupported when using the Preview Generator"
exit
fi
# Check if previewgenerator is already installed
if ! is_app_installed previewgenerator
then
# Ask for installing
install_popup "$SCRIPT_NAME"
else
# Ask for removal or reinstallation
reinstall_remove_menu "$SCRIPT_NAME"
# Removal
nextcloud_occ app:remove previewgenerator
# reset the preview formats
nextcloud_occ_no_check config:system:delete "enabledPreviewProviders"
# reset the cronjob
crontab -u www-data -l | grep -v 'preview:pre-generate' | crontab -u www-data -
# Remove apps
APPS=(php-imagick libmagickcore-6.q16-3-extra imagemagick-6.q16-extra)
for app in "${APPS[@]}"
do
if is_this_installed "$app"
then
apt-get purge "$app" -y
fi
done
if is_this_installed ffmpeg && ! is_app_installed integration_whiteboard
then
apt-get purge ffmpeg -y
fi
apt-get autoremove -y
if yesno_box_no "Do you want to remove all previews that were generated until now?
This will most likely clear a lot of space but your server will need to re-generate the previews \
if you should opt to re-enable previews again."
then
countdown "Removing the preview folder. This can take a while..." "5"
rm -rfv "$NCDATA"/appdata_*/preview
print_text_in_color "$ICyan" "Scanning Nextclouds appdata directory after removing all previews. \
This can take a while..."
nextcloud_occ files:scan-app-data -vvv
msg_box "All previews were successfully removed."
fi
# Show successful uninstall if applicable
removal_popup "$SCRIPT_NAME"
fi
# Install preview generator
install_and_enable_app previewgenerator
# check if the previewgenerator is installed and enabled
if is_app_enabled previewgenerator
then
# enable previews
nextcloud_occ config:system:set enable_previews --value=true --type=boolean
# install needed dependency for movies
install_if_not ffmpeg
else
exit
fi
msg_box "In the next step you can choose to install a package called imagick \
to speed up the generation of previews and add support for more filetypes.
The currently supported filetypes are:
* PNG
* JPEG
* GIF
* BMP
* MarkDown
* MP3
* TXT
* Movie
* Photoshop (needs imagick)
* SVG (needs imagick)
* TIFF (needs imagick)"
msg_box "IMPORTANT NOTE!!
Imagick will put your server at risk as it's is known to have several flaws.
You can check this issue to understand why: https://github.com/nextcloud/vm/issues/743
Please note: If you choose not to install imagick, it will get removed now."
if yesno_box_no "Do you want to install imagick?"
then
check_php
# Install imagick
install_if_not php"$PHPVER"-imagick
if version 22.04 "$DISTRO" 22.04.10
then
install_if_not libmagickcore-6.q16-6-extra
elif version 20.04 "$DISTRO" 20.04.10
then
install_if_not libmagickcore-6.q16-3-extra
fi
# Memory tuning
sed -i 's|policy domain="resource" name="memory" value=.*|policy domain="resource" name="memory" value="512MiB"|g' /etc/ImageMagick-6/policy.xml
sed -i 's|policy domain="resource" name="map" value=.*|policy domain="resource" name="map" value="1024MiB"|g' /etc/ImageMagick-6/policy.xml
sed -i 's|policy domain="resource" name="area" value=.*|policy domain="resource" name="area" value="256MiB"|g' /etc/ImageMagick-6/policy.xml
sed -i 's|policy domain="resource" name="disk" value=.*|policy domain="resource" name="disk" value="8GiB"|g' /etc/ImageMagick-6/policy.xml
# Choose file formats fo the case when imagick is installed.
# for additional previews please look at the Nextcloud documentation. But these probably won't work.
choice=$(whiptail --title "$TITLE - Choose file formats" --checklist \
"Now you can choose for which file formats you would like to generate previews for
$CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"PNG" "" ON \
"JPEG" "" ON \
"GIF" "" ON \
"BMP" "" ON \
"MarkDown" "" ON \
"MP3" "" ON \
"TXT" "" ON \
"Movie" "" ON \
"Photoshop" "" ON \
"SVG" "" ON \
"TIFF" "" ON 3>&1 1>&2 2>&3)
case "$choice" in
*"PNG"*)
nextcloud_occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\PNG"
;;&
*"JPEG"*)
nextcloud_occ config:system:set enabledPreviewProviders 1 --value="OC\\Preview\\JPEG"
;;&
*"GIF"*)
nextcloud_occ config:system:set enabledPreviewProviders 2 --value="OC\\Preview\\GIF"
;;&
*"BMP"*)
nextcloud_occ config:system:set enabledPreviewProviders 3 --value="OC\\Preview\\BMP"
;;&
*"MarkDown"*)
nextcloud_occ config:system:set enabledPreviewProviders 4 --value="OC\\Preview\\MarkDown"
;;&
*"MP3"*)
nextcloud_occ config:system:set enabledPreviewProviders 5 --value="OC\\Preview\\MP3"
;;&
*"TXT"*)
nextcloud_occ config:system:set enabledPreviewProviders 6 --value="OC\\Preview\\TXT"
;;&
*"Movie"*)
nextcloud_occ config:system:set enabledPreviewProviders 7 --value="OC\\Preview\\Movie"
;;&
*"Photoshop"*)
nextcloud_occ config:system:set enabledPreviewProviders 8 --value="OC\\Preview\\Photoshop"
;;&
*"SVG"*)
nextcloud_occ config:system:set enabledPreviewProviders 9 --value="OC\\Preview\\SVG"
;;&
*"TIFF"*)
nextcloud_occ config:system:set enabledPreviewProviders 10 --value="OC\\Preview\\TIFF"
;;&
*)
;;
esac
else
# check if imagick is installed and remove it
if is_this_installed php-imagick
then
apt-get purge php-imagick -y
elif is_this_installed php"$PHPVER"-imagick
then
apt-get purge php"$PHPVER"-imagick -y
fi
# check if libmagickcore is installed and remove it
if is_this_installed libmagickcore-6.q16-3-extra
then
apt-get purge libmagickcore-6.q16-3-extra -y
fi
# Choose file formats fo the case when imagick is not installed.
# for additional previews please look at the Nextcloud documentation. But these probably won't work.
choice=$(whiptail --title "$TITLE - Choose file formats" --checklist \
"Now you can choose for which file formats you would like to generate previews for
$CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"PNG" "" ON \
"JPEG" "" ON \
"GIF" "" ON \
"BMP" "" ON \
"MarkDown" "" ON \
"MP3" "" ON \
"TXT" "" ON \
"Movie" "" ON 3>&1 1>&2 2>&3)
case "$choice" in
*"PNG"*)
nextcloud_occ config:system:set enabledPreviewProviders 11 --value="OC\\Preview\\PNG"
;;&
*"JPEG"*)
nextcloud_occ config:system:set enabledPreviewProviders 12 --value="OC\\Preview\\JPEG"
;;&
*"GIF"*)
nextcloud_occ config:system:set enabledPreviewProviders 13 --value="OC\\Preview\\GIF"
;;&
*"BMP"*)
nextcloud_occ config:system:set enabledPreviewProviders 14 --value="OC\\Preview\\BMP"
;;&
*"MarkDown"*)
nextcloud_occ config:system:set enabledPreviewProviders 15 --value="OC\\Preview\\MarkDown"
;;&
*"MP3"*)
nextcloud_occ config:system:set enabledPreviewProviders 16 --value="OC\\Preview\\MP3"
;;&
*"TXT"*)
nextcloud_occ config:system:set enabledPreviewProviders 17 --value="OC\\Preview\\TXT"
;;&
*"Movie"*)
nextcloud_occ config:system:set enabledPreviewProviders 18 --value="OC\\Preview\\Movie"
;;&
*)
;;
esac
fi
# Set aspect ratio
nextcloud_occ config:app:set previewgenerator squareSizes --value="32 256"
nextcloud_occ config:app:set previewgenerator widthSizes --value="256 384"
nextcloud_occ config:app:set previewgenerator heightSizes --value="256"
nextcloud_occ config:system:set preview_max_x --value="2048"
nextcloud_occ config:system:set preview_max_y --value="2048"
nextcloud_occ config:system:set jpeg_quality --value="60"
nextcloud_occ config:system:set preview_max_memory --value="128"
nextcloud_occ config:app:set preview jpeg_quality --value="60"
# Add crontab for www-data
if ! crontab -u www-data -l | grep -q 'preview:pre-generate'
then
print_text_in_color "$ICyan" "Adding crontab for $SCRIPT_NAME"
crontab -u www-data -l | { cat; echo "*/10 * * * * php -f $NCPATH/occ preview:pre-generate >> $VMLOGS/previewgenerator.log"; } | crontab -u www-data -
touch "$VMLOGS"/previewgenerator.log
chown www-data:www-data "$VMLOGS"/previewgenerator.log
fi
msg_box "In the last step you can define a specific Nextcloud user for \
which will be the user that runs the Preview Generation.
The default behavior (just hit [ENTER]) is to run with the \
system user 'www-data' which will generate previews for all users.
If you on the other hand choose to use a specific user, previews will ONLY be generated for that specific user."
if ! yesno_box_no "Do you want to choose a specific Nextcloud user to generate previews?"
then
print_text_in_color "$ICyan" "Using www-data (all Nextcloud users) for generating previews..."
# Pre generate everything
nextcloud_occ preview:generate-all
else
while :
do
PREVIEW_USER=$(input_box "Enter the Nextcloud user for \
which you want to run the Preview Generation (as a scheduled task)")
if [ -z "$(nextcloud_occ user:list | grep "$PREVIEW_USER" | awk '{print $3}')" ]
then
msg_box "It seems like the user you entered ($PREVIEW_USER) doesn't exist, please try again."
else
break
fi
done
# Pre generate everything
nextcloud_occ preview:generate-all "$PREVIEW_USER"
fi
msg_box "Previewgenerator was successfully installed."
run_script APP imaginary

View File

@ -17,9 +17,50 @@ debug_mode
# Check if root
root_check
# Enough recouces?
ram_check 8
cpu_check 8
# Encryption may not be enabled
if is_app_enabled encryption || is_app_enabled end_to_end_encryption
then
msg_box "It seems like you have encryption enabled which is unsupported by the $SCRIPT_NAME app!"
exit 1
fi
# Compatible with NC26 and above
lowest_compatible_nc 26
# Check if suspicious_login are installed
# https://github.com/nextcloud/recognize/issues/676
if is_app_enabled suspicious_login
then
msg_box "Since you have the app Suspicious Login Detection installed, you can't install Recognize. The reason is that it will cause issues with cron.php.\nIf you choose 'No' the installer will exit"
if yesno_box_no "Do you want to disable Suspicious Login to be able to install Recognize?"
then
nextcloud_occ app:disable suspicious_login
if ! [ -f /etc/fail2ban/filter.d/nextcloud.conf ] || ! is_this_installed fail2ban
then
if yesno_box_yes "Do you want to install Fail2ban (IP blocking in Linux) instead?"
then
run_script APP fail2ban
fi
fi
else
exit
fi
fi
# Check if face-recognition is installed and ask to remove it
if is_app_installed facerecognition
then
msg_box "It seems like Face Recognition is installed. This app doesn't work with both installed at the same time. Please uninstall Face Recognition and try again:
1. Hit OK here.
2. Choose 'Uninstall'
3. Run sudo bash $SCRIPTS/menu.sh --> Additional Apps --> Recognize
4. Install
We will run the uninstaller for you now, then exit."
wget https://raw.githubusercontent.com/nextcloud/vm/master/old/face-recognition.sh && bash face-recognition.sh && rm -f face-recognition.sh
exit
fi
# Check if recognize is already installed
if ! is_app_installed recognize
@ -32,11 +73,12 @@ else
# Removal
if yesno_box_no "Do you want to remove all facerecognitions and tags that were generated until now?"
then
nextcloud_occ recognize:remove-legacy-tags
nextcloud_occ recognize:cleanup-tags
nextcloud_occ recognize:reset-face-clusters
nextcloud_occ recognize:reset-faces
nextcloud_occ recognize:reset-tags
print_text_in_color "$ICyan" "This will take some time..."
nextcloud_occ_no_check recognize:remove-legacy-tags
nextcloud_occ_no_check recognize:cleanup-tags
nextcloud_occ_no_check recognize:reset-face-clusters
nextcloud_occ_no_check recognize:reset-faces
nextcloud_occ_no_check recognize:reset-tags
fi
nextcloud_occ app:remove recognize
# Show successful uninstall if applicable
@ -44,6 +86,10 @@ else
fi
# Install recognize
# Enough recouces?
ram_check 8
cpu_check 4
install_and_enable_app recognize
nextcloud_occ recognize:download-models

56
lib.sh
View File

@ -70,7 +70,8 @@ INTERNET_DNS="9.9.9.9"
# Default Quad9 DNS servers, overwritten by the systemd global DNS defined servers, if set
DNS1="9.9.9.9"
DNS2="149.112.112.112"
NONO_PORTS=(22 25 53 80 443 1024 3012 3306 5178 5179 5432 7867 7983 8983 10000 8081 8443 9443)
NONO_PORTS=(22 25 53 80 443 1024 3012 3306 5178 5179 5432 7867 7983 8983 10000 8081 8443 9443 9000 9980 9090 9200 9600)
# 9000 9980 9090 9200 9600 are local docker ports, don't remember if they are needed here or not.
use_global_systemd_dns() {
if [ -f "/etc/systemd/resolved.conf" ]
then
@ -774,6 +775,7 @@ restart_webserver() {
# https://github.com/nextcloud/vm/issues/2358
sleep 2
check_command systemctl restart apache2.service
check_php
if is_this_installed php"$PHPVER"-fpm
then
check_command systemctl restart php"$PHPVER"-fpm.service
@ -1674,7 +1676,7 @@ is_image_present() {
}
# Check if old docker exists
# FULL NAME e.g. ark74/nc_fts or containrrr/watchtower or collabora/code
# FULL NAME e.g. ark74/nc_fts or containrrr/watchtower or collabora/code or 'nextcloud/aio-imaginary'
does_this_docker_exist() {
is_docker_running && is_image_present "$1";
}
@ -1711,30 +1713,33 @@ print_text_in_color "$ICyan" "Checking if there are any old images and removing
DOCKERPS=$(docker ps -a | grep -v "$1" | awk 'NR>1 {print $1}')
if [ "$DOCKERPS" != "" ]
then
msg_box "Removing old Docker instance(s)... ($DOCKERPS)
Please note that we will not remove $1 ($2).
You will be given the option to abort when you hit OK."
any_key "Press any key to continue. Press CTRL+C to abort"
docker stop "$(docker ps -a | grep -v "$1" | awk 'NR>1 {print $1}')"
docker container prune -f
docker image prune -a -f
docker volume prune -f
if yesno_box_yes "Do you want to remove old Docker instance(s)... ($DOCKERPS)? Please note that we will not remove $1 ($2)."
then
docker stop "$(docker ps -a | grep -v "$1" | awk 'NR>1 {print $1}')"
docker container prune -f
docker image prune -a -f
docker volume prune -f
else
msg_box "OK, this script will now exit, but there's still leftovers to cleanup. You can run it again at any time."
exit
fi
fi
}
# Remove selected Docker image
# docker_prune_this 'collabora/code' 'onlyoffice/documentserver' 'ark74/nc_fts'
# docker_prune_this 'collabora/code' 'onlyoffice/documentserver' 'ark74/nc_fts' 'nextcloud/aio-imaginary'
docker_prune_this() {
if does_this_docker_exist "$1"
then
msg_box "Removing old Docker image: $1
You will be given the option to abort when you hit OK."
any_key "Press any key to continue. Press CTRL+C to abort"
docker stop "$(docker container ls -a | grep "$1" | awk '{print $1}' | tail -1)"
docker rm "$(docker container ls -a | grep "$1" | awk '{print $1}' | tail -1)" --volumes
docker image prune -a -f
if yesno_box_yes "Do you want to remove $1?"
then
docker stop "$(docker container ls -a | grep "$1" | awk '{print $1}' | tail -1)"
docker rm "$(docker container ls -a | grep "$1" | awk '{print $1}' | tail -1)" --volumes
docker image prune -a -f
else
msg_box "OK, this script will now exit, but there's still leftovers to cleanup. You can run it again at any time."
exit
fi
fi
}
@ -1756,13 +1761,19 @@ docker-compose_down() {
if [ -f "$1" ]
then
cd "$(dirname "$1")"
docker-compose down --volume --rmi all
if is_this_installed docker-compose
then
docker-compose down --volumes --rmi all
else
docker compose down --volumes --rmi all
fi
# Remove leftovers
docker system prune -a -f
else
echo "Non-existing docker-compose file path, skipping..."
fi
}
# Update specific Docker image
# docker_update_specific 'vaultwarden' 'Vaultwarden' (docker conainter name = $1, the name in text = $2)
docker_update_specific() {
@ -2040,6 +2051,9 @@ then
elif grep 8.2 <<< "$GETPHP" >/dev/null 2>&1
then
export PHPVER=8.2
elif grep 8.3 <<< "$GETPHP" >/dev/null 2>&1
then
export PHPVER=8.3
fi
# Export other PHP variables based on PHPVER

View File

@ -42,12 +42,13 @@ $CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"Bitwarden" "(External password manager)" OFF \
"Fail2ban " "(Extra Bruteforce protection)" "$STARTUP_SWITCH" \
"Recognize" "(Use [local] AI on your photos in Nextcloud)" OFF \
"PreviewGenerator" "(Pre-generate previews for Nextcloud)" OFF \
"Imaginary" "(Generate image previews for Nextcloud) [4GB RAM + 4 CPU]" "OFF" \
"Webmin" "(Server GUI like Cpanel)" OFF \
"Talk" "(Video calls and chat for Nextcloud - requires port 3478)" "$STARTUP_SWITCH" \
"SMB-mount" "(Mount SMB-shares from your local network)" OFF \
"Adminer" "(PostgreSQL GUI)" OFF \
"LDAP" "(Windows Active directory for Nextcloud)" OFF \
"Notify Push" "(High Performance Files Backend for Nextcloud)" OFF \
"Talk" "(Video calls and chat for Nextcloud)" OFF \
"Netdata" "(Real-time server monitoring in Web GUI)" OFF \
"FullTextSearch" "(Search for text inside documents [4GB RAM])" OFF \
"BPYTOP" "(Real-time server monitoring in CLI)" OFF \
@ -56,7 +57,6 @@ $CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"Pico CMS" "(Lightweight CMS integration in Nextcloud)" OFF \
"Whiteboard" "(Whiteboard for Nextcloud)" OFF \
"Extract" "(Archive extraction for Nextcloud)" OFF \
"SMB-mount" "(Mount SMB-shares from your local network)" OFF \
"PDF Annotations" "(Annotate PDF files in Nextcloud)" OFF 3>&1 1>&2 2>&3)
case "$choice" in
@ -104,9 +104,9 @@ case "$choice" in
print_text_in_color "$ICyan" "Downloading the Pico CMS script..."
run_script APP pico_cms
;;&
*"PreviewGenerator"*)
print_text_in_color "$ICyan" "Downloading the PreviewGenerator script..."
run_script APP previewgenerator
*"Imaginary"*)
print_text_in_color "$ICyan" "Downloading the Imaginary script..."
run_script APP imaginary
;;&
*"Notify Push"*)
print_text_in_color "$ICyan" "Downloading the Notify Push script..."

View File

@ -57,12 +57,15 @@ do_the_update() {
msg_box "Since you have automated updates enabled with the reboot option set, we won't run update script a second time to the latest version automatically.
To upgrade to the latest version, please run: 'sudo bash $SCRIPTS/update.sh' from your CLI."
else
if yesno_box_yes "We will now run the update script a second time to update to the latest major version ($NCVERSION). Do you want to continue?"
if version_gt "$NCVERSION" "$CURRENTVERSION"
then
# Check if it's an unsupported major version (will exit if it is)
major_versions_unsupported
# Do the upgrade if it's not
bash "$SCRIPTS"/update.sh
if yesno_box_yes "We will now run the update script a second time to update to the latest major version ($NCVERSION). Do you want to continue?"
then
# Check if it's an unsupported major version (will exit if it is)
major_versions_unsupported
# Do the upgrade if it's not
bash "$SCRIPTS"/update.sh
fi
fi
fi
fi

View File

@ -286,6 +286,7 @@ It will also do the following:
- Set correct Rewriterules for Nextcloud
- Copy content from .htaccess to .user.ini (because we use php-fpm)
- Add additional options if you choose them
- Set correct CPU cores for Imaginary
- And more..."
msg_box "PLEASE NOTE:
@ -480,6 +481,16 @@ else
calculate_php_fpm
fi
# Set correct amount of CPUs for Imaginary
if which nproc >/dev/null 2>&1
then
nextcloud_occ config:system:set preview_concurrency_new --value="$(nproc)"
nextcloud_occ config:system:set preview_concurrency_all --value="$(($(nproc)*2))"
else
nextcloud_occ config:system:set preview_concurrency_new --value="2"
nextcloud_occ config:system:set preview_concurrency_all --value="4"
fi
# Add temporary fix if needed
if network_ok
then
@ -549,6 +560,13 @@ run_script NETWORK trusted
print_text_in_color "$ICyan" "System will now upgrade..."
bash $SCRIPTS/update.sh minor
# Check if new major is out, and inform on how to update
if version_gt "$NCVERSION" "$CURRENTVERSION"
then
msg_box "We noticed that there's a new major release of Nextcloud ($NCVERSION).\nIf you want to update to the latest release instantly, please check this:\n
https://docs.hanssonit.se/s/W6fMouPiqQz3_Mog/virtual-machines-vm/d/W7Du9uPiqQz3_Mr1/nextcloud-vm-machine-configuration?currentPageId=W7D3quPiqQz3_MsE"
fi
# Cleanup 2
apt-get autoremove -y
apt-get autoclean

View File

@ -920,6 +920,7 @@ $CHECKLIST_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"Deck" "" ON \
"Collectives" "" ON \
"Suspicios Login detetion" "" ON \
"Imaginary" "" ON \
"IssueTemplate" "" OFF \
"Group-Folders" "" OFF 3>&1 1>&2 2>&3)
fi
@ -964,6 +965,9 @@ case "$choice" in
*"Suspicios Login detetion"*)
install_and_enable_app suspicios_login
;;&
*"Imaginary"*)
run_script APP imaginary
;;&
*"Group-Folders"*)
install_and_enable_app groupfolders
;;&

View File

@ -32,6 +32,16 @@ root_check
is_process_running apt
is_process_running dpkg
# Automatically restart services (Ubuntu 22.04)
if ! version 16.04.10 "$DISTRO" 20.04.10
then
if ! grep -r "{restart} = 'a'" /etc/needrestart/needrestart.conf
then
# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.
sed -i "s|#\$nrconf{restart} = .*|\$nrconf{restart} = 'a';|g" /etc/needrestart/needrestart.conf
fi
fi
# Check for pending-snapshot
if does_snapshot_exist "NcVM-snapshot-pending"
then
@ -250,7 +260,7 @@ if apt-cache policy | grep "ondrej" >/dev/null 2>&1
then
print_text_in_color "$ICyan" "Ondrejs PPA is installed. \
Holding PHP to avoid upgrading to a newer version without migration..."
apt-mark hold php*
apt-mark hold php* >/dev/null 2>&1
fi
# Don't allow MySQL/MariaDB
@ -601,14 +611,22 @@ $DOCKER_RUN_OUTPUT"
## Don't upgrade to community if EE is installed
if ! does_this_docker_exist onlyoffice-ee
then
print_text_in_color "$IRed" "Skipping OnlyOffice due to issues with Websockets: https://forum.onlyoffice.com/t/onlyoffice-7-3-websocket-path-changed/3767/5"
#docker_update_specific 'onlyoffice' 'OnlyOffice'
if does_this_docker_exist 'onlyoffice/documentserver'
then
docker_update_specific 'onlyoffice' 'OnlyOffice'
msg_box "OnlyOffice updated the way websockets work, and you need to update your configuration.\n
Please update your Apache2 config to this: https://github.com/nextcloud/vm/blob/master/apps/onlyoffice_docker.sh#L210-L215.
Another option is to reinstall OnlyOffice with the menu script; sudo bash /var/scripts/menu.sh\n
If you need help, please get support here: https://shop.hanssonit.se/product/premium-support-per-30-minutes/"
fi
fi
# Full Text Search
docker_update_specific 'fts_esror' 'Full Text Search'
docker-compose_update 'fts_os-node' 'Full Text Search' "$OPNSDIR"
# Plex
docker_update_specific 'plex' "Plex Media Server"
# Imaginary
docker_update_specific 'imaginary' "Imaginary"
fi
# Fix Collabora change too coolwsd
@ -776,6 +794,8 @@ if [ -f "$SCRIPTS"/updatenotification.sh ]
then
download_script STATIC updatenotification
chmod +x "$SCRIPTS"/updatenotification.sh
crontab -u root -l | grep -v "$SCRIPTS/updatenotification.sh" | crontab -u root -
crontab -u root -l | { cat; echo "59 $AUT_UPDATES_TIME * * * $SCRIPTS/updatenotification.sh > /dev/null 2>&1"; } | crontab -u root -
fi
############# Don't upgrade to specific version

302
old/previewgenerator.sh Normal file
View File

@ -0,0 +1,302 @@
#!/bin/bash
# T&M Hansson IT AB © - 2023, https://www.hanssonit.se/
true
SCRIPT_NAME="Preview Generator"
SCRIPT_EXPLAINER="This script will install the Preview Generator.
It can speedup the loading of previews in Nextcloud a lot."
# shellcheck source=lib.sh
source /var/scripts/fetch_lib.sh
# Check for errors + debug code and abort if something isn't right
# 1 = ON
# 0 = OFF
DEBUG=0
debug_mode
# Check if root
root_check
# PHP 7.x is needed
if is_this_installed php5.6-common || is_this_installed php5.5-common
then
msg_box "At least PHP 7.X is required, please upgrade your PHP version: \
https://shop.hanssonit.se/product/upgrade-php-version-including-dependencies/"
exit
fi
# Encryption may not be enabled
if is_app_enabled encryption || is_app_enabled end_to_end_encryption
then
msg_box "It seems like you have encryption enabled which is unsupported when using the Preview Generator"
exit
fi
# Check if previewgenerator is already installed
if ! is_app_installed previewgenerator
then
# Ask for installing
install_popup "$SCRIPT_NAME"
else
# Ask for removal or reinstallation
reinstall_remove_menu "$SCRIPT_NAME"
# Removal
nextcloud_occ app:remove previewgenerator
# reset the preview formats
nextcloud_occ_no_check config:system:delete "enabledPreviewProviders"
nextcloud_occ config:system:delete preview_max_x
nextcloud_occ config:system:delete preview_max_y
nextcloud_occ config:system:delete jpeg_quality
nextcloud_occ config:system:delete preview_max_memory
nextcloud_occ config:system:delete enable_previews
# reset the cronjob
crontab -u www-data -l | grep -v 'preview:pre-generate' | crontab -u www-data -
# Remove apps
APPS=(php-imagick libmagickcore-6.q16-3-extra imagemagick-6.q16-extra)
for app in "${APPS[@]}"
do
if is_this_installed "$app"
then
apt-get purge "$app" -y
fi
done
if is_this_installed ffmpeg && ! is_app_installed integration_whiteboard
then
apt-get purge ffmpeg -y
fi
apt-get autoremove -y
rm -rf /etc/ImageMagick-6
if yesno_box_no "Do you want to remove all previews that were generated until now?
This will most likely clear a lot of space but your server will need to re-generate the previews \
if you should opt to re-enable previews again."
then
countdown "Removing the preview folder. This can take a while..." "5"
rm -rfv "$NCDATA"/appdata_*/preview
print_text_in_color "$ICyan" "Scanning Nextclouds appdata directory after removing all previews. \
This can take a while..."
nextcloud_occ files:scan-app-data -vvv
msg_box "All previews were successfully removed."
fi
# Show successful uninstall if applicable
removal_popup "$SCRIPT_NAME"
fi
# Install preview generator
install_and_enable_app previewgenerator
# check if the previewgenerator is installed and enabled
if is_app_enabled previewgenerator
then
# enable previews
nextcloud_occ config:system:set enable_previews --value=true --type=boolean
# install needed dependency for movies
install_if_not ffmpeg
else
exit
fi
msg_box "In the next step you can choose to install a package called imagick \
to speed up the generation of previews and add support for more filetypes.
The currently supported filetypes are:
* PNG
* JPEG
* GIF
* BMP
* MarkDown
* MP3
* TXT
* Movie
* Photoshop (needs imagick)
* SVG (needs imagick)
* TIFF (needs imagick)"
msg_box "IMPORTANT NOTE!!
Imagick will put your server at risk as it's is known to have several flaws.
You can check this issue to understand why: https://github.com/nextcloud/vm/issues/743
Please note: If you choose not to install imagick, it will get removed now."
if yesno_box_no "Do you want to install imagick?"
then
check_php
# Install imagick
install_if_not php"$PHPVER"-imagick
if version 22.04 "$DISTRO" 22.04.10
then
install_if_not libmagickcore-6.q16-6-extra
elif version 20.04 "$DISTRO" 20.04.10
then
install_if_not libmagickcore-6.q16-3-extra
fi
# Memory tuning
sed -i 's|policy domain="resource" name="memory" value=.*|policy domain="resource" name="memory" value="512MiB"|g' /etc/ImageMagick-6/policy.xml
sed -i 's|policy domain="resource" name="map" value=.*|policy domain="resource" name="map" value="1024MiB"|g' /etc/ImageMagick-6/policy.xml
sed -i 's|policy domain="resource" name="area" value=.*|policy domain="resource" name="area" value="256MiB"|g' /etc/ImageMagick-6/policy.xml
sed -i 's|policy domain="resource" name="disk" value=.*|policy domain="resource" name="disk" value="8GiB"|g' /etc/ImageMagick-6/policy.xml
# Choose file formats fo the case when imagick is installed.
# for additional previews please look at the Nextcloud documentation. But these probably won't work.
choice=$(whiptail --title "$TITLE - Choose file formats" --checklist \
"Now you can choose for which file formats you would like to generate previews for
$CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"PNG" "" ON \
"JPEG" "" ON \
"GIF" "" ON \
"BMP" "" ON \
"MarkDown" "" ON \
"MP3" "" ON \
"TXT" "" ON \
"Movie" "" ON \
"Photoshop" "" ON \
"SVG" "" ON \
"TIFF" "" ON 3>&1 1>&2 2>&3)
case "$choice" in
*"PNG"*)
nextcloud_occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\PNG"
;;&
*"JPEG"*)
nextcloud_occ config:system:set enabledPreviewProviders 1 --value="OC\\Preview\\JPEG"
;;&
*"GIF"*)
nextcloud_occ config:system:set enabledPreviewProviders 2 --value="OC\\Preview\\GIF"
;;&
*"BMP"*)
nextcloud_occ config:system:set enabledPreviewProviders 3 --value="OC\\Preview\\BMP"
;;&
*"MarkDown"*)
nextcloud_occ config:system:set enabledPreviewProviders 4 --value="OC\\Preview\\MarkDown"
;;&
*"MP3"*)
nextcloud_occ config:system:set enabledPreviewProviders 5 --value="OC\\Preview\\MP3"
;;&
*"TXT"*)
nextcloud_occ config:system:set enabledPreviewProviders 6 --value="OC\\Preview\\TXT"
;;&
*"Movie"*)
nextcloud_occ config:system:set enabledPreviewProviders 7 --value="OC\\Preview\\Movie"
;;&
*"Photoshop"*)
nextcloud_occ config:system:set enabledPreviewProviders 8 --value="OC\\Preview\\Photoshop"
;;&
*"SVG"*)
nextcloud_occ config:system:set enabledPreviewProviders 9 --value="OC\\Preview\\SVG"
;;&
*"TIFF"*)
nextcloud_occ config:system:set enabledPreviewProviders 10 --value="OC\\Preview\\TIFF"
;;&
*)
;;
esac
else
# check if imagick is installed and remove it
if is_this_installed php-imagick
then
apt-get purge php-imagick -y
elif is_this_installed php"$PHPVER"-imagick
then
apt-get purge php"$PHPVER"-imagick -y
fi
# check if libmagickcore is installed and remove it
if is_this_installed libmagickcore-6.q16-3-extra
then
apt-get purge libmagickcore-6.q16-3-extra -y
fi
# Choose file formats fo the case when imagick is not installed.
# for additional previews please look at the Nextcloud documentation. But these probably won't work.
choice=$(whiptail --title "$TITLE - Choose file formats" --checklist \
"Now you can choose for which file formats you would like to generate previews for
$CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
"PNG" "" ON \
"JPEG" "" ON \
"GIF" "" ON \
"BMP" "" ON \
"MarkDown" "" ON \
"MP3" "" ON \
"TXT" "" ON \
"Movie" "" ON 3>&1 1>&2 2>&3)
case "$choice" in
*"PNG"*)
nextcloud_occ config:system:set enabledPreviewProviders 11 --value="OC\\Preview\\PNG"
;;&
*"JPEG"*)
nextcloud_occ config:system:set enabledPreviewProviders 12 --value="OC\\Preview\\JPEG"
;;&
*"GIF"*)
nextcloud_occ config:system:set enabledPreviewProviders 13 --value="OC\\Preview\\GIF"
;;&
*"BMP"*)
nextcloud_occ config:system:set enabledPreviewProviders 14 --value="OC\\Preview\\BMP"
;;&
*"MarkDown"*)
nextcloud_occ config:system:set enabledPreviewProviders 15 --value="OC\\Preview\\MarkDown"
;;&
*"MP3"*)
nextcloud_occ config:system:set enabledPreviewProviders 16 --value="OC\\Preview\\MP3"
;;&
*"TXT"*)
nextcloud_occ config:system:set enabledPreviewProviders 17 --value="OC\\Preview\\TXT"
;;&
*"Movie"*)
nextcloud_occ config:system:set enabledPreviewProviders 18 --value="OC\\Preview\\Movie"
;;&
*)
;;
esac
fi
# Set aspect ratio
nextcloud_occ config:app:set previewgenerator squareSizes --value="32 256"
nextcloud_occ config:app:set previewgenerator widthSizes --value="256 384"
nextcloud_occ config:app:set previewgenerator heightSizes --value="256"
nextcloud_occ config:system:set preview_max_x --value="2048"
nextcloud_occ config:system:set preview_max_y --value="2048"
nextcloud_occ config:system:set jpeg_quality --value="60"
nextcloud_occ config:system:set preview_max_memory --value="128"
nextcloud_occ config:app:set preview jpeg_quality --value="60"
# Add crontab for www-data
if ! crontab -u www-data -l | grep -q 'preview:pre-generate'
then
print_text_in_color "$ICyan" "Adding crontab for $SCRIPT_NAME"
crontab -u www-data -l | { cat; echo "*/10 * * * * php -f $NCPATH/occ preview:pre-generate >> $VMLOGS/previewgenerator.log"; } | crontab -u www-data -
touch "$VMLOGS"/previewgenerator.log
chown www-data:www-data "$VMLOGS"/previewgenerator.log
fi
msg_box "In the last step you can define a specific Nextcloud user for \
which will be the user that runs the Preview Generation.
The default behavior (just hit [ENTER]) is to run with the \
system user 'www-data' which will generate previews for all users.
If you on the other hand choose to use a specific user, previews will ONLY be generated for that specific user."
if ! yesno_box_no "Do you want to choose a specific Nextcloud user to generate previews?"
then
print_text_in_color "$ICyan" "Using www-data (all Nextcloud users) for generating previews..."
# Pre generate everything
nextcloud_occ preview:generate-all
else
while :
do
PREVIEW_USER=$(input_box "Enter the Nextcloud user for \
which you want to run the Preview Generation (as a scheduled task)")
if [ -z "$(nextcloud_occ user:list | grep "$PREVIEW_USER" | awk '{print $3}')" ]
then
msg_box "It seems like the user you entered ($PREVIEW_USER) doesn't exist, please try again."
else
break
fi
done
# Pre generate everything
nextcloud_occ preview:generate-all "$PREVIEW_USER"
fi
msg_box "Previewgenerator was successfully installed."

View File

@ -51,18 +51,18 @@ if [ "$NCVERSION" == "$NCMIN" ] && version_gt "$NCMIN" "$REPORTEDMIN" && version
then
sed -i "s|^REPORTEDMAJ.*|REPORTEDMAJ=$NCVERSION|" $SCRIPTS/updatenotification.sh
sed -i "s|^REPORTEDMIN.*|REPORTEDMIN=$NCMIN|" $SCRIPTS/updatenotification.sh
if crontab -l -u root | grep -q $SCRIPTS/update.sh
if crontab -l -u root | grep -q $SCRIPTS/menu.sh
then
notify_admin_gui \
"New minor Nextcloud Update!" \
"Nextcloud $NCMIN just became available. Since you are running Automatic \
Updates on Saturdays at $AUT_UPDATES_TIME:00, you don't need to bother about updating \
Updates every month on Saturdays at $AUT_UPDATES_TIME:00, you don't need to bother about updating \
the server to minor Nextcloud versions manually, as that's already taken care of."
else
notify_admin_gui \
"New minor Nextcloud Update!" \
"Nextcloud $NCMIN just became available. Please run 'sudo bash \
/var/scripts/update.sh minor' from your CLI to update your server to Nextcloud $NCMIN."
/var/scripts/menu.sh' --> Update Nextcloud from your CLI to update your server to Nextcloud $NCMIN."
fi
exit
fi
@ -70,7 +70,7 @@ fi
if version_gt "$NCMIN" "$REPORTEDMIN" && version_gt "$NCMIN" "$CURRENTVERSION"
then
sed -i "s|^REPORTEDMIN.*|REPORTEDMIN=$NCMIN|" $SCRIPTS/updatenotification.sh
if crontab -l -u root | grep -q $SCRIPTS/update.sh
if crontab -l -u root | grep -q $SCRIPTS/menu.sh
then
notify_admin_gui \
"New minor Nextcloud Update!" \
@ -81,7 +81,7 @@ the server to minor Nextcloud versions manually, as that's already taken care of
notify_admin_gui \
"New minor Nextcloud Update!" \
"Nextcloud $NCMIN just became available. Please run 'sudo bash \
/var/scripts/update.sh minor' from your CLI to update your server to Nextcloud $NCMIN."
/var/scripts/menu.sh' --> Update Nextcloud from your CLI to update your server to Nextcloud $NCMIN."
fi
fi
@ -91,7 +91,7 @@ then
notify_admin_gui \
"New major Nextcloud Update!" \
"Nextcloud $NCVERSION just became available. Please run 'sudo bash \
/var/scripts/update.sh' from your CLI to update your server to Nextcloud $NCVERSION. \
/var/scripts/menu.sh' --> Update Nextcloud from your CLI to update your server to Nextcloud $NCVERSION. \
Before updating though, you should visit https://your-nc-domain/settings/admin/overview \
and make sure that all apps are compatible with the new version. And please never forget to \
create a backup and/or snapshot before updating!"