Repository navigation
v1.2.0
Two things you cannot recover from after the finish screen — because the installer deletes itself.
Confirm email + confirm password
A typo in the one email address that owns the install is unrecoverable from that screen: the password reset goes to the address that was typed wrong. Both fields are now confirmed, and validated before the download and migration run, so nobody waits through the slow work to be told they mistyped.
Email match is case-insensitive — retyping with different capitalisation isn't a typo. Password match is exact. Password strength stays Tiger's rule, so there's one authority for it rather than two that can disagree.
A credentials backup file
Afterwards the database password lives only in local.ini above the document root, and the agent access key is shown exactly once. Close the tab and they're gone.
The finish screen now offers one file with the admin login, database details, paths, and the agent key.
It's served as a data: URI on a plain <a download>. No JavaScript — and, the actual reason it's built this way, nothing sensitive is ever written to the server. Writing that file into the document root would publish every secret in the install to anyone who guessed the filename, and it would outlive the installer that created it. A file that never exists on disk can't be fetched and can't be left behind.
Tested
83 assertions, CI green on PHP 8.1–8.5.