Proxmox worker, uptime, backup, tagged deploy

This commit is contained in:
George Lambert 2026-09-11 23:36:07 -04:00
commit d6a2391be0
6 changed files with 96 additions and 0 deletions

54
scripts/deploy.sh Executable file
View file

@ -0,0 +1,54 @@
#!/usr/bin/env bash
# host-deps → git fetch → checkout ref → npm ci → npm rebuild
# Does not start processes; restart with fleet/keep after.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
BOOT="${VERAE_BOOTSTRAP:-$ROOT/../verae-bootstrap}"
SRC="${VERAE_SRC:-$HOME/verae-src}"
REF="${1:-}"
TYPE="${DEPLOY_TYPE:-}"
if [[ -z "$REF" ]]; then
echo "usage: deploy.sh <tag-or-branch> # e.g. deploy.sh v2026-09-12 or main" >&2
exit 1
fi
if [[ -x "$BOOT/scripts/host-deps.sh" ]]; then
if [[ -n "$TYPE" ]]; then
bash "$BOOT/scripts/host-deps.sh" --type "$TYPE"
else
bash "$BOOT/scripts/host-deps.sh"
fi
fi
LIST="$BOOT/repos.txt"
[[ -n "$TYPE" && -f "$BOOT/types/$TYPE/repos.txt" ]] && LIST="$BOOT/types/$TYPE/repos.txt"
[[ -f "$LIST" ]] || { echo "no repo list $LIST" >&2; exit 1; }
export GIT_SSH_COMMAND="${GIT_SSH_COMMAND:-ssh -o StrictHostKeyChecking=accept-new -p 2223}"
failed=0
while read -r name; do
[[ -z "$name" || "$name" == \#* ]] && continue
dir="$SRC/$name"
if [[ ! -d "$dir/.git" ]]; then
echo "skip not cloned $name"
continue
fi
echo "deploy $name @ $REF"
git -C "$dir" fetch --prune origin
if ! git -C "$dir" checkout -q "$REF" 2>/dev/null; then
echo " no ref $REF, staying on $(git -C "$dir" rev-parse --abbrev-ref HEAD)"
fi
if [[ -f "$dir/package.json" ]]; then
(
cd "$dir"
if [[ -f package-lock.json ]]; then
npm ci --no-audit --no-fund || npm install --no-audit --no-fund
else
npm install --no-audit --no-fund
fi
npm rebuild --no-audit --no-fund >/dev/null || true
) || { echo " npm failed $name"; failed=1; }
fi
git -C "$dir" rev-parse --short HEAD >"$dir/.deployed-ref"
echo " $(cat "$dir/.deployed-ref")"
done < "$LIST"
echo "$REF $(date -u +%Y-%m-%dT%H:%M:%SZ)" >"$SRC/.deployed"
[[ $failed -eq 0 ]] || exit 1
echo "deployed $REF under $SRC — restart keep/fleet yourself"

6
scripts/test.sh Executable file
View file

@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
bash -n "$ROOT/scripts/deploy.sh"
grep -q host-deps.sh "$ROOT/scripts/deploy.sh"
echo OK