diff --git a/deploy_script.sh b/deploy_script.sh index b9ddf79..fa77452 100644 --- a/deploy_script.sh +++ b/deploy_script.sh @@ -45,6 +45,11 @@ is_active_service() { install_packages() { log "Checking required packages..." + # System Updates + log "Running system updates..." + apt-get update -qq + DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -qq + # Docker if ! command -v docker &>/dev/null; then log "Installing Docker..." @@ -135,10 +140,15 @@ EOF timedatectl set-timezone "${TARGET_TZ}" fi - log "Configuring daily automatic deployment (cron) for 03:00..." - local CRON_JOB="0 3 * * * cd /opt/PaperClip && git fetch origin && git reset --hard origin/main && /bin/bash /opt/PaperClip/deploy_script.sh >> /var/log/paperclip-deploy.log 2>&1" - crontab -l 2>/dev/null | grep -v "/opt/PaperClip/deploy_script.sh" | crontab - || true - (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab - + log "Configuring weekly automatic reboot (Monday 1:23) and @reboot deployment..." + local CRON_REBOOT="23 1 * * 1 /sbin/reboot" + local CRON_DEPLOY="@reboot sleep 60 && cd /opt/PaperClip && git fetch origin && git reset --hard origin/main && /bin/bash /opt/PaperClip/deploy_script.sh >> /var/log/paperclip-deploy.log 2>&1" + + # Remove old copies + crontab -l 2>/dev/null | grep -v -E "(/opt/PaperClip/deploy_script.sh|/sbin/reboot)" | crontab - || true + + # Install new cron jobs + (crontab -l 2>/dev/null; echo "$CRON_REBOOT"; echo "$CRON_DEPLOY") | crontab - } ###############################################################################