From 88bc1f1a59480eb39ab6a9db5915dfc150e9432b Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Wed, 3 Apr 2024 06:44:13 -0500 Subject: gendev: special machine for Pjotr --- genenetwork/services/genenetwork.scm | 5 ++- specials/gndev-deploy.sh | 64 ++++++++++++++++++++++++++++++++ specials/gndev.scm | 71 ++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100755 specials/gndev-deploy.sh create mode 100644 specials/gndev.scm diff --git a/genenetwork/services/genenetwork.scm b/genenetwork/services/genenetwork.scm index 6a691b8..8e65c90 100644 --- a/genenetwork/services/genenetwork.scm +++ b/genenetwork/services/genenetwork.scm @@ -294,8 +294,11 @@ object." (source gn-sourcecode-directory) (target source)) (file-system-mapping - (source gn3-data-directory) + (source genotype-files) (target source)) + (file-system-mapping + (source gn3-data-directory) + (target source)) ; Rqtl usese this (file-system-mapping ; GN2 and GN3 need to share TMPDIR (source "/tmp") (target "/tmp") diff --git a/specials/gndev-deploy.sh b/specials/gndev-deploy.sh new file mode 100755 index 0000000..c25df03 --- /dev/null +++ b/specials/gndev-deploy.sh @@ -0,0 +1,64 @@ +#! /bin/bash -e + +# This is a development machine used by Pjotr +# +# genenetwork-machines --- Guix configuration for genenetwork machines +# Copyright © 2022, 2024 Arun Isaac +# +# 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 +# . + +# See also https://issues.genenetwork.org/topics/systems/fire-up-genenetwork-system-container + +# this script should not be run as root. +if [ "$EUID" -eq 0 ] + then echo "Please do not run as root." + exit +fi + +echo Build and install genenetwork gndev container on $HOSTNAME + +mkdir -p /export2/guix-containers/gndev/tmp +rm -rf /export2/guix-containers/gndev/tmp/ # muck out +touch /export2/guix-containers/gndev/tmp/gndev-tmp +mkdir -p /export2/guix-containers/gndev/var/lib/acme +mkdir -p /export2/guix-containers/genenetwork/etc/genenetwork +mkdir -p /export2/data/gndev-xapian +mkdir -p /export2/data/gndev-sqlite +mkdir -p /export/data/gndev/genotype_files + +# Note that if you change these paths you need to rebuild the container +container_script=$(~/opt/guix-gndev/bin/guix system container \ + --network \ + --load-path=.. -L ~/guix-bioinformatics \ + --verbosity=3 \ + --share=/export2/guix-containers/gndev/var/lib/acme=/var/lib/acme \ + --share=/export2/guix-containers/gndev/tmp=/var/tmp \ + --share=/export2/guix-containers/genenetwork/etc/genenetwork=/etc/genenetwork \ + --share=/export2/data/gndev-xapian \ + --share=/export2/data/gndev-sqlite \ + --expose=/export/data/genenetwork/genotype_files \ + --expose=/export/data/gndev \ + --share=/var/run/mysqld=/run/mysqld \ + --share=/export/source/gndev-debug \ + gndev.scm) + +name=/usr/local/bin/gndev-system-container +if [ $? == 0 ] ; then + echo "Create $name -> $container_script" + sudo ln --force --symbolic $container_script $name + sudo ln --force --symbolic /usr/local/bin/$name /var/guix/gcroots +fi diff --git a/specials/gndev.scm b/specials/gndev.scm new file mode 100644 index 0000000..440aedb --- /dev/null +++ b/specials/gndev.scm @@ -0,0 +1,71 @@ +;;; genenetwork-machines --- Guix configuration for genenetwork machines +;;; Copyright © 2022–2024 Arun Isaac +;;; Copyright © 2024 Pjotr Prins +;;; +;;; 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 +;;; . + +(use-modules (gnu) + (genenetwork services genenetwork) + ((gnu packages admin) #:select (shepherd)) + (gn services databases) + (gn packages genenetwork) + (gnu services databases) + (forge acme) + (forge nginx) + (forge socket)) + +(operating-system + (host-name "gndev") + (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 forge-nginx-service-type + (forge-nginx-configuration + (http-listen (forge-ip-socket + (ip "0.0.0.0") + (port 8990))) + (https-listen (forge-ip-socket + (ip "0.0.0.0") + (port 8991))))) + (service acme-service-type + (acme-configuration + (email "arunisaac@systemreboot.net"))) + (service genenetwork-service-type + (genenetwork-configuration + (genenetwork2 genenetwork2-stable) + (genenetwork3 genenetwork3-stable) + (server-name "gndev.genenetwork.org") + (gn-auth-server-name "gndev-auth.genenetwork.org") + (gn2-port 8992) + (gn3-port 8993) + (sql-uri "mysql://webqtlout:webqtlout@localhost/db_webqtl") + (auth-db "/export2/data/gndev-sqlite/auth.db") + (xapian-db "/export2/data/gndev-xapian") + (genotype-files "/export/data/genenetwork/genotype_files") + (sparql-endpoint "http://localhost:9092/sparql") + (gn-sourcecode-directory "/export/source/gndev-debug") + (gn3-data-directory "/export/data/genenetwork"))) + %base-services))) -- cgit v1.2.3