obelisk icon indicating copy to clipboard operation
obelisk copied to clipboard

acme terms parameter is not noted in the readme or command line

Open madeline-os opened this issue 5 years ago • 1 comments

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.

madeline-os avatar Dec 04 '20 15:12 madeline-os

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.

kmicklas avatar Feb 26 '21 02:02 kmicklas