1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 13:10:33 +02:00

services: web: Add sogogi service.

* gnu/services/web.scm (sogogi-service-type): New services.
(sogogi-serialize-section, sogogi-serialize-field)
(sogogi-serialize-string, sogogi-serialize-list-of-strings)
(sogogi-serialize-sogogi-user, sogogi-serialize-sogogi-location)
(sogogi-serialize-list-of-sogogi-user): New procedures.
(sogogi-user, sogogi-location)
(sogogi-configuration): New record types.
(sogogi-account-service): New variable.
(sogogi-config-file, sogogi-shepherd-service): New procedures.
* gnu/tests/web.scm (%test-sogogi): Add tests for the service.
* doc/guix.texi (Web Services): Document it.

Change-Id: I5cc6dd84d6c7c8d5d13b685853b19c5d433ed7e5
This commit is contained in:
Sören Tempel
2025-12-30 16:08:16 +01:00
parent 829b7e108d
commit 3f3cec8993
3 changed files with 250 additions and 0 deletions

View File

@@ -35893,6 +35893,75 @@ The port on which to connect to the database.
@end table
@end deftp
@subsubheading sogogi
@cindex sogogi, WebDAV Server
@uref{https://codeberg.org/emersion/sogogi, sogogi} is a
server for the
@uref{https://www.rfc-editor.org/rfc/rfc4918, WebDAV} protocol.
@defvar sogogi-service-type
This is the service type for sogogi. Its value must be a
@code{sogogi-configuration} object as in this example:
@lisp
(service sogogi-service-type
(sogogi-configuration
(listen ":8080")
(location
(list
(sogogi-location
(path "/")
(dir "/srv/http/")
(grant '("all ro")))))))
@end lisp
@end defvar
@deftp {Data Type} sogogi-configuration
Available @code{sogogi-configuration} fields are:
@table @asis
@item @code{listen} (default: @code{"localhost:8080"}) (type: string)
Listening address.
@item @code{location} (default: @code{()}) (type: list-of-sogogi-location)
Local directories to expose via a HTTP path
@item @code{user} (default: @code{()}) (type: list-of-sogogi-user)
Users with access to the location.
@end table
@end deftp
@deftp {Data Type} sogogi-location
Available @code{sogogi-location} fields are:
@table @asis
@item @code{path} (type: string)
HTTP path at which the directory will be exposed.
@item @code{dir} (type: string)
Path to local directory to serve.
@item @code{grant} (type: maybe-list-of-strings)
Grant remote users access to the directory.
@end table
@end deftp
@deftp {Data Type} sogogi-user
Available @code{sogogi-user} fields are:
@table @asis
@item @code{name} (type: maybe-string)
Name of the user.
@item @code{password} (type: maybe-string)
Password of the user.
@end table
@end deftp
@subsubheading Mumi
@cindex Mumi, Debbugs Web interface