check / check (push) Waiting to run
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.