dlbGatekeeper/deploy.sh

58 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Exit on error
set -e
echo "Building frontend..."
cd frontend
npm install
npm run build
cd ..
echo "Creating deployment package..."
rm -rf deploy
mkdir -p deploy/public
mkdir -p deploy/backend
echo "Copying backend files..."
cp -r backend/* deploy/backend/
chmod +x deploy/backend/main.py
echo "Copying frontend build..."
cp -r frontend/dist/* deploy/public/
echo "Creating deployment archive..."
tar czf deploy.tar.gz -C deploy .
echo "Copying files to Raspberry Pi..."
SSH_OPTS="-o StrictHostKeyChecking=no"
scp $SSH_OPTS deploy.tar.gz gatekeeper@dlbGatekeeper:~/gatekeeper.tar.gz
echo "=== Deploying to Raspberry Pi ==="
ssh $SSH_OPTS gatekeeper@dlbGatekeeper << 'EOF'
set -e
echo "=== Backing up database ==="
cd /home/gatekeeper
if [ -f "/home/gatekeeper/gatekeeper/backend/gatekeeper.db" ]; then
sudo cp /home/gatekeeper/gatekeeper/backend/gatekeeper.db /home/gatekeeper/gatekeeper.db.backup
fi
echo "=== Extracting deployment files ==="
cd /home/gatekeeper
sudo rm -rf /home/gatekeeper/gatekeeper
sudo mkdir -p /home/gatekeeper/gatekeeper
sudo tar xzf gatekeeper.tar.gz -C /home/gatekeeper/gatekeeper
echo "=== Restoring database ==="
if [ -f "/home/gatekeeper/gatekeeper.db.backup" ]; then
sudo mv /home/gatekeeper/gatekeeper.db.backup /home/gatekeeper/gatekeeper/backend/gatekeeper.db
fi
echo "=== Cleaning up ==="
rm gatekeeper.tar.gz
EOF
echo "Local cleanup..."
rm -rf deploy deploy.tar.gz