Commit 4216b7c0eb23

Vincent Demeester <vincent@sbr.pm>
2026-08-12 10:41:24
feat(alpine): configurable deploy domain via DEPLOY_DOMAIN
Defaults to .vpn, override with e.g. DEPLOY_DOMAIN=.home for hosts not reachable via WireGuard.
1 parent 42bb3a7
Changed files (1)
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"