Commit 4216b7c0eb23
Changed files (1)
alpine
alpine/deploy.sh
@@ -6,6 +6,8 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
HOST="${1:?Usage: $0 <hostname> [update|flash]}"
ACTION="${2:-update}"
+DOMAIN="${DEPLOY_DOMAIN:-.vpn}"
+TARGET="root@${HOST}${DOMAIN}"
IMAGE_DIR="$SCRIPT_DIR/images/$HOST"
if [ ! -d "$IMAGE_DIR" ]; then
@@ -22,24 +24,24 @@ case "$ACTION" in
[[ $REPLY =~ ^[Yy]$ ]] || exit 0
# Mount boot partition (diskless Alpine doesn't mount it by default)
- ssh "root@${HOST}.vpn" "mkdir -p /boot && mount /dev/mmcblk0p1 /boot 2>/dev/null || true"
+ ssh "${TARGET}" "mkdir -p /boot && mount /dev/mmcblk0p1 /boot 2>/dev/null || true"
# Backup current files (A/B rollback) — move instead of copy to
# free space before uploading the new image
- ssh "root@${HOST}.vpn" "mv /boot/initramfs /boot/initramfs.prev 2>/dev/null || true"
- ssh "root@${HOST}.vpn" "mv /boot/vmlinuz-rpi /boot/vmlinuz-rpi.prev 2>/dev/null || true"
+ ssh "${TARGET}" "mv /boot/initramfs /boot/initramfs.prev 2>/dev/null || true"
+ ssh "${TARGET}" "mv /boot/vmlinuz-rpi /boot/vmlinuz-rpi.prev 2>/dev/null || true"
# Deploy new files
- rsync -Pv "$IMAGE_DIR/boot/initramfs" "root@${HOST}.vpn:/boot/initramfs"
- rsync -Pv "$IMAGE_DIR/boot/vmlinuz-rpi" "root@${HOST}.vpn:/boot/vmlinuz-rpi" 2>/dev/null || true
+ rsync -Pv "$IMAGE_DIR/boot/initramfs" "${TARGET}:/boot/initramfs"
+ rsync -Pv "$IMAGE_DIR/boot/vmlinuz-rpi" "${TARGET}:/boot/vmlinuz-rpi" 2>/dev/null || true
# Unmount boot partition
- ssh "root@${HOST}.vpn" "umount /boot"
+ ssh "${TARGET}" "umount /boot"
echo "==> Deployed. Reboot $HOST to activate:"
- echo " ssh root@${HOST}.vpn reboot"
+ echo " ssh ${TARGET} reboot"
echo ""
- echo " To rollback: ssh root@${HOST}.vpn"
+ echo " To rollback: ssh ${TARGET}"
echo " mount -o remount,rw /boot"
echo " mv /boot/initramfs.prev /boot/initramfs"
echo " reboot"