summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2026-02-08 07:27:24 +0100
committerDanny Milosavljevic <dannym@friendly-machines.com>2026-02-08 23:53:58 +0100
commit64622248cdc7eae23ff06928f516677b41c4d97d (patch)
treecc0c265dfb92005cd63edd27c6f5ff28c716b463 /gnu/services
parentdaca67c56004bcf2fc7abb038384e2f97215f265 (diff)
services: web: Add go-webdav.
* gnu/services/web.scm (go-webdav-service-type): New service. (go-webdav-account-service): New variable. (go-webdav-shepherd-service): New procedures. * gnu/tests/web.scm (%test-go-webdav): Add tests for the service. * doc/guix.texi (Web Services): Document it. Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/web.scm41
1 files changed, 41 insertions, 0 deletions
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 9d314368ff9..4ba2a2268d8 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -57,6 +57,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages rsync)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang-xyz)
#:use-module (gnu packages guile)
#:use-module (gnu packages logging)
#:use-module (gnu packages mail)
@@ -255,6 +256,8 @@
whoogle-configuration-port
whoogle-configuration-environment-variables
+ go-webdav-service-type
+
patchwork-database-configuration
patchwork-database-configuration?
patchwork-database-configuration-engine
@@ -1636,6 +1639,44 @@ Whoogle."))
;;;
+;;; go-webdav
+;;;
+
+(define (go-webdav-shepherd-service args)
+ (list (shepherd-service
+ (documentation "go-webdav daemon.")
+ (provision '(go-webdav))
+ ;; go-webdav may be bound to a particular IP address, hence
+ ;; only start it after the networking service has started.
+ (requirement '(user-processes networking))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$go-webdav "/bin/webdav-server")
+ #$@args)))
+ (stop #~(make-kill-destructor)))))
+
+(define go-webdav-account-service
+ (list (user-group (name "go-webdav") (system? #t))
+ (user-account
+ (name "go-webdav")
+ (group "go-webdav")
+ (system? #t)
+ (comment "go-webdav daemon user")
+ (home-directory "/var/empty")
+ (shell (file-append shadow "/sbin/nologin")))))
+
+(define-public go-webdav-service-type
+ (service-type (name 'go-webdav)
+ (description "Run the go-webdav WebDAV server.")
+ (extensions
+ (list (service-extension account-service-type
+ (const go-webdav-account-service))
+ (service-extension shepherd-root-service-type
+ go-webdav-shepherd-service)))
+ (compose concatenate)
+ (default-value '("-addr" "127.0.0.1:8080"))))
+
+
+;;;
;;; Patchwork
;;;