about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2024-01-03 00:44:41 +0000
committerArun Isaac2024-01-03 00:44:41 +0000
commit9b38443da7c4075cda666726f04f0daff1433dc1 (patch)
tree866166cce1a53319943b2e3ac594f32a102fb285
parent32afafc93077e9d6d57354540967dfa1a42cb9b1 (diff)
downloadgn-machines-9b38443da7c4075cda666726f04f0daff1433dc1.tar.gz
Add GeneNetwork service to production container.
* production.scm: Import (genenetwork services genenetwork), (forge
acme), (forge nginx) and (forge socket). Import shepherd from (gnu
packages admin).
(operating-system)[sudoers-file]: Allow acme user to restart nginx.
(services): Add forge-nginx, acme and genenetwork services.
-rwxr-xr-xproduction-deploy.sh10
-rw-r--r--production.scm35
2 files changed, 42 insertions, 3 deletions
diff --git a/production-deploy.sh b/production-deploy.sh
index c774a31..d87a459 100755
--- a/production-deploy.sh
+++ b/production-deploy.sh
@@ -1,7 +1,7 @@
 #! /bin/sh -e
 
 # genenetwork-machines --- Guix configuration for genenetwork machines
-# Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+# Copyright © 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
 #
 # This file is part of genenetwork-machines.
 #
@@ -22,9 +22,17 @@
 # Build and install genenetwork production container on tux02.
 
 container_script=$(guix system container \
+                        --network \
+                        --load-path . \
                         --verbosity=3 \
+                        --share=/export2/guix-containers/genenetwork/var/lib/acme=/var/lib/acme \
                         --share=/export2/guix-containers/genenetwork/var/lib/mysql=/var/lib/mysql \
                         --share=/export2/guix-containers/genenetwork/var/lib/virtuoso=/var/lib/virtuoso \
+                        --expose=/export2/guix-containers/genenetwork/etc/genenetwork=/etc/genenetwork \
+                        --expose=/export/data/genenetwork-xapian \
+                        --share=/export/data/genenetwork-sqlite \
+                        --expose=/export/data/genenetwork/genotype_files \
+                        --share=/var/run/mysqld=/run/mysqld \
                         production.scm)
 
 echo $container_script
diff --git a/production.scm b/production.scm
index 5d6554c..12ec385 100644
--- a/production.scm
+++ b/production.scm
@@ -1,5 +1,5 @@
 ;;; genenetwork-machines --- Guix configuration for genenetwork machines
-;;; Copyright © 2022, 2023 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022–2024 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of genenetwork-machines.
 ;;;
@@ -18,8 +18,13 @@
 ;;; <https://www.gnu.org/licenses/>.
 
 (use-modules (gnu)
+             (genenetwork services genenetwork)
+             ((gnu packages admin) #:select (shepherd))
              (gn services databases)
-             (gnu services databases))
+             (gnu services databases)
+             (forge acme)
+             (forge nginx)
+             (forge socket))
 
 (operating-system
   (host-name "genenetwork")
@@ -30,6 +35,10 @@
                (targets (list "/dev/sdX"))))
   (file-systems %base-file-systems)
   (users %base-user-accounts)
+  (sudoers-file
+   (mixed-text-file "sudoers"
+                    "@include " %sudoers-specification
+                    "\nacme ALL = NOPASSWD: " (file-append shepherd "/bin/herd") " restart nginx\n"))
   (packages %base-packages)
   (services (cons* (service mysql-service-type
                             (mysql-configuration
@@ -38,4 +47,26 @@
                             (virtuoso-configuration
                              (server-port 8891)
                              (http-server-port 8892)))
+                   (service forge-nginx-service-type
+                            (forge-nginx-configuration
+                             (http-listen (forge-ip-socket
+                                           (ip "0.0.0.0")
+                                           (port 8890)))
+                             (https-listen (forge-ip-socket
+                                            (ip "0.0.0.0")
+                                            (port 8891)))))
+                   (service acme-service-type
+                            (acme-configuration
+                             (email "arunisaac@systemreboot.net")))
+                   (service genenetwork-service-type
+                            (genenetwork-configuration
+                             (server-name "test1.genenetwork.org")
+                             (gn2-port 8892)
+                             (gn3-port 8893)
+                             (sql-uri "mysql://webqtlout:webqtlout@localhost/db_webqtl")
+                             (auth-db "/export/data/genenetwork-sqlite/auth.db")
+                             (xapian-db "/export/data/genenetwork-xapian")
+                             (genotype-files "/export/data/genenetwork/genotype_files")
+                             (sparql-endpoint "http://localhost:8892/sparql")
+                             (gn3-data-directory "/export/data/genenetwork")))
                    %base-services)))