From 53919e3d872681a9e7d4458baee60fd84633a4f5 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Fri, 10 Oct 2025 14:34:38 +0200 Subject: [PATCH] Fix. --- trixie/aptmark/hosting_digitalocean | 6 ++++ trixie/aptmark/server | 7 ++-- trixie/scripts/lib/constants_setup.sh | 1 + trixie/scripts/lib/ensure_packages_of_tags.sh | 4 ++- trixie/scripts/pull_ircplom_logs.sh | 2 +- trixie/scripts/setup_server.sh | 32 ++++++++++++------- 6 files changed, 35 insertions(+), 17 deletions(-) create mode 100644 trixie/aptmark/hosting_digitalocean create mode 100644 trixie/scripts/lib/constants_setup.sh diff --git a/trixie/aptmark/hosting_digitalocean b/trixie/aptmark/hosting_digitalocean new file mode 100644 index 0000000..afca4f3 --- /dev/null +++ b/trixie/aptmark/hosting_digitalocean @@ -0,0 +1,6 @@ +# specifically necessary for DigitalOcean vservers +# systemd-networkd-wait-online will have to timeout before starting caddy etc. if this not installed +netplan-generator +# no DNS resolution of hostnames if this missing +systemd-resolved +# diff --git a/trixie/aptmark/server b/trixie/aptmark/server index 2ae4900..c2a203a 100644 --- a/trixie/aptmark/server +++ b/trixie/aptmark/server @@ -6,9 +6,10 @@ nftables borgbackup # so every server can serve some webspace caddy -# necessary on _some_ vservers -net-tools -quota +# # necessary on _some_ vservers +# net-tools +# quota +# systemd-resolved # terminfo for ssh logins (replaces/includes former foot-terminfo) ncurses-term # diff --git a/trixie/scripts/lib/constants_setup.sh b/trixie/scripts/lib/constants_setup.sh new file mode 100644 index 0000000..0fab5b2 --- /dev/null +++ b/trixie/scripts/lib/constants_setup.sh @@ -0,0 +1 @@ +PATH_REL_DIR_APTMARK=../aptmark diff --git a/trixie/scripts/lib/ensure_packages_of_tags.sh b/trixie/scripts/lib/ensure_packages_of_tags.sh index 72d8a15..1a21e79 100644 --- a/trixie/scripts/lib/ensure_packages_of_tags.sh +++ b/trixie/scripts/lib/ensure_packages_of_tags.sh @@ -1,4 +1,5 @@ . lib/apt_digested.sh +. lib/constants_setup.sh # PATH_REL_DIR_APTMARK . lib/prefixed_msg.sh ensure_packages_of_tags() { @@ -10,6 +11,7 @@ ensure_packages_of_tags() { prefixed_msg_no_nl "For tag '${TAG}', " local TEST TEST=$(echo "${TAG}" | cut -d':' -f1) + # TODO get rid of this one if [ "${TEST}" = 'keep_if_installed' ]; then local PACKAGE PACKAGE=$(echo "${TAG}" | cut -d':' -f2) @@ -22,7 +24,7 @@ ensure_packages_of_tags() { fi continue fi - local PATH_APTMARK_TAG="../aptmark/${TAG}" + local PATH_APTMARK_TAG="${PATH_REL_DIR_APTMARK}/${TAG}" if [ ! -f "${PATH_APTMARK_TAG}" ]; then echo 'no file, ignoring.' continue diff --git a/trixie/scripts/pull_ircplom_logs.sh b/trixie/scripts/pull_ircplom_logs.sh index 11d8dcd..91f58f5 100755 --- a/trixie/scripts/pull_ircplom_logs.sh +++ b/trixie/scripts/pull_ircplom_logs.sh @@ -22,7 +22,7 @@ SERVER="$1" PATH_TEMPDIR=$(mktemp -d) prefixed_msg "Set up temporary working directory at ${PATH_TEMPDIR} …" -RM_TEMPDIR="rm -rvf ${PATH_TEMPDIR}" +RM_TEMPDIR="rm -rf ${PATH_TEMPDIR}" trapp "${RM_TEMPDIR}" cd "${PATH_TEMPDIR}" diff --git a/trixie/scripts/setup_server.sh b/trixie/scripts/setup_server.sh index 09545d1..d030bfb 100755 --- a/trixie/scripts/setup_server.sh +++ b/trixie/scripts/setup_server.sh @@ -1,8 +1,10 @@ #!/bin/sh set -e -cd $(dirname "$0") +ROOT=$(dirname "$0") +cd "${ROOT}" . lib/apt_digested.sh . lib/constants_etc.sh # PATH_ETC +. lib/constants_setup.sh # PATH_REL_DIR_APTMARK . lib/constants_ssh.sh # PATH_REL_SSH, PATH_USER_SSH . lib/constants_user.sh # USERNAME . lib/copy_dirtrees_of_tags.sh @@ -14,24 +16,30 @@ cd $(dirname "$0") prefixed_msg_init prefixed_msg 'starting (setting up basics of standard server)' -INSTALL_TAGS='all server user keep_if_installed:systemd-resolved' - -expect_n_args 2 3 'CADDY_PASSWORD, HOSTNAME, [FQDN]' $@ -CADDY_PASSWORD="$1" -HOSTNAME="$2" -FQDN="$3" - +INSTALL_TAGS='all server user' PATH_BORG_HOME=/home/borg PATH_CADDYFILE="${PATH_ETC}/caddy/Caddyfile" PATH_DUMP='/var/www/dump' +expect_n_args 3 4 'HOSTING_SERVICE CADDY_PASSWORD HOSTNAME [FQDN]' "$@" +HOSTING_APTMARK_TAG="hosting_$1" +CADDY_PASSWORD="$2" +HOSTNAME="$3" +FQDN="$4" +if [ -f "${PATH_REL_DIR_APTMARK}/${HOSTING_APTMARK_TAG}" ]; then + INSTALL_TAGS="${INSTALL_TAGS} ${HOSTING_SERVICE}" +else + abort 'Unrecognized hosting service.' +fi + prefixed_msg_no_nl 'Determining external IP …' for _CANDIDATE in $(hostname -I); do - _START=$(echo ${_CANDIDATE} | cut -d'.' -f1) - if [ "$(echo -n ${_START} | wc -c)" -gt 3 ]; then # ignore IPv6 + _START=$(echo "${_CANDIDATE}" | cut -d'.' -f1) + _N_START_CHARS=$(echo -n "${_START}" | wc -c) + if [ "${_N_START_CHARS}" -gt 3 ]; then # ignore IPv6 continue fi - if [ "${_START}" = "127" -o "${_START}" = "192" -o "${_START}" = "172" ]; then + if [ "${_START}" = "127" ] || [ "${_START}" = "192" ] || [ "${_START}" = "172" ]; then continue fi EXTERNAL_IP="${_CANDIDATE}" @@ -39,7 +47,7 @@ for _CANDIDATE in $(hostname -I); do done echo " it's: ${EXTERNAL_IP}" -if [ ! -z "${FQDN}" ]; then +if [ -n "${FQDN}" ]; then prefixed_msg "Ensuring provided FQDN ${FQDN} maps to it …" IP_BY_DNS=$(getent ahostsv4 "${FQDN}" | head -1 | cut -d' ' -f1) if [ ! "${IP_BY_DNS}" = "${EXTERNAL_IP}" ]; then -- 2.30.2