feat: add site dirs, global logging config and site template to Caddy install

This commit is contained in:
ecss committed 2026-08-05 03:00:18 -05:00
1 parent 6bcea4c59d
commit d25f4e4e71
1 file changed
+73
+73
View File
@@ -48,4 +48,77 @@ echo "==> Installing Caddy"
apt-get update
apt-get install -y caddy
echo "==> Creating site directories"
mkdir -p /etc/caddy/sites-available /etc/caddy/sites-enabled /var/log/caddy
if id caddy >/dev/null 2>&1; then
chown -R caddy:caddy /var/log/caddy
fi
echo "==> Writing global config with distinguished logging"
cat > /etc/caddy/Caddyfile <<'EOF'
# Global options
{
admin off
# Distinguished logging:
# - global log: process/error-level events for all sites
# - per-site access logs: written by each site block in sites-enabled/
log {
output file /var/log/caddy/caddy.log
format json
level INFO
}
}
# Load enabled sites (symlinks into sites-enabled/)
import /etc/caddy/sites-enabled/*.conf
EOF
echo "==> Writing default site config"
cat > /etc/caddy/sites-available/00-default.conf <<'EOF'
:80 {
root * /usr/share/caddy
encode gzip
file_server
# Per-site access log (distinguished from the global log)
log {
output file /var/log/caddy/default.access.log
format json
level INFO
}
}
EOF
ln -sf /etc/caddy/sites-available/00-default.conf /etc/caddy/sites-enabled/00-default.conf
echo "==> Writing template site config"
cat > /etc/caddy/sites-available/example.com.conf <<'EOF'
# Template site config.
# To create a real site:
# 1. cp /etc/caddy/sites-available/example.com.conf /etc/caddy/sites-available/mysite.com.conf
# 2. Replace example.com, /var/www/example.com and the log path.
# 3. Enable it:
# ln -s /etc/caddy/sites-available/mysite.com.conf /etc/caddy/sites-enabled/mysite.com.conf
# 4. Reload: systemctl reload caddy
#
# example.com {
# root * /var/www/example.com
# encode gzip
# file_server
#
# # Per-site access log (distinguished from the global log)
# log {
# output file /var/log/caddy/example.com.access.log
# format json
# level INFO
# }
# }
EOF
echo "==> Restarting Caddy with new config"
systemctl restart caddy
echo "Caddy installed. Service status: systemctl status caddy"
echo "Sites: /etc/caddy/sites-available (template: example.com.conf)"
echo "Enabled: /etc/caddy/sites-enabled"