#!/usr/bin/with-contenv bashio # shellcheck source=lib.sh touch /var/scripts/fetch_lib.sh source /var/scripts/fetch_lib.sh || source <(curl -sL https://raw.githubusercontent.com/nextcloud/vm/master/lib.sh) # Get all needed variables from the library ncdb nc_update es_install # Check for errors + debug code and abort if something isn't right # 1 = ON # 0 = OFF DEBUG=0 debug_mode # Must be root root_check # https://raw.githubusercontent.com/nextcloud/vm/master/apps/fulltextsearch.sh # T&M Hansson IT AB © - 2021, https://www.hanssonit.se/ # SwITNet Ltd © - 2021, https://switnet.net/ if [ bashio::config.is_true 'install_elasticsearch' ] && [ ! is_app_installed "fulltextsearch" ]; then echo "Installing Full Text Search" true SCRIPT_NAME="Full Text Search" SCRIPT_EXPLAINER="Full Text Search provides Elasticsearch for Nextcloud, which makes it possible to search for text inside files." : # Make sure there is an Nextcloud installation if ! [ "$(nextcloud_occ -V)" ]; then echo "It seems there is no Nextcloud server installed, please check your installation." exit 1 fi # Install OCR if requested # Reset Full Text Search to be able to index again, and also remove the app to be able to install it again nextcloud_occ_no_check fulltextsearch:reset APPS=(fulltextsearch fulltextsearch_elasticsearch files_fulltextsearch) for app in "${APPS[@]}"; do if is_app_installed "$app"; then nextcloud_occ app:remove "$app" fi done # Disable and remove Nextant + Solr if is_app_installed nextant; then # Remove Nextant echo "We will now remove Nextant + Solr and replace it with Full Text Search" nextcloud_occ app:remove nextant # Remove Solr systemctl stop solr.service rm -rf /var/solr rm -rf /opt/solr* rm /etc/init.d/solr deluser --remove-home solr deluser --group solr fi # Check if the app is compatible with the current Nextcloud version if ! install_and_enable_app fulltextsearch; then exit 1 fi # Get Full Text Search app for nextcloud echo "... installing apps : fulltextsearch" install_and_enable_app fulltextsearch echo "... installing apps : fulltextsearch_elasticsearch" install_and_enable_app fulltextsearch_elasticsearch echo "... installing apps : files_fulltextsearch" install_and_enable_app files_fulltextsearch echo "... updating permissions" chown -R abc:abc $NC_APPS_PATH # Final setup echo "... creating base_config" nextcloud_occ fulltextsearch:configure '{"search_platform":"OCA\\FullTextSearch_Elasticsearch\\Platform\\ElasticSearchPlatform"}' nextcloud_occ fulltextsearch_elasticsearch:configure "{\"elastic_host\":\"http://${INDEX_USER}:${ROREST}@localhost:9200\",\"elastic_index\":\"${INDEX_USER}-index\"}" nextcloud_occ files_fulltextsearch:configure "{\"files_pdf\":\"1\",\"files_office\":\"1\"}" # Wait further for cache for index to work countdown "Waiting for a few seconds before indexing starts..." "10" if nextcloud_occ fulltextsearch:index