mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2025-09-18 12:44:37 +00:00
services: caddy: Use etc-service-type to place configuration file.
* modules/rosenthal/services/web.scm (caddy-etc): New procedure. (caddy-activation): Create /var/log/caddy. Remove use of /etc/caddy. (caddy-shepherd-services): Add "configuration" and "reload" actions.
This commit is contained in:
parent
4938fbe373
commit
c171b73ae7
@ -79,9 +79,7 @@
|
|||||||
(program (file-append caddy "/bin/caddy"))
|
(program (file-append caddy "/bin/caddy"))
|
||||||
(capabilities "cap_net_bind_service=+ep")))))
|
(capabilities "cap_net_bind_service=+ep")))))
|
||||||
|
|
||||||
(define caddy-activation
|
(define (caddy-activation config)
|
||||||
(match-record-lambda <caddy-configuration>
|
|
||||||
(caddyfile)
|
|
||||||
(with-imported-modules
|
(with-imported-modules
|
||||||
(source-module-closure '((guix build utils)
|
(source-module-closure '((guix build utils)
|
||||||
(gnu build activation)))
|
(gnu build activation)))
|
||||||
@ -89,17 +87,14 @@
|
|||||||
(use-modules (srfi srfi-26)
|
(use-modules (srfi srfi-26)
|
||||||
(guix build utils)
|
(guix build utils)
|
||||||
(gnu build activation))
|
(gnu build activation))
|
||||||
(let* ((config-dir "/etc/caddy")
|
(let ((user (getpwnam "caddy")))
|
||||||
(data-dir "/var/lib/caddy")
|
(mkdir-p/perms "/var/lib/caddy" user #o750)
|
||||||
(config-file (in-vicinity config-dir "Caddyfile"))
|
(mkdir-p/perms "/var/log/caddy" user #o755)))))
|
||||||
(user (getpwnam "caddy")))
|
|
||||||
(for-each (cut mkdir-p/perms <> user #o750)
|
(define caddy-etc
|
||||||
(list config-dir data-dir))
|
(match-record-lambda <caddy-configuration>
|
||||||
(copy-file #$caddyfile config-file)
|
(caddyfile)
|
||||||
(for-each
|
`(("caddy/Caddyfile" ,caddyfile))))
|
||||||
(lambda (file)
|
|
||||||
(chown file (passwd:uid user) (passwd:gid user)))
|
|
||||||
(find-files data-dir #:directories? #t)))))))
|
|
||||||
|
|
||||||
(define caddy-shepherd-services
|
(define caddy-shepherd-services
|
||||||
(match-record-lambda <caddy-configuration>
|
(match-record-lambda <caddy-configuration>
|
||||||
@ -119,6 +114,20 @@
|
|||||||
#:environment-variables '("HOME=/var/lib/caddy")))
|
#:environment-variables '("HOME=/var/lib/caddy")))
|
||||||
(stop
|
(stop
|
||||||
#~(make-kill-destructor))
|
#~(make-kill-destructor))
|
||||||
|
(actions
|
||||||
|
(list (shepherd-configuration-action "/etc/caddy/Caddyfile")
|
||||||
|
(shepherd-action
|
||||||
|
(name 'reload)
|
||||||
|
(documentation "Reload Caddy configuration file.")
|
||||||
|
(procedure
|
||||||
|
#~(lambda (pid)
|
||||||
|
(if pid
|
||||||
|
(begin
|
||||||
|
(system* "/run/privileged/bin/caddy" "reload"
|
||||||
|
"--config" "/etc/caddy/Caddyfile")
|
||||||
|
(display "Service caddy has been asked to \
|
||||||
|
reload its configuration file."))
|
||||||
|
(display "Service caddy is not running.")))))))
|
||||||
(auto-start? auto-start?)))))
|
(auto-start? auto-start?)))))
|
||||||
|
|
||||||
(define caddy-service-type
|
(define caddy-service-type
|
||||||
@ -127,10 +136,12 @@
|
|||||||
(extensions
|
(extensions
|
||||||
(list (service-extension account-service-type
|
(list (service-extension account-service-type
|
||||||
caddy-accounts)
|
caddy-accounts)
|
||||||
(service-extension privileged-program-service-type
|
|
||||||
caddy-privileged-programs)
|
|
||||||
(service-extension activation-service-type
|
(service-extension activation-service-type
|
||||||
caddy-activation)
|
caddy-activation)
|
||||||
|
(service-extension etc-service-type
|
||||||
|
caddy-etc)
|
||||||
|
(service-extension privileged-program-service-type
|
||||||
|
caddy-privileged-programs)
|
||||||
(service-extension shepherd-root-service-type
|
(service-extension shepherd-root-service-type
|
||||||
caddy-shepherd-services)))
|
caddy-shepherd-services)))
|
||||||
(default-value #f)
|
(default-value #f)
|
||||||
|
Loading…
Reference in New Issue
Block a user