diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2024-01-04 19:50:17 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2024-01-04 19:50:17 +0100 |
commit | 92b5a4ee63b452b4db90808d214508236a37c6ac (patch) | |
tree | a913cb2f70e0742eef92da4ddfd16e2147cc5a5a /guix/vkraus/services/h4sp.scm | |
parent | 7fea2340625dabfdddbe23d7c46391311100ebd0 (diff) |
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))))) |