diff --git a/addons/automatic_updates.sh b/addons/automatic_updates.sh index 5a87f859..7ca3c874 100644 --- a/addons/automatic_updates.sh +++ b/addons/automatic_updates.sh @@ -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 diff --git a/apps/imaginary.sh b/apps/imaginary.sh new file mode 100644 index 00000000..cd8be0e8 --- /dev/null +++ b/apps/imaginary.sh @@ -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 diff --git a/apps/onlyoffice_docker.sh b/apps/onlyoffice_docker.sh index db153f28..3a45dac4 100644 --- a/apps/onlyoffice_docker.sh +++ b/apps/onlyoffice_docker.sh @@ -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] ProxyPassReverse / diff --git a/apps/previewgenerator.sh b/apps/previewgenerator.sh index f2c7770f..901ba26b 100644 --- a/apps/previewgenerator.sh +++ b/apps/previewgenerator.sh @@ -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 diff --git a/apps/recognize.sh b/apps/recognize.sh index 7453a572..a3a6a808 100644 --- a/apps/recognize.sh +++ b/apps/recognize.sh @@ -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 diff --git a/lib.sh b/lib.sh index 849565d6..b92c6ed2 100644 --- a/lib.sh +++ b/lib.sh @@ -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 diff --git a/menu/additional_apps.sh b/menu/additional_apps.sh index f1066075..9cccaa1f 100644 --- a/menu/additional_apps.sh +++ b/menu/additional_apps.sh @@ -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..." diff --git a/menu/main_menu.sh b/menu/main_menu.sh index 960b2107..e80c9ebe 100644 --- a/menu/main_menu.sh +++ b/menu/main_menu.sh @@ -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 diff --git a/nextcloud-startup-script.sh b/nextcloud-startup-script.sh index 85fa4064..6bfbeff6 100644 --- a/nextcloud-startup-script.sh +++ b/nextcloud-startup-script.sh @@ -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 diff --git a/nextcloud_install_production.sh b/nextcloud_install_production.sh index 36e0000d..15e32a4f 100644 --- a/nextcloud_install_production.sh +++ b/nextcloud_install_production.sh @@ -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 ;;& diff --git a/nextcloud_update.sh b/nextcloud_update.sh index 253b27d1..5b049186 100644 --- a/nextcloud_update.sh +++ b/nextcloud_update.sh @@ -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 diff --git a/old/previewgenerator.sh b/old/previewgenerator.sh new file mode 100644 index 00000000..6d06ec7e --- /dev/null +++ b/old/previewgenerator.sh @@ -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." diff --git a/static/updatenotification.sh b/static/updatenotification.sh index c762b565..22daad92 100644 --- a/static/updatenotification.sh +++ b/static/updatenotification.sh @@ -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!"