(define-module (gn services genenetwork)) (use-modules (gnu) (ice-9 match) (past packages python) (past packages web) (gn packages genenetwork) (gn packages python24)) (use-service-modules web) (define %default-httpd22-modules (map (match-lambda ((name file) (httpd-module (name name) (file file)))) '(("authn_file_module" "modules/mod_authn_file.so") ("authn_dbm_module" "modules/mod_authn_dbm.so") ("authn_anon_module" "modules/mod_authn_anon.so") ("authn_dbd_module" "modules/mod_authn_dbd.so") ("authn_default_module" "modules/mod_authn_default.so") ("authz_host_module" "modules/mod_authz_host.so") ("authz_groupfile_module" "modules/mod_authz_groupfile.so") ("authz_user_module" "modules/mod_authz_user.so") ("authz_dbm_module" "modules/mod_authz_dbm.so") ("authz_owner_module" "modules/mod_authz_owner.so") ("authz_default_module" "modules/mod_authz_default.so") ("auth_basic_module" "modules/mod_auth_basic.so") ("auth_digest_module" "modules/mod_auth_digest.so") ("dbd_module" "modules/mod_dbd.so") ("dumpio_module" "modules/mod_dumpio.so") ("reqtimeout_module" "modules/mod_reqtimeout.so") ("ext_filter_module" "modules/mod_ext_filter.so") ("include_module" "modules/mod_include.so") ("filter_module" "modules/mod_filter.so") ("substitute_module" "modules/mod_substitute.so") ("log_config_module" "modules/mod_log_config.so") ("logio_module" "modules/mod_logio.so") ("env_module" "modules/mod_env.so") ("mime_magic_module" "modules/mod_mime_magic.so") ("expires_module" "modules/mod_expires.so") ("headers_module" "modules/mod_headers.so") ("ident_module" "modules/mod_ident.so") ("setenvif_module" "modules/mod_setenvif.so") ("version_module" "modules/mod_version.so") ("ssl_module" "modules/mod_ssl.so") ("mime_module" "modules/mod_mime.so") ("dav_module" "modules/mod_dav.so") ("status_module" "modules/mod_status.so") ("autoindex_module" "modules/mod_autoindex.so") ("asis_module" "modules/mod_asis.so") ("info_module" "modules/mod_info.so") ("cgi_module" "modules/mod_cgi.so") ("dav_fs_module" "modules/mod_dav_fs.so") ("vhost_alias_module" "modules/mod_vhost_alias.so") ("negotiation_module" "modules/mod_negotiation.so") ("dir_module" "modules/mod_dir.so") ("imagemap_module" "modules/mod_imagemap.so") ("actions_module" "modules/mod_actions.so") ("speling_module" "modules/mod_speling.so") ("userdir_module" "modules/mod_userdir.so") ("alias_module" "modules/mod_alias.so") ("rewrite_module" "modules/mod_rewrite.so")))) (operating-system (host-name "genenetwork") (timezone "Etc/UTC") (locale "en_US.utf8") (bootloader (bootloader-configuration (bootloader grub-bootloader) (target "does-not-matter"))) (file-systems %base-file-systems) ;; No firmware for VMs (firmware '()) (packages (cons* python-2.4 python24-htmlgen-GN1 python24-json-GN1 python24-mysqlclient ; MySQLdb python24-numarray python24-piddle python24-pp python24-pyx python24-pyxlwriter python24-qtlreaper python24-rpy2 python24-svg-GN1 %base-packages)) (services (list (service httpd-service-type (httpd-configuration ;; Must be a httpd-2.2 variant. (package httpd22-with-mod-python) (config (httpd-config-file (server-name "www.genenetwork.org") ;; Defaults to httpd, should be same as 'package' above. (server-root httpd22-with-mod-python) (user "nobody") (group "root") ;; Only while debugging (pid-file "/tmp/httpd-genenetwork1") (error-log "/tmp/httpd-genenetwork1-error-log") (listen '("8042")) (modules (cons* (httpd-module (name "python_module") (file "modules/mod_python.so")) %default-httpd22-modules)) (extra-config (list "\ TypesConfig " httpd22-with-mod-python "/etc/httpd/mime.types DefaultType application/octet-stream # DocumentRoot MUST NOT be in the PythonPath. Because genenetwork1 must be in PythonPath we leave the document-root keyword above unset. PythonPath \"sys.path+['/run/current-system/profile/lib/python2.4', '/run/current-system/profile/lib/python2.4/site-packages', '" genenetwork1 "/web/webqtl']\" # same as 'listen' above NameVirtualHost *:8042 DocumentRoot "genenetwork1 "/web PythonOption session FileSession #what is the difference between these two? #AddHandler mod_python .py SetHandler python-program #publisher has more debug information PythonHandler " genenetwork1 "/web/webqtl/main.py #PythonHandler mod_python.publisher #PythonHandler mod_python.cgihandler # only while debugging: PythonDebug On # only while debugging: SetHandler python-program PythonHandler mod_python.testhandler "))))))))) ;; guix system container -L /path/to/guix-past/modules/ -L /path/to/guix-bioinformatics/ /path/to/guix-bioinformatics/gn/services/genenetwork.scm --network --expose=/gnshare/gn/web/genotypes ;; xdg-open http://localhost:8042