about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2025-10-04 14:47:43 -0500
committerPjotr Prins2025-10-04 14:48:26 -0500
commit55f1bb691a496cdc603e8f01f106be0cab803f28 (patch)
tree12c43f0503b25d1b18fd69f6cbf729306dcc1280
parente156dcd874fb1f3272553d4302969360760aaa64 (diff)
downloadgn-machines-main.tar.gz
latent service HEAD main
-rw-r--r--test-r-container.scm111
1 files changed, 111 insertions, 0 deletions
diff --git a/test-r-container.scm b/test-r-container.scm
new file mode 100644
index 0000000..3167574
--- /dev/null
+++ b/test-r-container.scm
@@ -0,0 +1,111 @@
+(use-modules (guix)
+             (gnu)
+             (guix git)
+             (guix modules)
+             (guix profiles)
+             (guix records)
+             (guix packages)
+             (guix git-download)
+             (guix build-system trivial)
+             (gnu services dbus)
+             (gnu services networking)
+             (gnu services ssh)
+             (gnu services web)
+             (gnu services certbot)
+             (gnu services docker)
+             (gnu services desktop)
+             (gnu services shepherd)
+             (gnu packages admin)
+             (gnu packages statistics)
+             (gnu packages cran)
+             (gnu packages curl)
+             (gnu packages lsof)
+             (srfi srfi-1)
+             (ice-9 match)
+             (genenetwork services mouse-longevity)
+             (gn services rshiny)
+             (gn packages mouse-longevity)
+             (forge acme)
+             (forge nginx)
+             (forge socket)
+             (gnu services))
+
+(define %nginx-configuration
+  (nginx-configuration
+   (server-blocks
+    (list
+     ;; Redirect domains that don't explicitly support HTTP (below) to HTTPS.
+     (nginx-server-configuration
+      (listen '("8080")))
+
+     ;; Domains that still explicitly support plain HTTP.
+     (nginx-server-configuration
+      (listen '("80"))
+      (server-name '("longevity-explorer.genenetwork.org"))
+      (locations
+       (list
+        (nginx-location-configuration
+         (uri "/")
+         (body (list "proxy_pass http://127.0.0.1:3979;")))))
+      (raw-content
+       (list
+        "proxy_set_header Host $host;"
+        "proxy_set_header X-Real-IP $remote_addr;"
+        "proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;"
+        "proxy_set_header X-Forwarded-Proto $scheme;")))))))
+
+(operating-system
+ (host-name "testing-genenetwork-services")
+ (keyboard-layout (keyboard-layout "us"))
+ (kernel-arguments
+    (cons* "console=ttyS0,115200" "console=tty0"
+           %default-kernel-arguments))
+ (bootloader (bootloader-configuration (bootloader grub-bootloader)))
+ (issue "This is a GeneNetwork container.  Welcome!\n")
+ (file-systems %base-file-systems)
+ (sudoers-file
+   (mixed-text-file "sudoers"
+     "@include " %sudoers-specification
+     "\nacme ALL = NOPASSWD: " (file-append shepherd "/bin/herd") " restart nginx\n"))
+ (packages (cons* lsof curl %base-packages))
+ (services
+  (cons*
+   (service dhcp-client-service-type)
+   (service dbus-root-service-type)
+   (service polkit-service-type)
+   (service forge-nginx-service-type
+            (forge-nginx-configuration
+             (http-listen (forge-ip-socket
+                           (ip "127.0.0.1")
+                           (port "8080")))
+             (https-listen (forge-ip-socket
+                            (ip "127.0.0.1")
+                            (port "8443")))
+             (server-blocks
+              (list
+               (nginx-server-configuration
+                (server-name '("longevity-explorer.genenetwork.org"))
+                (locations
+                 (list (nginx-location-configuration
+                        (uri "/")
+                        (body (list "proxy_pass http://localhost:3979;"
+                                    "proxy_set_header Host $host;"))))))))))
+   (service acme-service-type
+            (acme-configuration
+             (email "jgart@dismail.de")
+             (acme-url %letsencrypt-staging-url)))
+   ;; (service certbot-service-type
+   ;;          (certbot-configuration
+   ;;           (email "jgart@dismail.de")
+   ;;           (certificates
+   ;;            (list
+   ;;             (certificate-configuration
+   ;;              (domains '("longevity-explorer.genenetwork.org"
+   ;;                         "www.longevity-explorer.genenetwork.org")))))))
+   ;; (mouse-longevity-service )
+   (service rshiny-service-type
+            (rshiny-configuration
+             (package mouse-longevity-app)
+             (binary "mouse-longevity-app")))
+   ;; (service nginx-service-type %nginx-configuration)
+   %base-services)))