searx.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/usr/bin/env bash
  2. while true;do ls | grep -q dockerbunker.sh;if [[ $? == 0 ]];then BASE_DIR=$PWD;break;else cd ../;fi;done
  3. PROPER_NAME="Searx"
  4. SERVICE_NAME="$(echo -e "${PROPER_NAME,,}" | tr -d '[:space:]')"
  5. PROMPT_SSL=1
  6. declare -a environment=( "data/env/dockerbunker.env" "data/include/init.sh" )
  7. for env in "${environment[@]}";do
  8. [[ -f "${BASE_DIR}/$env" ]] && source "${BASE_DIR}/$env"
  9. done
  10. declare -A WEB_SERVICES
  11. declare -a containers=( "${SERVICE_NAME}-service-dockerbunker" )
  12. declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" )
  13. declare -a networks=( )
  14. declare -A IMAGES=( [service]="dockerbunker/${SERVICE_NAME}" )
  15. declare -A BUILD_IMAGES=( [dockerbunker/${SERVICE_NAME}]="${DOCKERFILES}/${SERVICE_NAME}" )
  16. [[ -z $1 ]] && options_menu
  17. upgrade() {
  18. get_current_images_sha256
  19. sed -i "s/default_theme\ :.*/default_theme\ :\ ${THEME}/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  20. sed -i "s/instance_name\ \:.*/instance_name\ \:\ \"${INSTANCE_NAME}\"/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  21. docker_build
  22. docker_pull
  23. stop_containers
  24. remove_containers
  25. docker_run_all
  26. delete_old_images
  27. restart_nginx
  28. }
  29. configure() {
  30. pre_configure_routine
  31. ! [[ -d "${BASE_DIR}/data/Dockerfiles/${SERVICE_NAME}" ]] \
  32. && echo -n "Cloning Searx repository into ${BASE_DIR}/data/Dockerfiles/${SERVICE_NAME}" \
  33. && git submodule add -f https://github.com/asciimoo/searx.git "${BASE_DIR}"/data/Dockerfiles/${SERVICE_NAME} >/dev/null \
  34. && exit_response
  35. echo -e "# \e[4mSearx Settings\e[0m"
  36. set_domain
  37. if [ "$INSTANCE_NAME" ]; then
  38. read -p "Instance Name: " -ei "$INSTANCE_NAME" INSTANCE_NAME
  39. else
  40. read -p "Instance Name: " -ei "${SERVICE_NAME}" INSTANCE_NAME
  41. fi
  42. if [ "$THEME" ]; then
  43. read -p "Theme [oscar, courgette, pix-art, simple]: " -ei "$THEME" THEME
  44. else
  45. read -p "Theme [oscar, courgette, pix-art, simple]: " -ei "oscar" THEME
  46. fi
  47. cat <<-EOF >> "${SERVICE_ENV}"
  48. #SEARX
  49. ## ------------------------------
  50. PROPER_NAME="${PROPER_NAME}"
  51. SERVICE_NAME="${SERVICE_NAME}"
  52. SSL_CHOICE=${SSL_CHOICE}
  53. LE_EMAIL=${LE_EMAIL}
  54. SERVICE_DOMAIN="${SERVICE_DOMAIN}"
  55. INSTANCE_NAME="${INSTANCE_NAME}"
  56. THEME="${THEME}"
  57. ## ------------------------------
  58. #/SEARX
  59. EOF
  60. post_configure_routine
  61. }
  62. setup() {
  63. sed -i "s/default_theme\ :.*/default_theme\ :\ ${THEME}/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  64. sed -i "s/instance_name\ \:.*/instance_name\ \:\ \"${INSTANCE_NAME}\"/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  65. initial_setup_routine
  66. SUBSTITUTE=( "\${SERVICE_DOMAIN}" )
  67. basic_nginx
  68. docker_run_all
  69. post_setup_routine
  70. }
  71. if [[ $1 == "letsencrypt" ]];then
  72. $1 $*
  73. else
  74. $1
  75. fi