summaryrefslogtreecommitdiff
path: root/utils/lxc-searx.env
blob: 2a3fdf37b3efe3c5c0356b3b27c8678e9037e381 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- 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
# ----------------------------------------------------------------------------

lxc_set_suite_env() {
    # name of https://images.linuxcontainers.org
    export LINUXCONTAINERS_ORG_NAME="${LINUXCONTAINERS_ORG_NAME:-images}"
    export LXC_HOST_PREFIX="${LXC_HOST_PREFIX:-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/19.10"  "ubu1910" # July 2020
        "$LINUXCONTAINERS_ORG_NAME:ubuntu/20.04"  "ubu2004" # future (EOL 2030)

        # 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"
    )
    export FILTRON_API="0.0.0.0:4005"
    export FILTRON_LISTEN="0.0.0.0:4004"
    export MORTY_LISTEN="0.0.0.0:3000"
}

# shellcheck disable=SC2034
LXC_SUITE_INSTALL_INFO="suite includes searx, morty & filtron"
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:
                info_msg "(${ip%|*}) filtron:    http://${ip#*|}:4004/"
                info_msg "(${ip%|*}) morty:      http://${ip#*|}:3000/"
                info_msg "(${ip%|*}) docs-live:  http://${ip#*|}:8080/"
            fi
        done
    )
}