diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 587a799..982da19 100755 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -45,8 +45,14 @@ docker compose run --rm --no-deps migrate # stream keeps the node API from exiting. echo "== recreating app services" docker compose stop edge -docker compose up -d --no-deps node-api web coordinator prober merger judge spotter spot-inspector -docker compose up -d --no-deps edge +if [ -e "$CACHE/paused" ]; then + # Paused for the night (~/bin/usenet-rebuild-pause.sh): the workers stay stopped, the resume starts the new build. + echo "== paused: coordinator, prober, merger, judge, spotter, spot-inspector and edge left stopped" + docker compose up -d --no-deps node-api web +else + docker compose up -d --no-deps node-api web coordinator prober merger judge spotter spot-inspector + docker compose up -d --no-deps edge +fi echo "$SHA $(date -Is)" >> "$ROOT/deployed.log" # The images this replaced (321 MB each; the root filesystem is the NVMe, with a 10 GB floor). docker image prune -f --filter label=com.docker.compose.project=usenet-rebuild >/dev/null diff --git a/deploy/usenet-rebuild-pause.sh b/deploy/usenet-rebuild-pause.sh new file mode 100755 index 0000000..e6617f0 --- /dev/null +++ b/deploy/usenet-rebuild-pause.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Installed as ~/bin/usenet-rebuild-pause.sh (by hand). Nightly (homelab crontab, 23:45): voyager 2's processing paused for the night; usenet-rebuild-resume.sh (07:45) +# starts it again. Postgres, web and node-api stay up. Takes the deploy lock, so it never runs during a CI deploy, and +# leaves .cache/paused, so a deploy in the night doesn't start the workers again. +cd /mnt/bulk/usenet-rebuild || exit 1 +exec 9>.cache/deploy.lock +flock 9 +touch .cache/paused +date "+%F %T pausing" +docker compose stop edge +docker compose stop coordinator prober merger judge spotter spot-inspector +docker compose ps --format "{{.Service}} {{.Status}}" diff --git a/deploy/usenet-rebuild-resume.sh b/deploy/usenet-rebuild-resume.sh new file mode 100755 index 0000000..32c8e14 --- /dev/null +++ b/deploy/usenet-rebuild-resume.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Installed as ~/bin/usenet-rebuild-resume.sh (by hand). Nightly (homelab crontab, 07:45): voyager 2's processing back after usenet-rebuild-pause.sh (23:45). Takes the +# deploy lock, like the pause. +cd /mnt/bulk/usenet-rebuild || exit 1 +exec 9>.cache/deploy.lock +flock 9 +rm -f .cache/paused +date "+%F %T resuming" +docker compose up -d --no-deps coordinator prober merger judge spotter spot-inspector +docker compose up -d --no-deps edge +docker compose ps --format "{{.Service}} {{.Status}}"