Initial commit - Church Music Database
This commit is contained in:
144
legacy-site/scripts/shell/setup-nginx.sh
Executable file
144
legacy-site/scripts/shell/setup-nginx.sh
Executable file
@@ -0,0 +1,144 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Church Music Database - Nginx Setup Script
|
||||
# Configures Nginx reverse proxy for houseofprayer.ddns.net
|
||||
#
|
||||
# Usage: sudo ./setup-nginx.sh
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Check if running as root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo -e "${RED}Error: This script must be run as root (use sudo)${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo -e "${GREEN}Church Music Database - Nginx Setup${NC}"
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
PROJECT_DIR="/media/pts/Website/Church_HOP_MusicData"
|
||||
NGINX_CONF="$PROJECT_DIR/nginx-http.conf"
|
||||
SITES_AVAILABLE="/etc/nginx/sites-available/church-music"
|
||||
SITES_ENABLED="/etc/nginx/sites-enabled/church-music"
|
||||
|
||||
# Step 1: Check if services are running
|
||||
echo -e "${YELLOW}[1/7] Checking if backend and frontend services are running...${NC}"
|
||||
if ! systemctl is-active --quiet church-music-backend; then
|
||||
echo -e "${RED}Error: Backend service is not running!${NC}"
|
||||
echo "Start it with: sudo systemctl start church-music-backend"
|
||||
exit 1
|
||||
fi
|
||||
if ! systemctl is-active --quiet church-music-frontend; then
|
||||
echo -e "${RED}Error: Frontend service is not running!${NC}"
|
||||
echo "Start it with: sudo systemctl start church-music-frontend"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}✓ Backend and frontend services are running${NC}"
|
||||
echo ""
|
||||
|
||||
# Step 2: Backup existing nginx config (if exists)
|
||||
echo -e "${YELLOW}[2/7] Backing up existing nginx configuration...${NC}"
|
||||
if [ -f "$SITES_AVAILABLE" ]; then
|
||||
cp "$SITES_AVAILABLE" "$SITES_AVAILABLE.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
echo -e "${GREEN}✓ Backup created${NC}"
|
||||
else
|
||||
echo -e "${GREEN}✓ No existing config to backup${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 3: Remove default nginx site
|
||||
echo -e "${YELLOW}[3/7] Removing default nginx site...${NC}"
|
||||
if [ -L "/etc/nginx/sites-enabled/default" ]; then
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
echo -e "${GREEN}✓ Default site removed${NC}"
|
||||
else
|
||||
echo -e "${GREEN}✓ Default site not present${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 4: Copy nginx configuration
|
||||
echo -e "${YELLOW}[4/7] Installing nginx configuration...${NC}"
|
||||
cp "$NGINX_CONF" "$SITES_AVAILABLE"
|
||||
chmod 644 "$SITES_AVAILABLE"
|
||||
echo -e "${GREEN}✓ Configuration copied to $SITES_AVAILABLE${NC}"
|
||||
echo ""
|
||||
|
||||
# Step 5: Create symbolic link
|
||||
echo -e "${YELLOW}[5/7] Enabling site configuration...${NC}"
|
||||
if [ -L "$SITES_ENABLED" ]; then
|
||||
rm "$SITES_ENABLED"
|
||||
fi
|
||||
ln -s "$SITES_AVAILABLE" "$SITES_ENABLED"
|
||||
echo -e "${GREEN}✓ Site enabled${NC}"
|
||||
echo ""
|
||||
|
||||
# Step 6: Test nginx configuration
|
||||
echo -e "${YELLOW}[6/7] Testing nginx configuration...${NC}"
|
||||
if nginx -t; then
|
||||
echo -e "${GREEN}✓ Nginx configuration is valid${NC}"
|
||||
else
|
||||
echo -e "${RED}✗ Nginx configuration has errors!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Step 7: Restart nginx
|
||||
echo -e "${YELLOW}[7/7] Restarting nginx...${NC}"
|
||||
systemctl restart nginx
|
||||
systemctl enable nginx
|
||||
sleep 2
|
||||
echo -e "${GREEN}✓ Nginx restarted and enabled${NC}"
|
||||
echo ""
|
||||
|
||||
# Verify nginx is running
|
||||
if systemctl is-active --quiet nginx; then
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo -e "${GREEN}Nginx Setup Complete!${NC}"
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}✓ Your site is now accessible at:${NC}"
|
||||
echo -e "${GREEN} http://houseofprayer.ddns.net${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Testing endpoints:${NC}"
|
||||
echo ""
|
||||
|
||||
# Test health endpoint
|
||||
if curl -s http://localhost/api/health > /dev/null; then
|
||||
echo -e "${GREEN}✓ Backend API: Working${NC}"
|
||||
else
|
||||
echo -e "${RED}✗ Backend API: Not responding${NC}"
|
||||
fi
|
||||
|
||||
if curl -s http://localhost/ > /dev/null; then
|
||||
echo -e "${GREEN}✓ Frontend: Working${NC}"
|
||||
else
|
||||
echo -e "${RED}✗ Frontend: Not responding${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${YELLOW}Important:${NC}"
|
||||
echo "1. Make sure port 80 is forwarded on your router to this server"
|
||||
echo "2. Your DNS houseofprayer.ddns.net should point to your public IP"
|
||||
echo "3. Test from outside: http://houseofprayer.ddns.net"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Commands:${NC}"
|
||||
echo " sudo systemctl status nginx"
|
||||
echo " sudo systemctl restart nginx"
|
||||
echo " sudo nginx -t # Test configuration"
|
||||
echo " sudo tail -f /var/log/nginx/church-music-access.log"
|
||||
echo " sudo tail -f /var/log/nginx/church-music-error.log"
|
||||
echo ""
|
||||
else
|
||||
echo -e "${RED}✗ Nginx failed to start!${NC}"
|
||||
echo "Check logs: sudo journalctl -u nginx -n 50"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user