From 55fbf529c7a3f0fefb90b18862ecc7d445656769 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 8 Aug 2025 13:33:04 +0800 Subject: [PATCH] services: caddy: Expose configuration interfaces for shepherd service. * modules/rosenthal/services/web.scm (caddy-configuration) [shepherd-provision, shepherd-requirement, auto-start?]: New fields. * modules/rosenthal/services/web.scm (caddy-shepherd-services): Use them. --- modules/rosenthal/services/web.scm | 45 +++++++++++++++++++----------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/modules/rosenthal/services/web.scm b/modules/rosenthal/services/web.scm index 1e7ee07..d13fc82 100644 --- a/modules/rosenthal/services/web.scm +++ b/modules/rosenthal/services/web.scm @@ -51,6 +51,16 @@ "") (caddyfile file-like + "") + ;; Shepherd + (shepherd-provision + (list-of-symbols '(caddy)) + "") + (shepherd-requirement + (list-of-symbols '()) + "") + (auto-start? + (boolean #t) "")) (define (caddy-accounts config) @@ -91,22 +101,25 @@ (chown file (passwd:uid user) (passwd:gid user))) (find-files data-dir #:directories? #t))))))) -(define (caddy-shepherd-services config) - (list (shepherd-service - (provision '(caddy)) - (requirement '(user-processes loopback)) - (start - #~(make-forkexec-constructor - (list "/run/privileged/bin/caddy" "run" - "--environ" "--config" "/etc/caddy/Caddyfile") - #:user "caddy" - #:group "caddy" - #:directory "/var/lib/caddy" - #:log-file "/var/log/caddy.log" - #:resource-limits '((nofile 1048576 1048576)) - #:environment-variables '("HOME=/var/lib/caddy"))) - (stop - #~(make-kill-destructor))))) +(define caddy-shepherd-services + (match-record-lambda + (shepherd-provision shepherd-requirement auto-start?) + (list (shepherd-service + (provision shepherd-provision) + (requirement `(user-processes loopback ,@shepherd-requirement)) + (start + #~(make-forkexec-constructor + (list "/run/privileged/bin/caddy" "run" + "--environ" "--config" "/etc/caddy/Caddyfile") + #:user "caddy" + #:group "caddy" + #:directory "/var/lib/caddy" + #:log-file "/var/log/caddy.log" + #:resource-limits '((nofile 1048576 1048576)) + #:environment-variables '("HOME=/var/lib/caddy"))) + (stop + #~(make-kill-destructor)) + (auto-start? auto-start?))))) (define caddy-service-type (service-type