summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2020-02-26 19:07:55 +0100
committerMarkus Heiser <markus.heiser@darmarit.de>2020-02-26 19:07:55 +0100
commitaf6acd3417bf53c151b9ba6068186c1e472a2776 (patch)
treeee77e2c18fec10fe71df1494743fda7f586f6bff /utils
parentd5917cc029e2736b11412a570470c666af093ec9 (diff)
downloadsearxng-af6acd3417bf53c151b9ba6068186c1e472a2776.tar.gz
searxng-af6acd3417bf53c151b9ba6068186c1e472a2776.zip
LXC: install searx-suite installs searx, filtron & morty on all containers
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils')
-rwxr-xr-xutils/filtron.sh3
-rwxr-xr-xutils/lib.sh9
-rwxr-xr-xutils/lxc.sh55
-rwxr-xr-xutils/morty.sh3
-rwxr-xr-xutils/searx.sh22
-rw-r--r--utils/templates/etc/uwsgi/apps-archlinux/searx.ini2
6 files changed, 74 insertions, 20 deletions
diff --git a/utils/filtron.sh b/utils/filtron.sh
index ba284787e..56b27dc78 100755
--- a/utils/filtron.sh
+++ b/utils/filtron.sh
@@ -204,7 +204,7 @@ install_all() {
install_apache_site
fi
fi
- if ask_yn "Do you want to inspect the installation?" Yn; then
+ if ask_yn "Do you want to inspect the installation?" Ny; then
inspect_service
fi
@@ -253,7 +253,6 @@ grep -qFs -- 'source $GO_ENV' ~/.profile || echo 'source $GO_ENV' >> ~/.profile
EOF
}
-
filtron_is_installed() {
[[ -f $SERVICE_HOME/go-apps/bin/filtron ]]
}
diff --git a/utils/lib.sh b/utils/lib.sh
index 39b9134d0..aeb38e150 100755
--- a/utils/lib.sh
+++ b/utils/lib.sh
@@ -290,6 +290,15 @@ cache_download() {
fi
}
+backup_file() {
+
+ # usage: backup_file /path/to/file.foo
+
+ local stamp=$(date +"_%Y%m%d_%H%M%S")
+ info_msg "create backup: ${1}${stamp}"
+ cp -a "${1}" "${1}${stamp}"
+}
+
choose_one() {
# usage:
diff --git a/utils/lxc.sh b/utils/lxc.sh
index 502f25366..58528d591 100755
--- a/utils/lxc.sh
+++ b/utils/lxc.sh
@@ -19,6 +19,7 @@ HOST_PREFIX="${HOST_PREFIX:-searx}"
# where all folders from HOST are mounted
LXC_SHARE_FOLDER="/share"
+LXC_REPO_ROOT="${LXC_SHARE_FOLDER}/$(basename "${REPO_ROOT}")"
TEST_IMAGES=(
"$LINUXCONTAINERS_ORG_NAME:ubuntu/18.04" "ubu1804"
@@ -71,6 +72,7 @@ usage() {
usage::
$(basename "$0") build [containers]
+ $(basename "$0") install [searx-suite]
$(basename "$0") remove [containers|subordinate]
$(basename "$0") [start|stop] [containers]
$(basename "$0") inspect [info|config]
@@ -87,6 +89,8 @@ inspect
:config: show config of all containers
cmd ...
run commandline ... in all containers
+install
+ :searx-suite: install searx suite, includes morty & filtron
all LXC containers:
${LOCAL_IMAGES[@]}
@@ -110,15 +114,25 @@ EOF
main() {
local exit_val
-
- if ! required_commands lxc; then
- lxd_info
- exit 42
- fi
-
local _usage="unknown or missing $1 command $2"
case $1 in
+ __install)
+ sudo_or_exit
+ case $2 in
+ searx-suite) install_searx_suite ;;
+ esac
+ exit
+ ;;
+ *)
+ if ! required_commands lxc; then
+ lxd_info
+ exit 42
+ fi
+ ;;
+ esac
+
+ case $1 in
--source-only) ;;
-h|--help) usage; exit 0;;
@@ -161,6 +175,7 @@ main() {
sudo_or_exit
shift
for i in "${LOCAL_IMAGES[@]}"; do
+ exit_val=
info_msg "[${_BBlue}${i}${_creset}] ${_BGreen}${*}${_creset}"
lxc exec "${i}" -- "$@"
exit_val=$?
@@ -171,11 +186,37 @@ main() {
fi
done
;;
+ install)
+ sudo_or_exit
+ case $2 in
+ searx-suite)
+ for i in "${LOCAL_IMAGES[@]}"; do
+ info_msg "[${_BBlue}${i}${_creset}] ${_BGreen}${LXC_REPO_ROOT}/utils/lxc.sh install $2${_creset}"
+ lxc exec "${i}" -- "${LXC_REPO_ROOT}/utils/lxc.sh" __install "$2"
+ done
+ ;;
+ *) usage "$_usage"; exit 42;;
+ esac ;;
*)
usage "unknown or missing command $1"; exit 42;;
esac
}
+install_searx_suite() {
+ export FILTRON_API="0.0.0.0:4005"
+ export FILTRON_LISTEN="0.0.0.0:4004"
+ export MORTY_LISTEN="0.0.0.0:3000"
+ FORCE_TIMEOUT=0 "${LXC_REPO_ROOT}/utils/searx.sh" install all
+ FORCE_TIMEOUT=0 "${LXC_REPO_ROOT}/utils/morty.sh" install all
+ FORCE_TIMEOUT=0 "${LXC_REPO_ROOT}/utils/filtron.sh" install all
+ rst_title "[$(hostname)] searx-suite installation finished" part
+ rst_para "IPs of the container ..."
+ echo
+ ip addr show | grep "inet\s*[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
+ echo
+}
+
+
build_instances() {
rst_title "Build LXC instances"
@@ -271,7 +312,7 @@ lxc_config_containers() {
# https://lxd.readthedocs.io/en/latest/instances/#type-disk
lxc config device add "$i" repo_share disk \
source="${REPO_ROOT}" \
- path="${LXC_SHARE_FOLDER}/$(basename "${REPO_ROOT}")" &>/dev/null
+ path="${LXC_REPO_ROOT}" &>/dev/null
# lxc config show "$i" && wait_key
done
}
diff --git a/utils/morty.sh b/utils/morty.sh
index 1ce15608f..fcc9dc728 100755
--- a/utils/morty.sh
+++ b/utils/morty.sh
@@ -207,7 +207,7 @@ install_all() {
install_apache_site
fi
fi
- if ask_yn "Do you want to inspect the installation?" Yn; then
+ if ask_yn "Do you want to inspect the installation?" Ny; then
inspect_service
fi
@@ -408,6 +408,7 @@ This removes apache site ${APACHE_MORTY_SITE}."
apache_remove_site "$APACHE_MORTY_SITE"
}
+
# ----------------------------------------------------------------------------
main "$@"
# ----------------------------------------------------------------------------
diff --git a/utils/searx.sh b/utils/searx.sh
index c6f58b6a9..270c30ace 100755
--- a/utils/searx.sh
+++ b/utils/searx.sh
@@ -43,9 +43,6 @@ case $DIST_ID in
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev "
;;
arch) # pacman packages
- # FIXME:
- # - /usr/lib/uwsgi/http_plugin.so: cannot open shared object file: No such file or directory !!!
- # - /usr/lib/uwsgi/systemd_logger_plugin.so: cannot open shared object file: No such file or directory !!!
SEARX_PACKAGES="\
python python-pip python-lxml python-babel \
uwsgi uwsgi-plugin-python \
@@ -233,7 +230,7 @@ install_all() {
if ! service_is_available "http://$SEARX_INTERNAL_URL"; then
err_msg "URL http://$SEARX_INTERNAL_URL not available, check searx & uwsgi setup!"
fi
- if ask_yn "Do you want to inspect the installation?" Yn; then
+ if ask_yn "Do you want to inspect the installation?" Ny; then
inspect_service
fi
}
@@ -331,19 +328,26 @@ install_settings() {
return
fi
- rst_para "Diff between origin's setting file (-) and current (+):"
+ rst_para "Diff between origin's setting file (+) and current (-):"
echo
- $DIFF_CMD "${SEARX_SRC}/searx/settings.yml" "${SEARX_SETTINGS_PATH}"
+ $DIFF_CMD "${SEARX_SETTINGS_PATH}" "${SEARX_SRC}/searx/settings.yml"
local action
choose_one action "What should happen to the settings file? " \
- "keep new configuration" \
+ "keep configuration unchanged" \
+ "use origin settings" \
"start interactiv shell"
case $action in
- "keep new configuration")
- info_msg "continue using new settings file"
+ "keep configuration unchanged")
+ info_msg "leave settings file unchanged"
+ ;;
+ "use origin settings")
+ backup_file "${SEARX_SETTINGS_PATH}"
+ info_msg "install origin settings"
+ cp "${SEARX_SRC}/searx/settings.yml" "${SEARX_SETTINGS_PATH}"
;;
"start interactiv shell")
+ backup_file "${SEARX_SETTINGS_PATH}"
echo -e "// exit with [${_BCyan}CTRL-D${_creset}]"
sudo -H -i
rst_para 'Diff between new setting file (-) and current (+):'
diff --git a/utils/templates/etc/uwsgi/apps-archlinux/searx.ini b/utils/templates/etc/uwsgi/apps-archlinux/searx.ini
index 08873cf0f..78ad50443 100644
--- a/utils/templates/etc/uwsgi/apps-archlinux/searx.ini
+++ b/utils/templates/etc/uwsgi/apps-archlinux/searx.ini
@@ -32,7 +32,7 @@ master = true
lazy-apps = true
# load uWSGI plugins
-plugin = python,http,systemd_logger
+plugin = python
# By default the Python plugin does not initialize the GIL. This means your
# app-generated threads will not run. If you need threads, remember to enable