Files
sd-park-pass-map/deploy.sh
Aram Chia Sarafian a25c94093b Update Jest and tests
Move constants to separate file
Fix loop compatibility
2025-07-13 20:39:19 -07:00

49 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Deploy SD Park Pass Locator to Linode
# This script copies source files (excluding node_modules) and restarts the service
set -e # Exit on any error
echo "🚀 Starting deployment to Linode..."
# Define paths
LOCAL_PATH="."
REMOTE_HOST="linode"
REMOTE_PATH="/opt/sd-park-pass-locator"
echo "📦 Syncing files to remote server..."
# Use rsync to sync files efficiently, excluding unnecessary files
rsync -avz \
--exclude='.next/' \
--exclude='node_modules/' \
--exclude='.git/' \
--exclude='*.log' \
--exclude='.DS_Store' \
--exclude='coverage/' \
--exclude='dist/' \
--exclude='build/' \
--exclude='.env.local' \
--exclude='.env.development.local' \
--exclude='.env.test.local' \
--exclude='.env.production.local' \
"$LOCAL_PATH/" "$REMOTE_HOST:$REMOTE_PATH/"
echo "✅ Files synced successfully"
echo "📦 Installing dependencies on remote server..."
# shellcheck disable=SC2029
ssh "$REMOTE_HOST" "cd $REMOTE_PATH && npm install"
echo "🏗️ Building application on remote server..."
# shellcheck disable=SC2029
ssh "$REMOTE_HOST" "cd $REMOTE_PATH && npm run build"
echo "🔄 Restarting PM2 service..."
# shellcheck disable=SC2029
ssh "$REMOTE_HOST" "pm2 restart sd-park-pass-locator || pm2 start $REMOTE_PATH/ecosystem.config.js"
echo "🎉 Deployment completed successfully!"
echo "🌐 Your app should be available at your Linode server"