| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | # -*- coding: utf-8; mode: sh indent-tabs-mode: nil -*-# SPDX-License-Identifier: AGPL-3.0-or-later# shellcheck shell=bash# This file is a setup of a LXC suite.  It is sourced from different context, do# not manipulate the environment directly, implement functions and manipulate# environment only is subshells!# ----------------------------------------------------------------------------# config# ----------------------------------------------------------------------------# shellcheck disable=SC2034LXC_SUITE_NAME="searx"lxc_set_suite_env() {    # name of https://images.linuxcontainers.org    export LINUXCONTAINERS_ORG_NAME="${LINUXCONTAINERS_ORG_NAME:-images}"    export LXC_HOST_PREFIX="${LXC_SUITE_NAME:-searx}"    export LXC_SUITE=(        # to disable containers, comment out lines ..        # end of standard support see https://wiki.ubuntu.com/Releases        "$LINUXCONTAINERS_ORG_NAME:ubuntu/16.04"  "ubu1604" # April 2021        "$LINUXCONTAINERS_ORG_NAME:ubuntu/18.04"  "ubu1804" # April 2023        "$LINUXCONTAINERS_ORG_NAME:ubuntu/20.04"  "ubu2004" # April 2025        "$LINUXCONTAINERS_ORG_NAME:ubuntu/20.10"  "ubu2010" # July 2021        # EOL see https://fedoraproject.org/wiki/Releases        "$LINUXCONTAINERS_ORG_NAME:fedora/31"     "fedora31"        # rolling releases see https://www.archlinux.org/releng/releases/        "$LINUXCONTAINERS_ORG_NAME:archlinux"     "archlinux"        # EOL 30 June 2024        "$LINUXCONTAINERS_ORG_NAME:centos/7"      "centos7"    )    PUBLIC_URL="${PUBLIC_URL:-http://$(uname -n)/searx}"    if in_container; then        # container hostnames do not have a DNS entry: use primary IP!        PUBLIC_URL="http://$(primary_ip)/searx"        # make GUEST's services public to the HOST        FILTRON_API="0.0.0.0:4005"        FILTRON_LISTEN="0.0.0.0:4004"        MORTY_LISTEN="0.0.0.0:3000"        # export LXC specific environment        export PUBLIC_URL FILTRON_API FILTRON_LISTEN MORTY_LISTEN    fi}lxc_suite_install_info() {    (        lxc_set_suite_env        cat <<EOFLXC suite: ${LXC_SUITE_NAME} --> ${PUBLIC_URL}  suite includes searx, morty & filtronsuite images:$(echo "  ${LOCAL_IMAGES[*]}" | $FMT)suite containers:$(echo "  ${CONTAINERS[*]}" | $FMT)EOF    )    }lxc_suite_install() {    (        lxc_set_suite_env        FORCE_TIMEOUT=0        export FORCE_TIMEOUT        "${LXC_REPO_ROOT}/utils/searx.sh"   install all        "${LXC_REPO_ROOT}/utils/morty.sh"   install all        "${LXC_REPO_ROOT}/utils/filtron.sh" install all        rst_title "suite installation finished ($(hostname))" part        lxc_suite_info        echo    )}lxc_suite_info() {    (        lxc_set_suite_env        for ip in $(global_IPs) ; do            if [[ $ip =~ .*:.* ]]; then                info_msg "(${ip%|*}) IPv6:       http://[${ip#*|}]"            else                # IPv4:                # shellcheck disable=SC2034,SC2031                info_msg "(${ip%|*}) filtron:    http://${ip#*|}:4004/ $PUBLIC_URL"                info_msg "(${ip%|*}) morty:      http://${ip#*|}:3000/ $PUBLIC_URL_MORTY"                info_msg "(${ip%|*}) docs-live:  http://${ip#*|}:8080/"            fi        done    )}
 |