acme terms parameter is not noted in the readme or command line
While the latest skeleton has a note explicitly about accepting lets encrypt ACME terms, the readme does not. Anyone who has upgraded their obelisk project from previous versions now has a mysterious error unless they understand how obelisk deployments work. Instead of getting an error from ob deploy itself, the user has to run a nix-build called by it and then they see a nix-level assertion error:
Failed assertions:
- You must accept the CA's terms of service before using
the ACME module by setting `security.acme.acceptTerms`
At the very least ob deploy itself should catch this problem and tell the user what to do, which is to add terms.security.acme.acceptTerms = true to the parameters passed to .obelisk/impl.
I was also able to solve this by setting module.nix to
moduleInfo: {...}: {
imports = [
((import ./src {}).obelisk.serverModules.mkBaseEc2 moduleInfo)
];
security.acme.acceptTerms = true;
}
I think it makes more sense to accept these terms in the deployment than in the code repo, since the terms apply to your use of the service on your server, not to the code you write. But to make this clean mkBaseEc2 would have to support passing in the acceptance as a parameter, like .obelisk/impl.