about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/forge.skb4
-rw-r--r--guix/forge/klaus.scm9
2 files changed, 10 insertions, 3 deletions
diff --git a/doc/forge.skb b/doc/forge.skb
index 9063b80..f63b469 100644
--- a/doc/forge.skb
+++ b/doc/forge.skb
@@ -308,7 +308,9 @@ include in the generated ,(file [cgitrc]) configuration file])
            (record-field "repository-directory"
              [Directory containing git repositories to serve])
            (record-field "site-name"
-             [Title on klaus web pages])))))
+             [Title on klaus web pages])
+           (record-field "gunicorn-workers"
+             [Number of gunicorn worker processes])))))
     (section :title [tissue service]
              :ident "section-tissue-service"
       (p [tissue is an issue tracker built on plain text files and
diff --git a/guix/forge/klaus.scm b/guix/forge/klaus.scm
index 11cdbd5..157a974 100644
--- a/guix/forge/klaus.scm
+++ b/guix/forge/klaus.scm
@@ -34,6 +34,7 @@
                                              nginx-location-configuration))
   #:use-module (gnu system file-systems)
   #:use-module (guix deprecation)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix records)
   #:export (<klaus-configuration>
@@ -44,6 +45,7 @@
             klaus-configuration-socket
             klaus-configuration-repository-directory
             klaus-configuration-site-name
+            klaus-configuration-gunicorn-workers
             klaus-service-type
             klaus-gunicorn-app))
 
@@ -74,16 +76,19 @@
   (repository-directory klaus-configuration-repository-directory
                         (default "/srv/git"))
   (site-name klaus-configuration-site-name
-             (default #f)))
+             (default #f))
+  (gunicorn-workers klaus-configuration-gunicorn-workers
+                    (default #~(* 2 (total-processor-count)))))
 
 (define klaus-gunicorn-apps
   (match-record-lambda <klaus-configuration>
-    (python-klaus socket repository-directory site-name)
+    (python-klaus socket repository-directory site-name gunicorn-workers)
     (list (gunicorn-app
            (name "klaus")
            (package python-klaus)
            (wsgi-app-module "klaus.contrib.wsgi_autoreload")
            (sockets (list socket))
+           (workers gunicorn-workers)
            (environment-variables (cons* (environment-variable
                                           (name "KLAUS_REPOS_ROOT")
                                           (value repository-directory))