2026-01-21 09:48:59 +01:00
|
|
|
#!/bin/bash
|
2026-01-21 15:07:20 +00:00
|
|
|
# RealCV Deployment Script
|
2026-01-21 09:48:59 +01:00
|
|
|
# Run this from your development machine to deploy to a Linux server
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# Configuration - UPDATE THESE VALUES
|
|
|
|
|
SERVER_USER="deploy"
|
|
|
|
|
SERVER_HOST="your-server.com"
|
2026-01-21 15:07:20 +00:00
|
|
|
SERVER_PATH="/var/www/realcv"
|
|
|
|
|
DOMAIN="realcv.yourdomain.com"
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Colors for output
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
YELLOW='\033[1;33m'
|
|
|
|
|
NC='\033[0m' # No Color
|
|
|
|
|
|
2026-01-21 15:07:20 +00:00
|
|
|
echo -e "${GREEN}=== RealCV Deployment Script ===${NC}"
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Check if configuration is set
|
|
|
|
|
if [[ "$SERVER_HOST" == "your-server.com" ]]; then
|
|
|
|
|
echo -e "${RED}Error: Please update SERVER_HOST in this script${NC}"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Step 1: Build and publish
|
|
|
|
|
echo -e "${YELLOW}Step 1: Publishing application...${NC}"
|
|
|
|
|
cd "$(dirname "$0")/.."
|
2026-01-21 15:07:20 +00:00
|
|
|
dotnet publish src/RealCV.Web -c Release -o ./publish --nologo
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Step 2: Create deployment package
|
|
|
|
|
echo -e "${YELLOW}Step 2: Creating deployment package...${NC}"
|
2026-01-21 15:07:20 +00:00
|
|
|
tar -czf deploy/realcv-release.tar.gz -C publish .
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Step 3: Transfer to server
|
|
|
|
|
echo -e "${YELLOW}Step 3: Transferring to server...${NC}"
|
2026-01-21 15:07:20 +00:00
|
|
|
scp deploy/realcv-release.tar.gz ${SERVER_USER}@${SERVER_HOST}:/tmp/
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Step 4: Deploy on server
|
|
|
|
|
echo -e "${YELLOW}Step 4: Deploying on server...${NC}"
|
|
|
|
|
ssh ${SERVER_USER}@${SERVER_HOST} << 'ENDSSH'
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# Stop the service if running
|
2026-01-21 15:07:20 +00:00
|
|
|
sudo systemctl stop realcv 2>/dev/null || true
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Backup current deployment
|
2026-01-21 15:07:20 +00:00
|
|
|
if [ -d "/var/www/realcv" ]; then
|
|
|
|
|
sudo mv /var/www/realcv /var/www/realcv.backup.$(date +%Y%m%d_%H%M%S)
|
2026-01-21 09:48:59 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Create directory and extract
|
2026-01-21 15:07:20 +00:00
|
|
|
sudo mkdir -p /var/www/realcv
|
|
|
|
|
sudo tar -xzf /tmp/realcv-release.tar.gz -C /var/www/realcv
|
|
|
|
|
sudo chown -R www-data:www-data /var/www/realcv
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Start the service
|
2026-01-21 15:07:20 +00:00
|
|
|
sudo systemctl start realcv
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
# Clean up
|
2026-01-21 15:07:20 +00:00
|
|
|
rm /tmp/realcv-release.tar.gz
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
echo "Deployment complete on server"
|
|
|
|
|
ENDSSH
|
|
|
|
|
|
|
|
|
|
# Step 5: Verify deployment
|
|
|
|
|
echo -e "${YELLOW}Step 5: Verifying deployment...${NC}"
|
|
|
|
|
sleep 3
|
2026-01-21 15:07:20 +00:00
|
|
|
if ssh ${SERVER_USER}@${SERVER_HOST} "sudo systemctl is-active realcv" | grep -q "active"; then
|
2026-01-21 09:48:59 +01:00
|
|
|
echo -e "${GREEN}=== Deployment successful! ===${NC}"
|
|
|
|
|
echo -e "Site should be available at: https://${DOMAIN}"
|
|
|
|
|
else
|
2026-01-21 15:07:20 +00:00
|
|
|
echo -e "${RED}Warning: Service may not be running. Check with: sudo systemctl status realcv${NC}"
|
2026-01-21 09:48:59 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Cleanup local files
|
2026-01-21 15:07:20 +00:00
|
|
|
rm -f deploy/realcv-release.tar.gz
|
2026-01-21 09:48:59 +01:00
|
|
|
|
|
|
|
|
echo -e "${GREEN}Done!${NC}"
|