pub async fn init(
palette: Palette,
config: &Arc<Config>,
database: Arc<Database>,
) -> Result<(), CliError>Expand description
acme-proxy init — migrate, then generate whatever first-run material the
configuration calls for.
The one command that creates key material. A serving process that does not
run the worker role refuses to generate any, so a split deployment runs
this once, as the uid that should own the files, before starting anything.
Building the profiles is what generates: server::profile::build_all constructs
every signer backend, and a local_ca with no key writes one, a relay
with no account registers one. That is why this goes through the real
builder rather than a separate generation path — there would be two
definitions of “what a fresh deployment needs” otherwise.