How do I Make MEAN.io app public? Why am I seeing getaddrinfo ENOTFOUND?

I have a MEAN.io app that I edit and test on my local machine. When I run grunt, the app will startup and I can then open a browser and navigate to http://localhost:3000 and everything runs fine.

I would like to put this app on my server and make it publicly available. Ideally, I would like to just move the app to my server, start the app using grunt, and then navigate to http://myurl.com from any computer to access the app. What do I need to alter in my project (or what else do I need to setup and configure) to make this happen?

Secondly, in my attempts to make the app public I have moved it over to my server. When I try to run the app with grunt, instead of launching normally as it would on my laptop, I get the error getaddrinfo ENOTFOUND (this happens shortly after I get the message 'Mean app started on port 3000').

Could someone please tell me what I'm missing or at least point me in the right direction?

Thanks in advance.

Edit Adding Information

For information's sake. I have tried to setup the app on two separate CentOS 6.5 servers, neither have been able to launch. So far, I've tried:

  • adding a connection object to the root Gruntfile.js with the hostname of the url that I want, as well as 0.0.0.0
  • Under node_modules/meanio/lib/mean.js edited the line httpServer.listen(config.http ? config.http.port : config.port, config.hostname); by replacing hostname with my url
  • ran npm config set proxy http://address:8080
  • edited config/env/all.js and changed the module.export http to use port 80 instead of 3000, and disabled the Apache server.
  • This is a mean.io project built with the mean.io CLI

Information about setup

  • All machines that I have put this app on also use Apache which has been tested and are accepting connections on port 80 (successfully).

  • Computers that get the ENOTFOUND error are being remotely accessed via ssh while the computers that will run that app are local machines.

Part of the Question Answered

I was able to setup a proxy on the Apache server (see here for example configuration) and point it to the nodejs app, this allowed me to access the nodejs app by typing in my url.

However, the server that I'd like to put this app on still does not run the app. Is there something about a MEAN stack that requires the app to be launched locally? Also, aside from the fact that production traffic goes through port 80, why wouldn't I be able to just open port 3000 and forward it to my development machine?