#!/usr/bin/env bash # # deploy.sh — sincronizează site-ul romfast-website pe prod (a2hosting). # # Folosire: # ./deploy.sh # deploy real # ./deploy.sh --dry-run # arată ce s-ar transfera, fără să modifice prod # # Note: # - Rsync-ul NU folosește --delete, deci nu șterge nimic pe server. # - efactura-generator/config.json e exclus explicit (conține api_key, # gestionat doar pe server). # - Folderul WIP „Index redesign - romfast.ro/" e exclus ca să nu ajungă public. # - Fișierele *.md (CLAUDE.md, PRD, analize, TODOS) sunt documente interne și # NU se publică (ar fi accesibile la romfast.ro/.md). set -euo pipefail # Directorul în care se află scriptul (rădăcina repo-ului). SRC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/" # Destinație prod SSH_PORT=7822 REMOTE_USER=romfastr REMOTE_HOST=nl1-ss18.a2hosting.com REMOTE_PATH='~/public_html/' DRY_RUN=() if [[ "${1:-}" == "--dry-run" || "${1:-}" == "-n" ]]; then DRY_RUN=(--dry-run) echo ">>> DRY-RUN: nu se modifică nimic pe prod" fi rsync -avz "${DRY_RUN[@]}" \ --exclude='.git' \ --exclude='.superdesign' \ --exclude='.claude' \ --exclude='verify-cleanup.sh' \ --exclude='deploy.sh' \ --exclude='efactura-generator/config.json' \ --exclude='Index redesign - romfast.ro/' \ --exclude='*.md' \ --exclude='.serena' \ --exclude='.gitignore' \ -e "ssh -p ${SSH_PORT}" \ "${SRC_DIR}" \ "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}" echo ">>> Deploy finalizat."