From 92b5a4ee63b452b4db90808d214508236a37c6ac Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Thu, 4 Jan 2024 19:50:17 +0100 Subject: Add a H4SP service --- .guix-channel | 6 +++++- guix/vkraus/services/h4sp.scm | 49 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 guix/vkraus/services/h4sp.scm diff --git a/.guix-channel b/.guix-channel index 8e7197b..06e659f 100644 --- a/.guix-channel +++ b/.guix-channel @@ -1,6 +1,10 @@ (channel (version 0) - (directory "guix")) + (directory "guix") + (dependencies + (channel + (name guix-extra-services) + (url "https://labo.planete-kraus.eu/guix-extra-services.git")))) ;; Local Variables: ;; mode: scheme ;; End: 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))))) -- cgit v1.2.3