1(define-module (nmeum services web)2 #:use-module (nmeum packages misc)3 #:use-module (guix gexp)4 #:use-module (gnu packages admin)5 #:use-module (gnu services)6 #:use-module (gnu services base)7 #:use-module (gnu services shepherd)8 #:use-module (gnu system accounts)9 #:use-module (gnu system shadow)10 #:use-module (srfi srfi-1)11 #:use-module (srfi srfi-26))1213(define (webdav-server-shepherd-service args)14 (list (shepherd-service15 (documentation "webdav-server daemon.")16 (provision '(webdav-server))17 ;; webdav-server may be bound to a particular IP address, hence18 ;; only start it after the networking service has started.19 (requirement '(user-processes networking))20 (start #~(make-forkexec-constructor21 (list (string-append #$webdav-server "/bin/webdav-server")22 #$@args)23 #:user "webdav-server" #:group "webdav-server"))24 (stop #~(make-kill-destructor)))))2526(define webdav-server-account-service27 (list (user-group (name "webdav-server") (system? #t))28 (user-account29 (name "webdav-server")30 (group "webdav-server")31 (system? #t)32 (comment "webdav-server daemon user")33 (home-directory "/var/empty")34 (shell (file-append shadow "/sbin/nologin")))))3536(define-public webdav-server-service-type37 (service-type (name 'webdav-server)38 (description "Run the WebDAV server.")39 (extensions40 (list (service-extension account-service-type41 (const webdav-server-account-service))42 (service-extension shepherd-root-service-type43 webdav-server-shepherd-service)))44 (compose concatenate)45 (default-value '())))