SHELL := /bin/sh ENV_FILE ?= .env BACKUP_ROOT ?= backups RETENTION_DAYS ?= 14 BACKUP_SCRIPT := scripts/backup.sh .PHONY: help db-dump files-backup full-backup predeploy-backup cleanup-backups help: @echo "Usage: make [ENV_FILE=.env BACKUP_ROOT=backups RETENTION_DAYS=14]" @echo "" @echo "Targets:" @echo " db-dump Create a gzip-compressed MySQL dump from .env settings" @echo " files-backup Archive runtime files such as uploads/, map_config.json, and .env" @echo " full-backup Run both db-dump and files-backup" @echo " predeploy-backup Alias for the backup step executed before production deploy" @echo " cleanup-backups Delete backup files older than RETENTION_DAYS" db-dump: @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" db files-backup: @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" files full-backup: @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full # predeploy-backup: # @ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full cleanup-backups: @BACKUP_ROOT="$(BACKUP_ROOT)" RETENTION_DAYS="$(RETENTION_DAYS)" sh "$(BACKUP_SCRIPT)" cleanup