;;; qa-gn.scm --- ;;; Copyright © 2024 Munyoki Kilyungi ;;; Copyright © 2024 Alexander Kabui ;;; Copyright © 2024 John Nduli ;;; ;;; This file is part of genenetwork-machines. ;;; ;;; This program 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. ;;; ;;; This program 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 this program. If not, see . (use-modules (gnu) ((gnu packages admin) #:select (shepherd)) ((gnu packages certs) #:select (nss-certs)) (gnu services databases) (gnu build linux-container) (genenetwork services genenetwork) (gn services databases) (guix packages) (guix download) (guix git) (guix git-download) (guix build-system python) ((gn packages genenetwork) #:select (genenetwork2 genenetwork3 gn-auth)) (forge acme) (forge nginx) (forge socket)) (operating-system (host-name "qa-gn") (timezone "UTC") (locale "en_US.utf8") (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets (list "/dev/sdX")))) (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 (specification->package "nss-certs") %base-packages)) (services (cons* (service genenetwork-service-type (genenetwork-configuration ;; Use the latest stable version of GN2/3 with the most ;; recent LLM code. (genenetwork2 (package (inherit genenetwork2) (name "genenetwork2") (version "0") (source (git-checkout (branch "feature/gnqa-system") (url "https://github.com/genenetwork/genenetwork2.git"))))) (genenetwork3 (package (inherit genenetwork3) (name "genenetwork3") (version "0") (source (git-checkout (branch "feature/gnqa-api") (url "https://github.com/genenetwork/genenetwork3.git"))))) (gn-auth (package (inherit gn-auth) (source (origin (method git-fetch) (uri (git-reference (url "https://git.genenetwork.org/gn-auth") (commit "de4a7f6bfa870a0e5fc4b1f381cb452ab1250210"))) (hash (content-hash (base32 "0dxanpgwgjil3g0qlkar7gg8znm9dpizcwkgbyvj0h44qnv1346k"))))) (propagated-inputs (modify-inputs (package-propagated-inputs genenetwork3) (append nss-certs))) (arguments `(#:tests? #f)))) (server-name "qa.genenetwork.org") (gn-auth-server-name "qa-auth.genenetwork.org") ;; XXX: We probably need to use the production server ;; for this (gn2-port 10904) (gn3-port 10905) (gn-auth-port 10906) (sql-uri "mysql://webqtlout:webqtlout@127.0.0.1:3307/db_webqtl") (auth-db "/export/data/genenetwork-sqlite/auth-qa.db") (xapian-db "/export/data/genenetwork-xapian") (genotype-files "/export/data/genenetwork/genotype_files") (sparql-endpoint "http://localhost:9082/sparql") (gn3-data-directory "/export/data/genenetwork3") (llm-db "/export/data/genenetwork-sqlite/llm-qa.db"))) (service forge-nginx-service-type (forge-nginx-configuration (http-listen (forge-ip-socket (ip "0.0.0.0") (port 10907))) (https-listen (forge-ip-socket (ip "0.0.0.0") (port 10908))))) (service acme-service-type (acme-configuration (email "arunisaac@systemreboot.net"))) %base-services)))