From 3cebfb3e30e903851aefb2f997d8847d3f0ddee4 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 7 Nov 2022 19:55:07 +0530 Subject: Add public facing SPARQL container. * public-sparql-deploy.sh, public-sparql.scm: New files. --- public-sparql.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 public-sparql.scm (limited to 'public-sparql.scm') diff --git a/public-sparql.scm b/public-sparql.scm new file mode 100644 index 0000000..500fbdb --- /dev/null +++ b/public-sparql.scm @@ -0,0 +1,62 @@ +;;; genenetwork-machines --- Guix configuration for genenetwork machines +;;; Copyright © 2022 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 +;;; . + +(use-modules (gnu) + (gn services databases) + (gnu services web)) + +(define (virtuoso-reverse-proxy-server-block listen sparql-port) + "Return an object listening on LISTEN to +reverse proxy the Virtuoso server. SPARQL-PORT is the port virtuoso's +SPARQL endpoint is listening on." + (nginx-server-configuration + (server-name '("sparql.genenetwork.org")) + (listen (list listen)) + (locations + (list (nginx-location-configuration + (uri "/") + (body (list (string-append "proxy_pass http://localhost:" + (number->string sparql-port) ";") + "proxy_set_header Host $host;"))))))) + +(define %reverse-proxy-port 8990) +(define %virtuoso-port 8981) +(define %sparql-port 8982) + +(operating-system + (host-name "sparql") + (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) + (packages %base-packages) + (services (cons* (service virtuoso-service-type + (virtuoso-configuration + (server-port %virtuoso-port) + (http-server-port %sparql-port))) + (service nginx-service-type + (nginx-configuration + (server-blocks + (list (virtuoso-reverse-proxy-server-block + (number->string %reverse-proxy-port) + %sparql-port))))) + %base-services))) -- cgit v1.2.3