forked from finn/tinyboard
replace hardcoded hub references with prompts, defaults: oily.dad / armbian / hubkey
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
HUB_HOST=""
|
HUB_HOST=""
|
||||||
HUB_USER="armbian"
|
HUB_USER=""
|
||||||
ARMBIAN_HOME="/home/armbian"
|
ARMBIAN_HOME="/home/armbian"
|
||||||
SSH_DIR="$ARMBIAN_HOME/.ssh"
|
SSH_DIR="$ARMBIAN_HOME/.ssh"
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
@@ -44,6 +44,8 @@ header() { echo -e "\n${CYAN}═════════════════
|
|||||||
|
|
||||||
read -rp "Hub hostname [oily.dad]: " HUB_HOST
|
read -rp "Hub hostname [oily.dad]: " HUB_HOST
|
||||||
HUB_HOST="${HUB_HOST:-oily.dad}"
|
HUB_HOST="${HUB_HOST:-oily.dad}"
|
||||||
|
read -rp "Hub SSH user [armbian]: " HUB_USER
|
||||||
|
HUB_USER="${HUB_USER:-armbian}"
|
||||||
|
|
||||||
header "TinyBoard Spoke Setup"
|
header "TinyBoard Spoke Setup"
|
||||||
|
|
||||||
@@ -76,7 +78,8 @@ read -rp "Choose [1/2]: " KEY_CHOICE
|
|||||||
|
|
||||||
case "$KEY_CHOICE" in
|
case "$KEY_CHOICE" in
|
||||||
1)
|
1)
|
||||||
KEY_NAME="oilykey"
|
read -rp "Key name [hubkey]: " KEY_NAME
|
||||||
|
KEY_NAME="${KEY_NAME:-hubkey}"
|
||||||
KEY_PATH="$SSH_DIR/$KEY_NAME"
|
KEY_PATH="$SSH_DIR/$KEY_NAME"
|
||||||
mkdir -p "$SSH_DIR"
|
mkdir -p "$SSH_DIR"
|
||||||
chown armbian:armbian "$SSH_DIR"
|
chown armbian:armbian "$SSH_DIR"
|
||||||
@@ -102,8 +105,8 @@ case "$KEY_CHOICE" in
|
|||||||
read -rp "Press ENTER once the key has been added to ${HUB_HOST}..."
|
read -rp "Press ENTER once the key has been added to ${HUB_HOST}..."
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
read -rp "Enter a name for the key file (e.g. oilykey): " KEY_NAME
|
read -rp "Enter a name for the key file [hubkey]: " KEY_NAME
|
||||||
KEY_NAME="${KEY_NAME:-oilykey}"
|
KEY_NAME="${KEY_NAME:-hubkey}"
|
||||||
KEY_PATH="$SSH_DIR/$KEY_NAME"
|
KEY_PATH="$SSH_DIR/$KEY_NAME"
|
||||||
mkdir -p "$SSH_DIR"
|
mkdir -p "$SSH_DIR"
|
||||||
chown armbian:armbian "$SSH_DIR"
|
chown armbian:armbian "$SSH_DIR"
|
||||||
@@ -131,7 +134,7 @@ header "Testing SSH Connection"
|
|||||||
info "Testing connection to $HUB_HOST..."
|
info "Testing connection to $HUB_HOST..."
|
||||||
retry_or_abort \
|
retry_or_abort \
|
||||||
"sudo -u armbian ssh -i \"$KEY_PATH\" -o BatchMode=yes -o ConnectTimeout=10 \"$HUB_USER@$HUB_HOST\" exit" \
|
"sudo -u armbian ssh -i \"$KEY_PATH\" -o BatchMode=yes -o ConnectTimeout=10 \"$HUB_USER@$HUB_HOST\" exit" \
|
||||||
"SSH connection to $HUB_HOST failed. Check that finn added your public key."
|
"SSH connection to $HUB_HOST failed. Check that the hub owner added your public key."
|
||||||
|
|
||||||
header "Finding Available Tunnel Port"
|
header "Finding Available Tunnel Port"
|
||||||
info "Scanning for a free port on $HUB_HOST starting from $START_PORT..."
|
info "Scanning for a free port on $HUB_HOST starting from $START_PORT..."
|
||||||
@@ -147,14 +150,14 @@ for PORT in $(seq "$START_PORT" $((START_PORT + 20))); do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
[ -n "$TUNNEL_PORT" ] || die "Could not find a free port between $START_PORT and $((START_PORT + 20)). Ask finn to free up a port."
|
[ -n "$TUNNEL_PORT" ] || die "Could not find a free port between $START_PORT and $((START_PORT + 20)). Ask the hub owner to free up a port."
|
||||||
|
|
||||||
header "Configuring compose.yaml"
|
header "Configuring compose.yaml"
|
||||||
info "Setting port to $TUNNEL_PORT and key to $KEY_NAME..."
|
info "Setting port to $TUNNEL_PORT and key to $KEY_NAME..."
|
||||||
|
|
||||||
sed -i "s|-R [0-9]*:localhost:22|-R ${TUNNEL_PORT}:localhost:22|g" "$COMPOSE"
|
sed -i "s|-R [0-9]*:localhost:22|-R ${TUNNEL_PORT}:localhost:22|g" "$COMPOSE"
|
||||||
sed -i "s|-i /home/armbian/.ssh/[^ ]*|-i /home/armbian/.ssh/${KEY_NAME}|g" "$COMPOSE"
|
sed -i "s|-i /home/armbian/.ssh/[^ ]*|-i /home/armbian/.ssh/${KEY_NAME}|g" "$COMPOSE"
|
||||||
sed -i "s|/home/armbian/.ssh/oilykey[^:]*:/home/armbian/.ssh/oilykey[^:]*|${SSH_DIR}/${KEY_NAME}:${SSH_DIR}/${KEY_NAME}|g" "$COMPOSE"
|
sed -i "s|/home/armbian/.ssh/[^:]*:/home/armbian/.ssh/[^:]*|${SSH_DIR}/${KEY_NAME}:${SSH_DIR}/${KEY_NAME}|g" "$COMPOSE"
|
||||||
sed -i "s|container_name: spoke-autossh|container_name: ${SPOKE_NAME}-autossh|g" "$COMPOSE"
|
sed -i "s|container_name: spoke-autossh|container_name: ${SPOKE_NAME}-autossh|g" "$COMPOSE"
|
||||||
sed -i "s|container_name: spoke-syncthing|container_name: ${SPOKE_NAME}-syncthing|g" "$COMPOSE"
|
sed -i "s|container_name: spoke-syncthing|container_name: ${SPOKE_NAME}-syncthing|g" "$COMPOSE"
|
||||||
sed -i "s|hostname: spoke-syncthing|hostname: ${SPOKE_NAME}-syncthing|g" "$COMPOSE"
|
sed -i "s|hostname: spoke-syncthing|hostname: ${SPOKE_NAME}-syncthing|g" "$COMPOSE"
|
||||||
|
|||||||
Reference in New Issue
Block a user