57 lines
1.9 KiB
Bash
Executable File
57 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Deploy script for SD Park Pass Monitor
|
|
# This script uploads files to Linode server and restarts the service
|
|
|
|
set -e # Exit on any error
|
|
|
|
REMOTE_HOST="linode"
|
|
REMOTE_PATH="/opt/sd-park-pass-ntfy" # Change this to your desired path
|
|
SERVICE_NAME="sd-park-pass-ntfy"
|
|
|
|
echo "🚀 Starting deployment to $REMOTE_HOST..."
|
|
|
|
# Create remote directory if it doesn't exist
|
|
echo "📁 Creating remote directory..."
|
|
ssh $REMOTE_HOST "sudo mkdir -p $REMOTE_PATH && sudo chown \$(whoami):\$(whoami) $REMOTE_PATH"
|
|
|
|
# Copy main files to remote server
|
|
echo "📤 Uploading files..."
|
|
scp index.js package.json sd-park-pass-ntfy.service $REMOTE_HOST:$REMOTE_PATH/
|
|
|
|
# Copy any additional config files if they exist
|
|
if [ -f "ecosystem.config.js" ]; then
|
|
scp ecosystem.config.js $REMOTE_HOST:$REMOTE_PATH/
|
|
fi
|
|
|
|
# Install dependencies and restart service on remote server
|
|
echo "📦 Installing dependencies on remote server..."
|
|
ssh $REMOTE_HOST "cd $REMOTE_PATH && npm install --production"
|
|
|
|
# Install systemd service file
|
|
echo "⚙️ Installing systemd service..."
|
|
ssh $REMOTE_HOST "sudo cp $REMOTE_PATH/sd-park-pass-ntfy.service /etc/systemd/system/ && sudo systemctl daemon-reload"
|
|
|
|
# Test the application
|
|
echo "🧪 Testing application on remote server..."
|
|
ssh $REMOTE_HOST "cd $REMOTE_PATH && timeout 10s npm test || true"
|
|
|
|
# Stop existing service (if running)
|
|
echo "🛑 Stopping existing service..."
|
|
ssh $REMOTE_HOST "sudo systemctl stop $SERVICE_NAME || true"
|
|
|
|
# Start the service
|
|
echo "▶️ Starting service..."
|
|
ssh $REMOTE_HOST "sudo systemctl start $SERVICE_NAME"
|
|
|
|
# Enable service to start on boot
|
|
echo "🔄 Enabling service for auto-start..."
|
|
ssh $REMOTE_HOST "sudo systemctl enable $SERVICE_NAME"
|
|
|
|
# Check service status
|
|
echo "✅ Checking service status..."
|
|
ssh $REMOTE_HOST "sudo systemctl status $SERVICE_NAME --no-pager"
|
|
|
|
echo "🎉 Deployment completed successfully!"
|
|
echo "📋 Service logs: ssh $REMOTE_HOST 'sudo journalctl -u $SERVICE_NAME -f'"
|