Files
QBPOS-Help/scripts/setup_https.sh

67 lines
2.1 KiB
Bash
Raw Normal View History

2026-01-27 18:07:54 -06:00
#!/bin/bash
# Setup HTTPS for QuickBooks POS Help Server
# Run this when you have a domain name and are ready for HTTPS
set -e
echo "=========================================="
echo "HTTPS Setup for QuickBooks POS Help"
echo "=========================================="
echo ""
echo "Prerequisites:"
echo " 1. Domain name pointing to this server"
echo " 2. Ports 80 and 443 open in firewall"
echo ""
read -p "Enter your domain name (e.g., qbpos.prompttech.com): " DOMAIN
if [ -z "$DOMAIN" ]; then
echo "Error: Domain name required"
exit 1
fi
echo ""
echo "Installing Certbot for Let's Encrypt SSL..."
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
echo ""
echo "Obtaining SSL certificate for $DOMAIN..."
sudo certbot certonly --standalone -d "$DOMAIN" --agree-tos --non-interactive --email admin@prompttech.com
CERT_PATH="/etc/letsencrypt/live/$DOMAIN/fullchain.pem"
KEY_PATH="/etc/letsencrypt/live/$DOMAIN/privkey.pem"
if [ ! -f "$CERT_PATH" ]; then
echo "Error: Certificate not found at $CERT_PATH"
exit 1
fi
echo ""
echo "Updating server configuration..."
# Update secure_production_server.py
sed -i "s|USE_HTTPS = False|USE_HTTPS = True|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
sed -i "s|SSL_CERT_FILE = \".*\"|SSL_CERT_FILE = \"$CERT_PATH\"|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
sed -i "s|SSL_KEY_FILE = \".*\"|SSL_KEY_FILE = \"$KEY_PATH\"|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
sed -i "s|PORT = 8888|PORT = 443|g" /home/pts/Documents/QBPOS_Help_Web/secure_production_server.py
echo ""
echo "Setting up certificate auto-renewal..."
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
echo ""
echo "Restarting service..."
sudo systemctl restart qbpos-help
echo ""
echo "=========================================="
echo "HTTPS Setup Complete!"
echo "=========================================="
echo ""
echo "Your server is now accessible at:"
echo " https://$DOMAIN/"
echo ""
echo "Certificate auto-renewal is enabled."
echo "Certbot will automatically renew before expiry."