Read the statement by Michael Teeuw here.
Deploying to heroku troubleshooting
-
Um, not to sound ignorant, but … what’s ‘heroku’ ?Guess I could look it up. It looks like it’s a cloud based application host. So I have to again point at the information posted on the main project page, where we point out that MagicMirror² is proven to run on Raspberry Pi versions 2 and 3, using the Rasbian OS. The installation script and necessary applications are all proven to run on that. Anything else and unfortunately it’s a total unknown. Chances are you are the first to do that on Heroku, and as such, you’re going to have to do some digging and figure it out. Using anything else, and there is no guarantee that any of the necessary pieces are in place, or that they can actually run on that platform.
Having said that, I would start by looking at your log file (
pm2 logs
) or pull up the code through a browser from a different machine and look at the console output, check for error messages. -
can you post what you did to setup MagicMirror on heroku? I want to do the same thing, but I’m not 100% sure what I need to change, thanks!
-
I imagine it should work since it’s a node app. I haven’t tried it myself but creating a procfile that runs
node serveronly
may be enough:
https://devcenter.heroku.com/articles/getting-started-with-nodejs#define-a-procfile -
Oh actually read to the end of your post :) Looks like the music module runs the player on the server side (on the heroku dyno) which is what’s likely failing. You can run
heroku logs -a <your appname>
to see any error messages. -
@dmcinnes yeah that’s what I thought but I’m having issues with that, it seems to fail at:
016-08-09T00:38:56.941069+00:00 app[web.1]: Ready to go! Please point your browser to: http://localhost:8080
2016-08-09T00:39:37.042725+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2016-08-09T00:39:37.042725+00:00 heroku[web.1]: Stopping process with SIGKILL
2016-08-09T00:39:37.194692+00:00 heroku[web.1]: Process exited with status 137 -
@gndimitro Ah! Heroku needs to tell your app which port to run on. An update to config.js to take the environment’s
PORT
value into account may do the trick:port: process.env.PORT || 8080,
-
@dmcinnes Thanks! That worked, now I have different issues but it’s live on heroku now. :)
-
@dmcinnes Actually it’s giving me an odd error in the dev console, it’s saying “process is not defined” and then that breaks my config file so the app is running but not working correctly, do you have any ideas?
-
@dmcinnes I changed my port value to
port: process.env.PORT
, just for heroku. -
@dmcinnes So I found a solution! I changed a line in server.js to
server.listen(process.env.PORT || config.port);
and that seemed to work, it didn’t break my config file