aboutsummaryrefslogtreecommitdiff
path: root/uploader.scm
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-03-08 04:27:21 +0300
committerArun Isaac2024-03-25 23:47:57 +0000
commit081e2865c3354415fbcb186e562060d6ac2885f1 (patch)
treec8f22fb0ef90b9a8240e1593dca646d5ba6591f9 /uploader.scm
parentaf7480a6fe3469b29723d0013926f17dd426e012 (diff)
downloadgn-machines-081e2865c3354415fbcb186e562060d6ac2885f1.tar.gz
Add gn-uploader service.
* genenetwork/services/genenetwork.scm (<gn-uploader-configuration>): New type. (gn-uploader-activation, gn-uploader-gunicorn-app, gn-uploader-nginx-server-block): New functions. (gn-uploader-service-type): New variable. * uploader.scm, uploader-deploy.sh: New files. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
Diffstat (limited to 'uploader.scm')
-rw-r--r--uploader.scm76
1 files changed, 76 insertions, 0 deletions
diff --git a/uploader.scm b/uploader.scm
new file mode 100644
index 0000000..9491a22
--- /dev/null
+++ b/uploader.scm
@@ -0,0 +1,76 @@
+;;; genenetwork-machines --- Guix configuration for genenetwork machines
+;;; Copyright © 2022–2024 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022–2024 Frederick M. Muriithi <fredmanglis@gmail.com>
+;;;
+;;; 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)
+ (gn packages genenetwork)
+ (gnu services databases)
+ (forge acme)
+ (forge nginx)
+ (forge socket))
+
+(operating-system
+ (host-name "genenetwork-uploader")
+ (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 10890)))
+ (https-listen (forge-ip-socket
+ (ip "0.0.0.0")
+ (port 10891)))))
+ (service acme-service-type
+ (acme-configuration
+ (email "arunisaac@systemreboot.net")))
+ (service genenetwork-service-type
+ (genenetwork-configuration
+ (genenetwork2 genenetwork2)
+ (server-name "staging.genenetwork.org")
+ (gn-auth-server-name "staging-auth.genenetwork.org")
+ (gn2-port 10894)
+ (gn3-port 10895)
+ (gn-auth-port 10896)
+ (sql-uri "mysql://webqtlout:webqtlout@127.0.0.1:3307/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:10892/sparql")
+ (gn3-data-directory "/export/data/uploader/genenetwork3")))
+ (service gn-uploader-service-type
+ (gn-uploader-configuration
+ (server-name "staging-uploader.genenetwork.org")
+ (port 10897)
+ (sql-uri "mysql://webqtlout:webqtlout@127.0.0.1:3307/db_webqtl")
+ (data-directory "/export/data/uploader/gn-uploader")))
+ %base-services)))