/home/techb158/cosmic-risk.abdallabala.com/scripts
NameSizeModeActions
auto-deploy.sh21450644editdlrm
backup-db.sh11030644editdlrm
check-config.js10810644editdlrm
create-users.js17280644editdlrm
deploy-prod.sh27090644editdlrm
monitor-health.sh14850644editdlrm
run-scheduled-reports.js17240644editdlrm
setup-backup-cron.sh11890644editdlrm
setup-monitoring-cron.sh5920644editdlrm
setup-supabase.sh12800644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/scripts/auto-deploy.sh (2145B)
#!/usr/bin/env bash # Auto-deploy script — runs every minute via cron # Checks for new commits on GitHub master branch and deploys if needed set -euo pipefail APP_DIR="/home/techb158/balavpn.abdallabala.com" LOG_TAG="cosmic-auto-deploy" LOCK_FILE="/tmp/cosmic-deploy.lock" LOG_FILE="$APP_DIR/deploy.log" log() { echo "$(date -uIseconds) $1" | tee -a "$LOG_FILE"; logger -t "$LOG_TAG" "$1"; } # Prevent concurrent runs if [ -f "$LOCK_FILE" ]; then pid=$(cat "$LOCK_FILE") if kill -0 "$pid" 2>/dev/null; then log "Deploy already running (PID $pid), skipping" exit 0 fi rm -f "$LOCK_FILE" fi echo "$$" > "$LOCK_FILE" trap 'rm -f "$LOCK_FILE"' EXIT cd "$APP_DIR" # Save current HEAD to detect changes CURRENT_HEAD=$(git rev-parse HEAD 2>/dev/null || echo "") # Fetch latest without merging git fetch origin master 2>&1 | tee -a "$LOG_FILE" REMOTE_HEAD=$(git rev-parse origin/master 2>/dev/null || echo "") if [ "$CURRENT_HEAD" = "$REMOTE_HEAD" ]; then log "No new commits, skipping deploy" exit 0 fi log "New commit detected: $REMOTE_HEAD" log "Starting deploy..." git reset --hard HEAD 2>/dev/null || true git clean -fd 2>/dev/null || true git pull origin master 2>&1 | tee -a "$LOG_FILE" # Fix git stash state from previous failed runs git stash drop 2>/dev/null || true git clean -fd 2>/dev/null || true log "Building app image..." if docker compose -f docker-compose.prod.yml build --pull app 2>&1 | tee -a "$LOG_FILE"; then log "Build succeeded, restarting..." docker compose -f docker-compose.prod.yml up -d 2>&1 | tee -a "$LOG_FILE" else log "Build failed, keeping old container running" exit 1 fi log "Waiting for postgres..." until docker compose -f docker-compose.prod.yml exec -T postgres pg_isready -U cosmic -d cosmic_saas 2>/dev/null; do sleep 2; done docker compose -f docker-compose.prod.yml exec -T app npx prisma db push --accept-data-loss 2>&1 | tee -a "$LOG_FILE" || log "db push had issues (non-fatal)" docker compose -f docker-compose.prod.yml exec -T app node prisma/seed.js 2>&1 | tee -a "$LOG_FILE" || log "seed had issues (non-fatal)" log "=== Deploy complete: $REMOTE_HEAD ==="