Bugs:
- setup-wsl: fix broken /img/WSL/* image paths (now bundle-relative;
images were broken on the published post) + better alt text
- pi-docker-swarm: remove broken missing cluster.webp reference
- archetypes/posts.md: fix malformed {{ }} template so 'hugo new' works
- rename arrstack/arrstack.md -> index.md so it's a proper leaf bundle
- static/admin/config.yml: fix 'htpps' -> 'https' site_url typo
- fix silently-dropped <placeholder> text (unsafe=false dropped them):
wrap <distro>/<username>/<user>/<version>/<ip address> etc in backticks
across setup-wsl, securing-ssh, pi-docker-swarm, mc-server-on-docker
Security:
- render-link.html: add rel=noopener noreferrer to external target=_blank
- extend-footer.html: fix rel='me' trapped in class attr (broke Mastodon
verification); add proper rel/target
- static/admin/index.html: pin Sveltia CMS to 0.172.4 via jsDelivr + SRI
Performance:
- hugo.toml: ignoreFiles for *.aseprite/*.bak (stop shipping source art;
non-page files 23 -> 13)
- video shortcode: preload=metadata; image shortcode: loading=lazy decoding=async
- sws.toml: drop SPA page-fallback so missing paths return real 404 (404.html)
Content/SEO:
- normalize tag casing (HomeLab/RemoteAccess/SSH/HUGO -> lowercase),
fix 'prodcutivity' typo, arrstack tags:[""] -> [], add welcome description
- delete stray index.md.bak
48 lines
1.5 KiB
TOML
48 lines
1.5 KiB
TOML
[general]
|
|
|
|
#### Server
|
|
|
|
# Listen on all interfaces, port 80 (matches previous nginx setup)
|
|
host = "0.0.0.0"
|
|
port = 80
|
|
|
|
# Root directory of the static site (Hugo `public/` output)
|
|
root = "/public"
|
|
|
|
# Number of worker threads (0 = auto-detect based on CPU cores)
|
|
threads-multiplier = 1
|
|
|
|
# Log level
|
|
log-level = "info"
|
|
|
|
#### Performance / caching
|
|
|
|
# Compression is handled by the upstream reverse proxy, so it is disabled
|
|
# here to avoid doing the work twice (wasted CPU per request). Re-enable if
|
|
# SWS is ever exposed directly without a compressing proxy in front.
|
|
compression = false
|
|
compression-static = false
|
|
|
|
# Emit Cache-Control + ETag headers with sensible per-content-type defaults.
|
|
# The origin is the correct place to declare cacheability; the proxy/CDN
|
|
# passes these through. SWS applies long-lived caching to static assets
|
|
# (images, css, js, fonts) and short/no-cache to HTML.
|
|
cache-control-headers = true
|
|
|
|
#### Routing
|
|
|
|
# No SPA-style page fallback: this is a static Hugo site, not a single-page app.
|
|
# Missing paths should return Hugo's generated 404.html with a real 404 status
|
|
# (SWS serves /public/404.html automatically) rather than masking broken links
|
|
# with a 200 homepage response, which harms SEO (soft 404s).
|
|
|
|
#### Security
|
|
|
|
# Security headers are set by the upstream reverse proxy, so they are
|
|
# disabled here to avoid duplicate/conflicting headers. Let one layer own
|
|
# the security posture. Re-enable if SWS is exposed without such a proxy.
|
|
security-headers = false
|
|
|
|
# Health endpoint at /health for container/K8s liveness probes
|
|
health = true
|