about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--zach-branch.scm75
-rwxr-xr-xzach-deploy-tux01.sh44
2 files changed, 119 insertions, 0 deletions
diff --git a/zach-branch.scm b/zach-branch.scm
new file mode 100644
index 0000000..bc80f13
--- /dev/null
+++ b/zach-branch.scm
@@ -0,0 +1,75 @@
+;;; genenetwork-machines --- Guix configuration for genenetwork machines
+;;; Copyright © 2022–2024 Arun Isaac <arunisaac@systemreboot.net>
+;;;
+;;; This file is part of genenetwork-machines.
+;;;
+;;; genenetwork-machines is free software: you can redistribute it
+;;; and/or modify it under the terms of the GNU General Public License
+;;; as published by the Free Software Foundation, either version 3 of
+;;; the License, or (at your option) any later version.
+;;;
+;;; genenetwork-machines is distributed in the hope that it will be
+;;; useful, but WITHOUT ANY WARRANTY; without even the implied
+;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+;;; See the GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with genenetwork-machines.  If not, see
+;;; <https://www.gnu.org/licenses/>.
+
+(use-modules (gnu)
+             (genenetwork services genenetwork)
+             ((gnu packages admin) #:select (shepherd))
+             (gn services databases)
+             (gnu services databases)
+             (forge acme)
+             (forge nginx)
+             (forge socket))
+
+(operating-system
+  (host-name "genenetwork-zach-branch")
+  (timezone "UTC")
+  (locale "en_US.utf8")
+  (bootloader (bootloader-configuration
+               (bootloader grub-bootloader)
+               (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
+                             (auto-upgrade? #f)))
+                   (service virtuoso-service-type
+                            (virtuoso-configuration
+                             (server-port 7892)
+                             (http-server-port 7893)))
+                   (service forge-nginx-service-type
+                            (forge-nginx-configuration
+                             (http-listen (forge-ip-socket
+                                           (ip "0.0.0.0")
+                                           (port 7890)))
+                             (https-listen (forge-ip-socket
+                                            (ip "0.0.0.0")
+                                            (port 7891)))))
+                   (service acme-service-type
+                            (acme-configuration
+                             (email "arunisaac@systemreboot.net")))
+                   (service genenetwork-service-type
+                            (genenetwork-configuration
+                             (server-name "gn2-zach.genenetwork.org")
+                             (gn-auth-server-name "gn2-zach-auth.genenetwork.org")
+                             (gn2-port 7894)
+                             (gn3-port 7895)
+                             (gn-auth-port 7896)
+                             (sql-uri "mysql://webqtlout:webqtlout@localhost/db_webqtl")
+                             (xapian-db "/export/data/genenetwork/xapian")
+                             (sparql-endpoint "http://localhost:7893/sparql")
+                             (gn3-data-directory "/export/data/genenetwork")
+                             (gn2-secrets "/etc/genenetwork/genenetwork2")
+                             (gn3-secrets "/etc/genenetwork/genenetwork3/gn3-secrets.py")
+                             (gn-auth-secrets "/etc/genenetwork/gn-auth")))
+                   %base-services)))
diff --git a/zach-deploy-tux01.sh b/zach-deploy-tux01.sh
new file mode 100755
index 0000000..aacc7de
--- /dev/null
+++ b/zach-deploy-tux01.sh
@@ -0,0 +1,44 @@
+#! /bin/sh -e
+
+# genenetwork-machines --- Guix configuration for genenetwork machines
+# Copyright © 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
+#
+# This file is part of genenetwork-machines.
+#
+# genenetwork-machines is free software: you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation, either version 3 of
+# the License, or (at your option) any later version.
+#
+# genenetwork-machines is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with genenetwork-machines.  If not, see
+# <https://www.gnu.org/licenses/>.
+
+# Build and install genenetwork production container on tux02.
+
+container_script=$(/home/zas1024/opt/guix-production/bin/guix \
+                       system container \
+                        --network \
+                        --load-path=. \
+                        --verbosity=3 \
+                        --share=/home/zas1024/guix-containers/var/genetwork3=/var/genenetwork \
+                        --share=/home/zas1024/guix-containers/var/lib/acme=/var/lib/acme \
+                        --share=/var/lib/mysql \
+                        --share=/home/zas1024/guix-containers/var/lib/virtuoso=/var/lib/virtuoso \
+                        --share=/home/zas1024/guix-containers/var/log=/var/log \
+                        --share=/home/zas1024/guix-containers/etc=/etc/genenetwork \
+                        --share=/export/data/genenetwork/xapian \
+                        --share=/home/gn2/auth_copy.db=/var/genenetwork/auth.db \
+                        --share=/home/zas1024/guix-containers/var/log=/var/log \
+                        --share=/home/zas1024/gn2-zach/genotype_files=/var/genenetwork/genotype-files \
+                        --share=/var/run/mysqld=/run/mysqld \
+                        zach-branch.scm)
+
+echo $container_script
+sudo ln --force --symbolic $container_script /usr/local/bin/genenetwork-zach-container
+sudo ln --force --symbolic /usr/local/bin/genenetwork-zach-container /var/guix/gcroots