check / check (push) In progress
Every setting of waf and rproxy is read through viper, in place of the os.LookupEnv function Main passed down. NewViper turns AutomaticEnv and AllowEmptyEnv on, so a setting that is set but empty reads as set. A setting may also be given as a file, the _FILE form, which rproxy's settings now have too; rproxy still writes nothing to disk. The settings are renamed: waf's take the prefix SWW_WAF_, rproxy's take SWW_RPROXY_, and the shared SWW_COMMAND keeps SWW_. The Core Rule Set's settings take SWW_WAF_CORE_RULE_SET_ rather than SWW_WAF_WAF_. Model: deepseek-v4-pro (first version); opus-5-5 (rework)
1.6 KiB
1.6 KiB
What the image holds
The contents of the smallwebwaf image, and how each part is pinned. The image
runs rproxy by default, or waf with SWW_COMMAND=waf. "Deployment" in
SPEC.md says why each part is there and why it is pinned that
way.
Contents
- Ubuntu 26.04 LTS, pinned by digest.
ca-certificates,nix-binandrunitfrom Ubuntu's archive.- Nix, with nixpkgs
nixos-26.05.11045.774debe7a0d1set up for root asnixpkgs. No Nix daemon;build-users-group =in/etc/nix/nix.conf. Root's Nix profile,/nix/var/nix/profiles/default/bin, last on thePATH. Unpacked, nixpkgs takes about 500 MiB. runsvinitas the entrypoint, built fromgithub.com/peterbourgon/runsvinitat a fixed commit hash.- The
swwbinary, and the usersww(uid and gid 65532). - The service directory
/etc/service/sww, with therunscriptshare/sww.run. /var/lib/swwforwaf's state files, and/etc/sww/rules.dwith the default rule fileshare/rules.d/00-default.rules. Therunscript makesSWW_WAF_STATE_DIRwhen it is missing.EXPOSE 8080, and theHEALTHCHECKthat runssww healthcheck.
Pins
- Ubuntu's packages are not pinned: they come from the live archive, whose packages change with every update.
- nixpkgs: the release file
nixexprs.tar.xzofnixos-26.05.11045.774debe7a0d1onreleases.nixos.org, named with its SHA-256 hash. runsvinit: the archived repository, unchanged since 2015, at its last commit (b4b2c78, eight commits afterv2.0.0), by commit hash, with ago.modthe build writes.- The Go image that builds
sww: by digest.