#!/bin/bash set -e # Idempotent Caddy installation install_caddy() { if command -v caddy &>/dev/null; then echo "caddy already installed: $(caddy version)" return 0 fi echo "Installing Caddy..." # Install dependencies apt-get update apt-get install -y debian-keyring debian-archive-keyring apt-transport-https curl # Add Caddy GPG key and repository curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list # Install Caddy apt-get update apt-get install -y caddy echo "Caddy installed: $(caddy version)" } # Create data directory setup_dirs() { local data_dir="${CADDY_DATA_DIR:-/data/caddy}" mkdir -p "$data_dir" echo "Caddy data directory: $data_dir" } install_caddy setup_dirs