forked from Ponysearch/Ponysearch
filtron.sh & morty.sh: improve usage message (if used in containers)
BTW: normalize soma variable names Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
c2caf9569c
commit
c81849cb5a
5 changed files with 72 additions and 49 deletions
|
@ -97,15 +97,24 @@ apache (${PUBLIC_URL})
|
||||||
filtron rules: ${FILTRON_RULES}
|
filtron rules: ${FILTRON_RULES}
|
||||||
|
|
||||||
If needed, set PUBLIC_URL of your WEB service in the '${DOT_CONFIG#"$REPO_ROOT/"}' file::
|
If needed, set PUBLIC_URL of your WEB service in the '${DOT_CONFIG#"$REPO_ROOT/"}' file::
|
||||||
|
|
||||||
PUBLIC_URL : ${PUBLIC_URL}
|
PUBLIC_URL : ${PUBLIC_URL}
|
||||||
PUBLIC_HOST : ${PUBLIC_HOST}
|
PUBLIC_HOST : ${PUBLIC_HOST}
|
||||||
SERVICE_USER : ${SERVICE_USER}
|
SERVICE_USER : ${SERVICE_USER}
|
||||||
|
FILTRON_TARGET : ${FILTRON_TARGET}
|
||||||
FILTRON_API : ${FILTRON_API}
|
FILTRON_API : ${FILTRON_API}
|
||||||
FILTRON_LISTEN : ${FILTRON_LISTEN}
|
FILTRON_LISTEN : ${FILTRON_LISTEN}
|
||||||
FILTRON_TARGET : ${FILTRON_TARGET}
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
if in_container; then
|
||||||
|
# in containers the service is listening on 0.0.0.0 (see lxc-searx.env)
|
||||||
|
for ip in $(global_IPs) ; do
|
||||||
|
if [[ $ip =~ .*:.* ]]; then
|
||||||
|
echo " container URL (IPv6): http://[${ip#*|}]:4005/"
|
||||||
|
else
|
||||||
|
# IPv4:
|
||||||
|
echo " container URL (IPv4): http://${ip#*|}:4005/"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
[[ -n ${1} ]] && err_msg "$1"
|
[[ -n ${1} ]] && err_msg "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,39 +83,37 @@ apache : ${PUBLIC_URL_MORTY}
|
||||||
:install: apache site with a reverse proxy (ProxyPass)
|
:install: apache site with a reverse proxy (ProxyPass)
|
||||||
:remove: apache site ${APACHE_MORTY_SITE}
|
:remove: apache site ${APACHE_MORTY_SITE}
|
||||||
|
|
||||||
If needed, set the environment variable MORTY_LISTEN in the
|
If needed, set the environment variables in the '${DOT_CONFIG#"$REPO_ROOT/"}' file::
|
||||||
${DOT_CONFIG#"$REPO_ROOT/"} file::
|
PUBLIC_URL_MORTY: ${PUBLIC_URL_MORTY}
|
||||||
|
MORTY_LISTEN: ${MORTY_LISTEN}
|
||||||
MORTY_LISTEN : ${MORTY_LISTEN}
|
SERVICE_USER: ${SERVICE_USER}
|
||||||
SERVICE_USER : ${SERVICE_USER}
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
if in_container; then
|
if in_container; then
|
||||||
lxc_suite_info
|
# in containers the service is listening on 0.0.0.0 (see lxc-searx.env)
|
||||||
|
for ip in $(global_IPs) ; do
|
||||||
|
if [[ $ip =~ .*:.* ]]; then
|
||||||
|
echo " container URL (IPv6): http://[${ip#*|}]:3000/"
|
||||||
else
|
else
|
||||||
info_msg "public URL --> ${PUBLIC_URL}"
|
# IPv4:
|
||||||
info_msg "internal URL --> http://${SEARX_INTERNAL_URL}"
|
echo " container URL (IPv4): http://${ip#*|}:3000/"
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
echo
|
||||||
info_searx
|
info_searx
|
||||||
|
|
||||||
[[ -n ${1} ]] && err_msg "$1"
|
[[ -n ${1} ]] && err_msg "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
info_searx() {
|
info_searx() {
|
||||||
# shellcheck disable=SC1117
|
# shellcheck disable=SC1117
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
To activate result and image proxy in searx, edit settings.yml (read:
|
||||||
To activate morty in searx, add result_proxy to your settings.yml::
|
${DOCS_URL}/admin/morty.html)::
|
||||||
|
|
||||||
result_proxy:
|
result_proxy:
|
||||||
url : ${PUBLIC_URL_MORTY}/
|
url : ${PUBLIC_URL_MORTY}
|
||||||
|
|
||||||
server:
|
server:
|
||||||
...
|
image_proxy : True
|
||||||
image_proxy : True # Proxying image results through searx
|
|
||||||
...
|
|
||||||
|
|
||||||
further read: ${DOCS_URL}/admin/morty.html
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +208,6 @@ install_all() {
|
||||||
wait_key
|
wait_key
|
||||||
systemd_install_service "${SERVICE_NAME}" "${SERVICE_SYSTEMD_UNIT}"
|
systemd_install_service "${SERVICE_NAME}" "${SERVICE_SYSTEMD_UNIT}"
|
||||||
wait_key
|
wait_key
|
||||||
info_searx
|
|
||||||
if ! service_is_available "http://${MORTY_LISTEN}" ; then
|
if ! service_is_available "http://${MORTY_LISTEN}" ; then
|
||||||
err_msg "Morty does not listening on: http://${MORTY_LISTEN}"
|
err_msg "Morty does not listening on: http://${MORTY_LISTEN}"
|
||||||
fi
|
fi
|
||||||
|
@ -220,6 +217,12 @@ install_all() {
|
||||||
install_apache_site
|
install_apache_site
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
info_searx
|
||||||
|
if ask_yn "Add image and result proxy to searx settings.yml?" Yn; then
|
||||||
|
"${REPO_ROOT}/utils/searx.sh" option result-proxy "${PUBLIC_URL_MORTY}"
|
||||||
|
"${REPO_ROOT}/utils/searx.sh" option image-proxy-on
|
||||||
|
fi
|
||||||
|
|
||||||
if ask_yn "Do you want to inspect the installation?" Ny; then
|
if ask_yn "Do you want to inspect the installation?" Ny; then
|
||||||
inspect_service
|
inspect_service
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -17,7 +17,7 @@ in_container && lxc_set_suite_env
|
||||||
|
|
||||||
PUBLIC_URL="${PUBLIC_URL:-http://$(uname -n)/searx}"
|
PUBLIC_URL="${PUBLIC_URL:-http://$(uname -n)/searx}"
|
||||||
|
|
||||||
SEARX_INTERNAL_URL="${SEARX_INTERNAL_URL:-127.0.0.1:8888}"
|
SEARX_INTERNAL_HTTP="${SEARX_INTERNAL_HTTP:-127.0.0.1:8888}"
|
||||||
|
|
||||||
SEARX_URL_PATH="${SEARX_URL_PATH:-$(echo "${PUBLIC_URL}" \
|
SEARX_URL_PATH="${SEARX_URL_PATH:-$(echo "${PUBLIC_URL}" \
|
||||||
| sed -e 's,^.*://[^/]*\(/.*\),\1,g')}"
|
| sed -e 's,^.*://[^/]*\(/.*\),\1,g')}"
|
||||||
|
@ -79,17 +79,17 @@ case $DIST_ID in
|
||||||
ubuntu|debian)
|
ubuntu|debian)
|
||||||
SEARX_PACKAGES="${SEARX_PACKAGES_debian}"
|
SEARX_PACKAGES="${SEARX_PACKAGES_debian}"
|
||||||
BUILD_PACKAGES="${BUILD_PACKAGES_debian}"
|
BUILD_PACKAGES="${BUILD_PACKAGES_debian}"
|
||||||
APACHE_APT_PACKAGES="libapache2-mod-uwsgi"
|
APACHE_PACKAGES="libapache2-mod-uwsgi"
|
||||||
;;
|
;;
|
||||||
arch)
|
arch)
|
||||||
SEARX_PACKAGES="${SEARX_PACKAGES_arch}"
|
SEARX_PACKAGES="${SEARX_PACKAGES_arch}"
|
||||||
BUILD_PACKAGES="${BUILD_PACKAGES_arch}"
|
BUILD_PACKAGES="${BUILD_PACKAGES_arch}"
|
||||||
APACHE_APT_PACKAGES="uwsgi"
|
APACHE_PACKAGES="uwsgi"
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
SEARX_PACKAGES="${SEARX_PACKAGES_fedora}"
|
SEARX_PACKAGES="${SEARX_PACKAGES_fedora}"
|
||||||
BUILD_PACKAGES="${BUILD_PACKAGES_fedora}"
|
BUILD_PACKAGES="${BUILD_PACKAGES_fedora}"
|
||||||
APACHE_APT_PACKAGES="uwsgi"
|
APACHE_PACKAGES="uwsgi"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -116,13 +116,13 @@ usage() {
|
||||||
usage::
|
usage::
|
||||||
|
|
||||||
$(basename "$0") shell
|
$(basename "$0") shell
|
||||||
$(basename "$0") install [all|user|searx-src|pyenv|uwsgi|apache|packages|buildhost]
|
$(basename "$0") install [all|user|searx-src|pyenv|uwsgi|packages|buildhost]
|
||||||
$(basename "$0") update [searx]
|
$(basename "$0") update [searx]
|
||||||
$(basename "$0") remove [all|user|pyenv|searx-src]
|
$(basename "$0") remove [all|user|pyenv|searx-src]
|
||||||
$(basename "$0") activate [service]
|
$(basename "$0") activate [service]
|
||||||
$(basename "$0") deactivate [service]
|
$(basename "$0") deactivate [service]
|
||||||
$(basename "$0") inspect [service]
|
$(basename "$0") inspect [service]
|
||||||
$(basename "$0") option [debug-on|debug-off]
|
$(basename "$0") option [debug-[on|off]|image-proxy-[on|off]|result-proxy <url> <key>]
|
||||||
$(basename "$0") apache [install|remove]
|
$(basename "$0") apache [install|remove]
|
||||||
|
|
||||||
shell
|
shell
|
||||||
|
@ -153,12 +153,25 @@ apache
|
||||||
searx settings: ${SEARX_SETTINGS_PATH}
|
searx settings: ${SEARX_SETTINGS_PATH}
|
||||||
|
|
||||||
If needed, set PUBLIC_URL of your WEB service in the '${DOT_CONFIG#"$REPO_ROOT/"}' file::
|
If needed, set PUBLIC_URL of your WEB service in the '${DOT_CONFIG#"$REPO_ROOT/"}' file::
|
||||||
|
|
||||||
PUBLIC_URL : ${PUBLIC_URL}
|
PUBLIC_URL : ${PUBLIC_URL}
|
||||||
SEARX_INSTANCE_NAME : ${SEARX_INSTANCE_NAME}
|
SEARX_INSTANCE_NAME : ${SEARX_INSTANCE_NAME}
|
||||||
SERVICE_USER : ${SERVICE_USER}
|
SERVICE_USER : ${SERVICE_USER}
|
||||||
|
SEARX_INTERNAL_HTTP : http://${SEARX_INTERNAL_HTTP}
|
||||||
EOF
|
EOF
|
||||||
|
if in_container; then
|
||||||
|
# searx is listening on 127.0.0.1 and not available from outside container
|
||||||
|
# in containers the service is listening on 0.0.0.0 (see lxc-searx.env)
|
||||||
|
echo -e "${_BBlack}HINT:${_creset} searx only listen on loopback device" \
|
||||||
|
"${_BBlack}inside${_creset} the container."
|
||||||
|
for ip in $(global_IPs) ; do
|
||||||
|
if [[ $ip =~ .*:.* ]]; then
|
||||||
|
echo " container (IPv6): [${ip#*|}]"
|
||||||
|
else
|
||||||
|
# IPv4:
|
||||||
|
echo " container (IPv4): ${ip#*|}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
[[ -n ${1} ]] && err_msg "$1"
|
[[ -n ${1} ]] && err_msg "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,8 +290,8 @@ install_all() {
|
||||||
test_local_searx
|
test_local_searx
|
||||||
wait_key
|
wait_key
|
||||||
install_searx_uwsgi
|
install_searx_uwsgi
|
||||||
if ! service_is_available "http://$SEARX_INTERNAL_URL"; then
|
if ! service_is_available "http://${SEARX_INTERNAL_HTTP}"; then
|
||||||
err_msg "URL http://$SEARX_INTERNAL_URL not available, check searx & uwsgi setup!"
|
err_msg "URL http://${SEARX_INTERNAL_HTTP} not available, check searx & uwsgi setup!"
|
||||||
fi
|
fi
|
||||||
if ask_yn "Do you want to inspect the installation?" Ny; then
|
if ask_yn "Do you want to inspect the installation?" Ny; then
|
||||||
inspect_service
|
inspect_service
|
||||||
|
@ -481,8 +494,8 @@ test_local_searx() {
|
||||||
rst_title "Testing searx instance localy" section
|
rst_title "Testing searx instance localy" section
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if service_is_available "http://$SEARX_INTERNAL_URL" &>/dev/null; then
|
if service_is_available "http://${SEARX_INTERNAL_HTTP}" &>/dev/null; then
|
||||||
err_msg "URL/port http://$SEARX_INTERNAL_URL is already in use, you"
|
err_msg "URL/port http://${SEARX_INTERNAL_HTTP} is already in use, you"
|
||||||
err_msg "should stop that service before starting local tests!"
|
err_msg "should stop that service before starting local tests!"
|
||||||
if ! ask_yn "Continue with local tests?"; then
|
if ! ask_yn "Continue with local tests?"; then
|
||||||
return
|
return
|
||||||
|
@ -494,7 +507,7 @@ export SEARX_SETTINGS_PATH="${SEARX_SETTINGS_PATH}"
|
||||||
cd ${SEARX_SRC}
|
cd ${SEARX_SRC}
|
||||||
timeout 10 python searx/webapp.py &
|
timeout 10 python searx/webapp.py &
|
||||||
sleep 3
|
sleep 3
|
||||||
curl --location --verbose --head --insecure $SEARX_INTERNAL_URL
|
curl --location --verbose --head --insecure $SEARX_INTERNAL_HTTP
|
||||||
EOF
|
EOF
|
||||||
sed -i -e "s/debug : True/debug : False/g" "$SEARX_SETTINGS_PATH"
|
sed -i -e "s/debug : True/debug : False/g" "$SEARX_SETTINGS_PATH"
|
||||||
}
|
}
|
||||||
|
@ -624,12 +637,10 @@ sourced ${DOT_CONFIG#"$REPO_ROOT/"} :
|
||||||
PUBLIC_URL : ${PUBLIC_URL}
|
PUBLIC_URL : ${PUBLIC_URL}
|
||||||
SEARX_URL_PATH : ${SEARX_URL_PATH}
|
SEARX_URL_PATH : ${SEARX_URL_PATH}
|
||||||
SEARX_INSTANCE_NAME : ${SEARX_INSTANCE_NAME}
|
SEARX_INSTANCE_NAME : ${SEARX_INSTANCE_NAME}
|
||||||
SEARX_INTERNAL_URL : ${SEARX_INTERNAL_URL}
|
SEARX_INTERNAL_HTTP : ${SEARX_INTERNAL_HTTP}
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
apache_is_installed && info_msg "Apache is installed."
|
|
||||||
|
|
||||||
if service_account_is_available "$SERVICE_USER"; then
|
if service_account_is_available "$SERVICE_USER"; then
|
||||||
info_msg "Service account $SERVICE_USER exists."
|
info_msg "Service account $SERVICE_USER exists."
|
||||||
else
|
else
|
||||||
|
@ -661,11 +672,11 @@ EOF
|
||||||
lxc_suite_info
|
lxc_suite_info
|
||||||
else
|
else
|
||||||
info_msg "public URL --> ${PUBLIC_URL}"
|
info_msg "public URL --> ${PUBLIC_URL}"
|
||||||
info_msg "internal URL --> http://${SEARX_INTERNAL_URL}"
|
info_msg "internal URL --> http://${SEARX_INTERNAL_HTTP}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! service_is_available "http://${SEARX_INTERNAL_URL}"; then
|
if ! service_is_available "http://${SEARX_INTERNAL_HTTP}"; then
|
||||||
err_msg "uWSGI app (service) at http://${SEARX_INTERNAL_URL} is not available!"
|
err_msg "uWSGI app (service) at http://${SEARX_INTERNAL_HTTP} is not available!"
|
||||||
MSG="${_Green}[${_BCyan}CTRL-C${_Green}] to stop or [${_BCyan}KEY${_Green}] to continue"\
|
MSG="${_Green}[${_BCyan}CTRL-C${_Green}] to stop or [${_BCyan}KEY${_Green}] to continue"\
|
||||||
wait_key
|
wait_key
|
||||||
fi
|
fi
|
||||||
|
@ -720,8 +731,8 @@ install_apache_site() {
|
||||||
rst_title "Install Apache site $APACHE_SEARX_SITE"
|
rst_title "Install Apache site $APACHE_SEARX_SITE"
|
||||||
|
|
||||||
rst_para "\
|
rst_para "\
|
||||||
This installs the searx uwsgi app as apache site. If your server ist public to
|
This installs the searx uwsgi app as apache site. If your server is public to
|
||||||
the internet you should instead use a reverse proxy (filtron) to block
|
the internet, you should instead use a reverse proxy (filtron) to block
|
||||||
excessively bot queries."
|
excessively bot queries."
|
||||||
|
|
||||||
! apache_is_installed && err_msg "Apache is not installed."
|
! apache_is_installed && err_msg "Apache is not installed."
|
||||||
|
@ -730,7 +741,7 @@ excessively bot queries."
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pkg_install "$APACHE_APT_PACKAGES"
|
pkg_install "$APACHE_PACKAGES"
|
||||||
a2enmod uwsgi
|
a2enmod uwsgi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -68,7 +68,7 @@ pythonpath = ${SEARX_SRC}
|
||||||
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
|
||||||
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
|
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
|
||||||
|
|
||||||
http = ${SEARX_INTERNAL_URL}
|
http = ${SEARX_INTERNAL_HTTP}
|
||||||
|
|
||||||
# using unix-sockets:
|
# using unix-sockets:
|
||||||
#
|
#
|
||||||
|
|
|
@ -67,7 +67,7 @@ pythonpath = ${SEARX_SRC}
|
||||||
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http
|
||||||
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
|
# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html
|
||||||
|
|
||||||
http = ${SEARX_INTERNAL_URL}
|
http = ${SEARX_INTERNAL_HTTP}
|
||||||
|
|
||||||
# using unix-sockets:
|
# using unix-sockets:
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in a new issue