2025-10-28 17:36:48 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
|
|
# Host-side Certificate Renewal Script
|
2025-11-20 09:56:56 -08:00
|
|
|
# Run this from the host machine via cron to trigger certificate renewal inside the container
|
2025-10-28 17:36:48 -07:00
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
2025-11-20 09:56:56 -08:00
|
|
|
# Configuration
|
2025-10-28 17:36:48 -07:00
|
|
|
CONTAINER_NAME="${CONTAINER_NAME:-haproxy-manager}"
|
|
|
|
|
LOG_FILE="${LOG_FILE:-/var/log/haproxy-manager-host-renewal.log}"
|
|
|
|
|
|
2025-11-20 09:56:56 -08:00
|
|
|
# Logging
|
2025-10-28 17:36:48 -07:00
|
|
|
log_info() {
|
|
|
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [INFO] $*" | tee -a "$LOG_FILE"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log_error() {
|
|
|
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [ERROR] $*" | tee -a "$LOG_FILE"
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-20 09:56:56 -08:00
|
|
|
log_info "Starting certificate renewal"
|
2025-10-28 17:36:48 -07:00
|
|
|
|
|
|
|
|
# Check if container is running
|
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
|
|
|
|
|
log_error "Container '${CONTAINER_NAME}' is not running"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2025-11-20 09:56:56 -08:00
|
|
|
# Run renewal script inside container
|
2025-10-28 17:36:48 -07:00
|
|
|
if docker exec "$CONTAINER_NAME" /haproxy/scripts/renew-certificates.sh; then
|
2025-11-20 09:56:56 -08:00
|
|
|
log_info "Certificate renewal completed"
|
2025-10-28 17:36:48 -07:00
|
|
|
exit 0
|
|
|
|
|
else
|
|
|
|
|
log_error "Certificate renewal failed"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|