repositories / bugabinga.net
bugabinga.net
personal infrastructure for bugabinga!
owned by admin
scripts/local/deploy-toad.sh
Raw#!/usr/bin/env bash
set -euo pipefail
[[ "$#" -eq 9 ]] || {
echo "usage: deploy-toad.sh HOST PORT PUBLIC_PROXY_USER QUADLETS ENROLLMENT GATEWAY_CONFIG INGRESS_ENV THEME_CSS CONTEXT" >&2
exit 2
}
host="$1"
port="$2"
public_proxy_user="$3"
quadlets="$4"
enrollment="$5"
gateway_config="$6"
ingress_env="$7"
theme_css="$8"
context="$9"
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
[[ "${public_proxy_user}" =~ ^[a-z_][a-z0-9_-]*$ ]] || {
echo "invalid public proxy user" >&2
exit 2
}
[[ -d "${quadlets}" && -f "${enrollment}" && -f "${gateway_config}" && -f "${ingress_env}" && -f "${theme_css}" && -d "${context}" ]] || {
echo "invalid toad deployment input" >&2
exit 2
}
"${repo_root}/scripts/local/klops.sh" run-remote \
"${host}" "${port}" root "${context}/deploy/setup-user.sh" "${public_proxy_user}"
"${repo_root}/scripts/local/build-remote-image.sh" \
"${host}" "${port}" toad localhost/bugabinga-toad:latest "${context}"
"${repo_root}/scripts/local/build-remote-image.sh" \
"${host}" "${port}" toad localhost/bugabinga-toad-ingress:latest "${context}/gateway"
scp -P "${port}" "${quadlets}"/* "root@${host}:/home/toad/.config/containers/systemd/"
sleep 2
scp -P "${port}" "${enrollment}" "root@${host}:/data/toad/enrollment.json"
sleep 2
scp -P "${port}" "${gateway_config}" "root@${host}:/data/toad/gateway.Caddyfile"
sleep 2
scp -P "${port}" "${ingress_env}" "root@${host}:/data/toad/ingress.env"
sleep 2
scp -P "${port}" "${theme_css}" "root@${host}:/data/toad/nugu.css"
sleep 2
"${repo_root}/scripts/local/klops.sh" run-remote \
"${host}" "${port}" root "${context}/deploy/start.sh"