From 5a477aceeb6ad98bc9621ecc211551aa47e4176b Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 26 May 2020 17:36:36 -0500 Subject: [PATCH] Configure SQL info, and API listening port, with env. variables --- readme.org | 21 +++++---------------- server/db.rkt | 11 +++++++++-- server/rest.rkt | 4 +++- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/readme.org b/readme.org index e68b90b..a9cee29 100644 --- a/readme.org +++ b/readme.org @@ -11,26 +11,15 @@ cd gn-proxy raco pkg install #+end_src -The REST server can then be started by running server/rest.rkt: +The REST server can then be started by running server/rest.rkt, while +providing the SQL username and password as environment variables: #+begin_src bash -racket server/rest.rkt +env SQL_USER=username SQL_PASSWORD=password racket server/rest.rkt #+end_src -By default it listens on port 8080 and listens on 127.0.0.1, which -can be changed in ~server/rest.rkt~: - -#+begin_src racket -(define stop - (serve - #:dispatch (sequencer:make - (filter:make #rx"^/available/" - query-available-dispatcher) - (filter:make #rx"^/run-action/" - run-action-dispatcher)) - #:listen-ip "127.0.0.1" - #:port 8080)) -#+end_src +By default it listens on port 8080 and listens on 127.0.0.1, however +the port can be changed with the PORT environment variable. The Redis and MariaDB connections are handled in ~server/db.rkt~, and can be configured by editing ~connect-redis~ and ~connect-sql~. See the diff --git a/server/db.rkt b/server/db.rkt index f35bb29..2ef0835 100644 --- a/server/db.rkt +++ b/server/db.rkt @@ -8,15 +8,22 @@ redis-conn mysql-conn) + ;; This should be a racket parameter (define (connect-redis) (make-redis)) (define redis-conn (make-parameter (connect-redis))) +(define sql-user (getenv "SQL_USER")) +(define sql-pass (getenv "SQL_PASSWORD")) + +(unless (and sql-user sql-pass) + (error "provide SQL user information with SQL_USER and SQL_PASSWORD environment variables")) + (define (connect-sql) - (mysql-connect #:user "gn2" - #:password "gn2" + (mysql-connect #:user sql-user + #:password sql-pass #:database "db_webqtl_s")) (define mysql-conn (make-parameter (connect-sql))) diff --git a/server/rest.rkt b/server/rest.rkt index 96ff704..888e793 100644 --- a/server/rest.rkt +++ b/server/rest.rkt @@ -116,7 +116,9 @@ (filter:make #rx"^/run-action/" run-action-dispatcher)) #:listen-ip "127.0.0.1" - #:port 8080)) + #:port (string->number + (or (getenv "PORT") + "8080")))) (with-handlers ([exn:break? (lambda (e) (stop))])