about summary refs log tree commit diff
path: root/guix/forge/forge.scm
diff options
context:
space:
mode:
authorArun Isaac2025-11-03 17:42:48 +0000
committerArun Isaac2025-11-03 17:48:30 +0000
commit6d2f5f84c29bf8470dff77f86f3018acea4e9e98 (patch)
tree41c45618ad22a5a5064147a6084c62abb4944fe1 /guix/forge/forge.scm
parent5f62b15f1924648b80e8cc42543597e78472f7b9 (diff)
downloadguix-forge-6d2f5f84c29bf8470dff77f86f3018acea4e9e98.tar.gz
guix-forge-6d2f5f84c29bf8470dff77f86f3018acea4e9e98.tar.lz
guix-forge-6d2f5f84c29bf8470dff77f86f3018acea4e9e98.zip
forge: Serve project websites under the forge web domain.
Diffstat (limited to 'guix/forge/forge.scm')
-rw-r--r--guix/forge/forge.scm17
1 files changed, 16 insertions, 1 deletions
diff --git a/guix/forge/forge.scm b/guix/forge/forge.scm
index 6a0ec6c..20d534c 100644
--- a/guix/forge/forge.scm
+++ b/guix/forge/forge.scm
@@ -490,7 +490,22 @@ that were built."
 forge configuration @var{config}."
   (cons (nginx-server-configuration
           (server-name (list (forge-configuration-web-domain config)))
-          (root (forge-configuration-web-root config)))
+          (root (forge-configuration-web-root config))
+          (locations
+           ;; Configure location blocks for projects that have a website
+           ;; directory but no web domain.
+           (filter-map (lambda (project)
+                         (match-record project <forge-project>
+                           (name web-domain website-directory)
+                           (and (not web-domain)
+                                website-directory
+                                (nginx-location-configuration
+                                  (uri (string-append "/" name "/"))
+                                  (body
+                                   (list (string-append "alias "
+                                                        (file-name-as-directory website-directory)
+                                                        ";")))))))
+                       (forge-configuration-projects config))))
         ;; Configure nginx server blocks for projects that have a web domain and
         ;; a website directory.
         (filter-map (match-record-lambda <forge-project>