feat: add site dirs, global logging config and site template to Caddy install
This commit is contained in:
1 parent
6bcea4c59d
commit
d25f4e4e71
1 file changed
+73
@@ -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"
|
||||
Reference in new issue
Block a user