home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 10 Oct 2025 12:34:38 +0000 (14:34 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 10 Oct 2025 12:34:38 +0000 (14:34 +0200)
trixie/aptmark/hosting_digitalocean [new file with mode: 0644]
trixie/aptmark/server
trixie/scripts/lib/constants_setup.sh [new file with mode: 0644]
trixie/scripts/lib/ensure_packages_of_tags.sh
trixie/scripts/pull_ircplom_logs.sh
trixie/scripts/setup_server.sh

diff --git a/trixie/aptmark/hosting_digitalocean b/trixie/aptmark/hosting_digitalocean
new file mode 100644 (file)
index 0000000..afca4f3
--- /dev/null
@@ -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
+#
index 2ae49008b25c79730327ce17f3a4f3aeba20b91b..c2a203a72776e661b26cf20c6560e97432dc9a3b 100644 (file)
@@ -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 (file)
index 0000000..0fab5b2
--- /dev/null
@@ -0,0 +1 @@
+PATH_REL_DIR_APTMARK=../aptmark
index 72d8a15340e7ba8fb74d1c7d9d6c8a4f949f5541..1a21e7990d3a19efae61ed999af3ce41b89789ef 100644 (file)
@@ -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
index 11d8dcd3b345c8b338b2049e79f38d40c179f19d..91f58f58b603f232ce7afd2335ce29599321dc3e 100755 (executable)
@@ -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}"
 
index 09545d1e3503376caa64507ada36ce4a76e7ba7d..d030bfbc6e3e8916b8c32534be5e7d3fe94579c8 100755 (executable)
@@ -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