mirror of
				https://codeberg.org/hako/Rosenthal.git
				synced 2025-11-03 19:24:37 +00:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									8837ea1b4e
								
							
						
					
					
						commit
						55fbf529c7
					
				@ -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 <caddy-configuration>
 | 
			
		||||
      (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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user