Whitelist Manager should deploy to Billing VPS (38.68.14.188), not Ghost VPS. This aligns with infrastructure philosophy: 'Money on Billing' Changes: - Updated all IP references: 64.50.188.14 → 38.68.14.188 - Updated deployment target in all docs - Updated DNS configuration - Updated SSH commands - Updated SCP commands Billing VPS is the correct location as whitelist management is part of the subscription/billing workflow.
113 lines
3.5 KiB
Bash
113 lines
3.5 KiB
Bash
#!/bin/bash
|
|
# Firefrost Gaming - Whitelist Manager Deployment Script
|
|
# Run this script on Billing VPS (38.68.14.188)
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "======================================"
|
|
echo "Firefrost Gaming - Whitelist Manager"
|
|
echo "Deployment Script v1.0"
|
|
echo "======================================"
|
|
echo ""
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Check if running as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo -e "${RED}ERROR: This script must be run as root${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Step 1: Installing system dependencies...${NC}"
|
|
apt update
|
|
apt install -y python3 python3-pip python3-venv nginx certbot python3-certbot-nginx
|
|
|
|
echo -e "${GREEN}Step 2: Creating application directory...${NC}"
|
|
mkdir -p /opt/whitelist-manager/templates
|
|
cd /opt/whitelist-manager
|
|
|
|
echo -e "${YELLOW}Step 3: Copy application files to /opt/whitelist-manager/${NC}"
|
|
echo "Please copy the following files:"
|
|
echo " - app.py"
|
|
echo " - requirements.txt"
|
|
echo " - .env"
|
|
echo " - templates/index.html"
|
|
echo ""
|
|
read -p "Press Enter once files are copied..."
|
|
|
|
echo -e "${GREEN}Step 4: Installing Python dependencies...${NC}"
|
|
pip3 install -r requirements.txt --break-system-packages
|
|
|
|
echo -e "${GREEN}Step 5: Testing application...${NC}"
|
|
# Quick test that app can import dependencies
|
|
python3 -c "import flask, flask_httpauth, requests, dotenv" && echo "Dependencies OK" || {
|
|
echo -e "${RED}ERROR: Python dependencies failed${NC}"
|
|
exit 1
|
|
}
|
|
|
|
echo -e "${GREEN}Step 6: Setting up systemd service...${NC}"
|
|
# Copy service file
|
|
cp whitelist-manager.service /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable whitelist-manager
|
|
systemctl start whitelist-manager
|
|
|
|
# Check service status
|
|
sleep 2
|
|
if systemctl is-active --quiet whitelist-manager; then
|
|
echo -e "${GREEN}✓ Whitelist Manager service is running${NC}"
|
|
else
|
|
echo -e "${RED}✗ Whitelist Manager service failed to start${NC}"
|
|
echo "Check logs with: journalctl -u whitelist-manager -n 50"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Step 7: Configuring Nginx...${NC}"
|
|
cp nginx.conf /etc/nginx/sites-available/whitelist.firefrostgaming.com
|
|
ln -sf /etc/nginx/sites-available/whitelist.firefrostgaming.com /etc/nginx/sites-enabled/
|
|
|
|
# Test Nginx configuration
|
|
nginx -t || {
|
|
echo -e "${RED}ERROR: Nginx configuration test failed${NC}"
|
|
exit 1
|
|
}
|
|
|
|
# Reload Nginx
|
|
systemctl reload nginx
|
|
echo -e "${GREEN}✓ Nginx configured${NC}"
|
|
|
|
echo -e "${YELLOW}Step 8: DNS Configuration${NC}"
|
|
echo "Before obtaining SSL certificate, ensure DNS is configured:"
|
|
echo " Record: whitelist.firefrostgaming.com"
|
|
echo " Type: A"
|
|
echo " Value: 64.50.188.14"
|
|
echo ""
|
|
read -p "Press Enter once DNS is configured and propagated..."
|
|
|
|
echo -e "${GREEN}Step 9: Obtaining SSL certificate...${NC}"
|
|
certbot --nginx -d whitelist.firefrostgaming.com --non-interactive --agree-tos --email mkrause612@gmail.com
|
|
|
|
echo ""
|
|
echo -e "${GREEN}======================================"
|
|
echo "Deployment Complete!"
|
|
echo "======================================${NC}"
|
|
echo ""
|
|
echo "Whitelist Manager is now running at:"
|
|
echo " https://whitelist.firefrostgaming.com"
|
|
echo ""
|
|
echo "Login credentials:"
|
|
echo " Username: mkrause612"
|
|
echo " Password: Butter2018!!"
|
|
echo ""
|
|
echo "Useful commands:"
|
|
echo " Service status: systemctl status whitelist-manager"
|
|
echo " View logs: journalctl -u whitelist-manager -f"
|
|
echo " Restart: systemctl restart whitelist-manager"
|
|
echo " Nginx logs: tail -f /var/log/nginx/whitelist.*.log"
|
|
echo ""
|
|
echo -e "${YELLOW}🔥❄️ Fire + Frost + Foundation = Where Love Builds Legacy 💙${NC}"
|