diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-12-21 23:43:41 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-12-21 23:55:25 +0100 |
commit | 6ee87461e0466f8756ac01257abcae80f7fe17ca (patch) | |
tree | 5e1b905367957e38d69fa491b51fedc2220c80a0 /gnu | |
parent | c48c6152a81c9fe13af382dc33406103fef0e6a7 (diff) | |
download | patches-6ee87461e0466f8756ac01257abcae80f7fe17ca.tar patches-6ee87461e0466f8756ac01257abcae80f7fe17ca.tar.gz |
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.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/services/web.scm | 57 |
1 files changed, 56 insertions, 1 deletions
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 @@ #: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 @@ patchwork-configuration-domain patchwork-virtualhost - patchwork-service-type)) + patchwork-service-type + + mumi-service-type)) ;;; Commentary: ;;; @@ -1652,3 +1655,55 @@ WSGIPassAuthorization On 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))) |