#!/bin/bash # SSL Setup Script for Quixotic with Certbot set -e DOMAIN=${1:-localhost} EMAIL=${2:-admin@example.com} echo "Setting up SSL for domain: $DOMAIN" echo "Email: $EMAIL" # Update .env.docker with provided values sed -i.bak "s/DOMAIN=.*/DOMAIN=$DOMAIN/" .env.docker sed -i.bak "s/ACME_EMAIL=.*/ACME_EMAIL=$EMAIL/" .env.docker echo "Updated .env.docker with new values" # Start services echo "Starting Traefik and application..." docker-compose --env-file .env.docker up -d traefik quixotic-app echo "Waiting for services to be ready..." sleep 10 # Test domain accessibility (optional) if [ "$DOMAIN" != "localhost" ]; then echo "Testing HTTP access to $DOMAIN..." curl -f http://$DOMAIN/health || echo "Warning: HTTP test failed" echo "SSL certificate will be automatically obtained by Traefik" echo "Check https://$DOMAIN in a few minutes" fi echo "SSL setup complete!" echo "Traefik dashboard: http://localhost:8080" echo "Application: https://$DOMAIN"