Skip to content

Commit bb7499c

Browse files
qfiberclaude
andcommitted
feat(install): make backups optional via INSTALL_BACKUPS prompt
Adds top-level y/n gate before the B2 prompt block in 00-base.sh. When INSTALL_BACKUPS=no: - 50-backups.sh exits 0 immediately (and removes any previously installed /usr/local/bin/backup.sh + /etc/cron.d/serverdeploy-backup so toggling off actually uninstalls) - No restic password file generated - No nightly cron GeoIP was already optional (GEOIP_ENABLED=no path was already implemented in 45-geoip.sh, monitoring guards on GEOIP_ENABLED, and 10-caddy.sh writes a no-op (geoblock) placeholder so 'import geoblock' in site files keeps working) — no changes needed there. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 36e88c0 commit bb7499c

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

bootstrap/00-base.sh

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -288,15 +288,20 @@ else
288288
"RU,CN,BY,AU,IN,NG,KP"
289289
fi
290290

291-
# ---- Backblaze B2 ----
291+
# ---- Backups (restic → Backblaze B2) ----
292292
echo
293-
info "Backblaze B2 backups (leave empty to configure later)"
294-
prompt B2_BUCKET "B2 bucket name" ""
293+
info "Nightly backups (restic → Backblaze B2): encrypted, 7 daily + 12 monthly snapshots."
294+
prompt_yes_no INSTALL_BACKUPS "Install backups?" "y"
295+
B2_BUCKET=""
295296
B2_ACCOUNT_ID=""
296297
B2_ACCOUNT_KEY=""
297-
if [[ -n "${B2_BUCKET}" ]]; then
298-
prompt_required B2_ACCOUNT_ID "B2 application key ID"
299-
prompt_secret B2_ACCOUNT_KEY "B2 application key"
298+
if [[ "${INSTALL_BACKUPS}" == "yes" ]]; then
299+
info "B2 credentials (leave bucket empty to install the backup script now and add creds later)"
300+
prompt B2_BUCKET "B2 bucket name" ""
301+
if [[ -n "${B2_BUCKET}" ]]; then
302+
prompt_required B2_ACCOUNT_ID "B2 application key ID"
303+
prompt_secret B2_ACCOUNT_KEY "B2 application key"
304+
fi
300305
fi
301306

302307
echo
@@ -397,6 +402,7 @@ PMA_HOST="${PMA_HOST}"
397402
PGA_HOST="${PGA_HOST}"
398403
399404
# === Backups (Backblaze B2) ===
405+
INSTALL_BACKUPS="${INSTALL_BACKUPS}"
400406
B2_ACCOUNT_ID="${B2_ACCOUNT_ID}"
401407
B2_ACCOUNT_KEY="${B2_ACCOUNT_KEY}"
402408
B2_BUCKET="${B2_BUCKET}"

bootstrap/50-backups.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ source "${REPO_DIR}/lib/common.sh"
1717
require_root
1818
load_config
1919

20+
if [[ "${INSTALL_BACKUPS:-yes}" != "yes" ]]; then
21+
info "Backups not selected (INSTALL_BACKUPS=${INSTALL_BACKUPS:-no}) — skipping."
22+
# Tear down a previous install if the operator turned backups off
23+
rm -f /etc/cron.d/serverdeploy-backup /usr/local/bin/backup.sh
24+
exit 0
25+
fi
26+
2027
RESTIC_PASSWORD_FILE=/etc/serverdeploy/restic.password
2128
BACKUP_SCRIPT=/usr/local/bin/backup.sh
2229

0 commit comments

Comments
 (0)