diff --git a/Procfile b/Procfile new file mode 100644 index 00000000..5117f253 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: server/target/universal/stage/bin/evaluator-server -Dhttp.port=$PORT \ No newline at end of file diff --git a/build.sbt b/build.sbt index 525c581e..9cddbbb5 100644 --- a/build.sbt +++ b/build.sbt @@ -1,4 +1,6 @@ lazy val root = (project in file(".")) + .settings(mainClass in Universal := Some("org.scalaexercises.evaluator.EvaluatorServer")) + .settings(stage <<= (stage in Universal in `evaluator-server`)) .aggregate(`evaluator-server`, `evaluator-shared`, `evaluator-client`) lazy val `evaluator-shared` = (project in file("shared")) diff --git a/server/src/main/resources/application.conf b/server/src/main/resources/application.conf index d9ae5d89..b0a8cb24 100644 --- a/server/src/main/resources/application.conf +++ b/server/src/main/resources/application.conf @@ -1,4 +1,15 @@ +http { + host = "0.0.0.0" + host = ${?HOST} + port = 8080 + port = ${?PORT} +} + eval.auth { secretKey = "secretKey" secretKey = ${?EVAL_SECRET_KEY} -} \ No newline at end of file +} + +# Loader IO Configuration +loaderio.verificationToken=loaderio-changeme +loaderio.verificationToken=${?LOADERIO_VERIFICATION_TOKEN} \ No newline at end of file diff --git a/server/src/main/scala/org/scalaexercises/evaluator/services.scala b/server/src/main/scala/org/scalaexercises/evaluator/services.scala index 034c3bdc..99f62cef 100644 --- a/server/src/main/scala/org/scalaexercises/evaluator/services.scala +++ b/server/src/main/scala/org/scalaexercises/evaluator/services.scala @@ -68,6 +68,15 @@ object services { } }) + def loaderIOService = HttpService { + + case _ -> Root => + MethodNotAllowed() + + case GET -> Root / "loaderio-1318d1b3e06b7bc96dd5de5716f57496" => + Ok("loaderio-1318d1b3e06b7bc96dd5de5716f57496") + } + } object EvaluatorServer extends App { @@ -76,9 +85,9 @@ object EvaluatorServer extends App { private[this] val logger = getLogger - val ip = Option(System.getenv("EVALUATOR_SERVER_IP")).getOrElse("0.0.0.0") + val ip = Option(System.getenv("HOST")).getOrElse("0.0.0.0") - val port = (Option(System.getenv("EVALUATOR_SERVER_PORT")) orElse + val port = (Option(System.getenv("PORT")) orElse Option(System.getProperty("http.port"))).map(_.toInt).getOrElse(8080) logger.info(s"Initializing Evaluator at $ip:$port") @@ -86,6 +95,7 @@ object EvaluatorServer extends App { BlazeBuilder .bindHttp(port, ip) .mountService(evalService) + .mountService(loaderIOService) .start .run .awaitShutdown()