searx.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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 volumes=( "${SERVICE_NAME}-data-vol-1" )
  13. declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" )
  14. declare -a networks=( )
  15. declare -A IMAGES=( [service]="dockerbunker/${SERVICE_NAME}" )
  16. declare -A BUILD_IMAGES=( [dockerbunker/${SERVICE_NAME}]="${DOCKERFILES}/${SERVICE_NAME}" )
  17. [[ -z $1 ]] && options_menu
  18. upgrade() {
  19. get_current_images_sha256
  20. sed -i "s/default_theme\ :.*/default_theme\ :\ ${THEME}/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  21. sed -i "s/instance_name\ \:.*/instance_name\ \:\ \"${INSTANCE_NAME}\"/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  22. docker_build
  23. docker_pull
  24. stop_containers
  25. remove_containers
  26. docker_run_all
  27. delete_old_images
  28. restart_nginx
  29. }
  30. configure() {
  31. pre_configure_routine
  32. ! [[ -d "${BASE_DIR}/data/Dockerfiles/${SERVICE_NAME}" ]] \
  33. && echo -n "Cloning Searx repository into ${BASE_DIR}/data/Dockerfiles/${SERVICE_NAME}" \
  34. && git submodule add -f https://github.com/asciimoo/searx.git "${BASE_DIR}"/data/Dockerfiles/${SERVICE_NAME} >/dev/null \
  35. && exit_response
  36. echo -e "# \e[4mSearx Settings\e[0m"
  37. set_domain
  38. if [ "$INSTANCE_NAME" ]; then
  39. read -p "Instance Name: " -ei "$INSTANCE_NAME" INSTANCE_NAME
  40. else
  41. read -p "Instance Name: " -ei "${SERVICE_NAME}" INSTANCE_NAME
  42. fi
  43. if [ "$THEME" ]; then
  44. read -p "Theme [oscar, courgette, pix-art, simple]: " -ei "$THEME" THEME
  45. else
  46. read -p "Theme [oscar, courgette, pix-art, simple]: " -ei "oscar" THEME
  47. fi
  48. cat <<-EOF >> "${SERVICE_ENV}"
  49. #SEARX
  50. ## ------------------------------
  51. PROPER_NAME="${PROPER_NAME}"
  52. SERVICE_NAME="${SERVICE_NAME}"
  53. SSL_CHOICE=${SSL_CHOICE}
  54. LE_EMAIL=${LE_EMAIL}
  55. SERVICE_DOMAIN="${SERVICE_DOMAIN}"
  56. INSTANCE_NAME="${INSTANCE_NAME}"
  57. THEME="${THEME}"
  58. ## ------------------------------
  59. #/SEARX
  60. EOF
  61. post_configure_routine
  62. }
  63. setup() {
  64. sed -i "s/default_theme\ :.*/default_theme\ :\ ${THEME}/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  65. sed -i "s/instance_name\ \:.*/instance_name\ \:\ \"${INSTANCE_NAME}\"/" data/Dockerfiles/${SERVICE_NAME}/${SERVICE_NAME}/settings.yml
  66. initial_setup_routine
  67. SUBSTITUTE=( "\${SERVICE_DOMAIN}" )
  68. basic_nginx
  69. docker_run_all
  70. post_setup_routine
  71. }
  72. if [[ $1 == "letsencrypt" ]];then
  73. $1 $*
  74. else
  75. $1
  76. fi