diff --git a/README.md b/README.md index 7150a3f..ca87fbb 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,55 @@ static/ flake.nix # `nix build` → site dist, `nix develop` → zola shell ``` +## Deploy + +The build output is a plain `public/` directory of static files — +drop it under any HTTP server's docroot. nginx vhost example for +serving it at `hyperhive.darkest.space`: + +```nginx +server { + listen 80; + listen [::]:80; + server_name hyperhive.darkest.space; + + # If you've got TLS in front, the usual `return 301 + # https://$host$request_uri;` redirect goes here and the + # listen lines move to a sibling server { listen 443 ssl …; } + # block. Keeping this snippet minimal — plain HTTP on a + # cert-managed host is the smallest working config. + + # Point at wherever `nix build .#website && cp -r result/. …` + # lands. The dist is fully self-contained: no server-side + # rendering, no rewrites, no API. + root /var/www/hyperhive-website; + index index.html; + + location / { + try_files $uri $uri/ =404; + } + + # 7-day cache on the immutable assets (SVG, CSS, fonts). + # `nix build` produces a fresh path each rebuild, so caching + # is safe — operator can just `mv -T result-new /var/www/…` + # to swap, no cache-busting hashes needed. + location ~* \.(svg|css|js|woff2|png|ico)$ { + expires 7d; + add_header Cache-Control "public, immutable"; + } +} +``` + +If you're running NixOS, the equivalent module config is: + +```nix +services.nginx.virtualHosts."hyperhive.darkest.space" = { + enableACME = true; + forceSSL = true; + root = "${pkgs.callPackage ./website {}}"; # or nix build path +}; +``` + ## Theme Catppuccin Mocha palette + the hyperhive amber from the swarm's diff --git a/config.toml b/config.toml index ec11b5a..ebf33a4 100644 --- a/config.toml +++ b/config.toml @@ -32,3 +32,9 @@ smart_punctuation = true # theme intent is reviewable in one place. palette = "catppuccin-mocha" accent = "amber" + +# Public-facing forge URL — surfaced in templates via +# `{{ config.extra.forge_url }}`. Update this when the canonical +# public hyperhive mirror lands; the current value is the operator's +# berlin.ccc.de instance (per the project README at that mirror). +forge_url = "https://git.berlin.ccc.de/vinzenz/hyperhive" diff --git a/templates/base.html b/templates/base.html index e9bce4d..b86e4af 100644 --- a/templates/base.html +++ b/templates/base.html @@ -25,7 +25,7 @@