smartcrop26/deploy.sh
Vadym Samoilenko d7bc3593a4 Use sudo for rm and cp in deploy.sh to fix permission errors
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 11:45:46 +00:00

53 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# =============================================================================
# SmartCrop26 Deploy Script
# Builds and deploys the SPA to Apache on Ubuntu
# =============================================================================
#
# Apache config for /var/www/html/smartcrop26:
#
# <Directory /var/www/html/smartcrop26>
# Options -Indexes +FollowSymLinks
# AllowOverride None
# FallbackResource /smartcrop26/index.html
# </Directory>
#
# Or create /var/www/html/smartcrop26/.htaccess:
# RewriteEngine On
# RewriteBase /smartcrop26/
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /smartcrop26/index.html [L]
#
# =============================================================================
set -euo pipefail
REPO_DIR=/opt/smartcrop26
WEB_DIR=/var/www/html/smartcrop26
ENV_FILE="$REPO_DIR/.env"
if [ ! -f "$ENV_FILE" ]; then
echo "ERROR: $ENV_FILE not found. Create it with required VITE_ variables."
exit 1
fi
echo "==> Pulling latest code..."
cd "$REPO_DIR"
git pull
echo "==> Installing dependencies..."
npm ci
echo "==> Building production bundle..."
npm run build
echo "==> Deploying to $WEB_DIR..."
sudo mkdir -p "$WEB_DIR"
sudo rm -rf "${WEB_DIR:?}"/*
sudo cp -r dist/* "$WEB_DIR/"
echo "==> Setting permissions..."
sudo chown -R www-data:www-data "$WEB_DIR"
echo "==> Deploy complete at $(date '+%Y-%m-%d %H:%M:%S')"