Initial commit - Church Music Database
This commit is contained in:
86
legacy-site/scripts/shell/deploy-production.sh
Executable file
86
legacy-site/scripts/shell/deploy-production.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# Production Deployment Script for Church Music System
|
||||
# This script will set up auto-start services and optimize for production
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Starting production deployment..."
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
PROJECT_DIR="/media/pts/Website/Church_HOP_MusicData"
|
||||
BACKEND_DIR="$PROJECT_DIR/backend"
|
||||
FRONTEND_DIR="$PROJECT_DIR/frontend"
|
||||
|
||||
# Step 1: Stop current development servers
|
||||
echo -e "${BLUE}[1/7] Stopping development servers...${NC}"
|
||||
pkill -f "python.*app.py" 2>/dev/null || true
|
||||
pkill -f "node.*react-scripts" 2>/dev/null || true
|
||||
sleep 2
|
||||
|
||||
# Step 2: Build production frontend
|
||||
echo -e "${BLUE}[2/7] Building production React frontend...${NC}"
|
||||
cd $FRONTEND_DIR
|
||||
export NODE_OPTIONS=--max-old-space-size=2048
|
||||
npm run build || {
|
||||
echo -e "${RED}Frontend build failed. Check for syntax errors.${NC}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Step 3: Install systemd service for backend
|
||||
echo -e "${BLUE}[3/7] Installing backend systemd service...${NC}"
|
||||
sudo cp /tmp/church-music-backend.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable church-music-backend.service
|
||||
sudo systemctl restart church-music-backend.service
|
||||
|
||||
# Step 4: Install Nginx configuration
|
||||
echo -e "${BLUE}[4/7] Installing Nginx configuration...${NC}"
|
||||
sudo apt-get install -y nginx 2>/dev/null || true
|
||||
sudo cp /tmp/church-music-nginx.conf /etc/nginx/sites-available/church-music
|
||||
sudo ln -sf /etc/nginx/sites-available/church-music /etc/nginx/sites-enabled/
|
||||
sudo nginx -t || {
|
||||
echo -e "${RED}Nginx configuration test failed${NC}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Step 5: Start/restart services
|
||||
echo -e "${BLUE}[5/7] Starting services...${NC}"
|
||||
sudo systemctl enable nginx
|
||||
sudo systemctl restart nginx
|
||||
sudo systemctl status church-music-backend.service --no-pager || true
|
||||
|
||||
# Step 6: Verify PostgreSQL data
|
||||
echo -e "${BLUE}[6/7] Verifying PostgreSQL connection...${NC}"
|
||||
cd $BACKEND_DIR
|
||||
source venv/bin/activate
|
||||
python -c "from postgresql_models import SessionLocal; s = SessionLocal(); print('✅ PostgreSQL connected'); s.close()" || {
|
||||
echo -e "${RED}PostgreSQL connection failed${NC}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Step 7: Display status
|
||||
echo -e "${BLUE}[7/7] Deployment complete!${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ Production services are running:${NC}"
|
||||
echo " • Backend: sudo systemctl status church-music-backend"
|
||||
echo " • Frontend: sudo systemctl status nginx"
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ Access your site:${NC}"
|
||||
echo " • Local: http://localhost:3000"
|
||||
echo " • Network: http://192.168.10.130:3000"
|
||||
echo " • External: http://houseofprayer.ddns.net:3000"
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ Services will auto-start on system restart${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ Resource optimized for shared server:${NC}"
|
||||
echo " • Backend: 512MB RAM, 50% CPU"
|
||||
echo " • Nginx: Gzip enabled, caching configured"
|
||||
echo ""
|
||||
echo "Logs:"
|
||||
echo " • Backend: $BACKEND_DIR/logs/"
|
||||
echo " • Nginx: /var/log/nginx/church-music-*.log"
|
||||
Reference in New Issue
Block a user