@@ -19,6 +19,7 @@ HOST_PREFIX="${HOST_PREFIX:-searx}"
1919
2020# where all folders from HOST are mounted
2121LXC_SHARE_FOLDER="/share"
22+LXC_REPO_ROOT="${LXC_SHARE_FOLDER}/$(basename "${REPO_ROOT}")"
2223
2324TEST_IMAGES=(
2425 "$LINUXCONTAINERS_ORG_NAME:ubuntu/18.04" "ubu1804"
@@ -71,6 +72,7 @@ usage() {
7172usage::
7273
7374 $(basename "$0") build [containers]
75+ $(basename "$0") install [searx-suite]
7476 $(basename "$0") remove [containers|subordinate]
7577 $(basename "$0") [start|stop] [containers]
7678 $(basename "$0") inspect [info|config]
@@ -87,6 +89,8 @@ inspect
8789 :config: show config of all containers
8890cmd ...
8991 run commandline ... in all containers
92+install
93+ :searx-suite: install searx suite, includes morty & filtron
9094
9195all LXC containers:
9296 ${LOCAL_IMAGES[@]}
@@ -110,14 +114,24 @@ EOF
110114main() {
111115
112116 local exit_val
113−
114− if ! required_commands lxc; then
115− lxd_info
116− exit 42
117− fi
118−
119117 local _usage="unknown or missing $1 command $2"
120118
119+ case $1 in
120+ __install)
121+ sudo_or_exit
122+ case $2 in
123+ searx-suite) install_searx_suite ;;
124+ esac
125+ exit
126+ ;;
127+ *)
128+ if ! required_commands lxc; then
129+ lxd_info
130+ exit 42
131+ fi
132+ ;;
133+ esac
134+
121135 case $1 in
122136 --source-only) ;;
123137 -h|--help) usage; exit 0;;
@@ -161,6 +175,7 @@ main() {
161175 sudo_or_exit
162176 shift
163177 for i in "${LOCAL_IMAGES[@]}"; do
178+ exit_val=
164179 info_msg "[${_BBlue}${i}${_creset}] ${_BGreen}${*}${_creset}"
165180 lxc exec "${i}" -- "$@"
166181 exit_val=$?
@@ -171,11 +186,37 @@ main() {
171186 fi
172187 done
173188 ;;
189+ install)
190+ sudo_or_exit
191+ case $2 in
192+ searx-suite)
193+ for i in "${LOCAL_IMAGES[@]}"; do
194+ info_msg "[${_BBlue}${i}${_creset}] ${_BGreen}${LXC_REPO_ROOT}/utils/lxc.sh install $2${_creset}"
195+ lxc exec "${i}" -- "${LXC_REPO_ROOT}/utils/lxc.sh" __install "$2"
196+ done
197+ ;;
198+ *) usage "$_usage"; exit 42;;
199+ esac ;;
174200 *)
175201 usage "unknown or missing command $1"; exit 42;;
176202 esac
177203}
178204
205+install_searx_suite() {
206+ export FILTRON_API="0.0.0.0:4005"
207+ export FILTRON_LISTEN="0.0.0.0:4004"
208+ export MORTY_LISTEN="0.0.0.0:3000"
209+ FORCE_TIMEOUT=0 "${LXC_REPO_ROOT}/utils/searx.sh" install all
210+ FORCE_TIMEOUT=0 "${LXC_REPO_ROOT}/utils/morty.sh" install all
211+ FORCE_TIMEOUT=0 "${LXC_REPO_ROOT}/utils/filtron.sh" install all
212+ rst_title "[$(hostname)] searx-suite installation finished" part
213+ rst_para "IPs of the container ..."
214+ echo
215+ ip addr show | grep "inet\s*[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
216+ echo
217+}
218+
219+
179220build_instances() {
180221 rst_title "Build LXC instances"
181222
@@ -271,7 +312,7 @@ lxc_config_containers() {
271312 # https://lxd.readthedocs.io/en/latest/instances/#type-disk
272313 lxc config device add "$i" repo_share disk \
273314 source="${REPO_ROOT}" \
274− path="${LXC_SHARE_FOLDER}/$(basename "${REPO_ROOT}")" &>/dev/null
315+ path="${LXC_REPO_ROOT}" &>/dev/null
275316 # lxc config show "$i" && wait_key
276317 done
277318}