diff options
Diffstat (limited to 'guix/vkraus/services/h4sp.scm')
-rw-r--r-- | guix/vkraus/services/h4sp.scm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/guix/vkraus/services/h4sp.scm b/guix/vkraus/services/h4sp.scm new file mode 100644 index 0000000..b2da50d --- /dev/null +++ b/guix/vkraus/services/h4sp.scm @@ -0,0 +1,49 @@ +(define-module (vkraus services h4sp) + #:use-module ((gnu services) + #:select (service-type + service-extension)) + #:use-module ((gnu services web) + #:select (nginx-service-type + nginx-server-configuration + nginx-location-configuration)) + #:use-module ((gnu services certbot) + #:select (certbot-service-type + certificate-configuration)) + #:use-module ((vkraus services simple-firewall) + #:select (simple-firewall-configuration + simple-firewall-service-type)) + #:use-module ((vkraus packages h4sp) + #:select (h4sp:website)) + #:use-module ((guix gexp) + #:select (file-append program-file gexp)) + #:export (h4sp-service-type) + #:duplicates (merge-generics) + #:declarative? #t) + +(define (nginx-extension _) + (list h4sp:website)) + +(define (certbot-extension _) + (list + (certificate-configuration + (domains (list "h4sp.planete-kraus.eu")) + (deploy-hook + (program-file + "refresh-nginx" + #~(let ((pid (call-with-input-file "/var/run/nginx/pid" read))) + (kill pid SIGHUP))))))) + +(define (simple-firewall-extension _) + (list + (simple-firewall-configuration #f '(http https) '(http https)))) + +(define h4sp-service-type + (service-type + (name 'h4sp) + (description + "Serve the web pages for H4SP.") + (extensions + (list + (service-extension nginx-service-type nginx-extension) + (service-extension certbot-service-type certbot-extension) + (service-extension simple-firewall-service-type simple-firewall-extension))))) |