#!/usr/bin/env bash # deploy.sh — Desplegar Comarques de Catalunya a l'Oracle VPS # Ús: ./deploy.sh [usuari@host] # Exemple: ./deploy.sh ubuntu@80.225.185.50 # # NOTA: Aquest script NO toca la configuració de Nginx. # La config SSL es gestiona manualment al VPS (veure docs Craft). set -euo pipefail VPS="${1:-ubuntu@80.225.185.50}" REMOTE_PUBLIC="/srv/docker/data/comarques/public" REMOTE_COMPOSE="/srv/docker/compose" LOCAL_DIR="$(cd "$(dirname "$0")/.." && pwd)" DOMAIN="comarques.jaumegar.work" echo "▶ Desplegant a ${VPS}..." # 1. Crear directoris remots si no existeixen ssh "$VPS" "sudo mkdir -p ${REMOTE_PUBLIC} /var/www/certbot && \ sudo chown -R ubuntu:ubuntu /srv/docker/data/comarques" # 2. Fitxers estàtics (Nginx els serveix directament — sense reiniciar Docker) echo "▶ Pujant fitxers estàtics..." scp "${LOCAL_DIR}/index.html" "${VPS}:${REMOTE_PUBLIC}/" scp "${LOCAL_DIR}/comarca-paths.js" "${VPS}:${REMOTE_PUBLIC}/" # 3. Codi del servidor Node.js echo "▶ Pujant codi del servidor..." ssh "$VPS" "mkdir -p /srv/docker/builds/comarques" scp "${LOCAL_DIR}/server.js" "${VPS}:/srv/docker/builds/comarques/" scp "${LOCAL_DIR}/package.json" "${VPS}:/srv/docker/builds/comarques/" scp "${LOCAL_DIR}/Dockerfile" "${VPS}:/srv/docker/builds/comarques/" # 4. Construir imatge i reiniciar contenidor echo "▶ Construint imatge Docker..." ssh "$VPS" "cd /srv/docker/builds/comarques && docker build -t comarques-de-catalunya:latest ." echo "▶ Reiniciant contenidor..." ssh "$VPS" "cd ${REMOTE_COMPOSE} && docker compose up -d comarques" echo "" echo "✅ Desplegament completat!" echo " https://${DOMAIN}"