46 lines
1.5 KiB
Bash
Executable File
46 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Configuration for CLI deployment
|
|
VPS_HOST="45.127.35.244"
|
|
VPS_USER="root"
|
|
# Find first available private key in ~/.ssh or use specific one if you want to hardcode
|
|
SSH_KEY_PATH=$(find ~/.ssh -name "id_rsa" -o -name "id_ed25519" | head -n 1)
|
|
|
|
echo "🚀 Starting CLI deployment to $VPS_USER@$VPS_HOST..."
|
|
|
|
if [ -z "$SSH_KEY_PATH" ]; then
|
|
echo "⚠️ No SSH key found in ~/.ssh. Falling back to default SSH behavior."
|
|
SSH_CMD="ssh -o StrictHostKeyChecking=no $VPS_USER@$VPS_HOST"
|
|
RSYNC_CMD="rsync -avz --exclude-from='.dockerignore' -e 'ssh -o StrictHostKeyChecking=no'"
|
|
else
|
|
echo "🔑 Using SSH key: $SSH_KEY_PATH"
|
|
SSH_CMD="ssh -i $SSH_KEY_PATH -o StrictHostKeyChecking=no $VPS_USER@$VPS_HOST"
|
|
RSYNC_CMD="rsync -avz --exclude-from='.dockerignore' -e 'ssh -i $SSH_KEY_PATH -o StrictHostKeyChecking=no'"
|
|
fi
|
|
|
|
# Directory on the VPS where the app will be deployed
|
|
REMOTE_DIR="/opt/imphenbot"
|
|
|
|
echo "📦 Syncing files to VPS..."
|
|
$SSH_CMD "mkdir -p $REMOTE_DIR"
|
|
eval "$RSYNC_CMD ./ $VPS_USER@$VPS_HOST:$REMOTE_DIR"
|
|
|
|
if [ -f .env ]; then
|
|
echo "🔒 Copying local .env to VPS..."
|
|
if [ -z "$SSH_KEY_PATH" ]; then
|
|
scp -o StrictHostKeyChecking=no .env $VPS_USER@$VPS_HOST:$REMOTE_DIR/.env
|
|
else
|
|
scp -i $SSH_KEY_PATH -o StrictHostKeyChecking=no .env $VPS_USER@$VPS_HOST:$REMOTE_DIR/.env
|
|
fi
|
|
else
|
|
echo "⚠️ No local .env found to copy."
|
|
fi
|
|
|
|
echo "🔄 Rebuilding and restarting Docker containers..."
|
|
$SSH_CMD << EOF
|
|
cd $REMOTE_DIR
|
|
docker-compose up -d --build
|
|
EOF
|
|
|
|
echo "✅ Deployment complete!"
|