feat(aep): carte AEP — push Gitea 2026-04-28
This commit is contained in:
62
deploy.sh
Normal file
62
deploy.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
# deploy.sh — Deploiement AEP vers VPS Hetzner
|
||||
# Usage : ./deploy.sh [--check-only]
|
||||
# Pre-requis : build Nuxt termine (.output/ present), SSH alias vps-hetzner configure
|
||||
|
||||
set -e
|
||||
|
||||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
VPS="vps-hetzner"
|
||||
REMOTE_DIR="/opt/aep"
|
||||
SERVICE="aep"
|
||||
LOCAL_ENV=".env.production"
|
||||
REMOTE_ENV="$REMOTE_DIR/.env"
|
||||
|
||||
log() { echo "[$TIMESTAMP] $1"; }
|
||||
|
||||
log "=== Deploiement AEP ==="
|
||||
|
||||
# Garde-fou 1 : .output/ doit exister
|
||||
if [ ! -d ".output" ]; then
|
||||
log "ERREUR : dossier .output/ introuvable. Lancer 'npm run build' d'abord."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Garde-fou 2 : diff .env.production vs .env VPS
|
||||
log "Verification des variables d'environnement..."
|
||||
REMOTE_ENV_CONTENT=$(ssh -o ConnectTimeout=10 -o BatchMode=yes "$VPS" "cat $REMOTE_ENV 2>/dev/null || echo ''")
|
||||
LOCAL_ENV_CONTENT=$(cat "$LOCAL_ENV" 2>/dev/null || echo "")
|
||||
|
||||
if [ "$LOCAL_ENV_CONTENT" != "$REMOTE_ENV_CONTENT" ]; then
|
||||
log "AVERTISSEMENT : .env.production local != .env VPS"
|
||||
log " --- Local ---"
|
||||
echo "$LOCAL_ENV_CONTENT" | sed 's/TOKEN=.*/TOKEN=***/' | sed 's/^/ /'
|
||||
log " --- VPS ---"
|
||||
echo "$REMOTE_ENV_CONTENT" | sed 's/TOKEN=.*/TOKEN=***/' | sed 's/^/ /'
|
||||
read -p "Continuer malgre la difference ? [y/N] " CONFIRM
|
||||
[ "$CONFIRM" = "y" ] || { log "Deploiement annule."; exit 1; }
|
||||
fi
|
||||
|
||||
if [ "$1" = "--check-only" ]; then
|
||||
log "Mode check-only - aucun deploiement effectue."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Upload .output/ vers VPS via tar (rsync indisponible sous Windows)
|
||||
log "Upload .output/ vers $VPS:$REMOTE_DIR..."
|
||||
tar -czf - .output | ssh -o ConnectTimeout=60 -o BatchMode=yes "$VPS" \
|
||||
"mkdir -p $REMOTE_DIR && cd $REMOTE_DIR && tar -xzf -"
|
||||
log "Upload termine."
|
||||
|
||||
# Redemarrage du service
|
||||
log "Redemarrage du service $SERVICE..."
|
||||
ssh -o ConnectTimeout=10 -o BatchMode=yes "$VPS" \
|
||||
"systemctl restart $SERVICE && sleep 2 && systemctl is-active $SERVICE"
|
||||
log "Service $SERVICE actif."
|
||||
|
||||
# Verification sante
|
||||
log "Verification sante (port 3333)..."
|
||||
ssh -o ConnectTimeout=10 -o BatchMode=yes "$VPS" \
|
||||
"curl -s -o /dev/null -w 'HTTP %{http_code}' http://localhost:3333/ || echo 'ERREUR acces port 3333'"
|
||||
|
||||
log "=== Deploiement termine : $TIMESTAMP ==="
|
||||
Reference in New Issue
Block a user