From 6ee87461e0466f8756ac01257abcae80f7fe17ca Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 21 Dec 2019 23:43:41 +0100 Subject: services: Add Mumi service. * gnu/services/web.scm (%mumi-activation, %mumi-accounts): New variables. (mumi-shepherd-services): New procedure. (mumi-service-type): New variable. * doc/guix.texi (Web Services): Document it. --- gnu/services/web.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) (limited to 'gnu/services/web.scm') diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 372f4dc6fc..3ac7b7f52c 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -43,6 +43,7 @@ (define-module (gnu services web) #:use-module (gnu packages gnupg) #:use-module (gnu packages guile) #:use-module (gnu packages logging) + #:use-module (gnu packages mail) #:use-module (guix packages) #:use-module (guix records) #:use-module (guix modules) @@ -256,7 +257,9 @@ (define-module (gnu services web) patchwork-configuration-domain patchwork-virtualhost - patchwork-service-type)) + patchwork-service-type + + mumi-service-type)) ;;; Commentary: ;;; @@ -1652,3 +1655,55 @@ (define patchwork-service-type patchwork-getmail-configs))) (description "Patchwork patch tracking system."))) + + +;;; +;;; Mumi. +;;; + +(define %mumi-activation + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (mkdir-p "/var/mumi/mails") + (let* ((pw (getpwnam "mumi")) + (uid (passwd:uid pw)) + (gid (passwd:gid pw))) + (chown "/var/mumi" uid gid) + (chown "/var/mumi/mails" uid gid))))) + +(define %mumi-accounts + (list (user-group (name "mumi") (system? #t)) + (user-account + (name "mumi") + (group "mumi") + (system? #t) + (comment "Mumi web server") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define (mumi-shepherd-services mumi) + (list (shepherd-service + (provision '(mumi)) + (documentation "Mumi bug-tracking web interface.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + '(#$(file-append mumi "/bin/mumi")) + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.log")) + (stop #~(make-kill-destructor))))) + +(define mumi-service-type + (service-type + (name 'mumi) + (extensions + (list (service-extension activation-service-type + (const %mumi-activation)) + (service-extension account-service-type + (const %mumi-accounts)) + (service-extension shepherd-root-service-type + mumi-shepherd-services))) + (description + "Run Mumi, a Web interface to the Debbugs bug-tracking server.") + (default-value mumi))) -- cgit v1.2.3