diff mbox series

[bug#39934] services: certbot: Add server option.

Message ID 20200305203948.2998-1-jackhill@jackhill.us
State Accepted
Headers show
Series [bug#39934] services: certbot: Add server option. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Jack Hill March 5, 2020, 8:39 p.m. UTC
* gnu/services/certbot.scm (certbot-configuration): Add server option.
(certbot-command): Use server option.
(certbot-actication): Use server option.
(certbot-nginx-server-configurations): Use server option.
* doc/guix.texi (Certificate Services): Document server option.

Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr>
---
 doc/guix.texi            |  5 +++++
 gnu/services/certbot.scm | 12 +++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

Comments

Ludovic Courtès March 8, 2020, 8:19 p.m. UTC | #1
Hi,

Jack Hill <jackhill@jackhill.us> skribis:

> * gnu/services/certbot.scm (certbot-configuration): Add server option.
> (certbot-command): Use server option.
> (certbot-actication): Use server option.
> (certbot-nginx-server-configurations): Use server option.
> * doc/guix.texi (Certificate Services): Document server option.
>
> Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr>

Applied, thanks!

Ludo’.
Jack Hill March 9, 2020, 4:40 a.m. UTC | #2
On Sun, 8 Mar 2020, Ludovic Courtès wrote:

> Applied, thanks!

Awesome, thank you both.

Best,
Jack
diff mbox series

Patch

diff --git a/doc/guix.texi b/doc/guix.texi
index fab9159530..2278cb6a53 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -74,6 +74,7 @@  Copyright @copyright{} 2019, 2020 Simon Tournier@*
 Copyright @copyright{} 2020 Wiktor Żelazny@*
 Copyright @copyright{} 2020 Damien Cassou@*
 Copyright @copyright{} 2020 Jakub Kądziołka@*
+Copyright @copyright{} 2020 Jack Hill@*
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21008,6 +21009,10 @@  and several @code{domains}.
 Mandatory email used for registration, recovery contact, and important
 account notifications.
 
+@item @code{server} (default: @code{#f})
+Optional URL of ACME server.  Setting this overrides certbot's default,
+which is the Let's Encrypt server.
+
 @item @code{rsa-key-size} (default: @code{2048})
 Size of the RSA key.
 
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index 0d3be03383..3e005918d6 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -3,6 +3,8 @@ 
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,6 +72,8 @@ 
   (certificates        certbot-configuration-certificates
                        (default '()))
   (email               certbot-configuration-email)
+  (server              certbot-configuration-server
+                       (default #f))
   (rsa-key-size        certbot-configuration-rsa-key-size
                        (default #f))
   (default-location    certbot-configuration-default-location
@@ -82,7 +86,7 @@ 
 (define certbot-command
   (match-lambda
     (($ <certbot-configuration> package webroot certificates email
-                                rsa-key-size default-location)
+                                server rsa-key-size default-location)
      (let* ((certbot (file-append package "/bin/certbot"))
             (rsa-key-size (and rsa-key-size (number->string rsa-key-size)))
             (commands
@@ -101,6 +105,7 @@ 
                             "--cert-name" name
                             "--manual-public-ip-logging-ok"
                             "-d" (string-join domains ","))
+                      (if server `("--server" ,server) '())
                       (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
                       (if authentication-hook
                           `("--manual-auth-hook" ,authentication-hook)
@@ -113,6 +118,7 @@ 
                             "--webroot" "-w" webroot
                             "--cert-name" name
                             "-d" (string-join domains ","))
+                      (if server `("--server" ,server) '())
                       (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
                       (if deploy-hook `("--deploy-hook" ,deploy-hook) '()))))))
               certificates)))
@@ -142,7 +148,7 @@ 
          (message (format #f (G_ "~a may need to be run~%") script)))
     (match config
       (($ <certbot-configuration> package webroot certificates email
-                                  rsa-key-size default-location)
+                                  server rsa-key-size default-location)
        (with-imported-modules '((guix build utils))
          #~(begin
              (use-modules (guix build utils))
@@ -154,7 +160,7 @@ 
 (define certbot-nginx-server-configurations
   (match-lambda
     (($ <certbot-configuration> package webroot certificates email
-                                rsa-key-size default-location)
+                                server rsa-key-size default-location)
      (list
       (nginx-server-configuration
        (listen '("80" "[::]:80"))