Domain Strategy: - fig.systems: Homelab services only (removed edfig.dev fallback from all services) - edfig.dev: Professional/public sites (personal site, blog) - figgy.foo: Experimental/private content (SSO protected) Removed edfig.dev Fallbacks: - Updated 22 compose files to remove || Host(...edfig.dev) pattern - All homelab services now use fig.systems only - Traefik email remains admin@edfig.dev Added Caddy Static Sites Service: - compose/services/static-sites/ with Caddy 2 - Serves three domains with different configurations: * edfig.dev (personal/professional) - Public, no SSO * blog.edfig.dev (blog) - Public, Markdown rendering, templates * figgy.foo (experimental) - SSO protected, directory browsing - Example sites with modern, responsive designs - Comprehensive README with usage examples - Auto-reload on config changes (no restarts needed) Features: - Markdown rendering (write .md, serves as HTML) - Go templates for dynamic content - Directory browsing (figgy.foo) - Automatic gzip compression - Static asset caching - Zero-downtime config reloads Updated Documentation: - README.md: Added domain strategy section, static sites in directory structure - README.md: Added static sites to service URLs table - README.md: Updated deployment instructions
57 lines
1.2 KiB
Caddyfile
57 lines
1.2 KiB
Caddyfile
# Caddyfile - Static Sites Configuration
|
|
# Docs: https://caddyserver.com/docs/caddyfile
|
|
|
|
# Global options
|
|
{
|
|
# Listen on port 80 (Traefik handles SSL)
|
|
auto_https off
|
|
admin off
|
|
}
|
|
|
|
# Personal/Professional Site (edfig.dev)
|
|
www.edfig.dev, edfig.dev {
|
|
root * /srv/edfig.dev
|
|
file_server
|
|
encode gzip
|
|
|
|
# Try files, then index, then 404
|
|
try_files {path} {path}/index.html index.html
|
|
|
|
# Cache static assets
|
|
@static {
|
|
path *.css *.js *.jpg *.jpeg *.png *.gif *.ico *.svg *.woff *.woff2 *.ttf *.eot
|
|
}
|
|
header @static Cache-Control "public, max-age=604800, immutable"
|
|
}
|
|
|
|
# Blog (blog.edfig.dev)
|
|
blog.edfig.dev {
|
|
root * /srv/blog.edfig.dev
|
|
file_server
|
|
encode gzip
|
|
|
|
# Enable templates for dynamic content
|
|
templates
|
|
|
|
# Markdown files automatically render as HTML
|
|
try_files {path} {path}/index.html {path}.md {path}/index.md index.html
|
|
|
|
# Cache static assets
|
|
@static {
|
|
path *.css *.js *.jpg *.jpeg *.png *.gif *.ico *.svg *.woff *.woff2 *.ttf *.eot
|
|
}
|
|
header @static Cache-Control "public, max-age=604800, immutable"
|
|
}
|
|
|
|
# Experimental/Private (figgy.foo)
|
|
figgy.foo, www.figgy.foo {
|
|
root * /srv/figgy.foo
|
|
|
|
# Enable directory browsing for experiments
|
|
file_server browse
|
|
|
|
encode gzip
|
|
|
|
# Templates enabled for dynamic pages
|
|
templates
|
|
}
|