I am trying to deploy a Scala HTTP4S app to Heroku.
sbt -sbt-version 1.3.12 new http4s/http4s.g8 -b 0.21
Used the above command to get the giter8 template from HTTP4S.
herokuAppName in Compile := "glacial-waters-76053"
enablePlugins(JavaAppPackaging)
Put the about lines into my build.sbt file.
addSbtPlugin("com.heroku" % "sbt-heroku" % "2.1.4")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.7.5")
Added the above to my plugins.sbt file
I then created a Procfile which has the below
web: target/universal/stage/bin/fsdeploy -Dhttp.port=${PORT}
I do NOT have anything in my application.conf file, I'm not sure how to specify a port for the above Procfile.
I have researched: https://devcenter.heroku.com/articles/deploying-scala along with a couple of Youtube videos. However all of the Youtube tutorials vary and none of which use HTTP4S.
Error I am currently getting when typing heroku logs -a glacial-waters-76053
2020-09-24T13:08:35.000000+00:00 app[api]: Build succeeded
2020-09-24T13:09:09.589928+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-09-24T13:09:09.618010+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-09-24T13:09:09.723909+00:00 heroku[web.1]: Process exited with status 137
2020-09-24T13:09:09.764290+00:00 heroku[web.1]: State changed from starting to crashed
2020-09-24T13:09:09.766587+00:00 heroku[web.1]: State changed from crashed to starting
2020-09-24T13:09:13.794185+00:00 heroku[web.1]: Starting process with command `target/universal/stage/bin/fsdeploy -Dhttp.port=${8080}`
2020-09-24T13:09:16.042457+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2020-09-24T13:09:16.150395+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2020-09-24T13:09:18.212577+00:00 app[web.1]: [ioapp-compute-0] INFO o.h.b.c.n.NIO1SocketServerGroup - Service bound to address /0:0:0:0:0:0:0:0:8080
2020-09-24T13:09:18.221367+00:00 app[web.1]: [ioapp-compute-0] INFO o.h.s.b.BlazeServerBuilder -
2020-09-24T13:09:18.221370+00:00 app[web.1]: _ _ _ _ _
2020-09-24T13:09:18.221370+00:00 app[web.1]: | |_| |_| |_ _ __| | | ___
2020-09-24T13:09:18.221370+00:00 app[web.1]: | ' \ _| _| '_ \_ _(_-<
2020-09-24T13:09:18.221371+00:00 app[web.1]: |_||_\__|\__| .__/ |_|/__/
2020-09-24T13:09:18.221371+00:00 app[web.1]: |_|
2020-09-24T13:09:18.341159+00:00 app[web.1]: [ioapp-compute-0] INFO o.h.s.b.BlazeServerBuilder - http4s v0.21.5 on blaze v0.14.12 started at http://[::]:8080/
2020-09-24T13:10:14.543831+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-09-24T13:10:14.565588+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-09-24T13:10:14.691564+00:00 heroku[web.1]: Process exited with status 137
2020-09-24T13:10:14.729362+00:00 heroku[web.1]: State changed from starting to crashed
2020-09-24T13:10:16.891638+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/joke" host=glacial-waters-76053.herokuapp.com request_id=1dfa6a6e-2e75-40a1-89cd-97b092a0fbe1 fwd="109.152.82.26" dyno= connect= service= status=503 bytes= protocol=https
2020-09-24T13:10:17.492951+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=glacial-waters-76053.herokuapp.com request_id=9a8f9622-e93b-4517-b5c3-fe80f426a6d7 fwd="109.152.82.26" dyno= connect= service= status=503 bytes= protocol=https
Postman is return a 503 service unavailable error.
Here is a link to the repo: https://github.com/fullStackRyan/fsdeploy
Your app will try to listen on port 8080.
You can replace the port on line 33 of your YourServerNameServer.scala from 8080 to sys.env("PORT").toInt
Related
Iam doing a deployment in Heroku but failed as below log. Any advise would be appreciated.
*Procfile was added:web: gunicorn app:app
*requirements witouth versions
*runtime: python==3.9.13
*flight_rf.pkl is a 560+mb (model info) file in github (should I trim the model file or just the config issue,hmm)
2022-10-24T10:56:06.842035+00:00 app[web.1]: model = pickle.load(open("flight_rf.pkl","rb"))
2022-10-24T10:56:06.842035+00:00 app[web.1]: _pickle.UnpicklingError: invalid load key, 'v'.
2022-10-24T10:56:06.842315+00:00 app[web.1]: [2022-10-24 10:56:06 +0000] [10] [INFO] Worker exiting (pid: 10)
2022-10-24T10:56:07.538013+00:00 app[web.1]: [2022-10-24 10:56:07 +0000] [4] [WARNING] Worker with pid 9 was terminated due to signal 15
2022-10-24T10:56:07.621643+00:00 app[web.1]: [2022-10-24 10:56:07 +0000] [4] [INFO] Shutting down: Master
2022-10-24T10:56:07.621731+00:00 app[web.1]: [2022-10-24 10:56:07 +0000] [4] [INFO] Reason: Worker failed to boot.
2022-10-24T10:56:07.791193+00:00 heroku[web.1]: Process exited with status 3
2022-10-24T10:56:07.880199+00:00 heroku[web.1]: State changed from up to crashed
2022-10-24T10:56:31.496146+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=nzairfare.herokuapp.com request_id=09c72ff6-67d7-47de-a02a-57173824b6ed fwd="121.75.218.134" dyno= connect= service= status=503 bytes= protocol=https
2022-10-24T10:56:31.879287+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=nzairfare.herokuapp.com request_id=efd809eb-b825-4af3-9530-6a75a28f0a17 fwd="121.75.218.134" dyno= connect= service= status=503 bytes= protocol=https
Thank you!
I am building an application that uploads files to Postgres with a Gradle Kotlin Spring Boot Backend. I build it locally and everything worked fine now I wanted to deploy the backend to Heroku. I added the Heroku Postgres Ressources and updated my application.properties and tested the DB connection with IntelliJ and it seems to be working.
Now when I deploy it and open my URL I get an Application error. In my console I see
GET https://unsplasy-backend.herokuapp.com/ 503 (Service Unavailable)
favicon.ico:1 GET https://unsplasy-backend.herokuapp.com/favicon.ico 503 (Service Unavailable)
After running heroku logs --tail I get the following output
2021-04-19T11:08:01.056208+00:00 app[web.1]: at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
2021-04-19T11:08:01.126263+00:00 heroku[web.1]: Process exited with status 1
2021-04-19T11:08:01.203810+00:00 heroku[web.1]: State changed from starting to crashed
2021-04-19T11:08:03.074812+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=unsplasy-backend.herokuapp.com request_id=58e31d19-484f-44e5-b5b0-ba39931a10c4 fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:08:03.513057+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=unsplasy-backend.herokuapp.com request_id=256e63d5-77de-46f9-9062-f21880e2c964 fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:08:10.824894+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=unsplasy-backend.herokuapp.com request_id=2225a1d2-28fd-4d21-b9f9-6017da94540e fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:08:11.203409+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=unsplasy-backend.herokuapp.com request_id=b4861295-84c0-4393-9869-8ba9ca1eb5d0 fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:08:23.000000+00:00 app[api]: Build succeeded
2021-04-19T11:09:22.000000+00:00 app[api]: Build started by user marco.braun2013#icloud.com
2021-04-19T11:10:17.835261+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=unsplasy-backend.herokuapp.com request_id=b4c155c0-ba77-4796-b570-d61e6b5c7582 fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:10:18.234507+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=unsplasy-backend.herokuapp.com request_id=21e5b9d2-ba5f-4b56-9733-1120855e7831 fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:10:29.554184+00:00 app[api]: Deploy 808fbdd5 by user marco.braun2013#icloud.com
2021-04-19T11:10:29.554184+00:00 app[api]: Release v11 created by user marco.braun2013#icloud.com
2021-04-19T11:10:30.764211+00:00 heroku[web.1]: State changed from crashed to starting
2021-04-19T11:10:34.769023+00:00 heroku[web.1]: Starting process with command `java -Dserver.port=7456 $JAVA_OPTS -jar build/libs/*.jar`
2021-04-19T11:10:37.737112+00:00 app[web.1]: Create a Procfile to customize the command used to run this process: https://devcenter.heroku.com/articles/procfile
2021-04-19T11:10:37.754141+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2021-04-19T11:10:37.757609+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2021-04-19T11:10:38.302494+00:00 app[web.1]: Exception in thread "main" java.lang.UnsupportedClassVersionError: mbraun/unsplasy/UnsplasyApplicationKt has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
2021-04-19T11:10:38.302797+00:00 app[web.1]: at java.lang.ClassLoader.defineClass1(Native Method)
2021-04-19T11:10:38.302798+00:00 app[web.1]: at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
2021-04-19T11:10:38.302799+00:00 app[web.1]: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
2021-04-19T11:10:38.302800+00:00 app[web.1]: at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
2021-04-19T11:10:38.302836+00:00 app[web.1]: at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
2021-04-19T11:10:38.302883+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
2021-04-19T11:10:38.302918+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
2021-04-19T11:10:38.302993+00:00 app[web.1]: at java.security.AccessController.doPrivileged(Native Method)
2021-04-19T11:10:38.303057+00:00 app[web.1]: at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
2021-04-19T11:10:38.303149+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
2021-04-19T11:10:38.303225+00:00 app[web.1]: at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
2021-04-19T11:10:38.303316+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
2021-04-19T11:10:38.303318+00:00 app[web.1]: at java.lang.Class.forName0(Native Method)
2021-04-19T11:10:38.303413+00:00 app[web.1]: at java.lang.Class.forName(Class.java:348)
2021-04-19T11:10:38.303415+00:00 app[web.1]: at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
2021-04-19T11:10:38.303461+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
2021-04-19T11:10:38.303548+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2021-04-19T11:10:38.303608+00:00 app[web.1]: at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
2021-04-19T11:10:38.367928+00:00 heroku[web.1]: Process exited with status 1
2021-04-19T11:10:38.426299+00:00 heroku[web.1]: State changed from starting to crashed
2021-04-19T11:10:38.816929+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=unsplasy-backend.herokuapp.com request_id=0d92e58d-9078-4909-9997-d8a806d124bd fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:10:39.184155+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=unsplasy-backend.herokuapp.com request_id=ab885968-5f0c-4a7d-b844-1d9074b4ab45 fwd="45.86.203.98" dyno= connect= service= status=503 bytes= protocol=https
2021-04-19T11:11:03.000000+00:00 app[api]: Build succeeded
2021-04-19T11:16:52.131964+00:00 heroku[web.1]: State changed from crashed to starting
2021-04-19T11:16:56.540255+00:00 heroku[web.1]: Starting process with command `java -Dserver.port=38647 $JAVA_OPTS -jar build/libs/*.jar`
2021-04-19T11:16:58.584422+00:00 app[web.1]: Create a Procfile to customize the command used to run this process: https://devcenter.heroku.com/articles/procfile
2021-04-19T11:16:58.600495+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2021-04-19T11:16:58.603888+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2021-04-19T11:16:59.012658+00:00 app[web.1]: Exception in thread "main" java.lang.UnsupportedClassVersionError: mbraun/unsplasy/UnsplasyApplicationKt has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
2021-04-19T11:16:59.012878+00:00 app[web.1]: at java.lang.ClassLoader.defineClass1(Native Method)
2021-04-19T11:16:59.012976+00:00 app[web.1]: at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
2021-04-19T11:16:59.013043+00:00 app[web.1]: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
2021-04-19T11:16:59.013109+00:00 app[web.1]: at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
2021-04-19T11:16:59.013188+00:00 app[web.1]: at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
2021-04-19T11:16:59.013259+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
2021-04-19T11:16:59.013329+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
2021-04-19T11:16:59.014247+00:00 app[web.1]: at java.security.AccessController.doPrivileged(Native Method)
2021-04-19T11:16:59.014248+00:00 app[web.1]: at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
2021-04-19T11:16:59.014248+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
2021-04-19T11:16:59.014249+00:00 app[web.1]: at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
2021-04-19T11:16:59.014249+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
2021-04-19T11:16:59.014250+00:00 app[web.1]: at java.lang.Class.forName0(Native Method)
2021-04-19T11:16:59.014251+00:00 app[web.1]: at java.lang.Class.forName(Class.java:348)
2021-04-19T11:16:59.014350+00:00 app[web.1]: at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
2021-04-19T11:16:59.014351+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
2021-04-19T11:16:59.014351+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2021-04-19T11:16:59.014351+00:00 app[web.1]: at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
2021-04-19T11:16:59.228371+00:00 heroku[web.1]: Process exited with status 1
2021-04-19T11:16:59.327826+00:00 heroku[web.1]: State changed from starting to crashed
2021-04-19T11:16:59.332351+00:00 heroku[web.1]: State changed from crashed to starting
2021-04-19T11:17:04.242879+00:00 heroku[web.1]: Starting process with command `java -Dserver.port=17021 $JAVA_OPTS -jar build/libs/*.jar`
2021-04-19T11:17:07.238276+00:00 app[web.1]: Create a Procfile to customize the command used to run this process: https://devcenter.heroku.com/articles/procfile
2021-04-19T11:17:07.268382+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2021-04-19T11:17:07.272732+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2021-04-19T11:17:07.767002+00:00 app[web.1]: Exception in thread "main" java.lang.UnsupportedClassVersionError: mbraun/unsplasy/UnsplasyApplicationKt has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
2021-04-19T11:17:07.767483+00:00 app[web.1]: at java.lang.ClassLoader.defineClass1(Native Method)
2021-04-19T11:17:07.767673+00:00 app[web.1]: at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
2021-04-19T11:17:07.767796+00:00 app[web.1]: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
2021-04-19T11:17:07.767953+00:00 app[web.1]: at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
2021-04-19T11:17:07.768085+00:00 app[web.1]: at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
2021-04-19T11:17:07.768273+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
2021-04-19T11:17:07.768415+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
2021-04-19T11:17:07.768819+00:00 app[web.1]: at java.security.AccessController.doPrivileged(Native Method)
2021-04-19T11:17:07.768945+00:00 app[web.1]: at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
2021-04-19T11:17:07.769079+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
2021-04-19T11:17:07.769225+00:00 app[web.1]: at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
2021-04-19T11:17:07.769353+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
2021-04-19T11:17:07.769510+00:00 app[web.1]: at java.lang.Class.forName0(Native Method)
2021-04-19T11:17:07.769607+00:00 app[web.1]: at java.lang.Class.forName(Class.java:348)
2021-04-19T11:17:07.769982+00:00 app[web.1]: at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
2021-04-19T11:17:07.770117+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
2021-04-19T11:17:07.770257+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2021-04-19T11:17:07.770377+00:00 app[web.1]: at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
2021-04-19T11:17:07.830915+00:00 heroku[web.1]: Process exited with status 1
2021-04-19T11:17:07.943553+00:00 heroku[web.1]: State changed from starting to crashed
2021-04-19T11:18:13.716974+00:00 app[api]: Starting process with command `java -version` by user marco.braun2013#icloud.com
2021-04-19T11:18:17.924110+00:00 heroku[run.3775]: State changed from starting to up
2021-04-19T11:18:17.990783+00:00 heroku[run.3775]: Awaiting client
2021-04-19T11:18:18.323617+00:00 heroku[run.3775]: Starting process with command `java -version`
2021-04-19T11:18:22.915722+00:00 heroku[run.3775]: Process exited with status 0
2021-04-19T11:18:22.975840+00:00 heroku[run.3775]: State changed from up to complete
I am not quite sure where to start and what the best practice is after doing some research and not finding a solution. Also, I am wondering because I am not using the favicon.icon anywhere and not quite sure where it comes from and if this is the problem?
Do I have to change my Java Runtime version and if so why and what would be the best practice be? Or is there another mistake.
The error points out to the Java version you use: the app requires Java 11 but Heroku runs by default with Java 8
Exception in thread "main" java.lang.UnsupportedClassVersionError
mbraun/unsplasy/UnsplasyApplicationKt has been compiled by a more recent
version of the Java Runtime (class file version 55.0), this version of the Java
Runtime only recognizes class file versions up to 52.0
In the root folder create a file called system.properties:
java.runtime.version=11
Trying to deploy my Akka application to Heroku
In code I have:
val httpPort = Properties.envOrElse("PORT", "8080").toInt
val serverBinding: Future[Http.ServerBinding] = Http().bindAndHandle(routes,
"localhost", httpPort)
In Procfile I have:
web: target/universal/stage/bin/hello-world -Dhttp.port=${PORT}
But I still get in logs:
Error R10 (Boot timeout) ->
Web process failed to bind to $PORT within 60 seconds of launch
2019-04-11T11:22:30.239015+00:00 heroku[web.1]: Starting process with
command `target/universal/stage/bin/hello-world -Dhttp.port=${PORT}`
2019-04-11T11:22:32.322727+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS
defaults based on dyno size. Custom settings will override them.
2019-04-11T11:22:32.447725+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -
Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2019-04-11T11:22:35.729346+00:00 app[web.1]: Server online at
http://127.0.0.1:19702/
2019-04-11T11:23:30.413620+00:00 heroku[web.1]: State changed from starting
to crashed
2019-04-11T11:23:30.306939+00:00 heroku[web.1]: **Error R10 (Boot timeout) ->
Web process failed to bind to $PORT within 60 seconds of launch**
2019-04-11T11:23:30.307058+00:00 heroku[web.1]: Stopping process with SIGKILL
2019-04-11T11:23:30.395435+00:00 heroku[web.1]: Process exited with status
137
2019-04-11T11:23:31.907600+00:00 heroku[router]: at=error code=H10 desc="App
crashed" method=GET path="/" host=word-list-app.herokuapp.com
request_id=b1d988e1-f53a-4409-9546-75404a9fcd5c fwd="94.199.129.189" dyno=
connect= service= status=503 bytes= protocol=https
You should replace localhost with 0.0.0.0.
I am trying to deploy postgrest v 0.4.2.0 app (https://github.com/begriffs/postgrest/releases/tag/v0.4.2.0) on heroku according to this instruction:
https://postgrest.com/en/v3.2/admin_deployment.html#heroku (it's an older version, but viable in general instructions)
I already have a deployed database (via Heroku Postgres) with 1 table on my heroku account, so I keep trying to connect my DB with postgrest:
DB_URL: postgres://mpdwpnlqhwsosk:5abeb772ff431ef99e975be287970c3412174b331926b189d6485277f41d65d1#ec2-174-129-224-33.compute-1.amazonaws.com:5432/da5a8m1p77diab
And so, my app is just crashing (H10 error). I can't see table, etc. Although, I can successfully connect to this DB via pgAdmin
Is there I am doing something wrong, or is that some kind of nasty bug?
Logs:
2017-06-19T09:53:52.579013+00:00 heroku[web.1]: State changed from starting to crashed
2017-06-19T09:53:52.568134+00:00 heroku[web.1]: Process exited with status 1
2017-06-19T10:38:45.049215+00:00 heroku[web.1]: State changed from crashed to starting
2017-06-19T10:38:45.838847+00:00 heroku[web.1]: Starting process with command ./env-to-config ./postgrest postgrest.conf
2017-06-19T10:38:47.811334+00:00 heroku[web.1]: Process exited with status 1
2017-06-19T10:38:47.752947+00:00 app[web.1]: ConfigError {configErrorLocation = Key "" "secret-is-base64", configConversionError = Just [ConversionError {conversionErrorLoc = "boolValue", conversionErrorWhy = TypeError, conversionErrorVal = Just (String "false"), conversionErrorType = Just Bool, conversionErrorMsg = Nothing}]}
2017-06-19T10:38:47.822918+00:00 heroku[web.1]: State changed from starting to crashed
2017-06-19T11:04:22.519115+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=agile-mesa-95349.herokuapp.com request_id=7f7c6d70-c23b-400a-aec8-83758cb226cf fwd="109.184.214.45" dyno= connect= service= status=503 bytes= protocol=https
By the way, this probably should not have been downvoted. It looks like a manifestation of a bug that was recently fixed in https://github.com/begriffs/postgrest/pull/897
The fix is not yet part of a release, but will be in the next release.
I have created a very simple app with one route in main.swift. It reads a city from a query string and use it to get the weather (through the yahoo API) of that city. this is the route:
drop.get("whether") { request in
guard let city = request.data["city"]?.string else {
return try JSON(node: ["Error": "no city given"])
}
return try drop.client.get("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22\(city)%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys")
}
The code works perfectly when I run it on localhost, but I get a 500 error when I deploy it with Heroku.
Is there any file that I shouldn't be pushing to heroku? I want to note that in server.json the host value is 0.0.0.0.
This is my Heroku logs (note that I redeployed it multiple times. all of which didn't work):
2017-01-05T17:00:28.932559+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=10bd5717-a444-4106-9479-5dda7de686d1 fwd="94.77.202.2" dyno=web.1 connect=1ms service=24ms status=500 bytes=138
2017-01-05T17:00:34.568980+00:00 heroku[router]: at=info method=GET path="/whether" host=dry-beyond-95031.herokuapp.com request_id=88277ee9-5814-4e33-a180-69e2a36a10ac fwd="94.77.202.2" dyno=web.1 connect=0ms service=2ms status=404 bytes=161
2017-01-05T17:00:50.620499+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=e9e03939-3252-4eb2-ba05-ed06b7123fc0 fwd="94.77.202.2" dyno=web.1 connect=0ms service=20ms status=500 bytes=138
2017-01-05T17:03:30.089070+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=d3334e79-bdaf-4f51-a6fe-198a356c2c8a fwd="94.77.202.2" dyno=web.1 connect=0ms service=31ms status=500 bytes=138
2017-01-05T17:03:41.773239+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=cb0f1bca-7538-497b-b1f2-6af9756c80f4 fwd="94.77.202.2" dyno=web.1 connect=2ms service=6ms status=503 bytes=0
2017-01-05T17:03:41.855395+00:00 heroku[web.1]: State changed from up to crashed
2017-01-05T17:03:41.856485+00:00 heroku[web.1]: State changed from crashed to starting
2017-01-05T17:03:41.842156+00:00 heroku[web.1]: Process exited with status 132
2017-01-05T17:03:45.147623+00:00 heroku[web.1]: Starting process with command `App --env=production --workdir=./ --config:servers.default.port=25036`
2017-01-05T17:03:48.789403+00:00 heroku[web.1]: State changed from starting to up
2017-01-05T17:04:29.863680+00:00 heroku[router]: at=info method=GET path="/" host=dry-beyond-95031.herokuapp.com request_id=82133ef0-4539-4095-b3a9-e4d0c4bc709c fwd="94.77.202.2" dyno=web.1 connect=0ms service=5ms status=404 bytes=119
2017-01-05T17:04:38.544040+00:00 heroku[router]: at=info method=GET path="/whether" host=dry-beyond-95031.herokuapp.com request_id=258ab0c8-df6e-4ad2-a220-cb27f854a1bd fwd="94.77.202.2" dyno=web.1 connect=0ms service=2ms status=404 bytes=119
2017-01-05T17:05:43.705482+00:00 heroku[web.1]: Process exited with status 132
2017-01-05T17:05:43.718722+00:00 heroku[web.1]: State changed from up to crashed
2017-01-05T17:05:43.608207+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=1a343b3b-963e-45b0-9795-1f83351b0100 fwd="94.77.202.2" dyno=web.1 connect=1ms service=6ms status=503 bytes=0
2017-01-05T17:08:54.112283+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=5fcfc4a8-d8da-4e45-b8d1-99a8c14c1529 fwd="94.77.202.2" dyno= connect= service= status=503 bytes=
2017-01-05T17:10:34.292205+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=75035a40-c1ca-4fc9-8cd1-10f73c5a4b84 fwd="94.77.202.2" dyno= connect= service= status=503 bytes=
2017-01-05T17:17:45.483824+00:00 heroku[slug-compiler]: Slug compilation started
2017-01-05T17:17:45.483833+00:00 heroku[slug-compiler]: Slug compilation finished
2017-01-05T17:17:45.350717+00:00 app[api]: Deploy c3d8250 by user naifdev#gmail.com
2017-01-05T17:17:45.350717+00:00 app[api]: Release v4 created by user naifdev#gmail.com
2017-01-05T17:17:45.706244+00:00 heroku[web.1]: State changed from crashed to starting
2017-01-05T17:17:48.678813+00:00 heroku[web.1]: Starting process with command `App --env=production --workdir=./ --config:servers.default.port=53088`
2017-01-05T17:17:52.352793+00:00 heroku[web.1]: State changed from starting to up
2017-01-05T17:18:25.670087+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=9cec4496-95c5-4157-8dea-002310af4eaf fwd="94.77.202.2" dyno=web.1 connect=1ms service=27ms status=500 bytes=138
2017-01-05T17:51:55.253360+00:00 heroku[web.1]: Idling
2017-01-05T17:51:55.254766+00:00 heroku[web.1]: State changed from up to down
2017-01-05T17:51:55.780574+00:00 app[web.1]: No command supplied, defaulting to serve...
2017-01-05T17:51:55.780578+00:00 app[web.1]: Server 'default' starting at 0.0.0.0:53088
2017-01-05T17:51:55.780562+00:00 app[web.1]: Production mode enabled, disabling informational logs.
2017-01-05T17:51:55.780575+00:00 app[web.1]: No preparations.
2017-01-05T17:51:55.780579+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-05T17:51:55.774837+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2017-01-05T17:51:55.895627+00:00 heroku[web.1]: Process exited with status 15
2017-01-05T18:01:48.893674+00:00 heroku[web.1]: Unidling
2017-01-05T18:01:48.893975+00:00 heroku[web.1]: State changed from down to starting
2017-01-05T18:01:53.364634+00:00 heroku[web.1]: Starting process with command `App --env=production --workdir=./ --config:servers.default.port=21483`
2017-01-05T18:01:57.090891+00:00 heroku[web.1]: State changed from starting to up
2017-01-05T18:01:58.019181+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=ed174181-b3c9-4196-bd39-29121c343ea6 fwd="94.77.202.2" dyno=web.1 connect=0ms service=41ms status=500 bytes=138
2017-01-05T18:34:12.945697+00:00 heroku[web.1]: Idling
2017-01-05T18:34:12.946307+00:00 heroku[web.1]: State changed from up to down
2017-01-05T18:34:13.855518+00:00 app[web.1]: Production mode enabled, disabling informational logs.
2017-01-05T18:34:13.855528+00:00 app[web.1]: No command supplied, defaulting to serve...
2017-01-05T18:34:13.855529+00:00 app[web.1]: No preparations.
2017-01-05T18:34:13.855530+00:00 app[web.1]: Server 'default' starting at 0.0.0.0:21483
2017-01-05T18:34:13.855531+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-05T18:34:13.848202+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2017-01-05T18:34:13.932737+00:00 heroku[web.1]: Process exited with status 15
2017-01-06T07:44:31.444744+00:00 heroku[web.1]: Unidling
2017-01-06T07:44:31.444992+00:00 heroku[web.1]: State changed from down to starting
2017-01-06T07:44:34.523300+00:00 heroku[web.1]: Starting process with command `App --env=production --workdir=./ --config:servers.default.port=31252`
2017-01-06T07:44:36.676936+00:00 heroku[web.1]: State changed from starting to up
2017-01-06T07:44:37.549125+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=0355d39f-cda9-4f8b-888b-18082332a824 fwd="94.99.227.109" dyno=web.1 connect=0ms service=26ms status=500 bytes=138
2017-01-06T07:50:51.627447+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=11ee0882-1bd1-43a2-a0cc-4bc1c11f74eb fwd="94.99.227.109" dyno=web.1 connect=0ms service=27ms status=500 bytes=138
2017-01-06T07:57:45.954329+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=e4ca9186-fdc5-4cd8-b98b-cfee45c7f3b2 fwd="94.99.227.109" dyno=web.1 connect=0ms service=213ms status=500 bytes=138
2017-01-06T08:04:00.591772+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=b664a4c2-5aef-43b8-9c9f-180dfabeb93d fwd="94.99.227.109" dyno=web.1 connect=0ms service=23ms status=500 bytes=138
2017-01-06T08:04:57.818556+00:00 heroku[router]: at=info method=GET path="/" host=dry-beyond-95031.herokuapp.com request_id=4ea215b8-a0a3-4ad0-9d8a-45fe27dbafd0 fwd="94.99.227.109" dyno=web.1 connect=0ms service=4ms status=404 bytes=119
2017-01-06T08:04:58.069106+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=dry-beyond-95031.herokuapp.com request_id=04affbf0-ded7-4eb1-845c-e569aa31107c fwd="94.99.227.109" dyno=web.1 connect=0ms service=2ms status=404 bytes=161
2017-01-06T08:05:26.089377+00:00 heroku[router]: at=info method=POST path="/whether" host=dry-beyond-95031.herokuapp.com request_id=3c5ba6df-acec-4b27-a3f4-e3c0f27941c2 fwd="94.99.227.109" dyno=web.1 connect=0ms service=400ms status=500 bytes=138
2017-01-06T08:05:32.043519+00:00 heroku[router]: at=info method=GET path="/" host=dry-beyond-95031.herokuapp.com request_id=9d35561a-633b-42c9-8fb6-6ec423bf667c fwd="94.99.227.109" dyno=web.1 connect=0ms service=2ms status=404 bytes=119
2017-01-06T08:05:40.163170+00:00 heroku[router]: at=info method=GET path="/huguh" host=dry-beyond-95031.herokuapp.com request_id=7a11db63-7644-4e42-a662-e223cb154171 fwd="94.99.227.109" dyno=web.1 connect=0ms service=2ms status=404 bytes=119
2017-01-06T08:13:43.406289+00:00 heroku[router]: at=info method=GET path="/whether" host=dry-beyond-95031.herokuapp.com request_id=f672e00b-db30-484c-a5da-01f8e57022f4 fwd="94.99.227.109" dyno=web.1 connect=0ms service=2ms status=404 bytes=161
2017-01-06T08:13:55.835147+00:00 heroku[router]: at=info method=GET path="/whether" host=dry-beyond-95031.herokuapp.com request_id=adb06e24-72cc-4b79-9d23-8a5ea127d2a3 fwd="94.99.227.109" dyno=web.1 connect=0ms service=1ms status=404 bytes=161
2017-01-06T08:45:25.599867+00:00 heroku[web.1]: Idling
2017-01-06T08:45:25.600941+00:00 heroku[web.1]: State changed from up to down
2017-01-06T08:45:26.264901+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2017-01-06T08:45:26.280223+00:00 app[web.1]: Production mode enabled, disabling informational logs.
2017-01-06T08:45:26.280240+00:00 app[web.1]: No command supplied, defaulting to serve...
2017-01-06T08:45:26.280241+00:00 app[web.1]: No preparations.
2017-01-06T08:45:26.280241+00:00 app[web.1]: Server 'default' starting at 0.0.0.0:31252
2017-01-06T08:45:26.280242+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-06T08:45:26.280243+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-06T08:45:26.280244+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-06T08:45:26.280244+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-06T08:45:26.280245+00:00 app[web.1]: unable to load path
2017-01-06T08:45:26.280246+00:00 app[web.1]: [deprecated] Mozilla certificates have been deprecated and will be removed in future releases. Using 'defaults' instead.
2017-01-06T08:45:26.280246+00:00 app[web.1]: unable to load path
2017-01-06T08:45:26.369735+00:00 heroku[web.1]: Process exited with status 15
2017-01-06T18:01:52.724336+00:00 heroku[web.1]: Unidling
2017-01-06T18:01:52.724823+00:00 heroku[web.1]: State changed from down to starting
2017-01-06T18:01:56.197941+00:00 heroku[web.1]: Starting process with command `App --env=production --workdir=./ --config:servers.default.port=51652`
2017-01-06T18:01:59.779285+00:00 heroku[web.1]: State changed from starting to up
2017-01-06T18:02:00.857405+00:00 heroku[router]: at=info method=GET path="/whether" host=dry-beyond-95031.herokuapp.com request_id=39353fc7-8f70-49b4-95b0-12b4f2e0980a fwd="94.99.227.109" dyno=web.1 connect=1ms service=4ms status=404 bytes=161
2017-01-06T18:36:26.460178+00:00 heroku[web.1]: Idling
2017-01-06T18:36:26.460594+00:00 heroku[web.1]: State changed from up to down
2017-01-06T18:36:27.237564+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2017-01-06T18:36:27.390324+00:00 heroku[web.1]: Process exited with status 15
2017-01-06T18:36:27.262126+00:00 app[web.1]: Production mode enabled, disabling informational logs.
2017-01-06T18:36:27.262141+00:00 app[web.1]: No command supplied, defaulting to serve...
2017-01-06T18:36:27.262142+00:00 app[web.1]: No preparations.
2017-01-06T18:36:27.262143+00:00 app[web.1]: Server 'default' starting at 0.0.0.0:51652
2017-01-06T19:13:59.497901+00:00 heroku[slug-compiler]: Slug compilation started
2017-01-06T19:13:59.497911+00:00 heroku[slug-compiler]: Slug compilation finished
2017-01-06T19:13:59.336403+00:00 app[api]: Deploy fa16ad6 by user naifdev#gmail.com
2017-01-06T19:13:59.336403+00:00 app[api]: Release v5 created by user naifdev#gmail.com
2017-01-06T19:13:59.722058+00:00 heroku[web.1]: State changed from down to starting
2017-01-06T19:14:02.835500+00:00 heroku[web.1]: Starting process with command `App --env=production --workdir=./ --config:servers.default.port=8308`
2017-01-06T19:14:06.609232+00:00 heroku[web.1]: State changed from starting to up
2017-01-06T19:14:38.480190+00:00 heroku[router]: at=info method=GET path="/whether?city=Paris" host=dry-beyond-95031.herokuapp.com request_id=26c5f8bb-eb3b-47be-8fd2-799dfc4aed66 fwd="94.99.227.109" dyno=web.1 connect=1ms service=24ms status=500 bytes=138
2017-01-06T19:17:53.744114+00:00 heroku[router]: at=info method=GET path="/whether?city=Paris" host=dry-beyond-95031.herokuapp.com request_id=8414a869-8d81-480a-8a74-51cfb3644bbf fwd="94.99.227.109" dyno=web.1 connect=1ms service=221ms status=500 bytes=138
2017-01-06T19:18:06.721140+00:00 heroku[router]: at=info method=GET path="/whether?city=Paris" host=dry-beyond-95031.herokuapp.com request_id=04a1b568-bfe1-4643-9a34-fce7b23eb325 fwd="94.99.227.109" dyno=web.1 connect=1ms service=22ms status=500 bytes=138
A user in the Slack channel gave me insight to this problem.:
VZSG:
#animatronicgopher: experimenting on Heroku is cheap but it's pretty pointless to scale up to paid dynos just because of this. It does not make a difference – first, this error is generated by an HTTP client, so your server's certificate doesn't matter, and second, even free dynos have proper certs (and they aren't just letsencrypt certs either). What you probably found is for custom domains.
The actual problem is that the "default" HTTPClient does not care about the dyno's trusted root certificates, therefore the outgoing SSL connection cannot be verified -> error.
Also, there's an issue in GitHub that gives you a sample of how to use FoundationClient.
https://github.com/vapor/vapor/issues/699
How to create swift backend API with help of Vapor framework. Another framework is also available in the market. But we are choosing swift vapor.
Let’s start.
Install vapor in your system.
Step 1. Run below command to install vapor
brew install vapor/tap/vapor-beta
Check whether vapor install or not run below command.
vapor-beta --help
These will be useful command of vapor.
Command only when you are in the project directory.
You can
Created vapor project
vapor new myProjectName
Build vapor project
vapor build
Run vapor project
vapor run
You can configure Xcode. You should be inside the created project directory.
vapor Xcode
When you have made changes in project file or add a new features for the update you have below command.
vapor Xcode
You can run thru local server test API. Out will be “Hello World”
curl http://localhost:8080/hello
===========================================PostgreSQL Setup================================================
Setting Up for local PrortgeSQL. Run below command.
Brew install postgresql
Start local database server. Run below command
pg_ctl -D /usr/local/var/postgres start
Stop local database server. Run below command.
pg_ctl -D /usr/local/var/postgres stop
When yow wish to run PostgreSQL as background service with launch you can use brew server. Run below command.
brew services start postgresql
Let start Postgres the by this.
psql -d postgres
Create data base by running below command:
create databas databaseName
Actual command
create databas ashi-app
create user by running below command:- Grant that user the privileges it need with by running below command.
create user username
Actual command
create user ashi-app-user
grant all privileges on database databaseName to userName
Actual command
grant all privileges on database ashi-app to ashi-app-user
===========================================PostgreSQL Setup================================================
===========================================Deploy fresh app on Heroku================================================
Deploy new swift vapor app on Heroku without database.
Consider you already created a Vapor project without the database.
Step 1. Navigate on cd MyApp.
cd myApp
Actual command
cd ashi-api
Step 2. Create a swift version file inside your root project directory. Run below on the terminal.
echo ’5.1.3’ > .swift-version
Step 3. Create Procfile file inside your root project directory.Run below on terminal.
echo ‘web: Run serve --env production --port $PORT --hostname 0.0.0.0’ > Procfile
Step 4. Add file git and commit by below command
git add .
git commit -m ‘App Setup’
Step 5. You should generate linux tests file by below command.
swift test --generate-linuxmain
Step 6. Add again modified in git by below command.
git add .
git commit -m ‘Tests setup’
Step 7. Login on Heroku. Required to create app on heroku for deployment. So we have login on heruko. By running below command we can login.
heroku login
Step 8. Once login done create heroku app. Name must we unique most prefer is app-appname.
heroku apps: create myAppName
Actual command
heroku apps: create ashi-api
Step 9. Add swift build pack with app. For compiling on hereto we have to add buildback. Heroku doesn’t support inbuild pack for swift.
heroku buildpacks:set https://github.com/vapor-community/heroku-buildpack -a myproject
Actual command
heroku buildpacks:set https://github.com/vapor-community/heroku-buildpack -a ashi-api
Step 10. Find command push changes on sever.
git push heroku master
Now you app and API will available for testing…
===========================================Deploy fresh app on Heroku================================================
======================Set data base with deployed app and next version of deployment==================================
Step 1. Do database configuration. Replace sqlite database with postgreSQL. Because Heroku is not supporting sqlite.
Replace in App->configure.swift. and import in Todo.h TodoController.h
import FluentPostgreSQL
// Configure a PostgreSQL database
let postgreSQLConfig: PostgreSQLDatabaseConfig
if let url = Environment.get("DATABASE_URL") {
postgreSQLConfig = PostgreSQLDatabaseConfig(url: url)!
} else {
postgreSQLConfig = PostgreSQLDatabaseConfig(hostname: "localhost", username: "app_test")
}
let postgreSQL = PostgreSQLDatabase(config: postgreSQLConfig)
// Register the configured PostreSQL database to the database config.
var databases = DatabasesConfig()
databases.add(database: postgreSQL, as: .psql)
services.register(databases)
Step 2. Install the heroku command with home-brew by running.
brew tap heroic/brew && brew install heroku
Step 3. We can add postgreSQL in app by running command.
heroic addons:create heroic-postgresql:hobby-dev
Step 4. Add update file in git by running below command.
git add .
git commit -m ‘Added PostgreSQL file’
Step 5. Find command push changes on sever.
git push heroku master
The second version will be available for testing with postgreSQL.
======================Set data base with deployed app and next version of deployment==================================
====================== Testing application API ==================================
Step 1. Heroku API path will be. Your https://app-name.herokoapp.com/youapIURL.
Heroku deployed app name
Sample get
apiURL
Data get request
apiURL
Post request from postman.
apiURL
Follow link.
Run get command on terminal.
curl apiURL
Run post command on terminal.
curl -x POST -H “ContentType” : application/json -d ‘{“title:exaple”}’ apiURL
====================== Testing application API ==================================
====================== Other important git and hero log command ==================================
Add local repository to heroku.
git remote add heroku appPath
See remote push and get repository path.
git remote -v
See heroku apps
heroku apps
See heroku application log
Number of line
heroku logs -n 100
heroku logs
heroku logs -trail
====================== Other important git and hero log command ==================================