Something went wrong. Try again.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940#!/bin/bashset -euo pipefail
[[ $# -eq 2 && $1 == deploy-portal ]] || { echo "usage: deploy-portal <commit-sha>" >&2; exit 1; }tag=$2[[ $tag =~ ^[0-9a-f]{40,64}$ ]] || { echo "invalid commit SHA" >&2; exit 1; }
target=/var/www/build.vibecode.rodeoworkdir=$(mktemp -d /var/tmp/vibecode-portal.XXXXXX)cleanup() { rm -rf -- "$workdir"; }trap cleanup EXIT
gzip -dc > "$workdir/site.tar"while IFS= read -r entry; do [[ $entry == public/* && $entry != *../* && $entry != /* ]] || { echo "invalid archive entry: $entry" >&2 exit 1 }done < <(tar -tf "$workdir/site.tar")
tar -xf "$workdir/site.tar" -C "$workdir"test -f "$workdir/public/index.html"test -f "$workdir/public/style.css"if find "$workdir/public" -type l -print -quit | grep -q .; then echo "archive may not contain symbolic links" >&2 exit 1fi
install -d -m 0755 "$target"find "$target" -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +cp -a "$workdir/public/." "$target/"find "$target" -type d -exec chmod 0755 {} +find "$target" -type f -exec chmod 0644 {} +printf '%s\n' "$tag" > "$target/.deployed-sha"
caddy validate --config /etc/caddy/Caddyfilesystemctl reload caddycurl -fsS --max-time 5 http://127.0.0.1/ -H 'Host: build.vibecode.rodeo' >/dev/nullecho "deployed portal ${tag} at https://build.vibecode.rodeo"