nixos/demo-wiki.nix
https://filc.less.rest: a public Fil-C server on EC2, booted from the filnix AMI (nixos/amazon.nix). MediaWiki runs on Fil-C PHP-FPM behind Fil-C lighttpd, with SQLite; TLS comes from Let's Encrypt over HTTP-01 on the machine itself. scripts/launch-demo-wiki launches it.
It is meant to survive being broken into without cost: no IAM instance profile, IMDSv2 with a hop limit of 1, no tokens or private keys but its own TLS key, a read-only wiki without account creation, and updates pulled from the latest filnix release, with nothing that could push to it. /status/ shows what filc-ps finds running.
lego (ACME) and minica (its bootstrap certificate) are Go.
A public server: no console autologin; root logs in with the key pair.
The module's default is PHP 8.3, which is not ported.
Nobody logs in, so nobody needs to know it.
A Fil-C php-fpm worker grows to 150-250 MB; t3.medium has 4 GiB.
Generate the MediaWiki admin password
lighttpd reaches PHP-FPM through the pool's socket, owned by mediawiki.
lighttpd starts with the self-signed certificate that the acme unit makes first, and reloads when Let's Encrypt's arrives.
What runs here, every 5 minutes, at https://filc.less.rest/status/.
Write the filc-ps status page
Pull updates: switch to this configuration at the newest filnix release, substituting everything (max-jobs 0 refuses to build here).
Switch to demo-wiki at the latest filnix release
The switch changes this unit too; restarting it would kill the switch's caller before it writes the tag, and the rerun collides with the switch.