-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
71 lines (53 loc) · 2.01 KB
/
deploy.sh
File metadata and controls
71 lines (53 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
# Deploy script for ALM Webhook Demo
echo "🚀 ALM Webhook Demo Deployment Script"
echo "===================================="
# Configuration
REMOTE_USER="ubuntu" # or ec2-user depending on your AMI
REMOTE_HOST="your-ec2-public-ip" # Replace with your EC2 IP
REMOTE_DIR="/var/www/alm-webhook-demo"
KEY_PATH="./ssh/poqpoq2025.pem"
# Check if key exists
if [ ! -f "$KEY_PATH" ]; then
echo "❌ Error: SSH key not found at $KEY_PATH"
exit 1
fi
# Set proper permissions on key
chmod 600 "$KEY_PATH"
echo "📦 Preparing files for deployment..."
# Create deployment package
mkdir -p deploy-package
cp -r src/* deploy-package/
cp -r config/* deploy-package/ 2>/dev/null || true
cp -r docs/* deploy-package/ 2>/dev/null || true
echo "🔗 Connecting to EC2 instance..."
# Create remote directory
ssh -i "$KEY_PATH" "$REMOTE_USER@$REMOTE_HOST" "sudo mkdir -p $REMOTE_DIR && sudo chown -R $REMOTE_USER:www-data $REMOTE_DIR"
echo "📤 Uploading files..."
# Upload files
scp -i "$KEY_PATH" -r deploy-package/* "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"
echo "🔧 Setting up on remote server..."
# Run setup commands on remote
ssh -i "$KEY_PATH" "$REMOTE_USER@$REMOTE_HOST" << 'ENDSSH'
# Install dependencies if needed
sudo apt update
sudo apt install -y php php-sqlite3 nginx
# Create necessary directories
sudo mkdir -p /var/www/alm-webhook-demo/logs
sudo mkdir -p /var/www/alm-webhook-demo/data
# Set permissions
sudo chown -R www-data:www-data /var/www/alm-webhook-demo
sudo chmod -R 755 /var/www/alm-webhook-demo
sudo chmod -R 777 /var/www/alm-webhook-demo/logs
sudo chmod -R 777 /var/www/alm-webhook-demo/data
# Configure nginx if needed
if [ ! -f /etc/nginx/sites-available/alm-webhook ]; then
echo "Setting up nginx configuration..."
# nginx config will be set up here
fi
echo "✅ Deployment complete!"
ENDSSH
# Clean up
rm -rf deploy-package
echo "🎉 Deployment finished!"
echo "Visit http://$REMOTE_HOST to see the dashboard"