58 lines
1.4 KiB
Bash
Executable File
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
|