42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
#!/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 and snippets folder
|
|
setup_dirs() {
|
|
local data_dir="${CADDY_DATA_DIR:-/data/caddy}"
|
|
local skill_dir="$(dirname "$(dirname "$0")")"
|
|
|
|
mkdir -p "$data_dir"
|
|
mkdir -p "$skill_dir/snippets.d"
|
|
|
|
echo "Caddy data directory: $data_dir"
|
|
echo "Caddy snippets directory: $skill_dir/snippets.d"
|
|
}
|
|
|
|
install_caddy
|
|
setup_dirs
|